Advertisement
Guest User

FelixYan

a guest
Sep 11th, 2011
126
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Diff 3.31 KB | None | 0 0
  1. --- ShowTweets.py.old   2010-05-21 10:46:11.000000000 +0900
  2. +++ ShowTweets.py       2011-09-11 20:39:43.626997775 +0900
  3. @@ -31,7 +31,7 @@
  4.  """
  5.  from MoinMoin import wikiutil
  6.  from MoinMoin.parser.text_moin_wiki import Parser as WikiParser
  7. -import twitter
  8. +import tweepy
  9.  import socket
  10.  import sys
  11.  
  12. @@ -54,7 +54,7 @@
  13.      errorMsg.append(wikiutil.renderText(request, WikiParser, _("/!\ Error Message from Macro [[http://moinmo.in/MacroMarket/ShowTweets|ShowTweets]]!")))
  14.      errorMsg.append(fmt.bullet_list(True))
  15.      errorMsg.append(fmt.listitem(True))
  16. -    errorMsg.append(fmt.text(_("Type: %s") % wikiutil.escape(errorType)))
  17. +    errorMsg.append(fmt.text(_("Type: %s") % wikiutil.escape(errorType).decode("utf-8", "replace")))
  18.      errorMsg.append(fmt.listitem(False))
  19.      errorMsg.append(fmt.listitem(True))
  20.      errorMsg.append(fmt.text(_("Message: %s") % wikiutil.escape(errorMessage)))
  21. @@ -64,7 +64,7 @@
  22.      return ''.join(errorMsg)
  23.  
  24.  
  25. -def macro_ShowTweets(macro, user, maxTweets=10):
  26. +def macro_ShowTweets(macro, user, maxTweets=10, noreply=True):
  27.      """
  28.      Creates a ordered list with twitter status messages
  29.      @param user: username from a twitter account, needed
  30. @@ -77,18 +77,22 @@
  31.      fmt = macro.formatter
  32.      _ = request.getText
  33.      output = []
  34. -    tweetNumber = 0
  35. +
  36. +    #Fetch more for filtering
  37. +    fetchNum = maxTweets
  38. +    if noreply:
  39. +        fetchNum *= 10
  40.  
  41.      #You also can use your Twitter Account to request for example privat twitter
  42.      #statuses. but be aware, that for the moment you have to put your userdata
  43.      #and password in cleartext, so make sure that nobody else can read your
  44.      #macro. Change "api = twitter.Api" to
  45.      #"api = twitter.Api(username='username', password='password')"
  46. -    api = twitter.Api()
  47. +    api = tweepy.API()
  48.  
  49.      #get the messages from twitter or use an exception to display an error msg
  50.      try:
  51. -        statuses = api.GetUserTimeline(user=wikiutil.escape(user), count=maxTweets)
  52. +        statuses = api.user_timeline(user=wikiutil.escape(user), count=fetchNum)
  53.      except:
  54.          return errorOutput(macro, _("GetUserTimeline"), str(sys.exc_info()[1]))
  55.  
  56. @@ -97,16 +101,22 @@
  57.      output.append(fmt.bullet_list(True))
  58.  
  59.      #reading tweets
  60. -    for tweetNumber in range(len(statuses)):
  61. +    count = 0
  62. +    for tweet in statuses:
  63. +        if noreply and tweet.text[0] == "@":
  64. +            continue
  65.          output.append(fmt.listitem(True))
  66. -        output.append(wikiutil.renderText(request, WikiParser, wikiutil.escape(statuses[tweetNumber].text)))
  67. +        output.append(wikiutil.renderText(request, WikiParser, wikiutil.escape(tweet.text)))
  68.          output.append(fmt.span(True, css_class="date", style="color:Gray; font-size:75%; display:block;"))
  69. -        output.append(fmt.text(wikiutil.escape(statuses[tweetNumber].created_at)))
  70. +        output.append(fmt.text(wikiutil.escape(tweet.created_at)))
  71.          output.append(fmt.span(False))
  72.          output.append(fmt.listitem(False))
  73. +        count += 1
  74. +        if count >= maxTweets:
  75. +            break
  76.  
  77.      #check if there is atleast one tweet available for ouput
  78. -    if tweetNumber < 1:
  79. +    if count < 1:
  80.          return errorOutput(macro, _("tweetNumber"), _("Can't find any twitter status message from user '%s'" % user))
  81.  
  82.      #finishing output
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement