diff --git a/EvilTactician/Anime.png b/EvilTactician/Anime.png new file mode 100644 index 0000000..ec535a2 Binary files /dev/null and b/EvilTactician/Anime.png differ diff --git a/EvilTactician/Anime.yml b/EvilTactician/Anime.yml new file mode 100644 index 0000000..97154ea --- /dev/null +++ b/EvilTactician/Anime.yml @@ -0,0 +1,113 @@ +########################################## +## Anime Collections ## +########################################## +# # +# Credits # +# Evil Tacctician # +# JJJonesJr33 # +# # +########################################## +templates: + MAL Genre: + mal_genre: + genre_id: <> + collection_order: alpha + collection_mode: hide + sync_mode: sync + MAL User: + sort_title: ~<> + mal_userlist: + username: <> + status: plan_to_watch + sort_by: title + limit: 500 + collection_order: alpha + collection_mode: hide + sync_mode: sync + +collections: + Collection1: # Replace Username1 with a valid MAL Username + template: { name: MAL User, username: Username1 } + Collection2: # Replace Username2 with a valid MAL Username + template: { name: MAL User, username: Username2 } + Cars: + template: { name: MAL Genre, genre_id: 3 } + Demons: + template: { name: MAL Genre, genre_id: 6 } + Ecchi: + template: { name: MAL Genre, genre_id: 9 } + Game: + template: { name: MAL Genre, genre_id: 11 } + Harem: + template: { name: MAL Genre, genre_id: 35 } + Mecha: + template: { name: MAL Genre, genre_id: 18 } + Military: + template: { name: MAL Genre, genre_id: 38 } + Psychological: + template: { name: MAL Genre, genre_id: 40 } + Samurai: + template: { name: MAL Genre, genre_id: 21 } + School: + template: { name: MAL Genre, genre_id: 23 } + Shoujo: + template: { name: MAL Genre, genre_id: 25 } + Shounen: + template: { name: MAL Genre, genre_id: 27 } + Slice of Life: + template: { name: MAL Genre, genre_id: 36 } + Space: + template: { name: MAL Genre, genre_id: 29 } + Supernatural: + template: { name: MAL Genre, genre_id: 37 } + Super Power: + template: { name: MAL Genre, genre_id: 31 } + Vampire: + template: { name: MAL Genre, genre_id: 32 } + Action: + template: { name: MAL Genre, genre_id: 1 } + Adventure: + template: { name: MAL Genre, genre_id: 2 } + Comedy: + template: { name: MAL Genre, genre_id: 4 } + Drama: + template: { name: MAL Genre, genre_id: 8 } + Fantasy: + template: { name: MAL Genre, genre_id: 10 } + Historical: + template: { name: MAL Genre, genre_id: 13 } + Horror: + template: { name: MAL Genre, genre_id: 14 } + Martial Arts: + template: { name: MAL Genre, genre_id: 17 } + Music: + template: { name: MAL Genre, genre_id: 19 } + Mystery: + template: { name: MAL Genre, genre_id: 7 } + Romance: + template: { name: MAL Genre, genre_id: 22 } + Sci-Fi: + template: { name: MAL Genre, genre_id: 24 } + Sports: + template: { name: MAL Genre, genre_id: 30 } + Boys Love: + template: { name: MAL Genre, genre_id: 28 } + Girls Love: + template: { name: MAL Genre, genre_id: 26 } + Gourmet: + template: { name: MAL Genre, genre_id: 47 } + Erotica: + template: { name: MAL Genre, genre_id: 49 } + Hentai: + template: { name: MAL Genre, genre_id: 12 } + Parody: + template: { name: MAL Genre, genre_id: 20 } + Police: + template: { name: MAL Genre, genre_id: 39 } + Thriller: + template: { name: MAL Genre, genre_id: 41 } + Unmatched: + plex_collectionless: + exclude: Test + sort_title: ~_Unmatched + collection_order: alpha \ No newline at end of file diff --git a/EvilTactician/Assets/Action.png b/EvilTactician/Assets/Action.png new file mode 100644 index 0000000..d884f84 Binary files /dev/null and b/EvilTactician/Assets/Action.png differ diff --git a/EvilTactician/Assets/Adventure.png b/EvilTactician/Assets/Adventure.png new file mode 100644 index 0000000..df56d01 Binary files /dev/null and b/EvilTactician/Assets/Adventure.png differ diff --git a/EvilTactician/Assets/Boys Love.png b/EvilTactician/Assets/Boys Love.png new file mode 100644 index 0000000..d353061 Binary files /dev/null and b/EvilTactician/Assets/Boys Love.png differ diff --git a/EvilTactician/Assets/Cars.png b/EvilTactician/Assets/Cars.png new file mode 100644 index 0000000..35a12fd Binary files /dev/null and b/EvilTactician/Assets/Cars.png differ diff --git a/EvilTactician/Assets/Comedy.png b/EvilTactician/Assets/Comedy.png new file mode 100644 index 0000000..f1453e9 Binary files /dev/null and b/EvilTactician/Assets/Comedy.png differ diff --git a/EvilTactician/Assets/Demons.png b/EvilTactician/Assets/Demons.png new file mode 100644 index 0000000..c6119d3 Binary files /dev/null and b/EvilTactician/Assets/Demons.png differ diff --git a/EvilTactician/Assets/Donghua.png b/EvilTactician/Assets/Donghua.png new file mode 100644 index 0000000..926f986 Binary files /dev/null and b/EvilTactician/Assets/Donghua.png differ diff --git a/EvilTactician/Assets/Drama.png b/EvilTactician/Assets/Drama.png new file mode 100644 index 0000000..026f9d3 Binary files /dev/null and b/EvilTactician/Assets/Drama.png differ diff --git a/EvilTactician/Assets/Ecchi.png b/EvilTactician/Assets/Ecchi.png new file mode 100644 index 0000000..02791df Binary files /dev/null and b/EvilTactician/Assets/Ecchi.png differ diff --git a/EvilTactician/Assets/Fantasy.png b/EvilTactician/Assets/Fantasy.png new file mode 100644 index 0000000..168f283 Binary files /dev/null and b/EvilTactician/Assets/Fantasy.png differ diff --git a/EvilTactician/Assets/Game.png b/EvilTactician/Assets/Game.png new file mode 100644 index 0000000..f789276 Binary files /dev/null and b/EvilTactician/Assets/Game.png differ diff --git a/EvilTactician/Assets/Girls Love.png b/EvilTactician/Assets/Girls Love.png new file mode 100644 index 0000000..391b0c4 Binary files /dev/null and b/EvilTactician/Assets/Girls Love.png differ diff --git a/EvilTactician/Assets/Gourmet.png b/EvilTactician/Assets/Gourmet.png new file mode 100644 index 0000000..f06d8ec Binary files /dev/null and b/EvilTactician/Assets/Gourmet.png differ diff --git a/EvilTactician/Assets/Harem.png b/EvilTactician/Assets/Harem.png new file mode 100644 index 0000000..87ff6c9 Binary files /dev/null and b/EvilTactician/Assets/Harem.png differ diff --git a/EvilTactician/Assets/Historical.png b/EvilTactician/Assets/Historical.png new file mode 100644 index 0000000..248f7cf Binary files /dev/null and b/EvilTactician/Assets/Historical.png differ diff --git a/EvilTactician/Assets/Horror.png b/EvilTactician/Assets/Horror.png new file mode 100644 index 0000000..0b7e814 Binary files /dev/null and b/EvilTactician/Assets/Horror.png differ diff --git a/EvilTactician/Assets/Martial Arts.png b/EvilTactician/Assets/Martial Arts.png new file mode 100644 index 0000000..a376679 Binary files /dev/null and b/EvilTactician/Assets/Martial Arts.png differ diff --git a/EvilTactician/Assets/Mecha.png b/EvilTactician/Assets/Mecha.png new file mode 100644 index 0000000..85fa42a Binary files /dev/null and b/EvilTactician/Assets/Mecha.png differ diff --git a/EvilTactician/Assets/Military.png b/EvilTactician/Assets/Military.png new file mode 100644 index 0000000..fa3523b Binary files /dev/null and b/EvilTactician/Assets/Military.png differ diff --git a/EvilTactician/Assets/Mobile Suit Gundam.png b/EvilTactician/Assets/Mobile Suit Gundam.png new file mode 100644 index 0000000..f9a1b04 Binary files /dev/null and b/EvilTactician/Assets/Mobile Suit Gundam.png differ diff --git a/EvilTactician/Assets/Music.png b/EvilTactician/Assets/Music.png new file mode 100644 index 0000000..a897179 Binary files /dev/null and b/EvilTactician/Assets/Music.png differ diff --git a/EvilTactician/Assets/Mystery.png b/EvilTactician/Assets/Mystery.png new file mode 100644 index 0000000..105619f Binary files /dev/null and b/EvilTactician/Assets/Mystery.png differ diff --git a/EvilTactician/Assets/Parody.png b/EvilTactician/Assets/Parody.png new file mode 100644 index 0000000..fba6a3e Binary files /dev/null and b/EvilTactician/Assets/Parody.png differ diff --git a/EvilTactician/Assets/Police.png b/EvilTactician/Assets/Police.png new file mode 100644 index 0000000..586baac Binary files /dev/null and b/EvilTactician/Assets/Police.png differ diff --git a/EvilTactician/Assets/Psychological.png b/EvilTactician/Assets/Psychological.png new file mode 100644 index 0000000..719e09e Binary files /dev/null and b/EvilTactician/Assets/Psychological.png differ diff --git a/EvilTactician/Assets/Romance.png b/EvilTactician/Assets/Romance.png new file mode 100644 index 0000000..7cdadc2 Binary files /dev/null and b/EvilTactician/Assets/Romance.png differ diff --git a/EvilTactician/Assets/Samurai.png b/EvilTactician/Assets/Samurai.png new file mode 100644 index 0000000..a8e9d10 Binary files /dev/null and b/EvilTactician/Assets/Samurai.png differ diff --git a/EvilTactician/Assets/School.png b/EvilTactician/Assets/School.png new file mode 100644 index 0000000..2f7258b Binary files /dev/null and b/EvilTactician/Assets/School.png differ diff --git a/EvilTactician/Assets/Sci-Fi.png b/EvilTactician/Assets/Sci-Fi.png new file mode 100644 index 0000000..184afe8 Binary files /dev/null and b/EvilTactician/Assets/Sci-Fi.png differ diff --git a/EvilTactician/Assets/Shoujo.png b/EvilTactician/Assets/Shoujo.png new file mode 100644 index 0000000..1de9351 Binary files /dev/null and b/EvilTactician/Assets/Shoujo.png differ diff --git a/EvilTactician/Assets/Shounen.png b/EvilTactician/Assets/Shounen.png new file mode 100644 index 0000000..9b92506 Binary files /dev/null and b/EvilTactician/Assets/Shounen.png differ diff --git a/EvilTactician/Assets/Slice of Life.png b/EvilTactician/Assets/Slice of Life.png new file mode 100644 index 0000000..5e7f56f Binary files /dev/null and b/EvilTactician/Assets/Slice of Life.png differ diff --git a/EvilTactician/Assets/Space.png b/EvilTactician/Assets/Space.png new file mode 100644 index 0000000..979df93 Binary files /dev/null and b/EvilTactician/Assets/Space.png differ diff --git a/EvilTactician/Assets/Sports.png b/EvilTactician/Assets/Sports.png new file mode 100644 index 0000000..8329f2a Binary files /dev/null and b/EvilTactician/Assets/Sports.png differ diff --git a/EvilTactician/Assets/Super Power.png b/EvilTactician/Assets/Super Power.png new file mode 100644 index 0000000..a8b69ec Binary files /dev/null and b/EvilTactician/Assets/Super Power.png differ diff --git a/EvilTactician/Assets/Supernatural.png b/EvilTactician/Assets/Supernatural.png new file mode 100644 index 0000000..3c93859 Binary files /dev/null and b/EvilTactician/Assets/Supernatural.png differ diff --git a/EvilTactician/Assets/Thriller.png b/EvilTactician/Assets/Thriller.png new file mode 100644 index 0000000..f056901 Binary files /dev/null and b/EvilTactician/Assets/Thriller.png differ diff --git a/EvilTactician/Assets/Unmatched.png b/EvilTactician/Assets/Unmatched.png new file mode 100644 index 0000000..0452211 Binary files /dev/null and b/EvilTactician/Assets/Unmatched.png differ diff --git a/EvilTactician/Assets/Vampire.png b/EvilTactician/Assets/Vampire.png new file mode 100644 index 0000000..efb553b Binary files /dev/null and b/EvilTactician/Assets/Vampire.png differ diff --git a/EvilTactician/PSD Template/FFGoodProCond-Medium.ttf b/EvilTactician/PSD Template/FFGoodProCond-Medium.ttf new file mode 100644 index 0000000..48e4266 Binary files /dev/null and b/EvilTactician/PSD Template/FFGoodProCond-Medium.ttf differ diff --git a/EvilTactician/PSD Template/Template.psd b/EvilTactician/PSD Template/Template.psd new file mode 100644 index 0000000..13fa13c Binary files /dev/null and b/EvilTactician/PSD Template/Template.psd differ diff --git a/EvilTactician/PSD Template/Username.png b/EvilTactician/PSD Template/Username.png new file mode 100644 index 0000000..4f772fe Binary files /dev/null and b/EvilTactician/PSD Template/Username.png differ diff --git a/EvilTactician/README.md b/EvilTactician/README.md new file mode 100644 index 0000000..72292e2 --- /dev/null +++ b/EvilTactician/README.md @@ -0,0 +1,116 @@ +# Evil Tactician's Anime Collections + +Anime Collections based on MAL Genres + +## Included +* config.yml +* Anime.yml +* Custom Artwork +* Photoshop Template + +Preview:
+![Anime](Anime.png) + +I am going to assume you've followed the guides for installing [Plex Meta Manager](https://github.com/meisnate12/Plex-Meta-Manager) for your platform. + +## config.yml + +You can either use my ```config.yml```, or you can use it as a cheatsheet for the elements you need in your own. +Note that mine only contains the sections required for Anime Collections to work. +Don't forget to configure the ```plex:```, ```tmbd:``` and ```mal:``` sections with your details and API keys. There are links in the file to guides for those. + +## Anime.yml + +This is the configuration file for the Anime Collections. + +```yaml +templates: + MAL Genre: + mal_genre: + genre_id: <> + collection_order: alpha + collection_mode: hide + sync_mode: sync +``` + +The above is the template for the Genre Collections. +If you wish to change the ```collection_mode```, ```collection_order``` or ```sync_mode```, please do so here. It will apply to all Genre Collections. + +```yaml + MAL User: + sort_title: ~<> + mal_userlist: + username: <> + status: plan_to_watch + sort_by: title + limit: 500 + collection_order: alpha + collection_mode: hide + sync_mode: sync +``` + +The above is the template for the MAL "Plan to Watch" Collections below. + +```yaml + Collection1: # Replace Username1 with a valid MAL Username + template: { name: MAL User, username: Username1 } + Collection2: # Replace Username2 with a valid MAL Username + template: { name: MAL User, username: Username2 } +``` + +Above is where you specify collections for individual users, based on their MAL profile's "Plan to Watch" list. +Replace ```Collection1:``` with whatever you want the Collection to be called in Plex. +Replace ```Username1``` with the exact username of the MAL profile you wish to use. + +Repeat for as many users as you want - just copy and paste more entries. + +If you don't wish to use these, simply delete them from the file. + + +```yaml + Unmatched: + plex_collectionless: + exclude: Test + sort_title: ~_Unmatched + collection_order: alpha +``` + +The above (at the very bottom of the file) creates a collection named "Unmatched" which will contain every Anime in your library which PMM wasn't able to add to the MAL Genres. I use this myself to see which Anime PMM couldn't map. +PMM maps via external resources and it sometimes takes a while for those resources to update as they rely on human intervention. It doesn't necessarily mean there is something wrong with your library or config - it's like that those Anime haven't been mapped. + +Again, if you don't want this - just delete those lines. + + +## Custom Artwork + +The posters from the preview can be found in the Assets folder. You can upload the entire folder "as is" to the same directory where your ```config.yml``` and ```Anime.yml``` files are located. +Please note that the names of each poster need to match the names of the collections in your Anime.yml file. If you rename any collection, you'll have to rename the poster accordingly! + +If you wish to display custom posters for your MAL "Plan to Watch" Collection(s), you'll need to add posters in the ```Assets``` folder with the name of each collection as well. + +For example, if your MAL Profile Collection is called "Plan to Watch", you would need to add "/Assets/Plan to Watch.png" + + +## PSD Template + +There is a PSD Template (Photoshop) included if you wish to make MAL Profile Collections in the same style. +This template can also be used to make new Collection posters in the same style, just untick the "Plan to Watch" layer and make sure your background image spans the whole frame. + +## Testing / First Run + +If you wish for PMM to do a one-off run instead of waiting for the daily schedule: +1. Ensure the PMM container is running +2. Open the terminal +3. Run ```python plex_meta_manager.py -r``` +Press ```CTRL-C``` if you want it to stop before it finishes. + +For me it takes approximately 16 minutes. + +## Special Thanks +JJJonesJr33 - Original Base Anime.yml & Feedback +Fribb - Creator of https://github.com/Fribb/anime-lists, helped me track down some mapping issues +Sohjiro - Creator of Plex Meta Manager + +There was quite a bit of work involved in this - and you're welcome to use my assets and templates as you see fit as long as you give credit if you re-distribute them anywhere or include them in another project. + +If you wish to say thanks, you can [buy me a coffee](https://ko-fi.com/eviltactician) or wave on Discord. diff --git a/EvilTactician/config.yml b/EvilTactician/config.yml new file mode 100644 index 0000000..dbb2bb2 --- /dev/null +++ b/EvilTactician/config.yml @@ -0,0 +1,57 @@ +######################################################################## +## Plex-Meta-Manager by Evil Tactician ## +######################################################################## + +## This file is a template remove the .template to use the file + +libraries: # Library mappings must have a colon (:) placed after them + Anime: # Must match you library that is shown within plex + metadata_path: + - file: config/Anime.yml +settings: # Can be individually specified per library as well + cache: true + cache_expiration: 60 + asset_directory: config/assets + asset_folders: false + asset_depth: 0 + create_asset_folders: false + dimensional_asset_rename: false + download_url_assets: false + show_missing_season_assets: false + sync_mode: append + minimum_items: 1 + default_collection_order: alpha + delete_below_minimum: true + delete_not_scheduled: false + run_again_delay: 2 + missing_only_released: false + only_filter_missing: false + show_unmanaged: true + show_filtered: false + show_options: false + show_missing: false + show_missing_assets: false + save_missing: false + tvdb_language: eng + ignore_ids: + ignore_imdb_ids: + playlist_sync_to_user: + verify_ssl: true +plex: # REQUIRED - see https://github.com/meisnate12/Plex-Meta-Manager/wiki/Plex-Attributes + url: + token: + timeout: 60 + clean_bundles: false + empty_trash: false + optimize: false +tmdb: # REQUIRED for the script to run - to get a key you must follow https://developers.themoviedb.org/3/getting-started/introduction + apikey: + language: en +mal: # REQUIRED for this config to work - set up by following https://github.com/meisnate12/Plex-Meta-Manager/wiki/MyAnimeList-Attributes + client_id: + client_secret: + authorization: + access_token: + token_type: + expires_in: + refresh_token: