26
26
from random import random
28
29
class GwibberHelper(object):
29
""" A helper class for gwibber. ideally we would just use
30
""" A helper class for gwibber. ideally we would just use
30
31
from gi.repository import Gwibber
31
32
accounts = Gwibbers.Accounts()
58
59
"/com/gwibber/Service")
59
60
service_iface = dbus.Interface(proxy_obj, "com.Gwibber.Service")
61
json_str = json.dumps({'message' : message,
62
'accounts' : [account_id],
62
json_str = json.dumps({'message': message,
63
'accounts': [account_id],
64
65
service_iface.Send(json_str)
66
67
service_iface.SendMessage(message)
84
85
logging.exception("GwibberHelper.has_accounts_in_sqlite() failed")
87
89
class GwibberHelperMock(object):
89
fake_gwibber_accounts_one = [{u'username': u'randomuser', u'user_id': u'2323434224', u'service': u'twitter', u'secret_token': u':some-token', u'color': u'#729FCF', u'receive_enabled': True, u'access_token': u'some_access_token', u'send_enabled': True, u'id': u'twitter-id-random-15af8bddb6'}]
90
fake_gwibber_accounts_multiple = [{u'username': u'random1 with a very long name', u'user_id': u'2342342313', u'service': u'twitter', u'secret_token': u':some-token', u'color': u'#729FCF', u'receive_enabled': True, u'access_token': u'some_access_token', u'send_enabled': True, u'id': u'twitter-id-rnadomuser-radfsdf'}, {u'username': u'mpt', u'user_id': u'23safdsaf5', u'service': u'twitter', u'secret_token': u':some_otken', u'color': u'#729FCF', u'receive_enabled': True, u'access_token': u'some_access_token', u'send_enabled': True, u'id': u'twitter-id-mpt-afsdfsa'}]
91
fake_gwibber_accounts_one = [
92
{u'username': u'randomuser',
93
u'user_id': u'2323434224',
94
u'service': u'twitter',
95
u'secret_token': u':some-token',
97
u'receive_enabled': True,
98
u'access_token': u'some_access_token',
99
u'send_enabled': True,
100
u'id': u'twitter-id-random-15af8bddb6'}
102
fake_gwibber_accounts_multiple = [
103
{u'username': u'random1 with a very long name',
104
u'user_id': u'2342342313',
105
u'service': u'twitter',
106
u'secret_token': u':some-token',
107
u'color': u'#729FCF',
108
u'receive_enabled': True,
109
u'access_token': u'some_access_token',
110
u'send_enabled': True,
111
u'id': u'twitter-id-rnadomuser-radfsdf'},
112
{u'username': u'mpt',
113
u'user_id': u'23safdsaf5',
114
u'service': u'twitter',
115
u'secret_token': u':some_otken',
116
u'color': u'#729FCF',
117
u'receive_enabled': True,
118
u'access_token': u'some_access_token',
119
u'send_enabled': True,
120
u'id': u'twitter-id-mpt-afsdfsa'}
92
123
def accounts(self):
102
133
def send_message(self, message, account_id="all"):
103
134
sys.stderr.write("sending '%s' to '%s'\n" % (message, account_id))
104
#used for testing purposes, to emulate a gwibber failure for ~1 out of every 5 attempts
135
# used for testing purposes, to emulate a gwibber failure for ~1 out
136
# of every 5 attempts
106
if r < 0.2 and not "SOFTWARE_CENTER_GWIBBER_MOCK_NO_FAIL" in os.environ:
139
not "SOFTWARE_CENTER_GWIBBER_MOCK_NO_FAIL" in os.environ):
110
143
def has_accounts_in_sqlite():
114
GWIBBER_SERVICE_AVAILABLE = GwibberHelper.has_accounts_in_sqlite() and os.path.exists("/usr/bin/gwibber-poster")
147
GWIBBER_SERVICE_AVAILABLE = GwibberHelper.has_accounts_in_sqlite() and \
148
os.path.exists("/usr/bin/gwibber-poster")