def category_register(self): import songretriever extension.category_register(CATEGORY, songretriever.BaseMusicHandler, songretriever.BaseMusicHandler, True) if self._supported_version("2.11.12-devel"): extension.register("userpanel button", MusicButton.MusicButton) return True
def start(self, session): #FIXME: remove the first check once we depend on 2.12.5+ if hasattr(extension, 'unregister'): extension.register('below conversation', TypingNotification.TypingNotification, force_default=True) else: extension.register('below conversation', TypingNotification.TypingNotification) return True
def setup(): """ define all the components for a gtk environment """ import gtk extension.category_register('dialog', Dialog.Dialog) extension.category_register('image chooser', ImageChooser.ImageChooser) extension.category_register('avatar chooser', AvatarChooser.AvatarChooser) extension.category_register('preferences', Preferences.Preferences) extension.category_register('login window', Login.Login) extension.category_register('connecting window', Login.ConnectingWindow) extension.category_register('window frame', Window.Window) extension.category_register('main window', MainWindow.MainWindow) extension.category_register('contact list', ContactList.ContactList) extension.category_register('nick renderer', Renderers.CellRendererPlus) extension.register('nick renderer', gtk.CellRendererText) extension.register('nick renderer', Renderers.CellRendererNoPlus) extension.register('nick renderer', Renderers.GtkCellRenderer) extension.category_register('user panel', UserPanel.UserPanel) extension.category_register('tray icon', TrayIcon.TrayIcon) extension.category_register('debug window', DebugWindow.DebugWindow) extension.category_register('main menu', MainMenu.MainMenu) extension.category_register('menu file', MainMenu.FileMenu) extension.category_register('menu actions', MainMenu.ActionsMenu) extension.category_register('menu options', MainMenu.OptionsMenu) extension.category_register('menu contact', ContactMenu.ContactMenu) extension.category_register('menu group', GroupMenu.GroupMenu) extension.category_register('menu account', AccountMenu.AccountMenu) extension.category_register('menu help', MainMenu.HelpMenu) extension.category_register('menu status', StatusMenu.StatusMenu) extension.category_register('below menu', EmptyWidget.EmptyWidget) extension.category_register('below panel', EmptyWidget.EmptyWidget) extension.category_register('below userlist', EmptyWidget.EmptyWidget) extension.category_register('conversation window', \ ConversationManager.ConversationManager) extension.category_register('conversation', Conversation.Conversation) extension.category_register('conversation header', Header.Header) extension.category_register('conversation info', ContactInfo.ContactInfo) extension.category_register('conversation tab', TabWidget.TabWidget) extension.category_register('conversation input', TextBox.InputText) extension.category_register('conversation toolbar', \ ConversationToolbar.ConversationToolbar) extension.category_register('plugin window', \ PluginWindow.PluginWindow) extension.category_register('preferences dialog', config_gtk.build_window) if not WebKitTextBox.ERROR: extension.category_register('conversation output', WebKitTextBox.OutputText) extension.register('conversation output', TextBox.OutputText) extension.register('conversation output', AdiumTextBox.OutputText) else: extension.category_register('conversation output', TextBox.OutputText)
def import_and_register(category_name, cls): try: imported_cls = __import__('gui.common.'+cls) if extension.get_category(category_name) is None: extension.category_register(category_name, eval(cls+'.'+cls)) else: extension.register(category_name, eval(cls+'.'+cls)) return imported_cls except ImportError: return None
def _setup(self): '''register core extensions''' #extension.category_register('session', dummy.Session, # single_instance=True) #if Info.EMESENE_VERSION.endswith("dev"): # extension.register('session', dummy.Session) #if webqq is not None: # extension.register('session', webqq.Session) # extension.set_default('session', webqq.Session) #if xmpp is not None: # extension.register('session', xmpp.Session) # extension.set_default('session', xmpp.Session) if whatsapp is not None: extension.register('session', whatsapp.Session) extension.set_default('session', whatsapp.Session) #if papylib is not None: # extension.register('session', papylib.Session) # extension.set_default('session', papylib.Session) #external API stuff self.dbus_ext = extension.get_and_instantiate('external api') self.network_checker = extension.get_and_instantiate( 'network checker') self.unity_launcher = extension.get_and_instantiate('unity launcher') extension.category_register('sound', e3.common.Sounds.SoundPlayer, None, True) extension.category_register('notification', e3.common.notification.Notification) extension.category_register('history exporter', e3.Logger.ExporterTxt) extension.register('history exporter', e3.Logger.ExporterXml) extension.register('history exporter', e3.Logger.ExporterHtml) extension.register('history exporter', e3.Logger.ExporterCsv) extension.register('history exporter', e3.Logger.ExporterJSON) # ui callbacks for plugins extension.category_register('send message callback handler', e3.common.PriorityList, single_instance=True) extension.category_register('receive message callback handler', e3.common.PriorityList, single_instance=True) if self.config.session is None: default_id = extension.get_category('session').default_id self.config.session = default_id else: default_id = self.config.session extension.set_default_by_id('session', default_id)
def main(): """ the main method of emesene """ extension.category_register("session", dummy.Session, single_instance=True) extension.category_register("option provider", None, interfaces=interfaces.IOptionProvider) extension.register("quit", sys.exit) extension.get_category("option provider").multi_extension = True extension.get_category("option provider").activate(optionprovider.ExtensionDefault) options = optionprovider.PluggableOptionParser(args=emesene_args) options.read_options() main_method = extension.get_default("main") main_method(Controller)
def _setup(self): '''register core extensions''' extension.category_register('session', msn.Session, single_instance=True) extension.register('session', jabber.Session) extension.register('session', dummy.Session) extension.register('session', msn.Session) if papylib is not None: extension.register('session', papylib.Session) extension.set_default('session', papylib.Session) else: extension.set_default('session', msn.Session) extension.category_register('sound', e3.common.play_sound.play) extension.category_register('notification', e3.common.notification.Notification) extension.category_register('history exporter', e3.Logger.save_logs_as_txt) if self.config.session is None: default_id = extension.get_category('session').default_id self.config.session = default_id else: default_id = self.config.session extension.set_default_by_id('session', default_id) get_pluginmanager().scan_directory('plugins')
def _setup(self): """register core extensions""" extension.category_register("session", msn.Session, single_instance=True) extension.register("session", jabber.Session) extension.register("session", dummy.Session) extension.register("session", msn.Session) if papylib is not None: extension.register("session", papylib.Session) extension.set_default("session", papylib.Session) else: extension.set_default("session", msn.Session) extension.category_register("sound", e3.common.play_sound.play) extension.category_register("notification", e3.common.notification.Notification) extension.category_register("history exporter", e3.Logger.save_logs_as_txt) if self.config.session is None: default_id = extension.get_category("session").default_id self.config.session = default_id else: default_id = self.config.session extension.set_default_by_id("session", default_id) get_pluginmanager().scan_directory("plugins")
def start(self, session): """start the plugin""" self.session = session extension.category_register(CATEGORY, songretriever.BaseMusicHandler, songretriever.BaseMusicHandler, True) self.extensions_register() extension.get_and_instantiate(CATEGORY, session) if hasattr(extension, "unregister"): extension.register("userpanel button", MusicButton.MusicButton, force_default=True) else: extension.register("userpanel button", MusicButton.MusicButton) return True
def _setup(self): '''register core extensions''' extension.category_register('session', dummy.Session, single_instance=True) #extension.category_register('session', msn.Session, # single_instance=True) if jabber is not None: extension.register('session', jabber.Session) extension.register('session', dummy.Session) #extension.register('session', msn.Session) if papylib is not None: extension.register('session', papylib.Session) extension.set_default('session', papylib.Session) else: extension.set_default('session', dummy.Session) #DBus extension stuffs if DBusController is not None: extension.category_register('external api', DBusController) extension.set_default('external api', DBusController) self.dbus_ext = extension.get_and_instantiate('external api') else: self.dbus_ext = None if NetworkChecker is not None: extension.category_register('network checker', NetworkChecker) extension.set_default('network checker', NetworkChecker) self.network_checker = extension.get_and_instantiate( 'network checker') else: self.network_checker = None self.unity_launcher = extension.get_and_instantiate('unity launcher') extension.category_register('sound', e3.common.Sounds.SoundPlayer, None, True) extension.category_register('notification', e3.common.notification.Notification) extension.category_register('history exporter', e3.Logger.save_logs_as_txt) extension.register('history exporter', e3.Logger.save_logs_as_xml) if self.config.session is None: default_id = extension.get_category('session').default_id self.config.session = default_id else: default_id = self.config.session extension.set_default_by_id('session', default_id)
def _setup(self): '''register core extensions''' extension.category_register('session', dummy.Session, single_instance=True) #extension.category_register('session', msn.Session, # single_instance=True) extension.register('session', jabber.Session) extension.register('session', dummy.Session) #extension.register('session', msn.Session) if papylib is not None: extension.register('session', papylib.Session) extension.set_default('session', papylib.Session) else: extension.set_default('session', dummy.Session) #DBus extension stuffs extension.category_register('external api', DBusController) extension.set_default('external api', DBusController) self.dbus_ext = extension.get_and_instantiate('external api') extension.category_register('sound', e3.common.play_sound.play) extension.category_register('notification', e3.common.notification.Notification) extension.category_register('history exporter', e3.Logger.save_logs_as_txt) if self.config.session is None: default_id = extension.get_category('session').default_id self.config.session = default_id else: default_id = self.config.session extension.set_default_by_id('session', default_id)
def _setup(self): """register core extensions""" extension.category_register("session", dummy.Session, single_instance=True) # extension.category_register('session', msn.Session, # single_instance=True) if jabber is not None: extension.register("session", jabber.Session) extension.register("session", dummy.Session) # extension.register('session', msn.Session) if papylib is not None: extension.register("session", papylib.Session) extension.set_default("session", papylib.Session) else: extension.set_default("session", dummy.Session) # DBus extension stuffs if DBusController is not None: extension.category_register("external api", DBusController) extension.set_default("external api", DBusController) self.dbus_ext = extension.get_and_instantiate("external api") else: self.dbus_ext = None extension.category_register("sound", e3.common.play_sound.play) extension.category_register("notification", e3.common.notification.Notification) extension.category_register("history exporter", e3.Logger.save_logs_as_txt) if self.config.session is None: default_id = extension.get_category("session").default_id self.config.session = default_id else: default_id = self.config.session extension.set_default_by_id("session", default_id)
def _setup(self): """register core extensions""" extension.category_register("session", dummy.Session, single_instance=True) # extension.category_register('session', msn.Session, # single_instance=True) if jabber is not None: extension.register("session", jabber.Session) extension.register("session", dummy.Session) # extension.register('session', msn.Session) if papylib is not None: extension.register("session", papylib.Session) extension.set_default("session", papylib.Session) else: extension.set_default("session", dummy.Session) # DBus extension stuffs if DBusController is not None: extension.category_register("external api", DBusController) extension.set_default("external api", DBusController) self.dbus_ext = extension.get_and_instantiate("external api") else: self.dbus_ext = None if DBusNetworkChecker is not None: extension.category_register("network checker", DBusNetworkChecker) extension.set_default("network checker", DBusNetworkChecker) self.network_checker = extension.get_and_instantiate("network checker") else: self.network_checker = None if UnityLauncher is not None: extension.category_register("unity launcher", UnityLauncher) extension.set_default("unity launcher", UnityLauncher) self.unity_launcher = extension.get_and_instantiate("unity launcher", self.close_session) else: self.unity_launcher = None extension.category_register("sound", e3.common.Sounds.SoundPlayer, None, True) extension.category_register("notification", e3.common.notification.Notification) extension.category_register("history exporter", e3.Logger.save_logs_as_txt) if self.config.session is None: default_id = extension.get_category("session").default_id self.config.session = default_id else: default_id = self.config.session extension.set_default_by_id("session", default_id)
self.delete_method(name) self.objects[name] = create_dbus_method(name, callback, input_types, output_types) def delete_method(self, name): self.objects[name].remove_from_connection() def expose_event(self, name, output_types): self.events[name] = create_dbus_event(name, output_types) def emit_event(self, name, *args): if not name in self.events: raise ValueError self.events[name].event(*args) extension.register('external api', DBus) else: #ERROR class DummyExternalAPI(object): provides = ('external api', ) def __init__(self): pass def expose_method(self, name, callback, input_types, output_types): pass def delete_method(self, name, callback): pass
# (follows) ... while processing Qt's events in glib's # main loop freezes the application on linux ^_^ global GCONTEXT GCONTEXT = g_main_loop.get_context() idletimer.start(10) app.exec_() # pylint: disable=W0612 qt4_main.NAME = "qt4_main" qt4_main.DESCRIPTION = "This extensions uses Qt to build the GUI" qt4_main.AUTHOR = "Gabriele Whisky Visconti" qt4_main.WEBSITE = "" # pylint: enable=W0612 extension.register('main', qt4_main) def setup(): """ define all the components for a Qt4 environment """ # pylint: disable=W0403 import AvatarChooser import Conversation import DebugWindow import Dialog import Notifier import PictureHandler import Preferences import TopLevelWindow
def _setup(self): '''register core extensions''' extension.category_register('session', dummy.Session, single_instance=True) extension.register('session', dummy.Session) if webqq is not None: extension.register('session', webqq.Session) extension.set_default('session', webqq.Session) if xmpp is not None: extension.register('session', xmpp.Session) extension.set_default('session', xmpp.Session) if papylib is not None: extension.register('session', papylib.Session) extension.set_default('session', papylib.Session) #external API stuff self.dbus_ext = extension.get_and_instantiate('external api') self.network_checker = extension.get_and_instantiate( 'network checker') self.unity_launcher = extension.get_and_instantiate('unity launcher') extension.category_register('sound', e3.common.Sounds.SoundPlayer, None, True) extension.category_register('notification', e3.common.notification.Notification) extension.category_register('history exporter', e3.Logger.ExporterTxt) extension.register('history exporter', e3.Logger.ExporterXml) extension.register('history exporter', e3.Logger.ExporterHtml) extension.register('history exporter', e3.Logger.ExporterCsv) extension.register('history exporter', e3.Logger.ExporterJSON) if self.config.session is None: default_id = extension.get_category('session').default_id self.config.session = default_id else: default_id = self.config.session extension.set_default_by_id('session', default_id)
def extensions_register(self): extension.register('after_new_conversation', LastSaid.LastSaid)
def setup(): """ define all the components for a gtk environment """ global WEBKITERROR, INDICATORERROR import gtk gtk.settings_get_default().set_property("gtk-error-bell", False) extension.category_register('dialog', Dialog.Dialog) extension.category_register('image chooser', ImageChooser.ImageChooser) extension.category_register('avatar chooser', AvatarChooser.AvatarChooser) extension.category_register('avatar', Avatar.Avatar) extension.category_register('avatar renderer', Renderers.AvatarRenderer) extension.category_register('preferences', Preferences.Preferences) extension.category_register('login window', Login.Login) extension.category_register('connecting window', Login.ConnectingWindow) extension.category_register('window frame', Window.Window) extension.category_register('main window', MainWindow.MainWindow) extension.category_register('contact list', ContactList.ContactList) extension.category_register('nick renderer', Renderers.CellRendererPlus) extension.register('nick renderer', Renderers.CellRendererNoPlus) extension.category_register('user panel', UserPanel.UserPanel) if not INDICATORERROR: extension.category_register('tray icon', Indicator.Indicator) extension.register('tray icon', TrayIcon.TrayIcon) else: extension.category_register('tray icon', TrayIcon.TrayIcon) extension.category_register('debug window', DebugWindow.DebugWindow) extension.category_register('nice bar', NiceBar.NiceBar) extension.category_register('main menu', MainMenu.MainMenu) extension.category_register('menu file', MainMenu.FileMenu) extension.category_register('menu actions', MainMenu.ActionsMenu) extension.category_register('menu options', MainMenu.OptionsMenu) extension.category_register('menu contact', ContactMenu.ContactMenu) extension.category_register('menu group', GroupMenu.GroupMenu) extension.category_register('menu account', AccountMenu.AccountMenu) extension.category_register('menu help', MainMenu.HelpMenu) extension.category_register('menu status', StatusMenu.StatusMenu) extension.category_register('below menu', EmptyWidget.EmptyWidget) extension.category_register('below panel', EmptyWidget.EmptyWidget) extension.category_register('below userlist', EmptyWidget.EmptyWidget) extension.category_register('conversation window', \ ConversationManager.ConversationManager) extension.category_register('conversation', Conversation.Conversation) extension.category_register('conversation header', Header.Header) extension.category_register('conversation info', ContactInfo.ContactInfo) extension.category_register('conversation tab', TabWidget.TabWidget) extension.category_register('conversation input', TextBox.InputText) extension.category_register('conversation toolbar', \ ConversationToolbar.ConversationToolbar) extension.category_register('plugin window', \ PluginWindow.PluginWindow) extension.category_register('preferences dialog', config_gtk.build_window) extension.category_register('image area selector', ImageAreaSelector.ImageAreaSelectorDialog) extension.category_register('filetransfer pool', FileTransferBarWidget.FileTransferBarWidget) extension.category_register('filetransfer widget', FileTransferWidget.FileTransferWidget) if not WEBKITERROR: extension.category_register('conversation output', AdiumTextBox.OutputText) extension.register('conversation output', TextBox.OutputText) else: extension.category_register('conversation output', TextBox.OutputText) try: import PyNotification extension.category_register(('notificationGUI'), PyNotification.pyNotification) extension.register(('notificationGUI'), GtkNotification.gtkNotification) except: extension.category_register(('notificationGUI'), GtkNotification.gtkNotification) extension.category_register('picture handler', PictureHandler.PictureHandler)
def extension_register(self): if sys.platform == "linux2" or sys.platform == 'linux3': #import unix players extension.register(CATEGORY, handler_mpris.Amarok2Handler) extension.register(CATEGORY, handler_mpris.AudaciousHandler) extension.register(CATEGORY, handler_banshee.BansheeHandler) extension.register(CATEGORY, handler_mpris.ClementineHandler) extension.register(CATEGORY, handler_exaile.ExaileHandler) extension.register(CATEGORY, handler_mpris2.GMusicBrowserHandler) extension.register(CATEGORY, handler_mpris.GuayadequeHandler) extension.register(CATEGORY, handler_lastfm.LastfmHandler) extension.register(CATEGORY, handler_moc.MocHandler) extension.register(CATEGORY, handler_mpd.MpdHandler) extension.register(CATEGORY, handler_mpris2.PraghaHandler) extension.register(CATEGORY, handler_mpris2.RhythmboxHandler) extension.register(CATEGORY, handler_mpris2.AudaciousHandler) extension.register(CATEGORY, handler_rhythmbox.RhythmboxHandler) if XMMSCLIENT: extension.register(CATEGORY, handler_xmms2.Xmms2Handler) handler_id = self.session.config.d_extensions.get(CATEGORY, None) if handler_id is None: handler_id = extension._get_class_name(handler_rhythmbox.RhythmboxHandler) self.session.config.d_extensions.get(CATEGORY, handler_id) elif sys.platform == "darwin": #OS X players extension.register(CATEGORY, handler_itunes.iTunesHandler) extension.register(CATEGORY, handler_spotify.SpotifyHandler) handler_id = self.session.config.d_extensions.get(CATEGORY, None) if handler_id is None: handler_id = extension._get_class_name(handler_rhythmbox.RhythmboxHandler) self.session.config.d_extensions.get(CATEGORY, handler_id) else: #import Windows players extension.register(CATEGORY, handler_atunes.aTunesHandler) extension.register(CATEGORY, handler_foobar2000.Foobar2000Handler) extension.register(CATEGORY, handler_gomplayer.GOMPlayerHandler) extension.register(CATEGORY, handler_mediamonkey.MediaMonkeyHandler) extension.register(CATEGORY, handler_mediaplayerclassic.MediaPlayerClassicHandler) extension.register(CATEGORY, handler_onebyone.OneByOneHandler) extension.register(CATEGORY, handler_realplayer.RealPlayerHandler) extension.register(CATEGORY, handler_smplayer.SMPlayerHandler) extension.register(CATEGORY, handler_winamp.WinampHandler) extension.register(CATEGORY, handler_xmplay.XMPlayHandler) handler_id = self.session.config.d_extensions.get(CATEGORY, None) if handler_id is None: handler_id = extension._get_class_name(handler_winamp.WinampHandler) self.session.config.d_extensions.get(CATEGORY, handler_id) extension.set_default_by_id(CATEGORY, handler_id) if hasattr(extension, 'unregister'): extension.register('userpanel button', MusicButton.MusicButton, force_default=True) else: extension.register('userpanel button', MusicButton.MusicButton)
def __destroy_dbus_session(self): '''Destroy current dbus session''' if self.__dbus_object: try: dbus.service.Object.remove_from_connection( self.__dbus_object) except AttributeError: pass self.__dbus_object = None #Callback functions def __on_status_changed(self, status): self.__dbus_object.status_changed(status) extension.register('external api', DBusController) class EmeseneObject(dbus.service.Object): """ The object that is exported via DBUS """ def __init__(self, bus_name, object_path, session, window): try: dbus.service.Object.__init__(self, bus_name, object_path) except Exception, ex: print 'Emesene DBUS error: %s' % str(ex) self.__session = session self.__window = window def get_session(self):
def extensions_register(self): import handler_amarok2 import handler_audacious2 import handler_banshee import handler_exaile import handler_gmusicbrowser import handler_guayadeque import handler_lastfm import handler_moc import handler_mpd import handler_mpris import handler_rhythmbox try: import handler_xmms2 XMMSCLIENT = True except ImportError: XMMSCLIENT = False extension.register(CATEGORY, handler_amarok2.Amarok2Handler) extension.register(CATEGORY, handler_audacious2.Audacious2Handler) extension.register(CATEGORY, handler_banshee.BansheeHandler) extension.register(CATEGORY, handler_exaile.ExaileHandler) extension.register(CATEGORY, handler_gmusicbrowser.GMusicBrowserHandler) extension.register(CATEGORY, handler_guayadeque.GuayadequeHandler) extension.register(CATEGORY, handler_lastfm.LastfmHandler) extension.register(CATEGORY, handler_moc.MocHandler) extension.register(CATEGORY, handler_mpd.MpdHandler) extension.register(CATEGORY, handler_mpris.MprisHandler) extension.register(CATEGORY, handler_rhythmbox.RhythmboxHandler) if XMMSCLIENT: extension.register(CATEGORY, handler_xmms2.Xmms2Handler) handler_id = self.session.config.d_extensions.get(CATEGORY, None) if handler_id is None: handler_id = extension._get_class_name(handler_rhythmbox.RhythmboxHandler) self.session.config.d_extensions.get(CATEGORY, handler_id) extension.set_default_by_id(CATEGORY, handler_id)
def setup(): """ define all the components for a Qt4 environment """ # pylint: disable=W0403 import AvatarChooser import Conversation import DebugWindow import Dialog import Notifier import PictureHandler import Preferences import TopLevelWindow import TrayIcon import menus import pages import widgets extension.category_register('avatar chooser', AvatarChooser.AvatarChooser) extension.category_register('conversation', Conversation.Conversation) extension.category_register('dialog', Dialog.Dialog) extension.category_register('debug window', DebugWindow.DebugWindow) extension.category_register('notificationGUI', Notifier.Notifier) extension.category_register('preferences', Preferences.Preferences, single_instance=True) extension.category_register('window frame', TopLevelWindow.TopLevelWindow) extension.category_register('tray icon', TrayIcon.TrayIcon) #FIXME: extension.set_default('tray icon', TrayIcon.TrayIcon) extension.category_register('connecting window', pages.ConnectingPage) extension.category_register('conversation window', pages.ConversationPage) extension.category_register('login window', pages.LoginPage) extension.category_register('main window', pages.MainPage) extension.category_register('contact list', widgets.ContactList) extension.category_register('conversation input', widgets.ChatInput) extension.category_register('conversation toolbar', widgets.ConversationToolbar) extension.category_register('avatar', widgets.DisplayPic) extension.category_register('image area selector', widgets.ImageAreaSelector) extension.category_register('nick edit', widgets.NickEdit) extension.category_register('smiley chooser', widgets.SmileyPopupChooser) extension.category_register('status combo', widgets.StatusCombo) # TODO: change this extension's name to 'conversation header' ?? extension.category_register('info panel', widgets.UserInfoPanel) #extension.category_register('filetransfer widget', widgets.FileTransfer) try: import PyQt4.QtWebKit extension.category_register('conversation output', widgets.AdiumChatOutput) extension.register('conversation output', widgets.ChatOutput) except: extension.category_register('conversation output', widgets.ChatOutput) extension.category_register('main menu', menus.MainMenu) extension.category_register('menu file', menus.FileMenu) extension.category_register('menu actions', menus.ActionsMenu) extension.category_register('menu options', menus.OptionsMenu) extension.category_register('menu help', menus.HelpMenu) extension.category_register('menu contact', menus.ContactMenu) extension.category_register('menu group', menus.GroupMenu) extension.category_register('menu profile', menus.ProfileMenu) extension.category_register('menu status', menus.StatusMenu) extension.category_register('tray main menu', menus.TrayMainMenu) extension.category_register('tray login menu', menus.TrayLoginMenu) extension.category_register('picture handler', PictureHandler.PictureHandler)
def _setup(self): '''register core extensions''' extension.category_register('session', dummy.Session, single_instance=True) if Info.EMESENE_VERSION.endswith("dev"): extension.register('session', dummy.Session) if webqq is not None: extension.register('session', webqq.Session) extension.set_default('session', webqq.Session) if xmpp is not None: extension.register('session', xmpp.Session) extension.set_default('session', xmpp.Session) if papylib is not None: extension.register('session', papylib.Session) extension.set_default('session', papylib.Session) #external API stuff self.dbus_ext = extension.get_and_instantiate('external api') self.network_checker = extension.get_and_instantiate('network checker') self.unity_launcher = extension.get_and_instantiate('unity launcher') extension.category_register('sound', e3.common.Sounds.SoundPlayer, None, True) extension.category_register('notification', e3.common.notification.Notification) extension.category_register('history exporter', e3.Logger.ExporterTxt) extension.register('history exporter', e3.Logger.ExporterXml) extension.register('history exporter', e3.Logger.ExporterHtml) extension.register('history exporter', e3.Logger.ExporterCsv) extension.register('history exporter', e3.Logger.ExporterJSON) # ui callbacks for plugins extension.category_register('send message callback handler', e3.common.PriorityList, single_instance=True) extension.category_register('receive message callback handler', e3.common.PriorityList, single_instance=True) if self.config.session is None: default_id = extension.get_category('session').default_id self.config.session = default_id else: default_id = self.config.session extension.set_default_by_id('session', default_id)
def setup(): """ define all the components for a gtk environment """ global WEBKITERROR, INDICATORERROR import gtk extension.category_register('dialog', Dialog.Dialog) extension.category_register('image chooser', ImageChooser.ImageChooser) extension.category_register('avatar chooser', AvatarChooser.AvatarChooser) extension.category_register('avatar', Avatar.Avatar) extension.category_register('avatar manager', AvatarManager.AvatarManager) extension.category_register('avatar renderer', Renderers.AvatarRenderer) extension.category_register('preferences', Preferences.Preferences) extension.category_register('login window', Login.Login) extension.category_register('connecting window', Login.ConnectingWindow) extension.category_register('window frame', Window.Window) extension.category_register('main window', MainWindow.MainWindow) extension.category_register('contact list', ContactList.ContactList) extension.category_register('nick renderer', Renderers.CellRendererPlus) extension.register('nick renderer', gtk.CellRendererText) extension.register('nick renderer', Renderers.CellRendererNoPlus) extension.register('nick renderer', Renderers.GtkCellRenderer) extension.category_register('user panel', UserPanel.UserPanel) if not INDICATORERROR: extension.category_register('tray icon', Indicator.Indicator) extension.register('tray icon', TrayIcon.TrayIcon) else: extension.category_register('tray icon', TrayIcon.TrayIcon) extension.category_register('debug window', DebugWindow.DebugWindow) extension.category_register('nice bar', NiceBar.NiceBar) extension.category_register('main menu', MainMenu.MainMenu) extension.category_register('menu file', MainMenu.FileMenu) extension.category_register('menu actions', MainMenu.ActionsMenu) extension.category_register('menu options', MainMenu.OptionsMenu) extension.category_register('menu contact', ContactMenu.ContactMenu) extension.category_register('menu group', GroupMenu.GroupMenu) extension.category_register('menu account', AccountMenu.AccountMenu) extension.category_register('menu help', MainMenu.HelpMenu) extension.category_register('menu status', StatusMenu.StatusMenu) extension.category_register('below menu', EmptyWidget.EmptyWidget) extension.category_register('below panel', EmptyWidget.EmptyWidget) extension.category_register('below userlist', EmptyWidget.EmptyWidget) extension.category_register('conversation window', \ ConversationManager.ConversationManager) extension.category_register('conversation', Conversation.Conversation) extension.category_register('conversation header', Header.Header) extension.category_register('conversation info', ContactInfo.ContactInfo) extension.category_register('conversation tab', TabWidget.TabWidget) extension.category_register('conversation input', TextBox.InputText) extension.category_register('conversation toolbar', \ ConversationToolbar.ConversationToolbar) extension.category_register('plugin window', \ PluginWindow.PluginWindow) extension.category_register('preferences dialog', config_gtk.build_window) extension.category_register('image area selector', ImageAreaSelector.ImageAreaSelectorDialog) extension.category_register('filetransfer pool', FileTransferBarWidget.FileTransferBarWidget) extension.category_register('filetransfer widget', FileTransferWidget.FileTransferWidget) if not WEBKITERROR: extension.category_register('conversation output', AdiumTextBox.OutputText) extension.register('conversation output', TextBox.OutputText) else: extension.category_register('conversation output', TextBox.OutputText)
def extensions_register(self): extension.register('below userlist', StatusCombo.StatusCombo)
def setup(): """ define all the components for a gtk environment """ global WEBKITERROR, INFOBARERROR import gtk gtk.settings_get_default().set_property("gtk-error-bell", False) extension.register('quit', gtk.main_quit) extension.set_default('quit', gtk.main_quit) extension.category_register('dialog', Dialog.Dialog) extension.category_register('avatar chooser', AvatarChooser.AvatarChooser) extension.category_register('avatar', Avatar.Avatar) extension.category_register('avatar manager', AvatarManager.AvatarManager) extension.category_register('preferences', Preferences.Preferences, single_instance=True) extension.category_register('login window', Login.Login) extension.category_register('connecting window', Login.ConnectingWindow) extension.category_register('window frame', Window.Window) extension.category_register('main window', MainWindow.MainWindow) extension.category_register('contact list', ContactList.ContactList) extension.category_register('synch tool', SyncTool.SyncTool) if not check_gtk3(): extension.category_register('avatar renderer', Renderers.AvatarRenderer) extension.category_register('nick renderer', Renderers.CellRendererPlus) extension.register('nick renderer', Renderers.CellRendererNoPlus) else: extension.category_register('avatar renderer', RenderersNew.AvatarRenderer) extension.category_register('nick renderer', RenderersNew.CellRendererPlus) extension.register('nick renderer', RenderersNew.CellRendererNoPlus) extension.category_register('user panel', UserPanel.UserPanel) extension.category_register('debug window', DebugWindow.DebugWindow) if not INFOBARERROR: extension.category_register('nice bar', InfoBar.NiceBar) extension.register('nice bar', NiceBar.NiceBar) else: extension.category_register('nice bar', NiceBar.NiceBar) extension.category_register('main menu', MainMenu.MainMenu) extension.category_register('menu file', MainMenu.FileMenu) extension.category_register('menu actions', MainMenu.ActionsMenu) extension.category_register('menu options', MainMenu.OptionsMenu) extension.category_register('menu contact', ContactMenu.ContactMenu) extension.category_register('menu group', GroupMenu.GroupMenu) extension.category_register('menu account', AccountMenu.AccountMenu) extension.category_register('menu help', MainMenu.HelpMenu) extension.category_register('menu status', StatusMenu.StatusMenu) extension.category_register('below menu', EmptyWidget.EmptyWidget) extension.category_register('below panel', EmptyWidget.EmptyWidget) extension.category_register('below userlist', EmptyWidget.EmptyWidget) extension.category_register('call widget', CallWidget.CallWindow) extension.category_register('conversation window', \ ConversationManager.ConversationManager) extension.category_register('conversation', Conversation.Conversation) extension.category_register('conversation header', Header.Header) extension.category_register('conversation info', ContactInfoRotate.ContactInfoRotate) extension.register('conversation info', ContactInfoList.ContactInfoList) extension.category_register('conversation tab', TabWidget.TabWidget) extension.category_register('conversation input', TextBox.InputText) extension.category_register('conversation toolbar', \ ConversationToolbar.ConversationToolbar) extension.category_register('plugin window', \ PluginWindow.PluginWindow) if not check_gtk3(): extension.category_register('image area selector', ImageAreaSelector.ImageAreaSelectorDialog) else: extension.category_register('image area selector', ImageAreaSelectorNew.ImageAreaSelectorDialog) extension.category_register('filetransfer pool', FileTransferBarWidget.FileTransferBarWidget) extension.category_register('filetransfer widget', FileTransferWidget.FileTransferWidget) if not WEBKITERROR: extension.category_register('conversation output', AdiumTextBox.OutputText) extension.register('conversation output', TextBox.OutputText) else: extension.category_register('conversation output', TextBox.OutputText) extension.category_register('picture handler', PictureHandler.PictureHandler)
def __destroy_dbus_session(self): '''Destroy current dbus session''' if self.__dbus_object: try: dbus.service.Object.remove_from_connection(self.__dbus_object) except AttributeError: pass self.__dbus_object = None #Callback functions def __on_status_changed(self, status): self.__dbus_object.status_changed(status) extension.register('external api', DBusController) extension.set_default('external api', DBusController) class EmeseneObject(dbus.service.Object): """ The object that is exported via DBUS """ def __init__(self, bus_name, object_path, session, window): try: dbus.service.Object.__init__(self, bus_name, object_path) except Exception, ex: print 'Emesene DBUS error: %s' % str(ex) self.__session = session self.__window = window
self.delete_method(name) self.objects[name] = create_dbus_method(name, callback, input_types, output_types) def delete_method(self, name): self.objects[name].remove_from_connection() def expose_event(self, name, output_types): self.events[name] = create_dbus_event(name, output_types) def emit_event(self, name, *args): if not name in self.events: raise ValueError self.events[name].event(*args) extension.register('external api', DBus) else: #ERROR class DummyExternalAPI(object): provides=('external api', ) def __init__(self): pass def expose_method(self, name, callback, input_types, output_types): pass def delete_method(self, name, callback): pass extension.register('external api', DummyExternalAPI) class expose(object): '''This is actually a decorator. It can be used to easily expose a method'''
self.connected = False # in doubt (STATE_UNKNOWN), assume connected elif state in (NetworkManagerHelper.NM_STATE_CONNECTED_GLOBAL, NetworkManagerHelper.NM_STATE_CONNECTED, NetworkManagerHelper.NM_STATE_UNKNOWN): self.connected = True else: self.connected = False if not self.connected: # 1 means reconnect self.__session.add_event(Event.EVENT_DISCONNECTED, 'Network error', 1) extension.register('external api', DBusNetworkChecker) class ModemManagerHelper(object): # data taken from # http://projects.gnome.org/NetworkManager/developers/mm-spec-04.html MM_DBUS_IFACE = "org.freedesktop.ModemManager" MM_DBUS_IFACE_MODEM = MM_DBUS_IFACE + ".Modem" # MM_MODEM_TYPE MM_MODEM_TYPE_GSM = 1 MM_MODEM_TYPE_CDMA = 2 # GSM # Not registered, not searching for new operator to register.
# (follows) ... while processing Qt's events in glib's # main loop freezes the application on linux ^_^ global GCONTEXT GCONTEXT = g_main_loop.get_context() idletimer.start(10) app.exec_() # pylint: disable=W0612 qt4_main.NAME = "qt4_main" qt4_main.DESCRIPTION = "This extensions uses Qt to build the GUI" qt4_main.AUTHOR = "Gabriele Whisky Visconti" qt4_main.WEBSITE = "" # pylint: enable=W0612 extension.register('main', qt4_main) def setup(): """ define all the components for a Qt4 environment """ # pylint: disable=W0403 import AvatarChooser import Conversation import DebugWindow import Dialog import Notifier import PictureHandler import Preferences import TopLevelWindow import TrayIcon
def start(self, session): if hasattr(extension, 'unregister'): extension.register('below userlist', HistoryStatusCombo.HistoryStatusCombo, force_default=True) else: extension.register('below userlist', HistoryStatusCombo.HistoryStatusCombo) return True
def extension_register(self): """Register extention""" extension.register('notificationGUI', SnarlNotification.SnarlNotification)
def extensions_register(self): extension.register(CATEGORY, handler_amarok2.Amarok2Handler) extension.register(CATEGORY, handler_audacious2.Audacious2Handler) extension.register(CATEGORY, handler_banshee.BansheeHandler) extension.register(CATEGORY, handler_exaile.ExaileHandler) extension.register(CATEGORY, handler_gmusicbrowser.GMusicBrowserHandler) extension.register(CATEGORY, handler_guayadeque.GuayadequeHandler) extension.register(CATEGORY, handler_lastfm.LastfmHandler) extension.register(CATEGORY, handler_moc.MocHandler) extension.register(CATEGORY, handler_mpd.MpdHandler) extension.register(CATEGORY, handler_mpris.MprisHandler) extension.register(CATEGORY, handler_rhythmbox.RhythmboxHandler) if XMMSCLIENT: extension.register(CATEGORY, handler_xmms2.Xmms2Handler)
def extensions_register(self): if os.name != "nt": #import unix players import handler_amarok2 import handler_audacious2 import handler_banshee import handler_clementine import handler_exaile import handler_gmusicbrowser import handler_guayadeque import handler_lastfm import handler_moc import handler_mpd import handler_mpris import handler_rhythmbox try: import handler_xmms2 XMMSCLIENT = True except ImportError: XMMSCLIENT = False extension.register(CATEGORY, handler_amarok2.Amarok2Handler) extension.register(CATEGORY, handler_audacious2.Audacious2Handler) extension.register(CATEGORY, handler_banshee.BansheeHandler) extension.register(CATEGORY, handler_clementine.ClementineHandler) extension.register(CATEGORY, handler_exaile.ExaileHandler) extension.register(CATEGORY, handler_gmusicbrowser.GMusicBrowserHandler) extension.register(CATEGORY, handler_guayadeque.GuayadequeHandler) extension.register(CATEGORY, handler_lastfm.LastfmHandler) extension.register(CATEGORY, handler_moc.MocHandler) extension.register(CATEGORY, handler_mpd.MpdHandler) extension.register(CATEGORY, handler_mpris.MprisHandler) extension.register(CATEGORY, handler_rhythmbox.RhythmboxHandler) #Import OS X players import handler_itunes import handler_spotify extension.register(CATEGORY, handler_itunes.iTunesHandler) extension.register(CATEGORY, handler_spotify.SpotifyHandler) if XMMSCLIENT: extension.register(CATEGORY, handler_xmms2.Xmms2Handler) handler_id = self.session.config.d_extensions.get(CATEGORY, None) if handler_id is None: handler_id = extension._get_class_name(handler_rhythmbox.RhythmboxHandler) self.session.config.d_extensions.get(CATEGORY, handler_id) else: #import Windows players import handler_atunes import handler_foobar2000 import handler_gomplayer import handler_mediamonkey import handler_mediaplayerclassic import handler_onebyone import handler_realplayer import handler_smplayer import handler_winamp import handler_xmplay extension.register(CATEGORY, handler_atunes.aTunesHandler) extension.register(CATEGORY, handler_foobar2000.Foobar2000Handler) extension.register(CATEGORY, handler_gomplayer.GOMPlayerHandler) extension.register(CATEGORY, handler_mediamonkey.MediaMonkeyHandler) extension.register(CATEGORY, handler_mediaplayerclassic.MediaPlayerClassicHandler) extension.register(CATEGORY, handler_onebyone.OneByOneHandler) extension.register(CATEGORY, handler_realplayer.RealPlayerHandler) extension.register(CATEGORY, handler_smplayer.SMPlayerHandler) extension.register(CATEGORY, handler_winamp.WinampHandler) extension.register(CATEGORY, handler_xmplay.XMPlayHandler) handler_id = self.session.config.d_extensions.get(CATEGORY, None) if handler_id is None: handler_id = extension._get_class_name(handler_winamp.WinampHandler) self.session.config.d_extensions.get(CATEGORY, handler_id) extension.set_default_by_id(CATEGORY, handler_id)
def extension_register(self): """Register extention""" extension.register("notificationGUI", SnarlNotification.SnarlNotification)
def setup(): """ define all the components for a gtk environment """ global WEBKITERROR, INFOBARERROR import gtk gtk.settings_get_default().set_property("gtk-error-bell", False) extension.register("quit", gtk.main_quit) extension.category_register("dialog", Dialog.Dialog) extension.category_register("avatar chooser", AvatarChooser.AvatarChooser) extension.category_register("avatar", Avatar.Avatar) extension.category_register("avatar manager", AvatarManager.AvatarManager) extension.category_register("preferences", Preferences.Preferences, single_instance=True) extension.category_register("login window", Login.Login) extension.category_register("connecting window", Login.ConnectingWindow) extension.category_register("window frame", Window.Window) extension.category_register("main window", MainWindow.MainWindow) extension.category_register("contact list", ContactList.ContactList) extension.category_register("synch tool", SyncTool.SyncTool) if not check_gtk3(): extension.category_register("avatar renderer", Renderers.AvatarRenderer) extension.category_register("nick renderer", Renderers.CellRendererPlus) extension.register("nick renderer", Renderers.CellRendererNoPlus) else: extension.category_register("avatar renderer", RenderersNew.AvatarRenderer) extension.category_register("nick renderer", RenderersNew.CellRendererPlus) extension.register("nick renderer", RenderersNew.CellRendererNoPlus) extension.category_register("user panel", UserPanel.UserPanel) extension.category_register("debug window", DebugWindow.DebugWindow) if not INFOBARERROR: extension.category_register("nice bar", InfoBar.NiceBar) extension.register("nice bar", NiceBar.NiceBar) else: extension.category_register("nice bar", NiceBar.NiceBar) extension.category_register("main menu", MainMenu.MainMenu) extension.category_register("menu file", MainMenu.FileMenu) extension.category_register("menu actions", MainMenu.ActionsMenu) extension.category_register("menu options", MainMenu.OptionsMenu) extension.category_register("menu contact", ContactMenu.ContactMenu) extension.category_register("menu group", GroupMenu.GroupMenu) extension.category_register("menu account", AccountMenu.AccountMenu) extension.category_register("menu help", MainMenu.HelpMenu) extension.category_register("menu status", StatusMenu.StatusMenu) extension.category_register("below menu", EmptyWidget.EmptyWidget) extension.category_register("below panel", EmptyWidget.EmptyWidget) extension.category_register("below userlist", EmptyWidget.EmptyWidget) extension.category_register("call widget", CallWidget.CallWindow) extension.category_register("conversation window", ConversationManager.ConversationManager) extension.category_register("conversation", Conversation.Conversation) extension.category_register("conversation header", Header.Header) extension.category_register("conversation info", ContactInfoRotate.ContactInfoRotate) extension.register("conversation info", ContactInfoList.ContactInfoList) extension.category_register("conversation tab", TabWidget.TabWidget) extension.category_register("conversation input", TextBox.InputText) extension.category_register("conversation toolbar", ConversationToolbar.ConversationToolbar) if not check_gtk3(): extension.category_register("image area selector", ImageAreaSelector.ImageAreaSelectorDialog) else: extension.category_register("image area selector", ImageAreaSelectorNew.ImageAreaSelectorDialog) extension.category_register("filetransfer pool", FileTransferBarWidget.FileTransferBarWidget) extension.category_register("filetransfer widget", FileTransferWidget.FileTransferWidget) if not WEBKITERROR: extension.category_register("conversation output", AdiumTextBox.OutputText) extension.register("conversation output", TextBox.OutputText) else: extension.category_register("conversation output", TextBox.OutputText) extension.category_register("picture handler", PictureHandler.PictureHandler)
def extensions_register(self): extension.register('below userlist', HistoryStatusCombo.HistoryStatusCombo)
def setup(): """ define all the components for a gtk environment """ global WEBKITERROR, INDICATORERROR, INFOBARERROR, PYNOTIFYERROR, MESSAGINGMENUERROR, GROWLERROR import gtk gtk.settings_get_default().set_property("gtk-error-bell", False) extension.category_register('dialog', Dialog.Dialog) extension.category_register('image chooser', ImageChooser.ImageChooser) extension.category_register('avatar chooser', AvatarChooser.AvatarChooser) extension.category_register('avatar', Avatar.Avatar) extension.category_register('avatar renderer', Renderers.AvatarRenderer) extension.category_register('avatar manager', AvatarManager.AvatarManager) extension.category_register('preferences', Preferences.Preferences, single_instance=True) extension.category_register('login window', Login.Login) extension.category_register('connecting window', Login.ConnectingWindow) extension.category_register('window frame', Window.Window) extension.category_register('main window', MainWindow.MainWindow) extension.category_register('contact list', ContactList.ContactList) extension.category_register('synch tool', SyncTool.SyncTool) extension.category_register('nick renderer', Renderers.CellRendererPlus) extension.register('nick renderer', Renderers.CellRendererNoPlus) extension.category_register('user panel', UserPanel.UserPanel) extension.category_register('debug window', DebugWindow.DebugWindow) if not INFOBARERROR: extension.category_register('nice bar', InfoBar.NiceBar) extension.register('nice bar', NiceBar.NiceBar) else: extension.category_register('nice bar', NiceBar.NiceBar) extension.category_register('main menu', MainMenu.MainMenu) extension.category_register('menu file', MainMenu.FileMenu) extension.category_register('menu actions', MainMenu.ActionsMenu) extension.category_register('menu options', MainMenu.OptionsMenu) extension.category_register('menu contact', ContactMenu.ContactMenu) extension.category_register('menu group', GroupMenu.GroupMenu) extension.category_register('menu account', AccountMenu.AccountMenu) extension.category_register('menu help', MainMenu.HelpMenu) extension.category_register('menu status', StatusMenu.StatusMenu) extension.category_register('below menu', EmptyWidget.EmptyWidget) extension.category_register('below panel', EmptyWidget.EmptyWidget) extension.category_register('below userlist', EmptyWidget.EmptyWidget) extension.category_register('call widget', CallWidget.CallWindow) extension.category_register('conversation window', \ ConversationManager.ConversationManager) extension.category_register('conversation', Conversation.Conversation) extension.category_register('conversation header', Header.Header) extension.category_register('conversation info', ContactInfoRotate.ContactInfoRotate) extension.register('conversation info', ContactInfoList.ContactInfoList) extension.category_register('conversation tab', TabWidget.TabWidget) extension.category_register('conversation input', TextBox.InputText) extension.category_register('conversation toolbar', \ ConversationToolbar.ConversationToolbar) extension.category_register('plugin window', \ PluginWindow.PluginWindow) extension.category_register('image area selector', ImageAreaSelector.ImageAreaSelectorDialog) extension.category_register('filetransfer pool', FileTransferBarWidget.FileTransferBarWidget) extension.category_register('filetransfer widget', FileTransferWidget.FileTransferWidget) if not WEBKITERROR: extension.category_register('conversation output', AdiumTextBox.OutputText) extension.register('conversation output', TextBox.OutputText) else: extension.category_register('conversation output', TextBox.OutputText) extension.category_register('picture handler', PictureHandler.PictureHandler)
def __destroy_dbus_session(self): '''Destroy current dbus session''' if self.__dbus_object: try: dbus.service.Object.remove_from_connection(self.__dbus_object) except AttributeError: pass self.__dbus_object = None #Callback functions def __on_status_changed(self, status): self.__dbus_object.status_changed(status) extension.register('external api', DBusController) class EmeseneObject(dbus.service.Object): """ The object that is exported via DBUS """ def __init__(self, bus_name, object_path, session): try: dbus.service.Object.__init__(self, bus_name, object_path) except Exception, ex: print 'Emesene DBUS error: %s' % str(ex) self.__session = session def get_session(self): return self.__session