Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- --- ShowTweets.py.old 2010-05-21 10:46:11.000000000 +0900
- +++ ShowTweets.py 2011-09-11 20:39:43.626997775 +0900
- @@ -31,7 +31,7 @@
- """
- from MoinMoin import wikiutil
- from MoinMoin.parser.text_moin_wiki import Parser as WikiParser
- -import twitter
- +import tweepy
- import socket
- import sys
- @@ -54,7 +54,7 @@
- errorMsg.append(wikiutil.renderText(request, WikiParser, _("/!\ Error Message from Macro [[http://moinmo.in/MacroMarket/ShowTweets|ShowTweets]]!")))
- errorMsg.append(fmt.bullet_list(True))
- errorMsg.append(fmt.listitem(True))
- - errorMsg.append(fmt.text(_("Type: %s") % wikiutil.escape(errorType)))
- + errorMsg.append(fmt.text(_("Type: %s") % wikiutil.escape(errorType).decode("utf-8", "replace")))
- errorMsg.append(fmt.listitem(False))
- errorMsg.append(fmt.listitem(True))
- errorMsg.append(fmt.text(_("Message: %s") % wikiutil.escape(errorMessage)))
- @@ -64,7 +64,7 @@
- return ''.join(errorMsg)
- -def macro_ShowTweets(macro, user, maxTweets=10):
- +def macro_ShowTweets(macro, user, maxTweets=10, noreply=True):
- """
- Creates a ordered list with twitter status messages
- @param user: username from a twitter account, needed
- @@ -77,18 +77,22 @@
- fmt = macro.formatter
- _ = request.getText
- output = []
- - tweetNumber = 0
- +
- + #Fetch more for filtering
- + fetchNum = maxTweets
- + if noreply:
- + fetchNum *= 10
- #You also can use your Twitter Account to request for example privat twitter
- #statuses. but be aware, that for the moment you have to put your userdata
- #and password in cleartext, so make sure that nobody else can read your
- #macro. Change "api = twitter.Api" to
- #"api = twitter.Api(username='username', password='password')"
- - api = twitter.Api()
- + api = tweepy.API()
- #get the messages from twitter or use an exception to display an error msg
- try:
- - statuses = api.GetUserTimeline(user=wikiutil.escape(user), count=maxTweets)
- + statuses = api.user_timeline(user=wikiutil.escape(user), count=fetchNum)
- except:
- return errorOutput(macro, _("GetUserTimeline"), str(sys.exc_info()[1]))
- @@ -97,16 +101,22 @@
- output.append(fmt.bullet_list(True))
- #reading tweets
- - for tweetNumber in range(len(statuses)):
- + count = 0
- + for tweet in statuses:
- + if noreply and tweet.text[0] == "@":
- + continue
- output.append(fmt.listitem(True))
- - output.append(wikiutil.renderText(request, WikiParser, wikiutil.escape(statuses[tweetNumber].text)))
- + output.append(wikiutil.renderText(request, WikiParser, wikiutil.escape(tweet.text)))
- output.append(fmt.span(True, css_class="date", style="color:Gray; font-size:75%; display:block;"))
- - output.append(fmt.text(wikiutil.escape(statuses[tweetNumber].created_at)))
- + output.append(fmt.text(wikiutil.escape(tweet.created_at)))
- output.append(fmt.span(False))
- output.append(fmt.listitem(False))
- + count += 1
- + if count >= maxTweets:
- + break
- #check if there is atleast one tweet available for ouput
- - if tweetNumber < 1:
- + if count < 1:
- return errorOutput(macro, _("tweetNumber"), _("Can't find any twitter status message from user '%s'" % user))
- #finishing output
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement