/* This file is part of Telegram Desktop, the official desktop application for the Telegram messaging service. For license and copyright information please follow this link: https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL */ #include "base/qthelp_url.h" namespace qthelp { QMap url_parse_params( const QString ¶ms, UrlParamNameTransform transform) { auto result = QMap(); const auto transformParamName = [transform](const QString &name) { if (transform == UrlParamNameTransform::ToLower) { return name.toLower(); } return name; }; for (const auto ¶m : params.split('&')) { // Skip params without a name (starting with '='). if (auto separatorPosition = param.indexOf('=')) { const auto paramName = transformParamName( (separatorPosition > 0) ? param.mid(0, separatorPosition) : param); const auto paramValue = (separatorPosition > 0) ? url_decode(param.mid(separatorPosition + 1)) : QString(); if (!result.contains(paramName)) { result.insert(paramName, paramValue); } } } return result; } } // namespace qthelp