mirror of
https://github.com/Benexl/FastAnime.git
synced 2025-12-12 07:40:41 -08:00
feat(dev): automate media tag enum creation
This commit is contained in:
64
dev/generate_anilist_media_tags.py
Executable file
64
dev/generate_anilist_media_tags.py
Executable file
@@ -0,0 +1,64 @@
|
|||||||
|
#!/usr/bin/env -S uv run --script
|
||||||
|
import httpx
|
||||||
|
import json
|
||||||
|
from viu_media.core.utils.graphql import execute_graphql
|
||||||
|
from pathlib import Path
|
||||||
|
from collections import defaultdict
|
||||||
|
|
||||||
|
DEV_DIR = Path(__file__).resolve().parent
|
||||||
|
media_tags_type_py = (
|
||||||
|
DEV_DIR.parent / "viu_media" / "libs" / "media_api" / "_media_tags.py"
|
||||||
|
)
|
||||||
|
media_tags_gql = DEV_DIR / "graphql" / "anilist" / "media_tags.gql"
|
||||||
|
generated_tags_json = DEV_DIR / "generated" / "anilist" / "tags.json"
|
||||||
|
|
||||||
|
media_tags_response = execute_graphql(
|
||||||
|
"https://graphql.anilist.co", httpx.Client(), media_tags_gql, {}
|
||||||
|
)
|
||||||
|
media_tags_response.raise_for_status()
|
||||||
|
|
||||||
|
template = """\
|
||||||
|
# DO NOT EDIT THIS FILE !!! ( 。 •̀ ᴖ •́ 。)
|
||||||
|
# ITS AUTOMATICALLY GENERATED BY RUNNING ./dev/generate_anilist_media_tags.py
|
||||||
|
# FROM THE PROJECT ROOT
|
||||||
|
# SO RUN THAT INSTEAD TO UPDATE THE FILE WITH THE LATEST MEDIA TAGS :)
|
||||||
|
|
||||||
|
|
||||||
|
from enum import Enum
|
||||||
|
|
||||||
|
class MediaTag(Enum):\
|
||||||
|
"""
|
||||||
|
|
||||||
|
# 4 spaces
|
||||||
|
tab = " "
|
||||||
|
tags = defaultdict(list)
|
||||||
|
for tag in media_tags_response.json()["data"]["MediaTagCollection"]:
|
||||||
|
tags[tag["category"]].append(
|
||||||
|
{
|
||||||
|
"name": tag["name"],
|
||||||
|
"description": tag["description"],
|
||||||
|
"is_adult": tag["isAdult"],
|
||||||
|
}
|
||||||
|
)
|
||||||
|
# save copy of data used to generate the class
|
||||||
|
json.dump(tags, generated_tags_json.open("w", encoding="utf-8"), indent=2)
|
||||||
|
|
||||||
|
for key, value in tags.items():
|
||||||
|
template = f"{template}\n{tab}#\n{tab}# {key.upper()}\n{tab}#\n"
|
||||||
|
for tag in value:
|
||||||
|
name = tag["name"]
|
||||||
|
_tag_name = name.replace("-", "_").replace(" ", "_").upper()
|
||||||
|
if _tag_name.startswith(("0", "1", "2", "3", "4", "5", "6", "7", "8", "9")):
|
||||||
|
_tag_name = f"_{_tag_name}"
|
||||||
|
|
||||||
|
tag_name = ""
|
||||||
|
# sanitize invalid characters for attribute names
|
||||||
|
for char in _tag_name:
|
||||||
|
if char.isidentifier() or char.isdigit():
|
||||||
|
tag_name += char
|
||||||
|
|
||||||
|
desc = tag["description"].replace("\n", "")
|
||||||
|
is_adult = tag["is_adult"]
|
||||||
|
template = f'{template}\n{tab}# {desc} (is_adult: {is_adult})\n{tab}{tag_name} = "{name}"\n'
|
||||||
|
|
||||||
|
media_tags_type_py.write_text(template, "utf-8")
|
||||||
File diff suppressed because it is too large
Load Diff
8
dev/graphql/anilist/media_tags.gql
Normal file
8
dev/graphql/anilist/media_tags.gql
Normal file
@@ -0,0 +1,8 @@
|
|||||||
|
query {
|
||||||
|
MediaTagCollection {
|
||||||
|
name
|
||||||
|
description
|
||||||
|
category
|
||||||
|
isAdult
|
||||||
|
}
|
||||||
|
}
|
||||||
1359
viu_media/libs/media_api/_media_tags.py
Normal file
1359
viu_media/libs/media_api/_media_tags.py
Normal file
File diff suppressed because it is too large
Load Diff
@@ -5,6 +5,7 @@ from enum import Enum
|
|||||||
from typing import Dict, List, Optional
|
from typing import Dict, List, Optional
|
||||||
|
|
||||||
from pydantic import BaseModel, ConfigDict, Field
|
from pydantic import BaseModel, ConfigDict, Field
|
||||||
|
from ._media_tags import MediaTag
|
||||||
|
|
||||||
|
|
||||||
# ENUMS
|
# ENUMS
|
||||||
@@ -285,474 +286,6 @@ class MediaReview(BaseMediaApiModel):
|
|||||||
user: Reviewer
|
user: Reviewer
|
||||||
|
|
||||||
|
|
||||||
# ENUMS
|
|
||||||
|
|
||||||
|
|
||||||
class MediaTag(Enum):
|
|
||||||
# Cast
|
|
||||||
POLYAMOROUS = "Polyamorous"
|
|
||||||
|
|
||||||
# Cast Main Cast
|
|
||||||
ANTI_HERO = "Anti-Hero"
|
|
||||||
ELDERLY_PROTAGONIST = "Elderly Protagonist"
|
|
||||||
ENSEMBLE_CAST = "Ensemble Cast"
|
|
||||||
ESTRANGED_FAMILY = "Estranged Family"
|
|
||||||
FEMALE_PROTAGONIST = "Female Protagonist"
|
|
||||||
MALE_PROTAGONIST = "Male Protagonist"
|
|
||||||
PRIMARILY_ADULT_CAST = "Primarily Adult Cast"
|
|
||||||
PRIMARILY_ANIMAL_CAST = "Primarily Animal Cast"
|
|
||||||
PRIMARILY_CHILD_CAST = "Primarily Child Cast"
|
|
||||||
PRIMARILY_FEMALE_CAST = "Primarily Female Cast"
|
|
||||||
PRIMARILY_MALE_CAST = "Primarily Male Cast"
|
|
||||||
PRIMARILY_TEEN_CAST = "Primarily Teen Cast"
|
|
||||||
|
|
||||||
# Cast Traits
|
|
||||||
AGE_REGRESSION = "Age Regression"
|
|
||||||
AGENDER = "Agender"
|
|
||||||
ALIENS = "Aliens"
|
|
||||||
AMNESIA = "Amnesia"
|
|
||||||
ANGELS = "Angels"
|
|
||||||
ANTHROPOMORPHISM = "Anthropomorphism"
|
|
||||||
AROMANTIC = "Aromantic"
|
|
||||||
ARRANGED_MARRIAGE = "Arranged Marriage"
|
|
||||||
ARTIFICIAL_INTELLIGENCE = "Artificial Intelligence"
|
|
||||||
ASEXUAL = "Asexual"
|
|
||||||
BISEXUAL = "Bisexual"
|
|
||||||
BUTLER = "Butler"
|
|
||||||
CENTAUR = "Centaur"
|
|
||||||
CHIMERA = "Chimera"
|
|
||||||
CHUUNIBYOU = "Chuunibyou"
|
|
||||||
CLONE = "Clone"
|
|
||||||
COSPLAY = "Cosplay"
|
|
||||||
COWBOYS = "Cowboys"
|
|
||||||
CROSSDRESSING = "Crossdressing"
|
|
||||||
CYBORG = "Cyborg"
|
|
||||||
DELINQUENTS = "Delinquents"
|
|
||||||
DEMONS = "Demons"
|
|
||||||
DETECTIVE = "Detective"
|
|
||||||
DINOSAURS = "Dinosaurs"
|
|
||||||
DISABILITY = "Disability"
|
|
||||||
DISSOCIATIVE_IDENTITIES = "Dissociative Identities"
|
|
||||||
DRAGONS = "Dragons"
|
|
||||||
DULLAHAN = "Dullahan"
|
|
||||||
ELF = "Elf"
|
|
||||||
FAIRY = "Fairy"
|
|
||||||
FEMBOY = "Femboy"
|
|
||||||
GHOST = "Ghost"
|
|
||||||
GOBLIN = "Goblin"
|
|
||||||
GODS = "Gods"
|
|
||||||
GYARU = "Gyaru"
|
|
||||||
HIKIKOMORI = "Hikikomori"
|
|
||||||
HOMELESS = "Homeless"
|
|
||||||
IDOL = "Idol"
|
|
||||||
KEMONOMIMI = "Kemonomimi"
|
|
||||||
KUUDERE = "Kuudere"
|
|
||||||
MAIDS = "Maids"
|
|
||||||
MERMAID = "Mermaid"
|
|
||||||
MONSTER_BOY = "Monster Boy"
|
|
||||||
MONSTER_GIRL = "Monster Girl"
|
|
||||||
NEKOMIMI = "Nekomimi"
|
|
||||||
NINJA = "Ninja"
|
|
||||||
NUDITY = "Nudity"
|
|
||||||
NUN = "Nun"
|
|
||||||
OFFICE_LADY = "Office Lady"
|
|
||||||
OIRAN = "Oiran"
|
|
||||||
OJOU_SAMA = "Ojou-sama"
|
|
||||||
ORPHAN = "Orphan"
|
|
||||||
PIRATES = "Pirates"
|
|
||||||
ROBOTS = "Robots"
|
|
||||||
SAMURAI = "Samurai"
|
|
||||||
SHRINE_MAIDEN = "Shrine Maiden"
|
|
||||||
SKELETON = "Skeleton"
|
|
||||||
SUCCUBUS = "Succubus"
|
|
||||||
TANNED_SKIN = "Tanned Skin"
|
|
||||||
TEACHER = "Teacher"
|
|
||||||
TOMBOY = "Tomboy"
|
|
||||||
TRANSGENDER = "Transgender"
|
|
||||||
TSUNDERE = "Tsundere"
|
|
||||||
TWINS = "Twins"
|
|
||||||
VAMPIRE = "Vampire"
|
|
||||||
VETERINARIAN = "Veterinarian"
|
|
||||||
VIKINGS = "Vikings"
|
|
||||||
VILLAINESS = "Villainess"
|
|
||||||
VTUBER = "VTuber"
|
|
||||||
WEREWOLF = "Werewolf"
|
|
||||||
WITCH = "Witch"
|
|
||||||
YANDERE = "Yandere"
|
|
||||||
YOUKAI = "Youkai"
|
|
||||||
ZOMBIE = "Zombie"
|
|
||||||
|
|
||||||
# Demographic
|
|
||||||
JOSEI = "Josei"
|
|
||||||
KIDS = "Kids"
|
|
||||||
SEINEN = "Seinen"
|
|
||||||
SHOUJO = "Shoujo"
|
|
||||||
SHOUNEN = "Shounen"
|
|
||||||
|
|
||||||
# Setting
|
|
||||||
MATRIARCHY = "Matriarchy"
|
|
||||||
|
|
||||||
# Setting Scene
|
|
||||||
BAR = "Bar"
|
|
||||||
BOARDING_SCHOOL = "Boarding School"
|
|
||||||
CAMPING = "Camping"
|
|
||||||
CIRCUS = "Circus"
|
|
||||||
COASTAL = "Coastal"
|
|
||||||
COLLEGE = "College"
|
|
||||||
DESERT = "Desert"
|
|
||||||
DUNGEON = "Dungeon"
|
|
||||||
FOREIGN = "Foreign"
|
|
||||||
INN = "Inn"
|
|
||||||
KONBINI = "Konbini"
|
|
||||||
NATURAL_DISASTER = "Natural Disaster"
|
|
||||||
OFFICE = "Office"
|
|
||||||
OUTDOOR_ACTIVITIES = "Outdoor Activities"
|
|
||||||
PRISON = "Prison"
|
|
||||||
RESTAURANT = "Restaurant"
|
|
||||||
RURAL = "Rural"
|
|
||||||
SCHOOL = "School"
|
|
||||||
SCHOOL_CLUB = "School Club"
|
|
||||||
SNOWSCAPE = "Snowscape"
|
|
||||||
URBAN = "Urban"
|
|
||||||
WILDERNESS = "Wilderness"
|
|
||||||
WORK = "Work"
|
|
||||||
|
|
||||||
# Setting Time
|
|
||||||
ACHRONOLOGICAL_ORDER = "Achronological Order"
|
|
||||||
ANACHRONISM = "Anachronism"
|
|
||||||
ANCIENT_CHINA = "Ancient China"
|
|
||||||
DYSTOPIAN = "Dystopian"
|
|
||||||
HISTORICAL = "Historical"
|
|
||||||
MEDIEVAL = "Medieval"
|
|
||||||
TIME_SKIP = "Time Skip"
|
|
||||||
|
|
||||||
# Setting Universe
|
|
||||||
AFTERLIFE = "Afterlife"
|
|
||||||
ALTERNATE_UNIVERSE = "Alternate Universe"
|
|
||||||
AUGMENTED_REALITY = "Augmented Reality"
|
|
||||||
OMEGAVERSE = "Omegaverse"
|
|
||||||
POST_APOCALYPTIC = "Post-Apocalyptic"
|
|
||||||
SPACE = "Space"
|
|
||||||
URBAN_FANTASY = "Urban Fantasy"
|
|
||||||
VIRTUAL_WORLD = "Virtual World"
|
|
||||||
|
|
||||||
# Sexual Content
|
|
||||||
AHEGAO = "Ahegao"
|
|
||||||
AMPUTATION = "Amputation"
|
|
||||||
ANAL_SEX = "Anal Sex"
|
|
||||||
ARMPITS = "Armpits"
|
|
||||||
ASHIKOKI = "Ashikoki"
|
|
||||||
ASPHYXIATION = "Asphyxiation"
|
|
||||||
BONDAGE = "Bondage"
|
|
||||||
BOOBJOB = "Boobjob"
|
|
||||||
CERVIX_PENETRATION = "Cervix Penetration"
|
|
||||||
CHEATING = "Cheating"
|
|
||||||
CUMFLATION = "Cumflation"
|
|
||||||
CUNNILINGUS = "Cunnilingus"
|
|
||||||
DEEPTHROAT = "Deepthroat"
|
|
||||||
DEFLORATION = "Defloration"
|
|
||||||
DILF = "DILF"
|
|
||||||
DOUBLE_PENETRATION = "Double Penetration"
|
|
||||||
EROTIC_PIERCINGS = "Erotic Piercings"
|
|
||||||
EXHIBITIONISM = "Exhibitionism"
|
|
||||||
FACIAL = "Facial"
|
|
||||||
FEET = "Feet"
|
|
||||||
FELLATIO = "Fellatio"
|
|
||||||
FEMDOM = "Femdom"
|
|
||||||
FISTING = "Fisting"
|
|
||||||
FLAT_CHEST = "Flat Chest"
|
|
||||||
FUTANARI = "Futanari"
|
|
||||||
GROUP_SEX = "Group Sex"
|
|
||||||
HAIR_PULLING = "Hair Pulling"
|
|
||||||
HANDJOB = "Handjob"
|
|
||||||
HUMAN_PET = "Human Pet"
|
|
||||||
HYPERSEXUALITY = "Hypersexuality"
|
|
||||||
INCEST = "Incest"
|
|
||||||
INSEKI = "Inseki"
|
|
||||||
IRRUMATIO = "Irrumatio"
|
|
||||||
LACTATION = "Lactation"
|
|
||||||
LARGE_BREASTS = "Large Breasts"
|
|
||||||
MALE_PREGNANCY = "Male Pregnancy"
|
|
||||||
MASOCHISM = "Masochism"
|
|
||||||
MASTURBATION = "Masturbation"
|
|
||||||
MATING_PRESS = "Mating Press"
|
|
||||||
MILF = "MILF"
|
|
||||||
NAKADASHI = "Nakadashi"
|
|
||||||
NETORARE = "Netorare"
|
|
||||||
NETORASE = "Netorase"
|
|
||||||
NETORI = "Netori"
|
|
||||||
PET_PLAY = "Pet Play"
|
|
||||||
PROSTITUTION = "Prostitution"
|
|
||||||
PUBLIC_SEX = "Public Sex"
|
|
||||||
RAPE = "Rape"
|
|
||||||
RIMJOB = "Rimjob"
|
|
||||||
SADISM = "Sadism"
|
|
||||||
SCAT = "Scat"
|
|
||||||
SCISSORING = "Scissoring"
|
|
||||||
SEX_TOYS = "Sex Toys"
|
|
||||||
SHIMAIDON = "Shimaidon"
|
|
||||||
SQUIRTING = "Squirting"
|
|
||||||
SUMATA = "Sumata"
|
|
||||||
SWEAT = "Sweat"
|
|
||||||
TENTACLES = "Tentacles"
|
|
||||||
THREESOME = "Threesome"
|
|
||||||
VIRGINITY = "Virginity"
|
|
||||||
VORE = "Vore"
|
|
||||||
VOYEUR = "Voyeur"
|
|
||||||
WATERSPORTS = "Watersports"
|
|
||||||
ZOOPHILIA = "Zoophilia"
|
|
||||||
|
|
||||||
# Technical
|
|
||||||
_4_KOMA = "4-koma"
|
|
||||||
ACHROMATIC = "Achromatic"
|
|
||||||
ADVERTISEMENT = "Advertisement"
|
|
||||||
ANTHOLOGY = "Anthology"
|
|
||||||
CGI = "CGI"
|
|
||||||
EPISODIC = "Episodic"
|
|
||||||
FLASH = "Flash"
|
|
||||||
FULL_CGI = "Full CGI"
|
|
||||||
FULL_COLOR = "Full Color"
|
|
||||||
LONG_STRIP = "Long Strip"
|
|
||||||
MIXED_MEDIA = "Mixed Media"
|
|
||||||
NO_DIALOGUE = "No Dialogue"
|
|
||||||
NON_FICTION = "Non-fiction"
|
|
||||||
POV = "POV"
|
|
||||||
PUPPETRY = "Puppetry"
|
|
||||||
ROTOSCOPING = "Rotoscoping"
|
|
||||||
STOP_MOTION = "Stop Motion"
|
|
||||||
VERTICAL_VIDEO = "Vertical Video"
|
|
||||||
|
|
||||||
# Theme Action
|
|
||||||
ARCHERY = "Archery"
|
|
||||||
BATTLE_ROYALE = "Battle Royale"
|
|
||||||
ESPIONAGE = "Espionage"
|
|
||||||
FUGITIVE = "Fugitive"
|
|
||||||
GUNS = "Guns"
|
|
||||||
MARTIAL_ARTS = "Martial Arts"
|
|
||||||
SPEARPLAY = "Spearplay"
|
|
||||||
SWORDPLAY = "Swordplay"
|
|
||||||
|
|
||||||
# Theme Arts
|
|
||||||
ACTING = "Acting"
|
|
||||||
CALLIGRAPHY = "Calligraphy"
|
|
||||||
CLASSIC_LITERATURE = "Classic Literature"
|
|
||||||
DRAWING = "Drawing"
|
|
||||||
FASHION = "Fashion"
|
|
||||||
FOOD = "Food"
|
|
||||||
KABUKI = "Kabuki"
|
|
||||||
MAKEUP = "Makeup"
|
|
||||||
PHOTOGRAPHY = "Photography"
|
|
||||||
RAKUGO = "Rakugo"
|
|
||||||
WRITING = "Writing"
|
|
||||||
|
|
||||||
# Theme Arts-Music
|
|
||||||
BAND = "Band"
|
|
||||||
CLASSICAL_MUSIC = "Classical Music"
|
|
||||||
DANCING = "Dancing"
|
|
||||||
HIP_HOP_MUSIC = "Hip-hop Music"
|
|
||||||
JAZZ_MUSIC = "Jazz Music"
|
|
||||||
METAL_MUSIC = "Metal Music"
|
|
||||||
MUSICAL_THEATER = "Musical Theater"
|
|
||||||
ROCK_MUSIC = "Rock Music"
|
|
||||||
|
|
||||||
# Theme Comedy
|
|
||||||
PARODY = "Parody"
|
|
||||||
SATIRE = "Satire"
|
|
||||||
SLAPSTICK = "Slapstick"
|
|
||||||
SURREAL_COMEDY = "Surreal Comedy"
|
|
||||||
|
|
||||||
# Theme Drama
|
|
||||||
BULLYING = "Bullying"
|
|
||||||
CLASS_STRUGGLE = "Class Struggle"
|
|
||||||
COMING_OF_AGE = "Coming of Age"
|
|
||||||
CONSPIRACY = "Conspiracy"
|
|
||||||
ECO_HORROR = "Eco-Horror"
|
|
||||||
FAKE_RELATIONSHIP = "Fake Relationship"
|
|
||||||
KINGDOM_MANAGEMENT = "Kingdom Management"
|
|
||||||
REHABILITATION = "Rehabilitation"
|
|
||||||
REVENGE = "Revenge"
|
|
||||||
SUICIDE = "Suicide"
|
|
||||||
TRAGEDY = "Tragedy"
|
|
||||||
|
|
||||||
# Theme Fantasy
|
|
||||||
ALCHEMY = "Alchemy"
|
|
||||||
BODY_SWAPPING = "Body Swapping"
|
|
||||||
CULTIVATION = "Cultivation"
|
|
||||||
CURSES = "Curses"
|
|
||||||
EXORCISM = "Exorcism"
|
|
||||||
FAIRY_TALE = "Fairy Tale"
|
|
||||||
HENSHIN = "Henshin"
|
|
||||||
ISEKAI = "Isekai"
|
|
||||||
REVERSE_ISEKAI = "Reverse Isekai"
|
|
||||||
KAIJU = "Kaiju"
|
|
||||||
MAGIC = "Magic"
|
|
||||||
MYTHOLOGY = "Mythology"
|
|
||||||
NECROMANCY = "Necromancy"
|
|
||||||
SHAPESHIFTING = "Shapeshifting"
|
|
||||||
STEAMPUNK = "Steampunk"
|
|
||||||
SUPER_POWER = "Super Power"
|
|
||||||
SUPERHERO = "Superhero"
|
|
||||||
WUXIA = "Wuxia"
|
|
||||||
|
|
||||||
# Theme Game
|
|
||||||
BOARD_GAME = "Board Game"
|
|
||||||
E_SPORTS = "E-Sports"
|
|
||||||
VIDEO_GAMES = "Video Games"
|
|
||||||
|
|
||||||
# Theme Game-Card & Board Game
|
|
||||||
CARD_BATTLE = "Card Battle"
|
|
||||||
GO = "Go"
|
|
||||||
KARUTA = "Karuta"
|
|
||||||
MAHJONG = "Mahjong"
|
|
||||||
POKER = "Poker"
|
|
||||||
SHOGI = "Shogi"
|
|
||||||
|
|
||||||
# Theme Game-Sport
|
|
||||||
ACROBATICS = "Acrobatics"
|
|
||||||
AIRSOFT = "Airsoft"
|
|
||||||
AMERICAN_FOOTBALL = "American Football"
|
|
||||||
ATHLETICS = "Athletics"
|
|
||||||
BADMINTON = "Badminton"
|
|
||||||
BASEBALL = "Baseball"
|
|
||||||
BASKETBALL = "Basketball"
|
|
||||||
BOWLING = "Bowling"
|
|
||||||
BOXING = "Boxing"
|
|
||||||
CHEERLEADING = "Cheerleading"
|
|
||||||
CYCLING = "Cycling"
|
|
||||||
FENCING = "Fencing"
|
|
||||||
FISHING = "Fishing"
|
|
||||||
FITNESS = "Fitness"
|
|
||||||
FOOTBALL = "Football"
|
|
||||||
GOLF = "Golf"
|
|
||||||
HANDBALL = "Handball"
|
|
||||||
ICE_SKATING = "Ice Skating"
|
|
||||||
JUDO = "Judo"
|
|
||||||
LACROSSE = "Lacrosse"
|
|
||||||
PARKOUR = "Parkour"
|
|
||||||
RUGBY = "Rugby"
|
|
||||||
SCUBA_DIVING = "Scuba Diving"
|
|
||||||
SKATEBOARDING = "Skateboarding"
|
|
||||||
SUMO = "Sumo"
|
|
||||||
SURFING = "Surfing"
|
|
||||||
SWIMMING = "Swimming"
|
|
||||||
TABLE_TENNIS = "Table Tennis"
|
|
||||||
TENNIS = "Tennis"
|
|
||||||
VOLLEYBALL = "Volleyball"
|
|
||||||
WRESTLING = "Wrestling"
|
|
||||||
|
|
||||||
# Theme Other
|
|
||||||
ADOPTION = "Adoption"
|
|
||||||
ANIMALS = "Animals"
|
|
||||||
ASTRONOMY = "Astronomy"
|
|
||||||
AUTOBIOGRAPHICAL = "Autobiographical"
|
|
||||||
BIOGRAPHICAL = "Biographical"
|
|
||||||
BLACKMAIL = "Blackmail"
|
|
||||||
BODY_HORROR = "Body Horror"
|
|
||||||
BODY_IMAGE = "Body Image"
|
|
||||||
CANNIBALISM = "Cannibalism"
|
|
||||||
CHIBI = "Chibi"
|
|
||||||
COSMIC_HORROR = "Cosmic Horror"
|
|
||||||
CREATURE_TAMING = "Creature Taming"
|
|
||||||
CRIME = "Crime"
|
|
||||||
CROSSOVER = "Crossover"
|
|
||||||
DEATH_GAME = "Death Game"
|
|
||||||
DENPA = "Denpa"
|
|
||||||
DRUGS = "Drugs"
|
|
||||||
ECONOMICS = "Economics"
|
|
||||||
EDUCATIONAL = "Educational"
|
|
||||||
ENVIRONMENTAL = "Environmental"
|
|
||||||
ERO_GURO = "Ero Guro"
|
|
||||||
FILMMAKING = "Filmmaking"
|
|
||||||
FOUND_FAMILY = "Found Family"
|
|
||||||
GAMBLING = "Gambling"
|
|
||||||
GENDER_BENDING = "Gender Bending"
|
|
||||||
GORE = "Gore"
|
|
||||||
INDIGENOUS_CULTURES = "Indigenous Cultures"
|
|
||||||
LANGUAGE_BARRIER = "Language Barrier"
|
|
||||||
LGBTQ_PLUS_THEMES = "LGBTQ+ Themes"
|
|
||||||
LOST_CIVILIZATION = "Lost Civilization"
|
|
||||||
MARRIAGE = "Marriage"
|
|
||||||
MEDICINE = "Medicine"
|
|
||||||
MEMORY_MANIPULATION = "Memory Manipulation"
|
|
||||||
META = "Meta"
|
|
||||||
MOUNTAINEERING = "Mountaineering"
|
|
||||||
NOIR = "Noir"
|
|
||||||
OTAKU_CULTURE = "Otaku Culture"
|
|
||||||
PANDEMIC = "Pandemic"
|
|
||||||
PHILOSOPHY = "Philosophy"
|
|
||||||
POLITICS = "Politics"
|
|
||||||
PREGNANCY = "Pregnancy"
|
|
||||||
PROXY_BATTLE = "Proxy Battle"
|
|
||||||
PSYCHOSEXUAL = "Psychosexual"
|
|
||||||
REINCARNATION = "Reincarnation"
|
|
||||||
RELIGION = "Religion"
|
|
||||||
RESCUE = "Rescue"
|
|
||||||
ROYAL_AFFAIRS = "Royal Affairs"
|
|
||||||
SLAVERY = "Slavery"
|
|
||||||
SOFTWARE_DEVELOPMENT = "Software Development"
|
|
||||||
SURVIVAL = "Survival"
|
|
||||||
TERRORISM = "Terrorism"
|
|
||||||
TORTURE = "Torture"
|
|
||||||
TRAVEL = "Travel"
|
|
||||||
VOCAL_SYNTH = "Vocal Synth"
|
|
||||||
WAR = "War"
|
|
||||||
|
|
||||||
# Theme Other-Organisations
|
|
||||||
ASSASSINS = "Assassins"
|
|
||||||
CRIMINAL_ORGANIZATION = "Criminal Organization"
|
|
||||||
CULT = "Cult"
|
|
||||||
FIREFIGHTERS = "Firefighters"
|
|
||||||
GANGS = "Gangs"
|
|
||||||
MAFIA = "Mafia"
|
|
||||||
MILITARY = "Military"
|
|
||||||
POLICE = "Police"
|
|
||||||
TRIADS = "Triads"
|
|
||||||
YAKUZA = "Yakuza"
|
|
||||||
|
|
||||||
# Theme Other-Vehicle
|
|
||||||
AVIATION = "Aviation"
|
|
||||||
CARS = "Cars"
|
|
||||||
MOPEDS = "Mopeds"
|
|
||||||
MOTORCYCLES = "Motorcycles"
|
|
||||||
SHIPS = "Ships"
|
|
||||||
TANKS = "Tanks"
|
|
||||||
TRAINS = "Trains"
|
|
||||||
|
|
||||||
# Theme Romance
|
|
||||||
AGE_GAP = "Age Gap"
|
|
||||||
BOYS_LOVE = "Boys' Love"
|
|
||||||
COHABITATION = "Cohabitation"
|
|
||||||
FEMALE_HAREM = "Female Harem"
|
|
||||||
HETEROSEXUAL = "Heterosexual"
|
|
||||||
LOVE_TRIANGLE = "Love Triangle"
|
|
||||||
MALE_HAREM = "Male Harem"
|
|
||||||
MATCHMAKING = "Matchmaking"
|
|
||||||
MIXED_GENDER_HAREM = "Mixed Gender Harem"
|
|
||||||
TEENS_LOVE = "Teens' Love"
|
|
||||||
UNREQUITED_LOVE = "Unrequited Love"
|
|
||||||
YURI = "Yuri"
|
|
||||||
|
|
||||||
# Theme Sci-Fi
|
|
||||||
CYBERPUNK = "Cyberpunk"
|
|
||||||
SPACE_OPERA = "Space Opera"
|
|
||||||
TIME_LOOP = "Time Loop"
|
|
||||||
TIME_MANIPULATION = "Time Manipulation"
|
|
||||||
TOKUSATSU = "Tokusatsu"
|
|
||||||
|
|
||||||
# Theme Sci-Fi-Mecha
|
|
||||||
REAL_ROBOT = "Real Robot"
|
|
||||||
SUPER_ROBOT = "Super Robot"
|
|
||||||
|
|
||||||
# Theme Slice of Life
|
|
||||||
AGRICULTURE = "Agriculture"
|
|
||||||
CUTE_BOYS_DOING_CUTE_THINGS = "Cute Boys Doing Cute Things"
|
|
||||||
CUTE_GIRLS_DOING_CUTE_THINGS = "Cute Girls Doing Cute Things"
|
|
||||||
FAMILY_LIFE = "Family Life"
|
|
||||||
HORTICULTURE = "Horticulture"
|
|
||||||
IYASHIKEI = "Iyashikei"
|
|
||||||
PARENTHOOD = "Parenthood"
|
|
||||||
|
|
||||||
|
|
||||||
class MediaSort(Enum):
|
class MediaSort(Enum):
|
||||||
ID = "ID"
|
ID = "ID"
|
||||||
ID_DESC = "ID_DESC"
|
ID_DESC = "ID_DESC"
|
||||||
|
|||||||
Reference in New Issue
Block a user