Manganelo.hpp 2.4 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546
  1. #pragma once
  2. #include "Manga.hpp"
  3. namespace QuickMedia {
  4. class ManganeloSearchPage : public Page {
  5. public:
  6. ManganeloSearchPage(Program *program) : Page(program) {}
  7. const char* get_title() const override { return "Search"; }
  8. bool search_is_filter() override { return false; }
  9. SearchResult search(const std::string &str, BodyItems &result_items) override;
  10. PluginResult submit(const SubmitArgs &args, std::vector<Tab> &result_tabs) override;
  11. const char* get_bookmark_name() const override { return "manganelo"; }
  12. };
  13. class ManganeloChaptersPage : public MangaChaptersPage {
  14. public:
  15. ManganeloChaptersPage(Program *program, std::string manga_name, std::string manga_url, const std::string &thumbnail_url) : MangaChaptersPage(program, std::move(manga_name), std::move(manga_url), thumbnail_url) {}
  16. PluginResult submit(const SubmitArgs &args, std::vector<Tab> &result_tabs) override;
  17. const char* get_bookmark_name() const override { return "manganelo"; }
  18. protected:
  19. bool extract_id_from_url(const std::string &url, std::string &manga_id) const override;
  20. const char* get_service_name() const override { return "manganelo"; }
  21. };
  22. class ManganeloCreatorPage : public LazyFetchPage {
  23. public:
  24. ManganeloCreatorPage(Program *program, Creator creator) : LazyFetchPage(program), creator(std::move(creator)) {}
  25. const char* get_title() const override { return creator.name.c_str(); }
  26. PluginResult submit(const SubmitArgs &args, std::vector<Tab> &result_tabs) override;
  27. PluginResult lazy_fetch(BodyItems &result_items) override;
  28. const char* get_bookmark_name() const override { return "manganelo"; }
  29. private:
  30. Creator creator;
  31. };
  32. class ManganeloImagesPage : public MangaImagesPage {
  33. public:
  34. ManganeloImagesPage(Program *program, std::string manga_name, std::string chapter_name, std::string url, std::string thumbnail_url) :
  35. MangaImagesPage(program, std::move(manga_name), std::move(chapter_name), std::move(url), std::move(thumbnail_url)) {}
  36. ImageResult update_image_urls(int &num_images) override;
  37. ImageResult for_each_page_in_chapter(PageCallback callback) override;
  38. const char* get_service_name() const override { return "manganelo"; }
  39. const char* get_website_url() const override { return "https://manganelo.com/"; }
  40. };
  41. }