예제 #1
0
 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
예제 #2
0
 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))
예제 #3
0
 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
예제 #4
0
 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
예제 #5
0
 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)
예제 #6
0
 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
예제 #7
0
 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)
예제 #8
0
 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
예제 #9
0
 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()
예제 #10
0
 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()