diff --git a/mipac/types/meta.py b/mipac/types/meta.py index 60cb4c3..d4c9499 100644 --- a/mipac/types/meta.py +++ b/mipac/types/meta.py @@ -59,90 +59,119 @@ class IFeatures(IV12Features, IV11Features, IAyuskeyFeatures): service_worker: bool +class IV12AdminMeta(TypedDict, total=False): + hcaptcha_secret_key: str + sensitive_media_detection: str + sensitive_media_detection_sensitivity: str + set_sensitive_flag_automatically: bool + enable_sensitive_media_detection_for_videos: bool + proxy_account_id: str + summary_proxy: str + enable_ip_logging: bool + enable_active_email_validation: bool + + +class IV11AdminMeta(TypedDict, total=False): + object_storage_s3_force_path_style: bool + + +class ISharedAdminMeta(TypedDict, total=False): + drive_capacity_per_local_user_mb: int + drive_capacity_per_remote_user_mb: int + hidden_tags: list[str] + blocked_hosts: list[str] + recaptcha_secret_key: str + twitter_consumer_key: str + twitter_consumer_secret: str + github_client_id: str + github_client_secret: str + discord_client_id: str + discord_client_secret: str + email: str + smtp_secure: bool + smtp_host: str + smtp_port: int + smtp_user: str + smtp_pass: str + sw_private_key: str + use_object_storage: bool + object_storage_base_url: str + object_storage_bucket: str + object_storage_prefix: str + object_storage_endpoint: str + object_storage_region: str + object_storage_port: int + object_storage_access_key: str + object_storage_secret_key: str + object_storage_use_ssl: bool + object_storage_use_proxy: bool + object_storage_set_public_read: bool + pinned_users: list[str] + + class ILiteV12Meta(TypedDict, total=False): - ads: list[IAds] background_image_url: str default_dark_theme: str default_light_theme: str - email_required_for_signup: bool logo_image_url: str - translator_available: bool # v12 only theme_color: str -class ILiteV11Meta(TypedDict, total=False): +class ILiteV11Meta(IV11AdminMeta, total=False): announcements: list[IAnnouncement] - blocked_hosts: list[str] cpu: ICPU disable_local_timeline: bool disable_global_timeline: bool - discord_client_id: str - discord_client_secret: str - drive_capacity_per_local_user_mb: int - drive_capacity_per_remote_user_mb: int - email: str enable_emoji_reaction: bool - github_client_id: str - github_client_secret: str - hidden_tags: list[str] machine: str node: str - object_storage_access_key: str - object_storage_base_url: str - object_storage_bucket: str - object_storage_endpoint: str - object_storage_port: int - object_storage_prefix: str - object_storage_region: str - object_storage_s3_force_path_style: bool - object_storage_secret_key: str - object_storage_set_public_read: bool - object_storage_use_proxy: bool - object_storage_use_ssl: bool os: str - pinned_users: list[str] proxy_account: str proxy_remote_files: bool psql: str - recaptcha_secret_key: str redis: str secure: bool - smtp_host: str - smtp_pass: str - smtp_port: int - smtp_secure: bool - smtp_user: str summaly_proxy: str - sw_private_key: str tos_text_url: str turnstile_secret_key: str - twitter_consumer_key: str - twitter_consumer_secret: str - use_object_storage: bool - use_star_for_reaction_fallback: bool -class IV12AndV11Meta(TypedDict, total=False): +class IMetaV12AndV11Common(TypedDict, total=False): emojis: list[ICustomEmoji] -class ILiteMeta(ILiteV12Meta, ILiteV11Meta, IV12AndV11Meta): - banner_url: str | None +class IMetaCommon(IMetaV12AndV11Common): cache_remote_files: bool - description: str | None - disable_registration: bool - enable_discord_integration: bool + email_required_for_signup: bool + enable_hcaptch: bool + hcaptcha_site_key: str | None + enable_recaptcha: bool + recaptcha_site_key: str + sw_publickey: str | None + mascot_image_url: str + banner_url: str | None + error_image_url: str | None + icon_url: str | None + max_note_text_length: int + ads: list[IAds] + enable_email: bool + enable_twitter_integration: bool enable_github_integration: bool + enable_discord_integration: bool enable_service_worker: bool - enable_twitter_integration: bool + translator_available: bool | None # v12 only + proxy_account_name: str + user_star_for_reaction_fallback: bool + + +class ILiteMeta(IMetaCommon, ILiteV12Meta, ILiteV11Meta, ISharedAdminMeta): + description: str | None + disable_registration: bool feedback_url: str maintainer_email: str | None maintainer_name: str | None - max_note_text_length: int name: str | None - recaptcha_site_key: str repository_url: str - sw_publickey: str | None tos_url: str # 厳密にはv11とv12で異なるが、スネークケースに置き換える都合上問題ない uri: str version: str @@ -150,7 +179,6 @@ class ILiteMeta(ILiteV12Meta, ILiteV11Meta, IV12AndV11Meta): class IV12Meta(TypedDict, total=False): pinned_clip_id: str - proxy_account_name: str pinned_pages: list[str] policies: IPolicies require_setup: bool @@ -160,13 +188,5 @@ class IMeta(ILiteMeta, IV12Meta): features: IFeatures -class IV12AdminMeta: - pass - - -class ISharedAdminMeta: - pass - - -class IAdminMeta: +class IAdminMeta(ISharedAdminMeta, IV12AdminMeta, IMetaCommon): pass