-
Notifications
You must be signed in to change notification settings - Fork 351
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Merge pull request #729 from RockChinQ/feat/migration-stage
Feat: 配置文件迁移功能
- Loading branch information
Showing
13 changed files
with
209 additions
and
98 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,46 @@ | ||
from __future__ import annotations | ||
|
||
import abc | ||
import typing | ||
|
||
from ..core import app | ||
|
||
|
||
preregistered_migrations: list[typing.Type[Migration]] = [] | ||
|
||
def migration_class(name: str, number: int): | ||
"""注册一个迁移 | ||
""" | ||
def decorator(cls: typing.Type[Migration]) -> typing.Type[Migration]: | ||
cls.name = name | ||
cls.number = number | ||
preregistered_migrations.append(cls) | ||
return cls | ||
|
||
return decorator | ||
|
||
|
||
class Migration(abc.ABC): | ||
"""一个版本的迁移 | ||
""" | ||
|
||
name: str | ||
|
||
number: int | ||
|
||
ap: app.Application | ||
|
||
def __init__(self, ap: app.Application): | ||
self.ap = ap | ||
|
||
@abc.abstractmethod | ||
async def need_migrate(self) -> bool: | ||
"""判断当前环境是否需要运行此迁移 | ||
""" | ||
pass | ||
|
||
@abc.abstractmethod | ||
async def run(self): | ||
"""执行迁移 | ||
""" | ||
pass |
Empty file.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,26 @@ | ||
from __future__ import annotations | ||
|
||
import os | ||
import sys | ||
|
||
from .. import migration | ||
|
||
|
||
@migration.migration_class("sensitive-word-migration", 1) | ||
class SensitiveWordMigration(migration.Migration): | ||
"""敏感词迁移 | ||
""" | ||
|
||
async def need_migrate(self) -> bool: | ||
"""判断当前环境是否需要运行此迁移 | ||
""" | ||
return os.path.exists("data/config/sensitive-words.json") | ||
|
||
async def run(self): | ||
"""执行迁移 | ||
""" | ||
# 移动文件 | ||
os.rename("data/config/sensitive-words.json", "data/metadata/sensitive-words.json") | ||
|
||
# 重新加载配置 | ||
await self.ap.sensitive_meta.load_config() |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,28 @@ | ||
from __future__ import annotations | ||
|
||
import importlib | ||
|
||
from .. import stage, app | ||
from ...config import migration | ||
from ...config.migrations import m1_sensitive_word_migration | ||
|
||
|
||
@stage.stage_class("MigrationStage") | ||
class MigrationStage(stage.BootingStage): | ||
"""迁移阶段 | ||
""" | ||
|
||
async def run(self, ap: app.Application): | ||
"""启动 | ||
""" | ||
|
||
migrations = migration.preregistered_migrations | ||
|
||
# 按照迁移号排序 | ||
migrations.sort(key=lambda x: x.number) | ||
|
||
for migration_cls in migrations: | ||
migration_instance = migration_cls(ap) | ||
|
||
if await migration_instance.need_migrate(): | ||
await migration_instance.run() |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,78 @@ | ||
{ | ||
"说明": "mask将替换敏感词中的每一个字,若mask_word值不为空,则将敏感词整个替换为mask_word的值", | ||
"mask": "*", | ||
"mask_word": "", | ||
"words": [ | ||
"习近平", | ||
"胡锦涛", | ||
"江泽民", | ||
"温家宝", | ||
"李克强", | ||
"李长春", | ||
"毛泽东", | ||
"邓小平", | ||
"周恩来", | ||
"马克思", | ||
"社会主义", | ||
"共产党", | ||
"共产主义", | ||
"大陆官方", | ||
"北京政权", | ||
"中华帝国", | ||
"中国政府", | ||
"共狗", | ||
"六四事件", | ||
"天安门", | ||
"六四", | ||
"政治局常委", | ||
"两会", | ||
"共青团", | ||
"学潮", | ||
"八九", | ||
"二十大", | ||
"民进党", | ||
"台独", | ||
"台湾独立", | ||
"台湾国", | ||
"国民党", | ||
"台湾民国", | ||
"中华民国", | ||
"pornhub", | ||
"Pornhub", | ||
"[Yy]ou[Pp]orn", | ||
"porn", | ||
"Porn", | ||
"[Xx][Vv]ideos", | ||
"[Rr]ed[Tt]ube", | ||
"[Xx][Hh]amster", | ||
"[Ss]pank[Ww]ire", | ||
"[Ss]pank[Bb]ang", | ||
"[Tt]ube8", | ||
"[Yy]ou[Jj]izz", | ||
"[Bb]razzers", | ||
"[Nn]aughty[ ]?[Aa]merica", | ||
"作爱", | ||
"做爱", | ||
"性交", | ||
"性爱", | ||
"自慰", | ||
"阴茎", | ||
"淫妇", | ||
"肛交", | ||
"交配", | ||
"性关系", | ||
"性活动", | ||
"色情", | ||
"色图", | ||
"涩图", | ||
"裸体", | ||
"小穴", | ||
"淫荡", | ||
"性爱", | ||
"翻墙", | ||
"VPN", | ||
"科学上网", | ||
"挂梯子", | ||
"GFW" | ||
] | ||
} |
This file was deleted.
Oops, something went wrong.