mirror of
https://github.com/LiteyukiStudio/nonebot-plugin-marshoai.git
synced 2025-02-27 14:56:39 +08:00
* 实现缓存装饰器,优化数据获取和存储逻辑
* 重构代码,准备将聊天请求逻辑移入MarshoHandler
* 记录点(
* unfinished
* 🎨 重写基本完毕
* 移除未使用import,添加漏掉的换行
40 lines
846 B
Python
40 lines
846 B
Python
from ..models import Cache
|
|
|
|
cache = Cache()
|
|
|
|
|
|
def from_cache(key):
|
|
"""
|
|
当缓存中有数据时,直接返回缓存中的数据,否则执行函数并将结果存入缓存
|
|
"""
|
|
|
|
def decorator(func):
|
|
async def wrapper(*args, **kwargs):
|
|
cached = cache.get(key)
|
|
if cached:
|
|
return cached
|
|
else:
|
|
result = await func(*args, **kwargs)
|
|
cache.set(key, result)
|
|
return result
|
|
|
|
return wrapper
|
|
|
|
return decorator
|
|
|
|
|
|
def update_to_cache(key):
|
|
"""
|
|
执行函数并将结果存入缓存
|
|
"""
|
|
|
|
def decorator(func):
|
|
async def wrapper(*args, **kwargs):
|
|
result = await func(*args, **kwargs)
|
|
cache.set(key, result)
|
|
return result
|
|
|
|
return wrapper
|
|
|
|
return decorator
|