mirror of
https://github.com/zhenxun-org/zhenxun_bot.git
synced 2025-12-15 14:22:55 +08:00
48 lines
1.3 KiB
Python
48 lines
1.3 KiB
Python
from utils.manager.data_class import StaticData
|
|
from typing import Optional
|
|
from pathlib import Path
|
|
|
|
|
|
class NonePluginCountManager(StaticData):
|
|
"""
|
|
插件加载容忍管理器,当连续 max_count 次插件加载,视为删除插件,清楚数据
|
|
"""
|
|
|
|
def __init__(self, file: Optional[Path], max_count: int = 5):
|
|
"""
|
|
:param file: 存储路径
|
|
:param max_count: 容忍最大次数
|
|
"""
|
|
super().__init__(file)
|
|
if not self._data:
|
|
self._data = {}
|
|
self._max_count = max_count
|
|
|
|
def add_count(self, module: str, count: int = 1):
|
|
"""
|
|
添加次数
|
|
:param module: 模块
|
|
:param count: 次数,无特殊情况均为 1
|
|
"""
|
|
if module not in self._data.keys():
|
|
self._data[module] = count
|
|
else:
|
|
self._data[module] += count
|
|
|
|
def reset(self, module: str):
|
|
"""
|
|
重置次数
|
|
:param module: 模块
|
|
"""
|
|
if module in self._data.keys():
|
|
self._data[module] = 0
|
|
|
|
def check(self, module: str):
|
|
"""
|
|
检查容忍次数是否到达最大值
|
|
:param module: 模块
|
|
"""
|
|
if module in self._data.keys():
|
|
return self._data[module] >= self._max_count
|
|
return False
|