Skip to content

Commit

Permalink
refactor: move category theme to source.categories
Browse files Browse the repository at this point in the history
  • Loading branch information
Beastwick18 committed Jun 5, 2024
1 parent b52faf2 commit 84d3790
Show file tree
Hide file tree
Showing 3 changed files with 88 additions and 67 deletions.
45 changes: 26 additions & 19 deletions src/source/nyaa_html.rs
Original file line number Diff line number Diff line change
Expand Up @@ -27,9 +27,16 @@ use super::{
add_protocol, nyaa_rss, Item, ItemType, Source, SourceConfig, SourceInfo, SourceResponse,
};

#[derive(Serialize, Deserialize, Clone, Copy)]
#[derive(Serialize, Deserialize, Clone, Copy, Default)]
#[serde(default)]
pub struct NyaaTheme {
#[serde(rename = "categories")]
cat: NyaaCategoryTheme,
}

#[derive(Serialize, Deserialize, Clone, Copy)]
#[serde(default)]
pub struct NyaaCategoryTheme {
#[serde(with = "color_to_tui")]
pub anime_english_translated: Color,
#[serde(with = "color_to_tui")]
Expand Down Expand Up @@ -66,7 +73,7 @@ pub struct NyaaTheme {
pub software_games: Color,
}

impl Default for NyaaTheme {
impl Default for NyaaCategoryTheme {
fn default() -> Self {
use Color::*;
Self {
Expand Down Expand Up @@ -455,38 +462,38 @@ impl Source for NyaaHtmlSource {
}
"Anime" => {
10 => ("Ani", "All Anime", "AllAnime", fg);
12 => ("Sub", "English Translated", "AnimeEnglishTranslated", nyaa.anime_english_translated);
13 => ("Sub", "Non-English Translated", "AnimeNonEnglishTranslated", nyaa.anime_non_english_translated);
14 => ("Raw", "Raw", "AnimeRaw", nyaa.anime_raw);
11 => ("AMV", "Anime Music Video", "AnimeMusicVideo", nyaa.anime_music_video);
12 => ("Sub", "English Translated", "AnimeEnglishTranslated", nyaa.cat.anime_english_translated);
13 => ("Sub", "Non-English Translated", "AnimeNonEnglishTranslated", nyaa.cat.anime_non_english_translated);
14 => ("Raw", "Raw", "AnimeRaw", nyaa.cat.anime_raw);
11 => ("AMV", "Anime Music Video", "AnimeMusicVideo", nyaa.cat.anime_music_video);
}
"Audio" => {
20 => ("Aud", "All Audio", "AllAudio", fg);
21 => ("Aud", "Lossless", "AudioLossless", nyaa.audio_lossless);
22 => ("Aud", "Lossy", "AudioLossy", nyaa.audio_lossy);
21 => ("Aud", "Lossless", "AudioLossless", nyaa.cat.audio_lossless);
22 => ("Aud", "Lossy", "AudioLossy", nyaa.cat.audio_lossy);
}
"Literature" => {
30 => ("Lit", "All Literature", "AllLiterature", fg);
31 => ("Lit", "English Translated", "LitEnglishTranslated", nyaa.literature_english_translated);
32 => ("Lit", "Non-English Translated", "LitNonEnglishTranslated", nyaa.literature_non_english_translated);
33 => ("Lit", "Raw", "LitRaw", nyaa.literature_raw);
31 => ("Lit", "English Translated", "LitEnglishTranslated", nyaa.cat.literature_english_translated);
32 => ("Lit", "Non-English Translated", "LitNonEnglishTranslated", nyaa.cat.literature_non_english_translated);
33 => ("Lit", "Raw", "LitRaw", nyaa.cat.literature_raw);
}
"Live Action" => {
40 => ("Liv", "All Live Action", "AllLiveAction", fg);
41 => ("Liv", "English Translated", "LiveEnglishTranslated", nyaa.live_english_translated);
43 => ("Liv", "Non-English Translated", "LiveNonEnglishTranslated", nyaa.live_non_english_translated);
42 => ("Liv", "Idol/Promo Video", "LiveIdolPromoVideo", nyaa.live_idol_promo_video);
44 => ("Liv", "Raw", "LiveRaw", nyaa.live_raw);
41 => ("Liv", "English Translated", "LiveEnglishTranslated", nyaa.cat.live_english_translated);
43 => ("Liv", "Non-English Translated", "LiveNonEnglishTranslated", nyaa.cat.live_non_english_translated);
42 => ("Liv", "Idol/Promo Video", "LiveIdolPromoVideo", nyaa.cat.live_idol_promo_video);
44 => ("Liv", "Raw", "LiveRaw", nyaa.cat.live_raw);
}
"Pictures" => {
50 => ("Pic", "All Pictures", "AllPictures", fg);
51 => ("Pic", "Graphics", "PicGraphics", nyaa.picture_graphics);
52 => ("Pic", "Photos", "PicPhotos", nyaa.picture_photos);
51 => ("Pic", "Graphics", "PicGraphics", nyaa.cat.picture_graphics);
52 => ("Pic", "Photos", "PicPhotos", nyaa.cat.picture_photos);
}
"Software" => {
60 => ("Sof", "All Software", "AllSoftware", fg);
61 => ("Sof", "Applications", "SoftApplications", nyaa.software_applications);
62 => ("Sof", "Games", "SoftGames", nyaa.software_games);
61 => ("Sof", "Applications", "SoftApplications", nyaa.cat.software_applications);
62 => ("Sof", "Games", "SoftGames", nyaa.cat.software_games);
}
};
SourceInfo {
Expand Down
25 changes: 16 additions & 9 deletions src/source/sukebei_nyaa.rs
Original file line number Diff line number Diff line change
Expand Up @@ -26,9 +26,16 @@ use super::{
nyaa_rss, Item, ItemType, ResultTable, Source, SourceConfig, SourceInfo, SourceResponse,
};

#[derive(Serialize, Deserialize, Clone, Copy)]
#[derive(Serialize, Deserialize, Clone, Copy, Default)]
#[serde(default)]
pub struct SukebeiTheme {
#[serde(rename = "categories")]
pub cat: SukebeiCategoryTheme,
}

#[derive(Serialize, Deserialize, Clone, Copy)]
#[serde(default)]
pub struct SukebeiCategoryTheme {
#[serde(with = "color_to_tui")]
pub art_anime: Color,
#[serde(with = "color_to_tui")]
Expand All @@ -45,7 +52,7 @@ pub struct SukebeiTheme {
pub real_videos: Color,
}

impl Default for SukebeiTheme {
impl Default for SukebeiCategoryTheme {
fn default() -> Self {
use Color::*;
Self {
Expand Down Expand Up @@ -298,16 +305,16 @@ impl Source for SukebeiHtmlSource {
}
"Art" => {
10 => ("Art", "All Art", "AllArt", fg);
11 => ("Ani", "Anime", "ArtAnime", sukebei.art_anime);
12 => ("Dou", "Doujinshi", "ArtDoujinshi", sukebei.art_doujinshi);
13 => ("Gam", "Games", "ArtGames", sukebei.art_games);
14 => ("Man", "Manga", "ArtManga", sukebei.art_manga);
15 => ("Pic", "Pictures", "ArtPictures", sukebei.art_pictures);
11 => ("Ani", "Anime", "ArtAnime", sukebei.cat.art_anime);
12 => ("Dou", "Doujinshi", "ArtDoujinshi", sukebei.cat.art_doujinshi);
13 => ("Gam", "Games", "ArtGames", sukebei.cat.art_games);
14 => ("Man", "Manga", "ArtManga", sukebei.cat.art_manga);
15 => ("Pic", "Pictures", "ArtPictures", sukebei.cat.art_pictures);
}
"Real Life" => {
20 => ("Rea", "All Real Life", "AllReal", fg);
21 => ("Pho", "Photobooks and Pictures", "RealPhotos", sukebei.real_photos);
22 => ("Vid", "Videos", "RealVideos", sukebei.real_videos);
21 => ("Pho", "Photobooks and Pictures", "RealPhotos", sukebei.cat.real_photos);
22 => ("Vid", "Videos", "RealVideos", sukebei.cat.real_videos);
}
};
SourceInfo {
Expand Down
85 changes: 46 additions & 39 deletions src/source/torrent_galaxy.rs
Original file line number Diff line number Diff line change
Expand Up @@ -29,9 +29,16 @@ use crate::{

use super::{add_protocol, Item, ItemType, Source, SourceConfig, SourceInfo, SourceResponse};

#[derive(Serialize, Deserialize, Clone, Copy)]
#[derive(Serialize, Deserialize, Clone, Copy, Default)]
#[serde(default)]
pub struct TgxTheme {
#[serde(rename = "categories")]
pub cat: TgxCategoryTheme,
}

#[derive(Serialize, Deserialize, Clone, Copy)]
#[serde(default)]
pub struct TgxCategoryTheme {
#[serde(with = "color_to_tui")]
pub all_categories: Color,
#[serde(with = "color_to_tui")]
Expand Down Expand Up @@ -108,7 +115,7 @@ pub struct TgxTheme {
pub xxx_sd: Color,
}

impl Default for TgxTheme {
impl Default for TgxCategoryTheme {
fn default() -> Self {
use Color::*;
Self {
Expand Down Expand Up @@ -603,43 +610,43 @@ impl Source for TorrentGalaxyHtmlSource {

fn info() -> SourceInfo {
let cats = cats! {
"All Categories" => { 0 => ("---", "All Categories", "AllCategories", tgx.all_categories); }
"Movies" => {3 => ("4kM", "4K UHD Movies", "4kMovies", tgx.movies_4k);
46 => ("Bly", "Bollywood", "Bollywood Movies", tgx.movies_bollywood);
45 => ("Cam", "Cam/TS", "CamMovies", tgx.movies_cam);
42 => ("HdM", "HD Movies", "HdMovies", tgx.movies_hd);
4 => ("PkM", "Movie Packs", "PackMovies", tgx.movies_pack);
1 => ("SdM", "SD Movies", "SdMovies", tgx.movies_sd);}
"TV" => {41 => ("HdT", "TV HD", "HdTV", tgx.tv_hd);
5 => ("SdT", "TV SD", "SdTV", tgx.tv_sd);
11 => ("4kT", "TV 4k", "4kTV", tgx.tv_4k);
6 => ("PkT", "TV Packs", "PacksTV", tgx.tv_pack);
7 => ("Spo", "Sports", "SportsTV", tgx.tv_sports);}
"Anime" => {28 => ("Ani", "All Anime", "Anime", tgx.anime);}
"Apps" => {20 => ("Mob", "Mobile Apps", "AppsMobile", tgx.apps_mobile);
21 => ("App", "Other Apps", "AppsOther", tgx.apps_other);
18 => ("Win", "Windows Apps", "AppsWindows", tgx.apps_windows);}
"Books" => {13 => ("Abk", "Audiobooks", "Audiobooks", tgx.audiobooks);
19 => ("Com", "Comics", "Comics", tgx.comics);
12 => ("Ebk", "Ebooks", "Ebooks", tgx.ebooks);
14 => ("Edu", "Educational", "Educational", tgx.educational);
15 => ("Mag", "Magazines", "Magazines", tgx.magazines);}
"Documentaries" => {9 => ("Doc", "All Documentaries", "Documentaries", tgx.documentaries);}
"Games" => {10 => ("Wgm", "Windows Games", "WindowsGames", tgx.games_windows);
43 => ("Ogm", "Other Games", "OtherGames", tgx.games_other);}
"Music" => {22 => ("Alb", "Music Albums", "AlbumsMusic", tgx.music_albums);
26 => ("Dis", "Music Discography", "DiscographyMusic", tgx.music_discography);
23 => ("Los", "Music Lossless", "LosslessMusic", tgx.music_lossless);
25 => ("MV ", "Music Video", "MusicVideo", tgx.music_video);
24 => ("Sin", "Music Singles", "SinglesMusic", tgx.music_singles);}
"Other" => {17 => ("Aud", "Other Audio", "AudioOther", tgx.audio_other);
40 => ("Pic", "Other Pictures", "PicturesOther", tgx.pictures_other);
37 => ("Tra", "Other Training", "TrainingOther", tgx.training_other);
33 => ("Oth", "Other", "Other", tgx.other);}
"XXX" => {48 => ("4kX", "XXX 4k", "4kXXX", tgx.xxx_4k);
35 => ("HdX", "XXX HD", "HdXXX", tgx.xxx_hd);
47 => ("MsX", "XXX Misc", "MiscXXX", tgx.xxx_misc);
34 => ("SdX", "XXX SD", "SdXXX", tgx.xxx_sd);}
"All Categories" => { 0 => ("---", "All Categories", "AllCategories", tgx.cat.all_categories); }
"Movies" => {3 => ("4kM", "4K UHD Movies", "4kMovies", tgx.cat.movies_4k);
46 => ("Bly", "Bollywood", "Bollywood Movies", tgx.cat.movies_bollywood);
45 => ("Cam", "Cam/TS", "CamMovies", tgx.cat.movies_cam);
42 => ("HdM", "HD Movies", "HdMovies", tgx.cat.movies_hd);
4 => ("PkM", "Movie Packs", "PackMovies", tgx.cat.movies_pack);
1 => ("SdM", "SD Movies", "SdMovies", tgx.cat.movies_sd);}
"TV" => {41 => ("HdT", "TV HD", "HdTV", tgx.cat.tv_hd);
5 => ("SdT", "TV SD", "SdTV", tgx.cat.tv_sd);
11 => ("4kT", "TV 4k", "4kTV", tgx.cat.tv_4k);
6 => ("PkT", "TV Packs", "PacksTV", tgx.cat.tv_pack);
7 => ("Spo", "Sports", "SportsTV", tgx.cat.tv_sports);}
"Anime" => {28 => ("Ani", "All Anime", "Anime", tgx.cat.anime);}
"Apps" => {20 => ("Mob", "Mobile Apps", "AppsMobile", tgx.cat.apps_mobile);
21 => ("App", "Other Apps", "AppsOther", tgx.cat.apps_other);
18 => ("Win", "Windows Apps", "AppsWindows", tgx.cat.apps_windows);}
"Books" => {13 => ("Abk", "Audiobooks", "Audiobooks", tgx.cat.audiobooks);
19 => ("Com", "Comics", "Comics", tgx.cat.comics);
12 => ("Ebk", "Ebooks", "Ebooks", tgx.cat.ebooks);
14 => ("Edu", "Educational", "Educational", tgx.cat.educational);
15 => ("Mag", "Magazines", "Magazines", tgx.cat.magazines);}
"Documentaries" => {9 => ("Doc", "All Documentaries", "Documentaries", tgx.cat.documentaries);}
"Games" => {10 => ("Wgm", "Windows Games", "WindowsGames", tgx.cat.games_windows);
43 => ("Ogm", "Other Games", "OtherGames", tgx.cat.games_other);}
"Music" => {22 => ("Alb", "Music Albums", "AlbumsMusic", tgx.cat.music_albums);
26 => ("Dis", "Music Discography", "DiscographyMusic", tgx.cat.music_discography);
23 => ("Los", "Music Lossless", "LosslessMusic", tgx.cat.music_lossless);
25 => ("MV ", "Music Video", "MusicVideo", tgx.cat.music_video);
24 => ("Sin", "Music Singles", "SinglesMusic", tgx.cat.music_singles);}
"Other" => {17 => ("Aud", "Other Audio", "AudioOther", tgx.cat.audio_other);
40 => ("Pic", "Other Pictures", "PicturesOther", tgx.cat.pictures_other);
37 => ("Tra", "Other Training", "TrainingOther", tgx.cat.training_other);
33 => ("Oth", "Other", "Other", tgx.cat.other);}
"XXX" => {48 => ("4kX", "XXX 4k", "4kXXX", tgx.cat.xxx_4k);
35 => ("HdX", "XXX HD", "HdXXX", tgx.cat.xxx_hd);
47 => ("MsX", "XXX Misc", "MiscXXX", tgx.cat.xxx_misc);
34 => ("SdX", "XXX SD", "SdXXX", tgx.cat.xxx_sd);}
};
SourceInfo {
cats,
Expand Down

0 comments on commit 84d3790

Please sign in to comment.