fix themezer

This commit is contained in:
ITotalJustice
2025-04-18 13:16:17 +01:00
parent 252cd0cee6
commit e243d5b64e
3 changed files with 17 additions and 2 deletions

View File

@@ -757,4 +757,14 @@ auto ToFileAsync(const Api& e) -> bool {
return g_thread_queue.Add(e);
}
auto EscapeString(const std::string& str) -> std::string {
std::string result;
const auto s = curl_escape(str.data(), str.length());
if (s) {
result = s;
curl_free(s);
}
return result;
}
} // namespace sphaira::curl

View File

@@ -68,7 +68,7 @@ auto apiBuildUrlListInternal(const Config& e, bool is_pack) -> std::string {
if (is_pack) {
cmd = "packList";
// fields += ",themes{id,creator{display_name},details{name,description},last_updated,dl_count,like_count,target,preview{original,thumb}}";
fields += ",themes{id, preview{thumb}}";
fields += ",themes{id,preview{thumb}}";
} else {
cmd = "themeList";
p0 += ",$target:String";
@@ -92,7 +92,9 @@ auto apiBuildUrlListInternal(const Config& e, bool is_pack) -> std::string {
json += ",\"query\":\"" + e.query + "\"";
}
return api+"("+p0+"){"+cmd+"("+p1+")"+fields+"}}&variables={"+json+"}";
json = curl::EscapeString('{'+json+'}');
return api+"("+p0+"){"+cmd+"("+p1+")"+fields+"}}&variables="+json;
}
auto apiBuildUrlDownloadInternal(const std::string& id, bool is_pack) -> std::string {