diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml index de309ce..2b22335 100644 --- a/.pre-commit-config.yaml +++ b/.pre-commit-config.yaml @@ -54,6 +54,6 @@ repos: args: [ --fix, --exit-non-zero-on-fix ] - repo: https://github.com/psf/black - rev: 23.12.1 + rev: 24.2.0 hooks: - id: black diff --git a/chii/db/_const.py b/chii/db/_const.py index 20e9ad5..4d2cf19 100644 --- a/chii/db/_const.py +++ b/chii/db/_const.py @@ -70,7 +70,9 @@ def str(self) -> str: 1027: Staff(cn="系列构成", jp="シリーズ構成", en=""), 1031: Staff(cn="作画监督", jp="作画監督", en=""), 1013: Staff(cn="原画", jp="", en=""), - 1008: Staff(cn="人物设定", jp="キャラ設定 キャラクターデザイン", en="Character Design"), + 1008: Staff( + cn="人物设定", jp="キャラ設定 キャラクターデザイン", en="Character Design" + ), 1029: Staff(cn="机械设定", jp="メカニック設定", en="Mechanical Design"), 1005: Staff(cn="美工", jp="美術", en=""), 1023: Staff(cn="CG监修", jp="CG監修", en=""), @@ -79,7 +81,11 @@ def str(self) -> str: 1030: Staff(cn="音响监督", jp="", en="Sound Director"), 1006: Staff(cn="音乐", jp="音楽", en=""), 1021: Staff(cn="程序", jp="プログラム", en="Program"), - 1014: Staff(cn="动画制作", jp="アニメーション制作 アニメ制作 アニメーション", en="Animation Work"), + 1014: Staff( + cn="动画制作", + jp="アニメーション制作 アニメ制作 アニメーション", + en="Animation Work", + ), 1017: Staff(cn="动画监督", jp="アニメーション監督", en=""), 1020: Staff(cn="动画剧本", jp="アニメーション脚本", en=""), 1018: Staff(cn="制作总指挥", jp="", en=""), @@ -95,33 +101,51 @@ def str(self) -> str: staff_job_anime = { 1: Staff(cn="原作", jp="", en="Original Creator/Original Work"), 74: Staff(cn="总导演", jp="総監督", en="Chief Director"), - 2: Staff(cn="导演", jp="監督 シリーズ監督", en="Director/Direction", rdf="directedBy"), + 2: Staff( + cn="导演", jp="監督 シリーズ監督", en="Director/Direction", rdf="directedBy" + ), 3: Staff(cn="脚本", jp="シナリオ", en="Script/Screenplay"), - 4: Staff(cn="分镜", jp="コンテ ストーリーボード 画コンテ 絵コンテ", en="Storyboard"), + 4: Staff( + cn="分镜", jp="コンテ ストーリーボード 画コンテ 絵コンテ", en="Storyboard" + ), 5: Staff(cn="演出", jp="", en="Episode Director"), 6: Staff(cn="音乐", jp="楽曲 音楽", en="Music"), 7: Staff(cn="人物原案", jp="キャラ原案", en="Original Character Design"), 8: Staff(cn="人物设定", jp="キャラ設定", en="Character Design"), 9: Staff(cn="分镜构图", jp="レイアウト", en="Layout"), - 10: Staff(cn="系列构成", jp="シナリオディレクター 構成 シリーズ構成 脚本構成", en="Series Composition"), + 10: Staff( + cn="系列构成", + jp="シナリオディレクター 構成 シリーズ構成 脚本構成", + en="Series Composition", + ), 72: Staff(cn="副导演", jp="助監督", en="Assistant director"), 11: Staff(cn="美术监督", jp="アートディレクション 背景監督", en="Art Direction"), 71: Staff(cn="美术设计", jp="美術設定", en="Art Design"), 13: Staff(cn="色彩设计", jp="色彩設定", en="Color Design"), 14: Staff(cn="总作画监督", jp="チーフ作画監督", en="Chief Animation Director"), 15: Staff(cn="作画监督", jp="作監 アニメーション演出", en="Animation Direction"), - 70: Staff(cn="机械作画监督", jp="メカニック作監", en="Mechanical Animation Direction"), - 77: Staff(cn="动作作画监督", jp="アクション作画監督", en="Action Animation Direction"), + 70: Staff( + cn="机械作画监督", jp="メカニック作監", en="Mechanical Animation Direction" + ), + 77: Staff( + cn="动作作画监督", jp="アクション作画監督", en="Action Animation Direction" + ), 16: Staff(cn="机械设定", jp="メカニック設定", en="Mechanical Design"), 17: Staff(cn="摄影监督", jp="撮影監督", en="Director of Photography"), 69: Staff(cn="CG 导演", jp="CG 監督", en="CG Director"), - 18: Staff(cn="监修", jp="シリーズ監修 スーパーバイザー", en="Supervision/Supervisor"), + 18: Staff( + cn="监修", jp="シリーズ監修 スーパーバイザー", en="Supervision/Supervisor" + ), 19: Staff(cn="道具设计", jp="プロップデザイン", en="Prop Design"), 20: Staff(cn="原画", jp="作画 原画", en="Key Animation"), 21: Staff(cn="第二原画", jp="原画協力", en="2nd Key Animation"), 22: Staff(cn="动画检查", jp="動画チェック", en="Animation Check"), 63: Staff(cn="制作", jp="製作 製作スタジオ", en="Production"), - 67: Staff(cn="动画制作", jp="アニメーション制作 アニメ制作 アニメーション", en="Animation Work"), + 67: Staff( + cn="动画制作", + jp="アニメーション制作 アニメ制作 アニメーション", + en="Animation Work", + ), 73: Staff(cn="OP・ED 分镜", jp="OP・ED 分鏡", en="OP ED"), 65: Staff(cn="音乐制作", jp="楽曲制作 音楽制作", en="Music Work"), 23: Staff(cn="助理制片人", jp="協力プロデューサー", en="Assistant Producer"), @@ -130,7 +154,9 @@ def str(self) -> str: 26: Staff(cn="色彩指定", jp="", en="Color Setting"), 27: Staff(cn="数码绘图", jp="", en="Digital Paint"), 75: Staff(cn="3DCG", jp="", en="3DCG"), - 37: Staff(cn="制作管理", jp="制作マネージャー 制作担当 制作班長", en="Production Manager"), + 37: Staff( + cn="制作管理", jp="制作マネージャー 制作担当 制作班長", en="Production Manager" + ), 28: Staff(cn="剪辑", jp="編集", en="Editing"), 29: Staff(cn="原案", jp="", en="Original Plan"), 30: Staff(cn="主题歌编曲", jp="", en="Theme Song Arrangement"), @@ -139,8 +165,12 @@ def str(self) -> str: 33: Staff(cn="主题歌演出", jp="", en="Theme Song Performance"), 34: Staff(cn="插入歌演出", jp="", en="Inserted Song Performance"), 35: Staff(cn="企画", jp="プランニング 企画開発", en="Planning"), - 36: Staff(cn="", jp="企画プロデューサー 企画営業プロデューサー", en="Planning Producer"), - 38: Staff(cn="宣传", jp="パブリシティ 宣伝 広告宣伝 番組宣伝 製作宣伝", en="Publicity"), + 36: Staff( + cn="", jp="企画プロデューサー 企画営業プロデューサー", en="Planning Producer" + ), + 38: Staff( + cn="宣传", jp="パブリシティ 宣伝 広告宣伝 番組宣伝 製作宣伝", en="Publicity" + ), 39: Staff(cn="录音", jp="録音", en="Recording"), 40: Staff(cn="录音助理", jp="録音アシスタント 録音助手", en="Recording Assistant"), 41: Staff(cn="系列监督", jp="", en="Series Production Director"), @@ -159,12 +189,22 @@ def str(self) -> str: 54: Staff(cn="制片人", jp="プロデュース プロデューサー", en="Producer"), 55: Staff(cn="助理录音师", jp="", en="Assistant Engineer"), 56: Staff(cn="助理制片协调", jp="", en="Assistant Production Coordinat"), - 57: Staff(cn="演员监督", jp="キャスティングコーディネーター監督", en="Casting Director"), - 58: Staff(cn="总制片", jp="チーフプロデューサー チーフ制作 総合プロデューサー", en="Chief Producer"), + 57: Staff( + cn="演员监督", jp="キャスティングコーディネーター監督", en="Casting Director" + ), + 58: Staff( + cn="总制片", + jp="チーフプロデューサー チーフ制作 総合プロデューサー", + en="Chief Producer", + ), 59: Staff(cn="联合制片人", jp="", en="Co-Producer"), 60: Staff(cn="台词编辑", jp="台詞編集", en="Dialogue Editing"), - 61: Staff(cn="后期制片协调", jp="ポストプロダクション協力", en="Post-Production Assistant"), - 62: Staff(cn="制作助手", jp="制作アシスタント 制作補佐 製作補", en="Production Assistant"), + 61: Staff( + cn="后期制片协调", jp="ポストプロダクション協力", en="Post-Production Assistant" + ), + 62: Staff( + cn="制作助手", jp="制作アシスタント 制作補佐 製作補", en="Production Assistant" + ), 64: Staff(cn="制作协调", jp="制作コーディネーター", en="Production Coordination"), 76: Staff(cn="制作协力", jp="制作協力 / 作品協力", en="Work Assistance"), 66: Staff(cn="友情協力", jp="特别鸣谢", en="Special Thanks"), diff --git a/chii/db/const.py b/chii/db/const.py index f8cfc4c..0c105a6 100644 --- a/chii/db/const.py +++ b/chii/db/const.py @@ -105,17 +105,29 @@ def str(self) -> str: RELATION_SERIES: Dict[int, Relation] = { - 1: Relation(en="Adaptation", cn="改编", desc="同系列不同平台作品,如柯南漫画与动画版"), + 1: Relation( + en="Adaptation", cn="改编", desc="同系列不同平台作品,如柯南漫画与动画版" + ), 2: Relation(en="Prequel", cn="前传", desc="发生在故事之前"), 3: Relation(en="Sequel", cn="续集", desc="发生在故事之后"), 4: Relation(en="Summary", cn="总集篇", desc="对故事的概括版本"), 5: Relation(en="Full Story", cn="全集", desc="相对于剧场版/总集篇的完整故事"), 6: Relation(en="Side Story", cn="番外篇"), 7: Relation(en="Character", cn="角色出演", desc="相同角色,没有关联的故事"), - 8: Relation(en="Same setting", cn="相同世界观", desc="发生在同一个世界观/时间线下,不同的出演角色"), - 9: Relation(en="Alternative setting", cn="不同世界观", desc="相同的出演角色,不同的世界观/时间线设定"), + 8: Relation( + en="Same setting", + cn="相同世界观", + desc="发生在同一个世界观/时间线下,不同的出演角色", + ), + 9: Relation( + en="Alternative setting", + cn="不同世界观", + desc="相同的出演角色,不同的世界观/时间线设定", + ), 10: Relation( - en="Alternative version", cn="不同演绎", desc="相同设定、角色,不同的演绎方式(如EVA原作与新剧场版)" + en="Alternative version", + cn="不同演绎", + desc="相同设定、角色,不同的演绎方式(如EVA原作与新剧场版)", ), 11: Relation(en="Spin-off", cn="衍生", desc="如柯南与魔术快斗"), 12: Relation(en="Parent Story", cn="主线故事"), @@ -123,7 +135,9 @@ def str(self) -> str: } RELATION_BOOK: Dict[int, Relation] = { - 1: Relation(en="Adaptation", cn="改编", desc="同系列不同平台作品,如柯南漫画与动画版"), + 1: Relation( + en="Adaptation", cn="改编", desc="同系列不同平台作品,如柯南漫画与动画版" + ), 1003: Relation(en="Offprint", cn="单行本"), 1002: Relation(en="Series", cn="系列"), 1004: Relation(en="Album", cn="画集"), @@ -133,8 +147,16 @@ def str(self) -> str: 1008: Relation(en="Parent Story", cn="主线故事"), 1010: Relation(en="Alternative version", cn="不同版本"), 1011: Relation(en="Character", cn="角色出演", desc="相同角色,没有关联的故事"), - 1012: Relation(en="Same setting", cn="相同世界观", desc="发生在同一个世界观/时间线下,不同的出演角色"), - 1013: Relation(en="Alternative setting", cn="不同世界观", desc="相同的出演角色,不同的世界观/时间线设定"), + 1012: Relation( + en="Same setting", + cn="相同世界观", + desc="发生在同一个世界观/时间线下,不同的出演角色", + ), + 1013: Relation( + en="Alternative setting", + cn="不同世界观", + desc="相同的出演角色,不同的世界观/时间线设定", + ), 1099: Relation(en="Other", cn="其他"), } @@ -150,15 +172,27 @@ def str(self) -> str: } RELATION_GAME: Dict[int, Relation] = { - 1: Relation(en="Adaptation", cn="改编", desc="同系列不同平台作品,如 CLANNAD 游戏与动画版"), + 1: Relation( + en="Adaptation", cn="改编", desc="同系列不同平台作品,如 CLANNAD 游戏与动画版" + ), 4002: Relation(en="Prequel", cn="前传", desc="发生在故事之前"), 4003: Relation(en="Sequel", cn="续集", desc="发生在故事之后"), 4006: Relation(en="Side Story", cn="资料片、外传"), 4012: Relation(en="Parent Story", cn="主线故事"), 4007: Relation(en="Character", cn="角色出演", desc="相同角色,没有关联的故事"), - 4008: Relation(en="Same setting", cn="相同世界观", desc="发生在同一个世界观/时间线下,不同的出演角色"), - 4009: Relation(en="Alternative setting", cn="不同世界观", desc="相同的出演角色,不同的世界观/时间线设定"), - 4010: Relation(en="Alternative version", cn="不同演绎", desc="相同设定、角色,不同的演绎方式"), + 4008: Relation( + en="Same setting", + cn="相同世界观", + desc="发生在同一个世界观/时间线下,不同的出演角色", + ), + 4009: Relation( + en="Alternative setting", + cn="不同世界观", + desc="相同的出演角色,不同的世界观/时间线设定", + ), + 4010: Relation( + en="Alternative version", cn="不同演绎", desc="相同设定、角色,不同的演绎方式" + ), 4099: Relation(en="Other", cn="其他"), } diff --git a/chii/db/tables.py b/chii/db/tables.py index af6eaf0..c455042 100644 --- a/chii/db/tables.py +++ b/chii/db/tables.py @@ -30,7 +30,9 @@ class ChiiCharacter(Base): crt_id = Column(MEDIUMINT(8), primary_key=True) crt_name = Column(String(255, "utf8_unicode_ci"), nullable=False) - crt_role = Column(TINYINT(4), nullable=False, index=True, comment="角色,机体,组织。。") + crt_role = Column( + TINYINT(4), nullable=False, index=True, comment="角色,机体,组织。。" + ) crt_infobox: str = Column(MEDIUMTEXT, nullable=False) crt_summary: str = Column(MEDIUMTEXT, nullable=False) crt_img = Column(String(255, "utf8_unicode_ci"), nullable=False) @@ -55,10 +57,15 @@ class ChiiCrtCastIndex(Base): prsn_id: int = Column(MEDIUMINT(9), primary_key=True, nullable=False, index=True) subject_id: int = Column(MEDIUMINT(9), primary_key=True, nullable=False, index=True) subject_type_id: int = Column( - TINYINT(3), nullable=False, index=True, comment="根据人物归类查询角色,动画,书籍,游戏" + TINYINT(3), + nullable=False, + index=True, + comment="根据人物归类查询角色,动画,书籍,游戏", ) summary = Column( - String(255, "utf8_unicode_ci"), nullable=False, comment="幼年,男乱马,女乱马,变身形态,少女形态。。" + String(255, "utf8_unicode_ci"), + nullable=False, + comment="幼年,男乱马,女乱马,变身形态,少女形态。。", ) @@ -69,7 +76,9 @@ class ChiiCrtSubjectIndex(Base): subject_id = Column(MEDIUMINT(9), primary_key=True, nullable=False, index=True) subject_type_id = Column(TINYINT(4), nullable=False, index=True) crt_type: int = Column(TINYINT(4), nullable=False, index=True, comment="主角,配角") - ctr_appear_eps = Column(MEDIUMTEXT, nullable=False, comment="可选,角色出场的的章节") + ctr_appear_eps = Column( + MEDIUMTEXT, nullable=False, comment="可选,角色出场的的章节" + ) crt_order = Column(TINYINT(3), nullable=False) @@ -204,7 +213,11 @@ class ChiiPersonCsIndex(Base): index=True, ) prsn_position: int = Column( - SMALLINT(5), primary_key=True, nullable=False, index=True, comment="监督,原案,脚本,.." + SMALLINT(5), + primary_key=True, + nullable=False, + index=True, + comment="监督,原案,脚本,..", ) subject_id = Column( MEDIUMINT(9), @@ -245,7 +258,9 @@ class ChiiCharacterField(ChiiPersonField): Column("prsn_id", MEDIUMINT(9), nullable=False), Column("relat_prsn_type", ENUM("prsn", "crt"), nullable=False), Column("relat_prsn_id", MEDIUMINT(9), nullable=False), - Column("relat_type", SMALLINT(6), nullable=False, comment="任职于,从属,聘用,嫁给,"), + Column( + "relat_type", SMALLINT(6), nullable=False, comment="任职于,从属,聘用,嫁给," + ), Index("relat_prsn_type", "relat_prsn_type", "relat_prsn_id"), Index("prsn_type", "prsn_type", "prsn_id"), ) @@ -257,17 +272,27 @@ class ChiiPerson(Base): prsn_id = Column(MEDIUMINT(8), primary_key=True) prsn_name = Column(String(255, "utf8_unicode_ci"), nullable=False) - prsn_type = Column(TINYINT(4), nullable=False, index=True, comment="个人,公司,组合") + prsn_type = Column( + TINYINT(4), nullable=False, index=True, comment="个人,公司,组合" + ) prsn_infobox: str = Column(MEDIUMTEXT, nullable=False) prsn_producer = Column(TINYINT(1), nullable=False, index=True) prsn_mangaka = Column(TINYINT(1), nullable=False, index=True) prsn_artist = Column(TINYINT(1), nullable=False, index=True) prsn_seiyu = Column(TINYINT(1), nullable=False, index=True) prsn_writer = Column( - TINYINT(4), nullable=False, index=True, server_default=text("'0'"), comment="作家" + TINYINT(4), + nullable=False, + index=True, + server_default=text("'0'"), + comment="作家", ) prsn_illustrator = Column( - TINYINT(4), nullable=False, index=True, server_default=text("'0'"), comment="绘师" + TINYINT(4), + nullable=False, + index=True, + server_default=text("'0'"), + comment="绘师", ) prsn_actor = Column(TINYINT(1), nullable=False, index=True, comment="演员") prsn_summary: str = Column(MEDIUMTEXT, nullable=False) @@ -490,7 +515,10 @@ class ChiiSubjectRelations(Base): comment="关联目标 ID", ) rlt_related_subject_type_id: int = Column( - "rlt_related_subject_type_id", TINYINT(3), nullable=False, comment="关联目标类型" + "rlt_related_subject_type_id", + TINYINT(3), + nullable=False, + comment="关联目标类型", ) rlt_vice_versa = Column("rlt_vice_versa", TINYINT(1), nullable=False) rlt_order = Column("rlt_order", TINYINT(3), nullable=False, comment="关联排序") @@ -811,7 +839,9 @@ class ChiiIndex(Base): Index("idx_uid", "idx_uid"), Index("idx_collects", "idx_collects"), ) - idx_id = Column(MEDIUMINT(8), comment="自动id", primary_key=True, autoincrement=True) + idx_id = Column( + MEDIUMINT(8), comment="自动id", primary_key=True, autoincrement=True + ) idx_type = Column(TINYINT(3), nullable=False, server_default=text("'0'")) idx_title = Column(VARCHAR(80), nullable=False, comment="标题") idx_desc = Column(MEDIUMTEXT, nullable=False, comment="简介") @@ -899,8 +929,7 @@ def __init__( replies: int = 0, id: Optional[int] = None, dateline: Optional[int] = None, - ): - ... + ): ... id = Column("tml_id", INTEGER(10), primary_key=True) uid = Column(