2010-03-19 75 views
0

我想創建一個函數,它可以抓取每個用戶來自特定組的最新推文。所以,如果用戶在'作者'組中,我想抓住他們最新的推文,然後最終緩存一天的結果,所以我們只做一次瘋狂的腿部工作。使用Django獲取用戶的最新推文

def latest_tweets(self): 
    g = Group.objects.get(name='author') 
    users = [] 
    for u in g.user_set.all(): 
     acc = u.get_profile().twitter_account 
     users.append('http://twitter.com/statuses/user_timeline/'+acc+'.rss') 
    return users 

是我在迄今爲止在那裏,但我在一個完整的寬鬆結束,我怎麼解析RSS到那裏最新的鳴叫。有人可以幫我從這裏出去嗎?如果有更好的方法來做到這一點,歡迎任何建議!我敢肯定有人會建議使用django-twitter或其他類似的庫,但我希望儘可能手動完成。

Cheers

回答

1

Rss可以被任何xml解析器解析。我之前使用內置模塊htmllib來完成不同的任務,並且發現很容易處理。如果你所做的只是rss解析,我推薦feedparser。我以前沒有用過它,但看起來非常簡單。

1

如果你使用python去-twitter它非常簡單。這是來自記憶,所以如果我在這裏犯了一個錯誤,請原諒我。

from django.core.cache import cache 
import twitter 


TWITTER_USER = 'username' 
TWITTER_TIMEOUT = 3600 

def latest_tweet(request): 

    tweet = cache.get('tweet') 
    if tweet: 
    return {"tweet":tweet} 

    api = twitter.Api() 
    tweets = api.GetUserTimeline(TWITTER_USER) 
    tweet = tweets[0] 

    tweet.date = datetime.strptime(
    tweet.created_at, "%a %b %d %H:%M:%S +0000 %Y" 
) 

    cache.set('tweet', tweet, TWITTER_TIMEOUT) 

    return {"tweet": tweet}