aboutsummaryrefslogtreecommitdiff
path: root/plugins
diff options
context:
space:
mode:
authordec05eba <dec05eba@protonmail.com>2021-04-27 14:00:35 +0200
committerdec05eba <dec05eba@protonmail.com>2021-04-27 14:00:35 +0200
commit1ba58ba74a767a91b28f44eb75db41455adcaa70 (patch)
tree5fef40f51fd4fd11966ec58933d10e540fb9fb59 /plugins
parent76e1aebbe075287a8297194b38343467c76dd964 (diff)
Add authors page for mangakatana and mangatown, attempt to fix image loading getting stuck, misc fixed related to async in plugins
Diffstat (limited to 'plugins')
-rw-r--r--plugins/Manga.hpp2
-rw-r--r--plugins/MangaCombined.hpp2
-rw-r--r--plugins/MangaGeneric.hpp6
-rw-r--r--plugins/Mangadex.hpp1
-rw-r--r--plugins/Manganelo.hpp1
-rw-r--r--plugins/Soundcloud.hpp2
6 files changed, 11 insertions, 3 deletions
diff --git a/plugins/Manga.hpp b/plugins/Manga.hpp
index 5dfa800..388ce66 100644
--- a/plugins/Manga.hpp
+++ b/plugins/Manga.hpp
@@ -37,6 +37,8 @@ namespace QuickMedia {
// TODO: Remove and use plugin name instead
virtual const char* get_service_name() const = 0;
+ virtual const char* get_website_url() const = 0;
+
const std::string manga_name;
protected:
std::string chapter_name;
diff --git a/plugins/MangaCombined.hpp b/plugins/MangaCombined.hpp
index b9627fe..56b03ba 100644
--- a/plugins/MangaCombined.hpp
+++ b/plugins/MangaCombined.hpp
@@ -3,6 +3,7 @@
#include "Manga.hpp"
#include <vector>
#include <map>
+#include "../include/AsyncTask.hpp"
namespace QuickMedia {
struct MangaPlugin {
@@ -23,5 +24,6 @@ namespace QuickMedia {
sf::Vector2i get_thumbnail_max_size() override { return sf::Vector2i(101, 141); };
private:
std::vector<MangaPlugin> search_pages;
+ std::vector<std::pair<MangaPlugin*, AsyncTask<BodyItems>>> search_threads;
};
} \ No newline at end of file
diff --git a/plugins/MangaGeneric.hpp b/plugins/MangaGeneric.hpp
index a03756d..2dca919 100644
--- a/plugins/MangaGeneric.hpp
+++ b/plugins/MangaGeneric.hpp
@@ -113,9 +113,8 @@ namespace QuickMedia {
MangaGenericSearchPage& description_handler(std::vector<DescriptionQuery> queries);
// This is optional.
MangaGenericSearchPage& thumbnail_handler(std::vector<ThumbnailQuery> queries);
- // If |url_contains| is null, then any matching query is added. If |title_field| is "text", then the inner text is used.
// This is optional.
- MangaGenericSearchPage& authors_handler(const char *html_query, const char *title_field, const char *url_field, const char *url_contains);
+ MangaGenericSearchPage& authors_handler(std::vector<AuthorsQuery> queries);
// If |url_contains| is null, then any matching query is added. If |title_field| is "text", then the inner text is used.
// This is required.
@@ -151,7 +150,7 @@ namespace QuickMedia {
std::vector<TextQuery> text_queries;
std::vector<DescriptionQuery> description_queries;
std::vector<ThumbnailQuery> thumbnail_queries;
- AuthorsQuery authors_query;
+ std::vector<AuthorsQuery> authors_queries;
ListChaptersQuery list_chapters_query;
ListPageQuery list_page_query;
MangaIdExtractor manga_id_extractor;
@@ -192,6 +191,7 @@ namespace QuickMedia {
ImageResult get_number_of_images(int &num_images) override;
ImageResult for_each_page_in_chapter(PageCallback callback) override;
const char* get_service_name() const override { return service_name; }
+ const char* get_website_url() const override { return website_url.c_str(); }
private:
ImageResult get_page_image_urls();
private:
diff --git a/plugins/Mangadex.hpp b/plugins/Mangadex.hpp
index 7fd6ca0..1befa1a 100644
--- a/plugins/Mangadex.hpp
+++ b/plugins/Mangadex.hpp
@@ -34,6 +34,7 @@ namespace QuickMedia {
ImageResult get_number_of_images(int &num_images) override;
ImageResult for_each_page_in_chapter(PageCallback callback) override;
const char* get_service_name() const override { return "mangadex"; }
+ const char* get_website_url() const override { return "https://mangadex.org/"; }
private:
// Cached
ImageResult get_image_urls_for_chapter(const std::string &url);
diff --git a/plugins/Manganelo.hpp b/plugins/Manganelo.hpp
index ca44e05..8e6c2cd 100644
--- a/plugins/Manganelo.hpp
+++ b/plugins/Manganelo.hpp
@@ -39,6 +39,7 @@ namespace QuickMedia {
ImageResult get_number_of_images(int &num_images) override;
ImageResult for_each_page_in_chapter(PageCallback callback) override;
const char* get_service_name() const override { return "manganelo"; }
+ const char* get_website_url() const override { return "https://manganelo.com/"; }
private:
ImageResult get_image_urls_for_chapter(const std::string &url);
};
diff --git a/plugins/Soundcloud.hpp b/plugins/Soundcloud.hpp
index bb23efb..24dc051 100644
--- a/plugins/Soundcloud.hpp
+++ b/plugins/Soundcloud.hpp
@@ -1,6 +1,7 @@
#pragma once
#include "Page.hpp"
+#include "../include/AsyncTask.hpp"
namespace QuickMedia {
class SoundcloudPage : public Page {
@@ -24,6 +25,7 @@ namespace QuickMedia {
private:
SoundcloudPage submit_page;
std::string query_urn;
+ std::vector<AsyncTask<std::string>> async_download_threads;
};
class SoundcloudUserPage : public SoundcloudPage {