3
Open Collaboration Services module for Gwibber
4
SegPhault (Ryan Paul) - 06/17/2009
8
from . import can, support
9
import urllib2, urllib, base64, json
10
from gettext import lgettext as _
32
def __init__(self, client, data):
33
self.id = str(data["id"])
35
self.account = client.account
36
self.service = client.account["service"]
37
self.username = client.account["username"]
39
self.sender = "%s %s" % (data["firstname"], data["lastname"])
40
self.sender_nick = data["personid"]
41
self.sender_id = data["personid"]
42
self.time = support.parse_time(data["timestamp"])
43
self.image = data["avatarpic"]
44
self.bgcolor = "message_color"
45
self.url = data["link"]
46
self.text = data["message"]
47
self.profile_url = client.url(data["profilepage"])
51
def __init__(self, client, data):
53
self.account = client.account
54
self.service = client.account["service"]
55
self.username = client.account["username"]
59
self.sender = data.personid.string #"%s %s" % (data.firstname.string, data.lastname.string)
60
self.sender_nick = data.personid.string
61
self.sender_id = data.personid.string
62
self.time = support.parse_time(data.changed.string)
63
self.image = "http://www.opendesktop.org/usermanager/nopic.png"
64
self.bgcolor = "message_color"
65
self.url = data.detailpage.string
66
self.text = data.find("name").string
67
self.profile_url = "http://opendesktop.org"
71
"src": data.previewpic1.string,
77
self.sender = data["personid"] #"%s %s" % (data["firstname"], data["lastname"])
78
self.sender_nick = data["personid"]
79
self.sender_id = data["personid"]
80
self.time = support.parse_time(data["changed"])
81
self.image = "http://www.opendesktop.org/usermanager/nopic.png"
82
self.bgcolor = "message_color"
83
self.url = data["detailpage"]
84
self.text = data["name"]
85
self.profile_url = "http://opendesktop.org"
89
"src": data["previewpic1"],
94
def __init__(self, acct):
97
def send_enabled(self):
98
return self.account["send_enabled"] and \
99
self.account["username"] != None and \
100
self.account["private:password"] != None
102
def receive_enabled(self):
103
return self.account["receive_enabled"] and \
104
self.account["username"] != None and \
105
self.account["private:password"] != None
108
d = self.account["domain"]
109
if d.startswith("http://") or d.startswith("https://"): return d + path
110
if self.account["allow_insecure"]: return "http://" + d + path
111
return "https://" + d + path
114
return "Basic %s" % base64.encodestring(
115
("%s:%s" % (self.account["username"], self.account["private:password"]))).strip()
117
def connect(self, url, data = None):
118
return urllib2.urlopen(urllib2.Request(
119
self.url(url), data, headers = {"Authorization": self.get_auth()}))
121
def get_messages(self):
122
return json.load(self.connect("/v1/activity?" +
123
urllib.urlencode({"format": "json"})))["data"]
125
def get_search_data(self, query):
126
return json.load(self.connect("/v1/content/data?" +
131
"categories": "120x121x101x100x170x171x172x173x174x175x176x177x178x179",
135
for data in self.get_messages():
136
yield Message(self, data)
138
def search(self, query):
139
for data in self.get_search_data(query):
140
yield SearchResult(self, data)
142
def send(self, message):
143
print self.connect("/v1/activity", urllib.urlencode({"message": message}))