Exemplo n.º 1
0
def add_phrase():
    """Add a phrase based on the given post parameters. This function does its
    best to cope with null parameters to categories, precategories, genres,
    etc."""
    session = db.db_session()
    cur_phrase = request.form
    new_phrase = Phrase(cur_phrase['phrase'])
    for key, value in cur_phrase.items():
        setattr(new_phrase, key, value)
    query = session.query(User).filter(User.name == request.authorization.username)
    new_phrase.user_id = query[0].id
    session.add(new_phrase)
    try:
        session.commit()
    except IntegrityError:
        session.rollback()
        session.close()
        abort(400)
    res = _phrase_to_dict(new_phrase)
    session.close()
    return jsonify(res)
Exemplo n.º 2
0
        precategory = cur_url.split('/')[2].split('.')[0]
        print precategory
        db_precategory = PreCategory(precategory)
        db.db_session.add(db_precategory)
        try:
            db.db_session.commit()
        except IntegrityError:
            db.db_session.rollback()
            query = db.db_session.query(PreCategory).filter(PreCategory.name==precategory)
            db_precategory = query[0]
            print 'Duplicate PreCategory'
        list_page = http.get(page_base + cur_url)
        list_html = soup(list_page.text)
        cur_list = [word.strip() for word in list_html.findAll(text=True) if len(word) > 1 and word.startswith("\n")]
        for word in cur_list:
            cur_phrase = Phrase(word, page_base)
            cur_phrase.pre_category_id = db_precategory.id
            db.db_session.add(cur_phrase)
            try:
                db.db_session.commit()
            except IntegrityError:
                db.db_session.rollback()
                dups += 1
                print 'Duplicate!'
        cur_len = len(cur_list)
        count += cur_len
        print cur_len
    print "Total: ", count
    print "Duplicates: ", dups