feat: configにfeaturesを追加

pull/59/head
yupix 2 years ago
parent b5c66d2b40
commit 0a0f82f998
No known key found for this signature in database
GPG Key ID: 2FF705F5C56D9C06

@ -1,5 +1,5 @@
from dataclasses import dataclass
from typing import Literal
from typing import Literal, TypedDict
@dataclass
@ -17,6 +17,20 @@ class CacheConfig:
IMisskeyDistribution = Literal['ayuskey', 'm544', 'areionskey', 'official']
class IFeatures(TypedDict, total=False):
chat: bool
class Features:
def __init__(self, features: IFeatures | None = None) -> None:
features = features or {}
self.chat = features.get('chat', False)
def from_dict(self, features: IFeatures):
self.chat = features.get('chat') or self.chat
return self
class Config:
def __init__(
self,
@ -27,6 +41,7 @@ class Config:
use_version: Literal[13, 12, 11] = 12,
cache: CacheConfigData | None = None,
use_version_autodetect: bool = True,
features: IFeatures | None = None,
) -> None:
self.distro: IMisskeyDistribution = distro
self.is_ssl: bool = is_ssl
@ -35,6 +50,7 @@ class Config:
self.use_version: Literal[13, 12, 11] = use_version
self.cache: CacheConfig = CacheConfig(cache or CacheConfigData())
self.use_version_autodetect: bool = use_version_autodetect
self.features: Features = Features(features) if features else Features()
def from_dict(
self,
@ -44,6 +60,7 @@ class Config:
use_version: Literal[13, 12, 11] | None = None,
cache: CacheConfigData | None = None,
use_version_autodetect: bool | None = None,
features: IFeatures | None = None,
):
self.host = host or self.host
self.is_ssl = is_ssl if is_ssl is not None else self.is_ssl
@ -52,6 +69,7 @@ class Config:
if cache:
self.cache = CacheConfig(cache)
self.use_version_autodetect = use_version_autodetect or self.use_version_autodetect
self.features = self.features.from_dict(features) if features else self.features
config = Config()

Loading…
Cancel
Save