mirror of
https://github.com/jxxghp/MoviePilot-Plugins.git
synced 2026-05-23 07:26:47 +00:00
35 lines
1.2 KiB
Python
35 lines
1.2 KiB
Python
from abc import ABC
|
|
from typing import Final, Literal, Dict
|
|
|
|
from apscheduler.schedulers.asyncio import AsyncIOScheduler
|
|
|
|
from app.plugins import _PluginBase
|
|
|
|
from .config import PluginConfig
|
|
from .state import PluginState
|
|
from .store import PluginStore
|
|
|
|
|
|
class _ClashRuleProviderBase(_PluginBase, ABC):
|
|
# Constants
|
|
DEFAULT_CLASH_CONF: Final[
|
|
Dict[Literal['rules', 'rule-providers', 'proxies', 'proxy-groups', 'proxy-providers'], dict | list]] = {
|
|
'rules': [], 'rule-providers': {},
|
|
'proxies': [], 'proxy-groups': [], 'proxy-providers': {}
|
|
}
|
|
OVERWRITTEN_PROXIES_LIFETIME: Final[int] = 10
|
|
ACL4SSR_API: Final[str] = "https://api.github.com/repos/ACL4SSR/ACL4SSR"
|
|
METACUBEX_RULE_DAT_API: Final[str] = "https://api.github.com/repos/MetaCubeX/meta-rules-dat"
|
|
MISFIRE_GRACE_TIME: Final[int] = 120
|
|
KEY_TOP_RULES: Final[str] = "top_rules"
|
|
KEY_RULESET_RULES: Final[str] = "ruleset_rules"
|
|
KEY_PROXIES: Final[str] = "proxies"
|
|
KEY_PROXY_GROUPS: Final[str] = "proxy-groups"
|
|
KEY_NAME: Final[str] = "name"
|
|
|
|
# Runtime variables
|
|
state: PluginState
|
|
config: PluginConfig
|
|
store: PluginStore
|
|
scheduler: AsyncIOScheduler = None
|