InfoScanner.py 文件源码

python
阅读 22 收藏 0 点赞 0 评论 0

项目:Albireo 作者: lordfriend 项目源码 文件源码
def __scan_non_finished_bangumi(self):
        """
        scan the bangumi whose status is not finished. and update its status if possible.
        :return:
        """
        session = SessionManager.Session()
        try:
            bangumi_list = session.query(Bangumi). \
                filter(Bangumi.delete_mark == None). \
                filter(Bangumi.status != Bangumi.STATUS_FINISHED). \
                all()
            for bangumi in bangumi_list:
                if bangumi.status == Bangumi.STATUS_PENDING and bangumi.air_date <= datetime.today().date():
                    bangumi.status = Bangumi.STATUS_ON_AIR
                if bangumi.status == Bangumi.STATUS_ON_AIR and self.__check_if_bangumi_finished(session, bangumi):
                    bangumi.status = Bangumi.STATUS_FINISHED
            session.commit()
        except exc.DBAPIError as db_error:
            logger.error(db_error, exc_info=True)
            # if connection is invalid rollback the session
            if db_error.connection_invalidated:
                session.rollback()
        except Exception as error:
            logger.error(error, exc_info=True)
            traceback.print_exc()
        finally:
            SessionManager.Session.remove()
评论列表
文章目录


问题


面经


文章

微信
公众号

扫码关注公众号