aboutsummaryrefslogtreecommitdiff
path: root/plugins/LocalAnime.hpp
diff options
context:
space:
mode:
authordec05eba <dec05eba@protonmail.com>2022-02-20 22:52:28 +0100
committerdec05eba <dec05eba@protonmail.com>2022-02-20 22:52:28 +0100
commit2beeddb325ecbc03ddd6c741449fabd527a3c8cc (patch)
tree545866dddda5f31aff0fc17713f19963e1517757 /plugins/LocalAnime.hpp
parent5d999a9c97b986ff513aa6df71719914a41cb3eb (diff)
Local-anime: add option to group episodes into anime groups from the name of the anime by using the local_manga.auto_group_episodes config
Diffstat (limited to 'plugins/LocalAnime.hpp')
-rw-r--r--plugins/LocalAnime.hpp25
1 files changed, 9 insertions, 16 deletions
diff --git a/plugins/LocalAnime.hpp b/plugins/LocalAnime.hpp
index 7fe58d9..19b93e8 100644
--- a/plugins/LocalAnime.hpp
+++ b/plugins/LocalAnime.hpp
@@ -17,49 +17,42 @@ namespace QuickMedia {
};
struct LocalAnimeSeason {
- Path path;
+ std::string name;
std::vector<LocalAnimeItem> episodes;
time_t modified_time_seconds;
};
struct LocalAnime {
- Path path;
+ std::string name;
std::vector<LocalAnimeItem> items;
time_t modified_time_seconds;
};
- enum class LocalAnimeSearchPageType {
- DIRECTORY,
- ANIME,
- SEASON
- };
+ std::vector<LocalAnimeItem> get_anime_in_directory(const Path &directory);
class LocalAnimeSearchPage : public LazyFetchPage {
public:
- LocalAnimeSearchPage(Program *program, Path directory, LocalAnimeSearchPageType type)
- : LazyFetchPage(program), directory(std::move(directory)), type(type) {}
+ LocalAnimeSearchPage(Program *program, std::vector<LocalAnimeItem> anime_items)
+ : LazyFetchPage(program), anime_items(std::move(anime_items)) {}
const char* get_title() const override { return "Search"; }
bool search_is_filter() override { return true; }
PluginResult submit(const SubmitArgs &args, std::vector<Tab> &result_tabs) override;
PluginResult lazy_fetch(BodyItems &result_items) override;
- bool reload_on_page_change() override { return true; }
- bool reseek_to_body_item_by_url() override { return true; }
void toggle_read(BodyItem *selected_item) override;
private:
- Path directory;
- LocalAnimeSearchPageType type;
+ std::vector<LocalAnimeItem> anime_items;
};
class LocalAnimeVideoPage : public VideoPage {
public:
- LocalAnimeVideoPage(Program *program, std::string filepath, WatchProgress watch_progress)
- : VideoPage(program, std::move(filepath)), watch_progress(std::move(watch_progress)) {}
+ LocalAnimeVideoPage(Program *program, std::string filepath, WatchProgress *watch_progress)
+ : VideoPage(program, std::move(filepath)), watch_progress(watch_progress) {}
const char* get_title() const override { return ""; }
std::string get_video_url(int max_height, bool &has_embedded_audio, std::string &ext) override;
std::string get_url_timestamp() override;
bool is_local() const override { return true; }
void set_watch_progress(int64_t time_pos_sec) override;
private:
- WatchProgress watch_progress;
+ WatchProgress *watch_progress;
};
} \ No newline at end of file