def add_info(subject, teacher, week, period, abstract, detail, first, update, unique_hash, renew_hash):
session = models.Session()
qkou = session.query(models.Info)
# utf-8?????????????
subject = subject.encode('utf-8')
teacher = teacher.encode('utf-8')
week = week.encode('utf-8')
period = period.encode('utf-8')
abstract = abstract.encode('utf-8')
detail = detail.encode('utf-8')
first = first.encode('utf-8')
update = update.encode('utf-8')
unique_hash = unique_hash.encode('utf-8')
renew_hash = renew_hash.encode('utf-8')
newinfo = models.Info(
subject, teacher, week, period, abstract, detail, first, update, unique_hash, renew_hash, now)
try:
# ?????????
ex_info = qkou.filter(models.Info.unique_hash == unique_hash).first()
if ex_info is None:
# ?????
log.debug('???: %s … [??]', subject)
session.add(newinfo)
session.commit()
new_id = newinfo.id
return new_id
else:
# ????????
if ex_info.renew_hash != renew_hash:
log.debug('???: %s … [??]', subject)
ex_info.detail = detail
ex_info.up_date = update
ex_info.renew_hash = renew_hash
ex_info.up_time = now
session.commit()
ex_id = ex_info.id
return ex_id
else:
# ???????
log.debug('???: %s … [??]', subject)
ex_info.up_time = now
session.commit()
return False
except Exception as e:
session.rollback()
log.exception(e)
return False
finally:
session.close()
评论列表
文章目录