def home(): questions = util.convert_timestamp( data_handler.read_elements_csv(QUESTION_DATA_FILE_PATH, question_header)) return render_template('home.html', questions=questions, headers=TEMPLATE_HEADER)
def edit_comment(cursor, comment_id, message): sub_time = util.convert_timestamp(util.create_timestamp()) cursor.execute( sql.SQL("""UPDATE comment SET submission_time={sub_time}, message={msg}, edited_count = COALESCE(edited_count, 0) + 1 WHERE id = {comment_id}; """).format(sub_time=sql.Literal(str(sub_time)), msg=sql.Literal(message), comment_id=sql.Literal(comment_id)))
def save_user_registration(cursor, user_name, password): hashed_password = hash_password(password) sub_time = util.convert_timestamp(util.create_timestamp()) cursor.execute( sql.SQL( """INSERT INTO users(name, password, submission_time, reputation) VALUES ({user_name}, {hashed_password}, {submission_time}, 0) """).format(user_name=sql.Literal(user_name), hashed_password=sql.Literal(hashed_password), submission_time=sql.Literal(str(sub_time))))
def new_comment(cursor, comment_type, data_id, comment, user_id): sub_time = util.convert_timestamp(util.create_timestamp()) cursor.execute( sql.SQL( """INSERT INTO comment ({com_type}, user_id, message, submission_time) VALUES ({id_number}, {user_id}, {msg}, {sub_time}); """).format(com_type=sql.SQL(comment_type), id_number=sql.SQL(data_id), user_id=sql.Literal(user_id), msg=sql.Literal(comment), sub_time=sql.Literal(str(sub_time))))
def feeditem_from_model(item): return FeedItem(title=item.title, description=item.description, link=item.link, title_stripped=item.title_stripped, snippet=item.snippet, published=convert_timestamp(item.published), images=item.images, author=item.author, comments=item.comments, enclosures=item.enclosures, tags=item.tags)
def add_answer(cursor, user_id, question_id, answer_text, image_name): sub_time = util.convert_timestamp(util.create_timestamp()) cursor.execute( sql.SQL( """INSERT INTO answer (user_id,submission_time, vote_number, question_id, message, image) VALUES ({user_id}, {sub_time}, 0, {question_id}, {message}, {image}); """).format(user_id=sql.Literal(user_id), sub_time=sql.Literal(str(sub_time)), question_id=sql.Literal(question_id), message=sql.Literal(answer_text), image=sql.Literal(image_name)))
def get_feeditem_model(url, timestamp, item): """ Returns a new feeditem model with cleaned attributes. Returns none if item already exists. Parameters: url - The feed's url item - A feedparser rss-entry """ for feeditem in FeedItemModel.query(FeedItemModel.key == FeedItemKey(url, item.link)).iter(keys_only=True): # Existing feed, so ignore return None # Some feeds use content, some description. # Take the longest. d = item.get("description", "") try: c = item.get("content", None) # Can be many content, with different types # This might fail for some c = c[0].value except: c = "" # Use d if len(c) > len(d): d = c clean_description = strip_bloat(d) return FeedItemModel(key=FeedItemKey(url, item.link), title=item.title, description=clean_description, link=item.link, title_stripped=get_snippet(item.title), snippet=get_snippet(clean_description), timestamp=timestamp, feed_link=url, images=get_images(clean_description), published=convert_timestamp(item.get("published", None)), author=item.get("author", None), comments=item.get("comments", None), enclosures=[e.href for e in item.get("enclosures", [])], tags=[t.term for t in item.get("tags", [])])
def create_new_question(cursor, user_id, title, message, image): sub_time = util.convert_timestamp(util.create_timestamp()) cursor.execute( sql.SQL( """INSERT INTO question (user_id, submission_time, view_number, vote_number, title, message, image) VALUES ({user_id},{sub_time}, 0, 0, {title}, {message}, {image}); """).format(user_id=sql.Literal(user_id), sub_time=sql.Literal(str(sub_time)), title=sql.Literal(title), message=sql.Literal(message), image=sql.Literal(image))) cursor.execute( sql.SQL("""SELECT id FROM question WHERE id=(SELECT max(id) FROM question) """)) data = cursor.fetchone() return data