def __init__(self): super().__init__() try: saved_info = Saved.get_saved_info(self.name) except sqlalchemy_exc.NoResultFound: self.previous_changelog = "" else: self.previous_changelog = saved_info.BUILD_CHANGELOG
def is_updated(self): result = super().is_updated() if not result: return False try: saved_info = Saved.get_saved_info(self.name) except sqlalchemy_exc.NoResultFound: return True return (self.parse_build_date(self.info_dic["LATEST_VERSION"]) > self.parse_build_date(saved_info.LATEST_VERSION))
def is_updated(self): result = super().is_updated() if not result: return False saved_info = Saved.get_saved_info(self.name) if saved_info is None: return True latest_data = self.date_transform(self.info_dic["BUILD_DATE"]) saved_data = self.date_transform(saved_info.BUILD_DATE) return latest_data > saved_data
def is_updated(self): """ 与数据库中已存储的数据进行比对, 如果有更新, 则返回True, 否则返回False """ if self.__info_dic["LATEST_VERSION"] is None: return False saved_info = Saved.get_saved_info(self.name) if saved_info is None: return True if self.__info_dic["LATEST_VERSION"] == saved_info.LATEST_VERSION: return False return True
def is_updated(self): result = super().is_updated() if not result: return False if self.info_dic["BUILD_DATE"] is None: return False try: saved_info = Saved.get_saved_info(self.name) except sqlalchemy_exc.NoResultFound: return True return int(self.info_dic["BUILD_DATE"]) > int(saved_info.BUILD_DATE)
def is_updated(self): """ 与数据库中已存储的数据进行比对, 如果有更新, 则返回True, 否则返回False 一般情况下只需比对LATEST_VERSION字段, 子类在继承时可以根据需要拓展此方法 """ if self.__info_dic["LATEST_VERSION"] is None: return False try: saved_info = Saved.get_saved_info(self.name) except sqlalchemy_exc.NoResultFound: return True return self.__info_dic["LATEST_VERSION"] != saved_info.LATEST_VERSION
def is_updated(self): if not self.info_dic["LATEST_VERSION"]: return False try: saved_info = Saved.get_saved_info(self.name) except sqlalchemy_exc.NoResultFound: # Forced overwrite self.write_to_database() return False self_ids = set(self._private_dic["sp_commits"].keys()) saved_ids = set(json.loads(saved_info.LATEST_VERSION)) extra_ids = self_ids - saved_ids if extra_ids: self._private_dic["extra_ids"] = extra_ids return bool(extra_ids)
def is_updated(self): # 对于SfCheck, 额外检查BUILD_DATE, 避免新Rom撤包后把旧Rom当作新Rom... result = super().is_updated() if not result: return False if self.info_dic["BUILD_DATE"] is None: return False try: saved_info = Saved.get_saved_info(self.name) except sqlalchemy_exc.NoResultFound: return True latest_date = self.date_transform(str(self.info_dic["BUILD_DATE"])) try: saved_date = self.date_transform(saved_info.BUILD_DATE) except: return True return latest_date > saved_date
def write_to_database(self): """ 将CheckUpdate实例的info_dic数据写入数据库 """ with create_dbsession() as session: try: saved_data = session.query(Saved).filter(Saved.ID == self.name).one() except sqlalchemy_exc.NoResultFound: new_data = Saved( ID=self.name, FULL_NAME=self.fullname, **self.__info_dic ) session.add(new_data) else: saved_data.FULL_NAME = self.fullname for key, value in self.__info_dic.items(): setattr(saved_data, key, value) session.commit()
def write_to_database(self): """ 将CheckUpdate实例的info_dic数据写入数据库 """ session = DBSession() try: if self.name in {x.ID for x in session.query(Saved).all()}: saved_data = session.query(Saved).filter(Saved.ID == self.name).one() saved_data.FULL_NAME = self.fullname for key, value in self.__info_dic.items(): setattr(saved_data, key, value) else: new_data = Saved( ID=self.name, FULL_NAME=self.fullname, **self.__info_dic ) session.add(new_data) session.commit() finally: session.close()