zhenxun_bot/models/group_remind.py
2021-05-20 18:37:51 +08:00

101 lines
2.9 KiB
Python

from services.db_context import db
class GroupRemind(db.Model):
__tablename__ = 'group_reminds'
id = db.Column(db.Integer(), primary_key=True)
group_id = db.Column(db.BigInteger(), nullable=False)
hy = db.Column(db.Boolean(), default=True) # 进群欢迎
kxcz = db.Column(db.Boolean(), default=True) # 开箱重置
zwa = db.Column(db.Boolean(), default=True) # 早晚安
gb = db.Column(db.Boolean(), default=True) # 广播
blpar = db.Column(db.Boolean(), default=True) # bilibili转发解析
pa = db.Column(db.Boolean(), default=True) # 爬
epic = db.Column(db.Boolean(), default=False) # epic
almanac = db.Column(db.Boolean(), default=False) # 原神黄历
_idx1 = db.Index('info_group_reminds_idx1', 'group_id', unique=True)
@classmethod
async def get_status(cls, group_id: int, name: str) -> bool:
group = await cls.query.where(
(cls.group_id == group_id)
).gino.first()
if not group:
group = await cls.create(
group_id=group_id,
)
if name == 'hy':
return group.hy
if name == 'kxcz':
return group.kxcz
if name == 'zwa':
return group.zwa
if name == 'gb':
return group.gb
if name == 'blpar':
return group.blpar
if name == 'epic':
return group.epic
if name == 'pa':
return group.pa
if name == 'almanac':
return group.almanac
@classmethod
async def set_status(cls, group_id: int, name: str, status: bool) -> bool:
try:
group = await cls.query.where(
(cls.group_id == group_id)
).gino.first()
if not group:
group = await cls.create(
group_id=group_id,
)
if name == 'hy':
await group.update(
hy=status,
).apply()
if name == 'kxcz':
await group.update(
kxcz=status,
).apply()
if name == 'zwa':
await group.update(
zwa=status,
).apply()
if name == 'gb':
await group.update(
gb=status,
).apply()
if name == 'blpar':
await group.update(
blpar=status,
).apply()
if name == 'epic':
await group.update(
epic=status,
).apply()
if name == 'pa':
await group.update(
pa=status,
).apply()
if name == 'almanac':
await group.update(
almanac=status,
).apply()
return True
except Exception as e:
return False