fix themezer
This commit is contained in:
@@ -87,6 +87,9 @@ auto ToFile(const Api& e) -> ApiResult;
|
|||||||
auto ToMemoryAsync(const Api& e) -> bool;
|
auto ToMemoryAsync(const Api& e) -> bool;
|
||||||
auto ToFileAsync(const Api& e) -> bool;
|
auto ToFileAsync(const Api& e) -> bool;
|
||||||
|
|
||||||
|
// uses curl to convert string to their %XX
|
||||||
|
auto EscapeString(const std::string& str) -> std::string;
|
||||||
|
|
||||||
struct Api {
|
struct Api {
|
||||||
Api() = default;
|
Api() = default;
|
||||||
|
|
||||||
|
|||||||
@@ -757,4 +757,14 @@ auto ToFileAsync(const Api& e) -> bool {
|
|||||||
return g_thread_queue.Add(e);
|
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
|
} // namespace sphaira::curl
|
||||||
|
|||||||
@@ -68,7 +68,7 @@ auto apiBuildUrlListInternal(const Config& e, bool is_pack) -> std::string {
|
|||||||
if (is_pack) {
|
if (is_pack) {
|
||||||
cmd = "packList";
|
cmd = "packList";
|
||||||
// fields += ",themes{id,creator{display_name},details{name,description},last_updated,dl_count,like_count,target,preview{original,thumb}}";
|
// 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 {
|
} else {
|
||||||
cmd = "themeList";
|
cmd = "themeList";
|
||||||
p0 += ",$target:String";
|
p0 += ",$target:String";
|
||||||
@@ -92,7 +92,9 @@ auto apiBuildUrlListInternal(const Config& e, bool is_pack) -> std::string {
|
|||||||
json += ",\"query\":\"" + e.query + "\"";
|
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 {
|
auto apiBuildUrlDownloadInternal(const std::string& id, bool is_pack) -> std::string {
|
||||||
|
|||||||
Reference in New Issue
Block a user