def insert_antrag(antrag, to_pos): a = prepare_antrag(antrag) details = antrag_details_prepare_html(a) id_ = a[K["id"]] tags = [id_, a[K["kind"]], a[K["group"]]] + ADDITIONAL_TAGS if TO_GIVEN: # add TO position tags if to_pos != 0: tags.append("Top80") tags.append("TO" + str(to_pos)) else: tags.append("Rest") # insert question into DB additional = create_additional_data(tags) question = Question(title=a["shorttitle"], url=id_, details=details, dateAdded=time.time(), score=0, scoreTrending=0, scoreTop=0, userId=2, groupId=0, type=0, flags=0, additionalData=additional) session.add(question) session.commit() # insert title words in Tag table because this table is used for question searches title_words = a[K["title"]].split() for tag in tags + title_words: tag_obj = Tag(tag=tag.replace(" ", "-"), questionId=question.questionId, groupId=0) session.add(tag_obj) session.commit() return question
def insert_antrag(antrag): a = prepare_antrag(antrag) details = antrag_details_prepare_html(a) id_ = a["id"] tags = [id_, "LPT13.1", a["kind"]] additional = create_additional_data(tags) question = Question(title=a["shorttitle"], url=id_, details=details, dateAdded=time.time(), score=0, scoreTrending=0, scoreTop=0, userId=2, additionalData=additional) session.add(question) session.commit() # insert title words in Tag table because this table is used for question searches title_words = a["title"].split() for tag in tags + title_words: tag_obj = Tag(tag=tag, questionId=question.questionId) session.add(tag_obj) session.commit() return question
def update_antrag(antrag): id_ = antrag["id"] question = session.query(Question).filter_by(url=id_).first() if question: logg.info("Antrag %s existiert schon", id_) # update details if changed. Other fields must not change and are ignored a = prepare_antrag(antrag) details = antrag_details_prepare_html(a) if question.details != details: diff = list(difflib.Differ().compare(question.details.split("\n"), details.split("\n"))) logg.info("Antragsdetails von %s haben sich verändert, Unterschiede:\n %s", id_, pformat(diff)) question.details = details session.commit() return diff else: logg.info("Antrag ist neu: '%s'", id_) insert_antrag(antrag) return "Neuer Antrag"