diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/QuickMedia.cpp | 76 | ||||
-rw-r--r-- | src/plugins/Mangadex.cpp | 56 |
2 files changed, 0 insertions, 132 deletions
diff --git a/src/QuickMedia.cpp b/src/QuickMedia.cpp index 3ef29b5..aa86bf8 100644 --- a/src/QuickMedia.cpp +++ b/src/QuickMedia.cpp @@ -944,80 +944,6 @@ namespace QuickMedia { .related_media_thumbnail_handler({{"//img", "src", "/thumb-"}}); } - static PluginResult upgrade_legacy_mangadex_ids(Program *program, Page *page) { - Path content_storage_dir = get_storage_dir().join("mangadex"); - if(create_directory_recursive(content_storage_dir) != 0) { - show_notification("QuickMedia", "Failed to create directory: " + content_storage_dir.data, Urgency::CRITICAL); - abort(); - } - - Path mangadex_upgraded = get_storage_dir().join("mangadex-upgraded"); - if(get_file_type(mangadex_upgraded) == FileType::REGULAR) - return PluginResult::OK; - - show_notification("QuickMedia", "Upgrading mangadex ids", Urgency::LOW); - - std::vector<int> legacy_manga_ids; - for_files_in_dir_sort_last_modified(content_storage_dir, [&legacy_manga_ids](const Path &filepath, FileType) { - if(strcmp(filepath.ext(), ".tmp") == 0) - return true; - - std::string filename = filepath.filename(); - if(filename.size() > 18) // Ignore new manga ids - return true; - - std::string id_str = base64_url_decode(filename); - char *endptr = nullptr; - errno = 0; - long id = strtoll(id_str.c_str(), &endptr, 10); - if(endptr != id_str.c_str() && errno == 0) - legacy_manga_ids.push_back(id); - return true; - }); - - if(legacy_manga_ids.empty()) - return PluginResult::OK; - - std::vector<std::pair<int, std::string>> new_manga_ids; - TaskResult task_result = program->run_task_with_loading_screen([page, &legacy_manga_ids, &new_manga_ids]() { - return legacy_mangadex_id_to_new_manga_id(page, legacy_manga_ids, new_manga_ids) == PluginResult::OK; - }); - - if(task_result == TaskResult::TRUE) { - if(new_manga_ids.size() != legacy_manga_ids.size()) { - show_notification("QuickMedia", "Failed to upgrade legacy mangadex ids", Urgency::CRITICAL); - abort(); - } - - for(const auto &it : new_manga_ids) { - Path old_path = content_storage_dir; - old_path.join(base64_url_encode(std::to_string(it.first))); - - Path new_path = content_storage_dir; - new_path.join(base64_url_encode(it.second)); - if(rename_atomic(old_path.data.c_str(), new_path.data.c_str()) != 0) { - show_notification("QuickMedia", "Failed to upgrade legacy mangadex ids", Urgency::CRITICAL); - abort(); - } - } - - if(file_overwrite_atomic(mangadex_upgraded, "1") != 0) { - show_notification("QuickMedia", "Failed to upgrade legacy mangadex ids", Urgency::CRITICAL); - abort(); - } - - show_notification("QuickMedia", "Mangadex ids upgraded", Urgency::LOW); - return PluginResult::OK; - } else if(task_result == TaskResult::CANCEL) { - exit(0); - } else if(task_result == TaskResult::FALSE) { - show_notification("QuickMedia", "Failed to upgrade legacy mangadex ids", Urgency::CRITICAL); - abort(); - } - - return PluginResult::OK; - } - static void check_youtube_dl_installed(const std::string &plugin_name) { if(!is_program_executable_by_name("youtube-dl")) { show_notification("QuickMedia", "youtube-dl needs to be installed to play " + plugin_name + " videos", Urgency::CRITICAL); @@ -1120,7 +1046,6 @@ namespace QuickMedia { start_tab_index = 1; } else if(strcmp(plugin_name, "mangadex") == 0) { auto search_page = std::make_unique<MangadexSearchPage>(this); - upgrade_legacy_mangadex_ids(this, search_page.get()); tabs.push_back(Tab{create_body(), std::make_unique<BookmarksPage>(this, search_page.get()), create_search_bar("Search...", SEARCH_DELAY_FILTER)}); tabs.push_back(Tab{create_body(), std::move(search_page), create_search_bar("Search...", 400)}); @@ -1163,7 +1088,6 @@ namespace QuickMedia { start_tab_index = 1; } else if(strcmp(plugin_name, "manga") == 0) { auto mangadex = std::make_unique<MangadexSearchPage>(this); - upgrade_legacy_mangadex_ids(this, mangadex.get()); auto manganelo = std::make_unique<ManganeloSearchPage>(this); auto manganelos = std::make_unique<MangaGenericSearchPage>(this, "manganelos", "http://manganelos.com/"); diff --git a/src/plugins/Mangadex.cpp b/src/plugins/Mangadex.cpp index 6aa73b0..2efd2f1 100644 --- a/src/plugins/Mangadex.cpp +++ b/src/plugins/Mangadex.cpp @@ -4,62 +4,6 @@ #include <json/writer.h> namespace QuickMedia { - PluginResult legacy_mangadex_id_to_new_manga_id(Page *page, const std::vector<int> &manga_ids, std::vector<std::pair<int, std::string>> &new_manga_ids) { - Json::Value request_json(Json::objectValue); - request_json["type"] = "manga"; - Json::Value manga_ids_json(Json::arrayValue); - for(int manga_id : manga_ids) { - manga_ids_json.append(manga_id); - } - request_json["ids"] = std::move(manga_ids_json); - - Json::StreamWriterBuilder json_builder; - json_builder["commentStyle"] = "None"; - json_builder["indentation"] = ""; - - std::vector<CommandArg> additional_args = { - { "-X", "POST" }, - { "-H", "content-type: application/json" }, - { "--data-binary", Json::writeString(json_builder, request_json) } - }; - - Json::Value json_root; - if(page->download_json(json_root, "https://api.mangadex.org/legacy/mapping", std::move(additional_args), true) != DownloadResult::OK) - return PluginResult::NET_ERR; - - if(!json_root.isArray()) - return PluginResult::OK; - - for(const Json::Value &result_item_json : json_root) { - if(!result_item_json.isObject()) - continue; - - const Json::Value &result_json = result_item_json["result"]; - if(!result_json.isString() || strcmp(result_json.asCString(), "ok") != 0) - continue; - - const Json::Value &data_json = result_item_json["data"]; - if(!data_json.isObject()) - continue; - - const Json::Value &attributes_json = data_json["attributes"]; - if(!attributes_json.isObject()) - continue; - - const Json::Value &legacy_id_json = attributes_json["legacyId"]; - if(!legacy_id_json.isInt()) - continue; - - const Json::Value &new_id_json = attributes_json["newId"]; - if(!new_id_json.isString()) - continue; - - new_manga_ids.push_back(std::make_pair<int, std::string>(legacy_id_json.asInt(), new_id_json.asString())); - } - - return PluginResult::OK; - } - static std::string relationships_get_cover_art_filename(const Json::Value &relationships_json) { std::string result; if(!relationships_json.isArray()) |