Beispiel #1
0
def add_listing(comment):
    submission = comment.submission
    try:
        listing = Session.query(Listing).filter(Listing.submission_id == submission.id).one()
    except NoResultFound:
        listing = Listing()
    listing.submission_id = submission.id
    listing.title = submission.title
    listing.permalink = submission.permalink
    listing.flair_text = submission.link_flair_text
    listing.url = submission.url
    listing.redditor = submission.author.name
    listing.created_utc = datetime.utcfromtimestamp(submission.created_utc)
    listing.updated_utc = datetime.utcnow()
    if submission.thumbnail.startswith('https:'):
        listing.thumbnail_url = submission.thumbnail
    for line in comment.body.splitlines():
        m1 = p1.search(line)
        m2 = p2.search(line)
        m3 = p3.search(line)
        m4 = p4.search(line)
        m5 = p5.search(line)
        m6 = p6.search(line)
        m7 = p7.search(line)
        m8 = p8.search(line)
        m9 = p9.search(line)
        m10 = p10.search(line)
        m11 = p11.search(line)
        m12 = p12.search(line)
        if m1:
            listing.brand = m1.group(1).strip('*').strip()
        if m2:
            listing.model = m2.group(1).strip('*').strip()
        if m3:
            listing.size = m3.group(1).strip('*').strip()
        if m4:
            listing.width = m4.group(1).strip('*').strip()
        if m5:
            listing.last = m5.group(1).strip('*').strip()
        if m6:
            listing.upper = m6.group(1).strip('*').strip()
        if m7:
            listing.sole = m7.group(1).strip('*').strip()
        if m8:
            listing.condition = m8.group(1).strip('*').strip()
        if m9:
            listing.images = m9.group(1).strip('*').strip()
        if m10:
            listing.notes = m10.group(1).strip('*').strip()
        if m11:
            listing.price = m11.group(1).strip('*').strip()
        if m12:
            listing.country = m12.group(1).strip('*').strip()
    if not listing.size or not listing.brand or not listing.price:
        return
    Session.add(listing)
    return True