~gmb/gwibber/dbus-hang-bug-326694

« back to all changes in this revision

Viewing changes to gwibber/microblog/twitter.py

  • Committer: Ryan Paul
  • Date: 2009-02-02 05:39:28 UTC
  • Revision ID: segphault@arstechnica.com-20090202053928-4nzbvg2antw0p17u
Display DMs in the replies tab

Show diffs side-by-side

added added

removed removed

Lines of Context:
46
46
    self.account = client.account
47
47
    self.protocol = client.account["protocol"]
48
48
    self.username = client.account["username"]
49
 
    self.sender = data["user"]["name"]
50
 
    self.sender_nick = data["user"]["screen_name"]
51
 
    self.sender_id = data["user"]["id"]
 
49
 
 
50
    if "user" in data:
 
51
      user = data["user"]
 
52
      self.reply_nick = data["in_reply_to_screen_name"]
 
53
      self.reply_url = "https://twitter.com/%s/statuses/%s" % (data["in_reply_to_screen_name"], data["in_reply_to_status_id"])
 
54
    else:
 
55
      user = data["sender"]
 
56
      self.reply_nick = None
 
57
      self.reply_url = None
 
58
 
 
59
    self.sender = user["name"]
 
60
    self.sender_nick = user["screen_name"]
 
61
    self.sender_id = user["id"]
52
62
    self.time = support.parse_time(data["created_at"])
53
63
    self.text = data["text"]
54
 
    self.image = data["user"]["profile_image_url"]
 
64
    self.image = user["profile_image_url"]
55
65
    self.bgcolor = "message_color"
56
 
    self.url = "https://twitter.com/%s/statuses/%s" % (data["user"]["screen_name"], data["id"])
57
 
    self.profile_url = "https://twitter.com/%s" % data["user"]["screen_name"]
58
 
    self.reply_nick = data["in_reply_to_screen_name"]
59
 
    self.reply_url = "https://twitter.com/%s/statuses/%s" % (data["in_reply_to_screen_name"], data["in_reply_to_status_id"])
 
66
    self.url = "https://twitter.com/%s/statuses/%s" % (user["screen_name"], data["id"])
 
67
    self.profile_url = "https://twitter.com/%s" % user["screen_name"]
 
68
    
60
69
    self.html_string = '<span class="text">%s</span>' % \
61
70
        HASH_PARSE.sub('#<a class="inlinehash" href="gwibber:tag/\\1">\\1</a>',
62
71
      NICK_PARSE.sub('@<a class="inlinenick" href="https://twitter.com/\\1">\\1</a>',
63
72
        support.linkify(self.text)))
64
73
    self.is_reply = re.compile("@%s[\W]+|@%s$" % (self.username, self.username)).search(self.text)
 
74
    self.is_private  = False
65
75
 
66
76
class SearchResult:
67
77
  def __init__(self, client, data, query = None):
121
131
      "https://twitter.com/statuses/replies.json",
122
132
        urllib.urlencode({"count": self.account["receive_count"] or "20"})))
123
133
 
 
134
  def get_direct_messages(self):
 
135
    return simplejson.loads(self.connect(
 
136
      "https://twitter.com/direct_messages.json"))
 
137
 
124
138
  def get_search_data(self, query):
125
139
    return simplejson.loads(urllib2.urlopen(
126
140
      urllib2.Request("http://search.twitter.com/search.json",
144
158
    for data in self.get_replies():
145
159
      yield Message(self, data)
146
160
 
 
161
    for data in self.get_direct_messages():
 
162
      m = Message(self, data)
 
163
      m.is_private = True
 
164
      yield m
 
165
 
147
166
  def receive(self):
148
167
    for data in self.get_messages():
149
168
      yield Message(self, data)