Example #1
0
def check_popularity():
    people = dbs.query(Person).filter(Person.count == None).all()
    pb = ProgressBar(people.__len__())

    for person in people:
        pb.update_print(people.index(person))
        references = dbs.query(
            PeopleRel.count).filter(PeopleRel.person == person.name).all()
        count = sum(i[0] for i in references)
        person.count = int(count)
    dbs.commit()
Example #2
0
def link_people():
    date = dbs.query(LastRun.date).order_by(LastRun.id.desc()).first()[0]
    articles = dbs.query(Article.url).filter(Article.date > date).all()
    pb = ProgressBar(articles.__len__())
    for article in articles:
        pb.update_print(articles.index(article))
        people = dbs.query(
            PeopleRel.person).filter(PeopleRel.article == article[0]).all()
        people = [x[0] for x in people]
        people_rel = []
        for x in range(people.__len__()):
            for y in range(x + 1, people.__len__()):
                people_rel.append([people[x], people[y]])
        for rel in people_rel:
            p1, p2 = rel[0], rel[1]
            a = dbs.query(PersonRel).filter(
                or_(and_(PersonRel.person1 == p1, PersonRel.person2 == p2),
                    and_(PersonRel.person1 == p2,
                         PersonRel.person2 == p1))).first()
            if a:
                a.count += 1
            else:
                dbs.add(PersonRel(person1=p1, person2=p2, count=1))
        dbs.commit()