mirror of
https://github.com/suyiiyii/nonebot-bison.git
synced 2025-05-31 16:16:11 +08:00
🐛 优化 SiteMeta
This commit is contained in:
parent
f08ab9f926
commit
a1843bb98a
@ -174,10 +174,18 @@ site_manager: dict[str, type["Site"]] = {}
|
||||
|
||||
|
||||
class SiteMeta(type):
|
||||
def __init__(cls, *args, **kwargs):
|
||||
if hasattr(cls, "name"):
|
||||
site_manager[cls.name] = cls
|
||||
super().__init__(*args, **kwargs)
|
||||
def __new__(cls, name, bases, namespace, **kwargs):
|
||||
return super().__new__(cls, name, bases, namespace)
|
||||
|
||||
def __init__(cls, name, bases, namespace, **kwargs):
|
||||
if kwargs.get("base"):
|
||||
# this is the base class
|
||||
cls._key = kwargs.get("key")
|
||||
elif not kwargs.get("abstract"):
|
||||
# this is the subclass
|
||||
if hasattr(cls, "name"):
|
||||
site_manager[cls.name] = cls
|
||||
super().__init__(name, bases, namespace, **kwargs)
|
||||
|
||||
|
||||
class Site(metaclass=SiteMeta):
|
||||
|
Loading…
x
Reference in New Issue
Block a user