Mercurial > minori
comparison src/services/anilist.cpp @ 52:0c4138de2ea7
anime list: we are finally read-write
author | Paper <mrpapersonic@gmail.com> |
---|---|
date | Mon, 25 Sep 2023 22:49:42 -0400 |
parents | e613772f41d5 |
children | 3d2decf093bb |
comparison
equal
deleted
inserted
replaced
51:75c804f713b2 | 52:0c4138de2ea7 |
---|---|
6 #include "core/session.h" | 6 #include "core/session.h" |
7 #include "core/strings.h" | 7 #include "core/strings.h" |
8 #include "gui/translate/anilist.h" | 8 #include "gui/translate/anilist.h" |
9 #include <QDesktopServices> | 9 #include <QDesktopServices> |
10 #include <QInputDialog> | 10 #include <QInputDialog> |
11 #include <QDebug> | |
11 #include <QLineEdit> | 12 #include <QLineEdit> |
12 #include <QMessageBox> | 13 #include <QMessageBox> |
13 #include <QUrl> | 14 #include <QUrl> |
14 #include <chrono> | 15 #include <chrono> |
15 #include <curl/curl.h> | 16 #include <curl/curl.h> |
258 ParseList(list.value()); | 259 ParseList(list.value()); |
259 } | 260 } |
260 return 1; | 261 return 1; |
261 } | 262 } |
262 | 263 |
263 int UpdateAnimeEntry(const Anime::Anime& anime) { | 264 int UpdateAnimeEntry(int id) { |
264 /** | 265 /** |
265 * possible values: | 266 * possible values: |
266 * | 267 * |
267 * int mediaId, | 268 * int mediaId, |
268 * MediaListStatus status, | 269 * MediaListStatus status, |
278 * string[] customLists, | 279 * string[] customLists, |
279 * float[] advancedScores, | 280 * float[] advancedScores, |
280 * Date startedAt, | 281 * Date startedAt, |
281 * Date completedAt | 282 * Date completedAt |
282 **/ | 283 **/ |
283 const std::string query = "mutation ($media_id: Int, $progress: Int, $status: MediaListStatus, " | 284 Anime::Anime& anime = Anime::db.items[id]; |
284 "$score: Int, $notes: String) {\n" | 285 const std::string query = "mutation ($media_id: Int, $progress: Int, $status: MediaListStatus, $score: Int, $notes: String) {\n" |
285 " SaveMediaListEntry (mediaId: $media_id, progress: $progress, " | 286 " SaveMediaListEntry (mediaId: $media_id, progress: $progress, status: $status, scoreRaw: $score, notes: $notes) {\n" |
286 "status: $status, scoreRaw: $score, notes: " | |
287 "$notes) {\n" | |
288 " id\n" | 287 " id\n" |
289 " }\n" | 288 " }\n" |
290 "}\n"; | 289 "}\n"; |
291 // clang-format off | 290 // clang-format off |
292 nlohmann::json json = { | 291 nlohmann::json json = { |
298 {"score", anime.GetUserScore()}, | 297 {"score", anime.GetUserScore()}, |
299 {"notes", anime.GetUserNotes()} | 298 {"notes", anime.GetUserNotes()} |
300 }} | 299 }} |
301 }; | 300 }; |
302 // clang-format on | 301 // clang-format on |
303 SendRequest(json.dump()); | 302 auto ret = nlohmann::json::parse(SendRequest(json.dump())); |
304 return 1; | 303 return JSON::GetInt(ret, "/data/SaveMediaListEntry/id"_json_pointer); |
305 } | 304 } |
306 | 305 |
307 int ParseUser(const nlohmann::json& json) { | 306 int ParseUser(const nlohmann::json& json) { |
308 account.SetUsername(JSON::GetString(json, "/name"_json_pointer)); | 307 account.SetUsername(JSON::GetString(json, "/name"_json_pointer)); |
309 account.SetUserId(JSON::GetInt(json, "/id"_json_pointer)); | 308 account.SetUserId(JSON::GetInt(json, "/id"_json_pointer)); |