Esempio n. 1
0
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)
Esempio n. 2
0
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)))
Esempio n. 3
0
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))))
Esempio n. 4
0
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))))
Esempio n. 5
0
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)
Esempio n. 6
0
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)))
Esempio n. 7
0
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)
Esempio n. 8
0
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", [])])
Esempio n. 9
0
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