예제 #1
0
파일: relation.py 프로젝트: pendulm/4lastfm
    def update_db(self, alist, delete=False):
        filtered_list = []
        for record in alist:
            track_id = self.filter_record(record)
            if track_id is not None:
                for target in build_revert_relation()[self.username]:
                    target_id = build_targets_hash()[target]
                    filtered_list.append((target_id, track_id))

        if filtered_list:
            print "--- %s %d records to db ---" % (Color.ok("update") ,len(filtered_list))
            if FriendHistory.debug is False:
                FriendHistory.db.executemany(
                        "update friend_listeners set FriendsListenerNum = FriendsListenerNum + 1 where target_id == ? and track_id == ?;", filtered_list)

        if FriendHistory.debug is True:
            # do not actually touch db
            return

        if delete:
            FriendHistory.db.execute("delete from meta_info where friend = ?",
                                   (self.username,))
        else:
            if alist:
                last_timestamp = alist[-1]["date"]["uts"]
                FriendHistory.db.execute(
                        "update meta_info set timestamp = ? where friend = ?",
                        (last_timestamp, self.username))
        FriendHistory.db.commit()
예제 #2
0
def update_friends(username, index, all_):
    friends_dict = fetch_user_friends(username)
    if friends_dict is not None and len(friends_dict) != 0:
        # for friend, info in friends_dict.iteritems():
            # if friend not in all_friends:
                # tags = get_user_tags(friend)
                # all_friends[friend] = transfer_friend_info(info,tags)
            # taste = get_tasteometer(username, friend)
            # friends_of_targets[username].append((friend, taste[0], taste[1]))
        func = partial(nameless, username)
        obj = BatchRegulate(func, friends_dict.items(), cap=20)
        sum_ = len(friends_dict)
        count = 1
        for i in obj:
            print Color.ok("-------user=%s(%d/%d) friend=(%d/%d)------" % (
                            username, index, all_, count, sum_))
            count += 1
    else:
        friends_of_targets[username] = []
예제 #3
0
파일: friends.py 프로젝트: pendulm/4lastfm
 def update_db(self, alist, target=None):
     if self.debug == True:
         return
     print "--- %s %d records to db ---" % (Color.ok("update") ,len(alist))
     History.cursor.executemany(self.insert_sql,
                        map(self.convert_recent_info, alist))
     if target is None:
         History.cursor.execute("delete from meta_info where name = ?",
                                (self.username,))
     else:
         History.cursor.execute(
                 "update meta_info set target = ? where name = ?",
                 (target, self.username))
     History.conn.commit()