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