Implemented user name caching, so we can efficiently pull data for Direct Messages and Searches

This commit is contained in:
Anna
2010-05-23 12:42:19 -04:00
parent 964358c1f2
commit d7893fce37
4 changed files with 163 additions and 77 deletions

View File

@ -6,7 +6,7 @@ from threading import Thread,RLock
import twitter_pb2
from oauthtwitter import OAuthApi
from urllib2 import HTTPError,URLError
import avcache
import usercache
import webbrowser
from time import sleep
@ -107,10 +107,11 @@ class GetTweets(ApiThread):
except (HTTPError, URLError):
statuses = None
# For each user id present, populate the AvCache with an image
# For each user id present, populate the UserCaches
if statuses:
for status in statuses:
avcache.add_to_cache(status.user)
usercache.add_to_av_cache(status.user)
usercache.add_to_name_cache(status.user, self.api)
gtk.gdk.threads_enter()
try:
@ -140,7 +141,8 @@ class GetSingleTweet(ApiThread):
# In case we've never seen this user, grab their profile image
for status in statuses:
avcache.add_to_cache(status.user)
usercache.add_to_av_cache(status.user)
usercache.add_to_name_cache(status.user)
gtk.gdk.threads_enter()
try:
@ -184,7 +186,8 @@ class GetConversation(ApiThread):
# In case we've never seen some of these users, grab their profile images and cache them
for status in statuses:
avcache.add_to_cache(status.user)
usercache.add_to_av_cache(status.user)
usercache.add_to_name_cache(status.user)
statuses.reverse()
@ -235,7 +238,8 @@ class GetUserInfo(ApiThread):
try:
with self.api.lock:
user = self.api.GetUser(screen_name)
avcache.add_to_cache(user)
usercache.add_to_av_cache(user)
usercache.add_to_name_cache(user)
except (HTTPError, URLError):
verified = False
user = None