mirror of
				https://github.com/LiteyukiStudio/LiteyukiBot.git
				synced 2025-10-31 05:36:24 +00:00 
			
		
		
		
	
		
			
				
	
	
		
			52 lines
		
	
	
		
			1.7 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
			
		
		
	
	
			52 lines
		
	
	
		
			1.7 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
| import os
 | ||
| 
 | ||
| from pydantic import Field
 | ||
| 
 | ||
| from liteyuki.utils.data import LiteModel, Database as DB
 | ||
| 
 | ||
| DATA_PATH = "data/liteyuki"
 | ||
| 
 | ||
| user_db = DB(os.path.join(DATA_PATH, "users.ldb"))
 | ||
| group_db = DB(os.path.join(DATA_PATH, "groups.ldb"))
 | ||
| plugin_db = DB(os.path.join(DATA_PATH, "plugins.ldb"))
 | ||
| common_db = DB(os.path.join(DATA_PATH, "common.ldb"))
 | ||
| 
 | ||
| 
 | ||
| class User(LiteModel):
 | ||
|     TABLE_NAME = "user"
 | ||
|     user_id: str = Field(str(), alias="user_id")
 | ||
|     username: str = Field(str(), alias="username")
 | ||
|     profile: dict[str, str] = Field(dict(), alias="profile")
 | ||
|     enabled_plugins: list[str] = Field(list(), alias="enabled_plugins")
 | ||
|     disabled_plugins: list[str] = Field(list(), alias="disabled_plugins")
 | ||
| 
 | ||
| 
 | ||
| class Group(LiteModel):
 | ||
|     TABLE_NAME = "group_chat"
 | ||
|     # Group是一个关键字,所以这里用GroupChat
 | ||
|     group_id: str = Field(str(), alias="group_id")
 | ||
|     group_name: str = Field(str(), alias="group_name")
 | ||
|     enabled_plugins: list[str] = Field([], alias="enabled_plugins")
 | ||
|     disabled_plugins: list[str] = Field([], alias="disabled_plugins")
 | ||
| 
 | ||
| 
 | ||
| class InstalledPlugin(LiteModel):
 | ||
|     TABLE_NAME = "installed_plugin"
 | ||
|     module_name: str = Field(str(), alias="module_name")
 | ||
|     version: str = Field(str(), alias="version")
 | ||
| 
 | ||
| 
 | ||
| class GlobalPlugin(LiteModel):
 | ||
|     TABLE_NAME = "global_plugin"
 | ||
|     liteyuki: bool = Field(True, alias="liteyuki")  # 是否为LiteYuki插件
 | ||
|     module_name: str = Field(str(), alias="module_name")
 | ||
|     enabled: bool = Field(True, alias="enabled")
 | ||
| 
 | ||
| 
 | ||
| def auto_migrate():
 | ||
|     print("Migrating databases...")
 | ||
|     user_db.auto_migrate(User())
 | ||
|     group_db.auto_migrate(Group())
 | ||
|     plugin_db.auto_migrate(InstalledPlugin(), GlobalPlugin())
 | ||
|     common_db.auto_migrate(GlobalPlugin())
 |