~greg.grossmeier/+junk/laconica.groups

« back to all changes in this revision

Viewing changes to gwibber/microblog/facebook.py

  • Committer: Ryan Paul
  • Date: 2008-12-28 02:52:41 UTC
  • Revision ID: segphault@arstechnica.com-20081228025241-njioksqcdkuno9l5
Refactored microblog library to eliminate minidom usage

Show diffs side-by-side

added added

removed removed

Lines of Context:
4
4
SegPhault (Ryan Paul) - 12/22/2007
5
5
"""
6
6
 
7
 
import urllib2, urllib, re, support, can
8
 
from xml.dom import minidom
 
7
import urllib2, urllib, re, support, can, feedparser
9
8
 
10
9
PROTOCOL_INFO = {
11
10
  "name": "Facebook",
37
36
    self.account = client.account
38
37
    self.protocol = client.account["protocol"]
39
38
    self.username = client.account["username"]
40
 
    self.data = data
41
 
    self.sender = data.getElementsByTagName("author")[0].firstChild.nodeValue
 
39
 
 
40
    self.sender = data.author
42
41
    self.sender_nick = self.sender
43
42
    self.sender_id = self.sender.replace(" ","_")
44
 
    self.time = support.parse_time(data.getElementsByTagName("pubDate")[0].firstChild.nodeValue)
45
 
    self.text = sanitize_text(data.getElementsByTagName("title")[0].firstChild.nodeValue)
 
43
    self.time = support.parse_time(data.updated)
 
44
    self.text = sanitize_text(data.title)
46
45
 
47
46
    if self.text.startswith(self.sender):
48
47
      self.text = self.text[len(self.sender)+1:]
49
48
 
50
 
    self.url = data.getElementsByTagName("link")[0].firstChild.nodeValue
 
49
    self.url = data.link
51
50
    self.bgcolor = "message_color"
52
51
    
53
52
    if self.client.profile_images.has_key(self.sender):
79
78
      self.account["feed_url"] != None
80
79
 
81
80
  def connect(self, url, data = None):
82
 
    return urllib2.urlopen(urllib2.Request(url, data)).read()
 
81
    return urllib2.urlopen(urllib2.Request(url, data))
83
82
 
84
83
  def get_messages(self):
85
 
    return minidom.parseString(self.connect(
86
 
      self.account["feed_url"])).getElementsByTagName("item")
 
84
    return feedparser.parse(self.account["feed_url"])
87
85
 
88
86
  def receive(self):
89
 
    self.profile_images = self.get_images()
90
 
    for data in self.get_messages():
 
87
    if len(self.profile_images) == 0:
 
88
      self.profile_images = self.get_images()
 
89
    
 
90
    for data in self.get_messages().entries:
91
91
      yield Message(self, data)
92
92
 
93
93
  def send(self, message):