import handle
-class ButterflyTextChannel(
+class TheOneRingChannelText(
telepathy.server.ChannelTypeText,
telepathy.server.ChannelInterfaceGroup,
telepathy.server.ChannelInterfaceChatState
class TheOneRingConnection(telepathy.server.Connection):
- _mandatory_parameters = {
+ MANDATORY_PARAMETERS = {
'account' : 's',
'password' : 's'
}
+ OPTIONAL_PARAMETERS = {
+ }
+ PARAMETER_DEFAULTS = {
+ }
def __init__(self, manager, parameters):
try:
self.check_parameters(parameters)
account = unicode(parameters['account'])
- telepathy.server.Connection.__init__(self, 'gvoice', account, 'theonering')
+ telepathy.server.Connection.__init__(
+ self,
+ constants._telepathy_protocol_name_,
+ account,
+ constants._telepathy_implementation_name_
+ )
self._manager = weakref.proxy(manager)
self._credentials = (
self.set_self_handle(handle.create_handle(self, 'self'))
self.__disconnect_reason = telepathy.CONNECTION_STATUS_REASON_NONE_SPECIFIED
- self._initial_presence = None
- self._initial_personal_message = None
logging.info("Connection to the account %s created" % account)
except Exception, e:
"""
logging.info("Connecting")
self.__disconnect_reason = telepathy.CONNECTION_STATUS_REASON_NONE_SPECIFIED
- self._backend.login(*self._credentials)
+ try:
+ self._backend.login(*self._credentials)
+ except RuntimeError:
+ self.__disconnect_reason = telepathy.CONNECTION_STATUS_REASON_AUTHENTICATION_FAILED
def Disconnect(self):
"""
import gobject
import telepathy
+import constants
import connection
class TheOneRingConnectionManager(telepathy.server.ConnectionManager):
def __init__(self, shutdown_func=None):
- telepathy.server.ConnectionManager.__init__(self, 'theonering')
+ telepathy.server.ConnectionManager.__init__(self, constants._telepathy_implementation_name_)
- self._protos['gvoice'] = connection.TheOneRingConnection
+ self._protos[constants._telepathy_protocol_name_] = connection.TheOneRingConnection
self._on_shutdown = shutdown_func
logging.info("Connection manager created")
def GetParameters(self, proto):
"""
- org.freedesktop.telepathy.ConnectionManager
-
@returns the mandatory and optional parameters for creating a connection
"""
if proto not in self._protos:
raise telepathy.NotImplemented('unknown protocol %s' % proto)
result = []
- connection_class = self._protos[proto]
- mandatory_parameters = connection_class._mandatory_parameters
- optional_parameters = connection_class._optional_parameters
- default_parameters = connection_class._parameter_defaults
+ ConnectionClass = self._protos[proto]
+ mandatoryParameters = ConnectionClass.MANDATORY_PARAMETERS
+ optionalParameters = ConnectionClass.OPTIONAL_PARAMETERS
+ defaultParameters = ConnectionClass.PARAMETER_DEFAULTS
- for parameter_name, parameter_type in mandatory_parameters.iteritems():
+ for parameterName, parameterType in mandatoryParameters.iteritems():
param = (
- parameter_name,
+ parameterName,
telepathy.CONN_MGR_PARAM_FLAG_REQUIRED,
- parameter_type,
+ parameterType,
'',
)
result.append(param)
- for parameter_name, parameter_type in optional_parameters.iteritems():
- if parameter_name in default_parameters:
+ for parameterName, parameterType in optionalParameters.iteritems():
+ if parameterName in defaultParameters:
param = (
- parameter_name,
+ parameterName,
telepathy.CONN_MGR_PARAM_FLAG_HAS_DEFAULT,
- parameter_name,
- default_parameters[parameter_name],
+ parameterName,
+ defaultParameters[parameterName],
)
else:
- param = (parameter_name, 0, parameter_name, '')
+ param = (parameterName, 0, parameterName, '')
result.append(param)
return result
__app_magic__ = 0xdeadbeef
_data_path_ = os.path.join(os.path.expanduser("~"), ".telepathy-theonering")
_user_settings_ = "%s/settings.ini" % _data_path_
+_telepathy_protocol_name_ = "gvoice"
+_telepathy_implementation_name_ = "theonering"
}
-class ButterflySimplePresence(telepathy.server.ConnectionInterfaceSimplePresence):
+class TheOneRingSimplePresence(telepathy.server.ConnectionInterfaceSimplePresence):
def __init__(self):
telepathy.server.ConnectionInterfaceSimplePresence.__init__(self)
manager.quit()
mainloop.quit()
+ def timeout_cb():
+ if len(manager._connections) == 0:
+ logging.info('No connection received - quitting')
+ quit()
+ return False
- if 'BUTTERFLY_PERSIST' not in os.environ:
- def timeout_cb():
- if len(manager._connections) == 0:
- logging.info('No connection received - quitting')
- quit()
- return False
+ if 'THEONERING_PERSIST' not in os.environ:
gobject.timeout_add(IDLE_TIMEOUT, timeout_cb)
shutdown_callback = quit
else:
if __name__ == '__main__':
- telepathy_utils.debug_divert_messages(os.getenv('BUTTERFLY_LOGFILE'))
+ telepathy_utils.debug_divert_messages(os.getenv('THEONERING_LOGFILE'))
logging.basicConfig(level=logging.DEBUG)
run_theonering()