Commit Graph

56 Commits

Author SHA1 Message Date
Jeffrey Baitis 4a46a7a195 Modified source to work under python3 2016-09-02 13:05:03 -07:00
Linus Heckemann a826019739 Include traceback in exception logging for plugin load 2016-08-20 00:35:57 +02:00
Linus Heckemann ad1c89ce9f Output gajim version readably in case of incompatibility 2016-08-20 00:39:45 +02:00
Linus Heckemann 7f8e44f087 Warn about plugin load failures rather than merely debug-logging them 2016-08-07 11:59:16 +01:00
Linus Heckemann 967432c096 Fix version comparisons in plugin loader, warn about incompatible plugins 2016-08-07 11:53:49 +01:00
Yann Leboulanger ab7939f614 catch all errors when trying to load a plugin 2016-03-15 21:40:44 +01:00
Yann Leboulanger 4a151d1370 prevent crash when a plugin is wrong. 2016-02-21 10:25:45 +01:00
Yann Leboulanger 0e8bb9e579 py2 -> py3 2014-03-27 12:42:19 +01:00
Yann Leboulanger 593e29bcd1 catch errors that could appear when running plugins gui extention points 2014-03-09 10:19:24 +01:00
Denis Fomin 40c9dab636 translate plugins descriptions 2013-08-16 23:29:48 +04:00
Yann Leboulanger 7ebbad43cb fix command system 2013-01-27 19:51:11 +01:00
Yann Leboulanger f82dfed644 support min_gajim_version and max_gajim_version in plugins 2013-01-26 22:31:17 +01:00
Denis Fomin de9241ac11 fix plugin manager 2013-01-11 19:54:52 +04:00
Yann Leboulanger e03b3c35b6 fix traceback handling
fix struc and sha1 usage (use bytes instead of string)
2013-01-05 00:03:36 +01:00
Yann Leboulanger 912f0e921d fix imports and many py3 changements 2013-01-02 13:54:02 +01:00
Yann Leboulanger d27591076f fix exception handling 2013-01-01 23:18:36 +01:00
Yann Leboulanger 069bddbbcb remove call to unicode() 2013-01-01 21:06:16 +01:00
Denis Fomin 40edf1d0f2 typo 2012-08-09 21:55:35 +04:00
Denis Fomin 8295089b95 first load the plugins of the user directory. does not load the module twice. 2012-08-09 21:48:00 +04:00
Yann Leboulanger 971e0502c0 don't load unactivatable plugins 2012-04-30 21:04:37 +02:00
Denis Fomin 71e6f991e0 Prevent traceback 2012-01-07 12:00:04 +04:00
Denis Fomin b4acd70336 catch the error in the plugins manifest file 2011-10-16 22:40:42 +03:00
Denis Fomin 2e648d06be New gui_extension_point added. Do not use all args in remove_gui_extension_point() to identify elements to be removed. Use only first one 2011-09-26 20:47:33 +03:00
Yann Leboulanger 08a584b8b6 add missing function. Fixes #6985 2011-09-23 19:00:32 +02:00
Denis Fomin 2512f29076 pluginmanager.better exception handling when importing modules 2011-09-07 10:31:34 +03:00
Denis Fomin 4dd234321e translate all modules in the plugin dir(whiteboard plugin for example. translate plugin.py and whiteboard_widget.py) 2011-09-04 23:23:38 +03:00
Yann Leboulanger 195d0121ed fix uninstalling plugins 2011-08-31 14:29:13 +02:00
Denis Fomin e194394479 imported patch 2011-08-27_00-06-54_r13163+.diff 2011-08-30 15:23:16 +03:00
Denis Fomin f13989927b remove unused pass 2011-01-04 00:12:07 +03:00
Denis Fomin acdf6571b7 use logger if plugin manifest file is wrong formated 2011-01-04 00:04:11 +03:00
Denis Fomin de559df7c0 pluginmanager. completely remove plugin 2010-11-05 14:56:31 +03:00
Yann Leboulanger 5fa8dab30f show warning dialog when trying to enable a plugin that raise an exception when activate is called. 2010-11-01 21:22:43 +01:00
Yann Leboulanger 8ce99327bd [Dicson] some error dialogs improvements. Fixes #5930 2010-09-21 21:44:04 +02:00
Yann Leboulanger 2c95192037 [Dicson] check for manifest file when installing a plugin. Fixes #5925 2010-09-20 07:08:47 +02:00
Alexander Cherniuk 0a2458c69b A better fix for nonexistent plugins directories. 2010-09-19 11:03:25 +03:00
Alexander Cherniuk 07af278d0b Ignore nonexistent plugins directories 2010-09-19 10:59:44 +03:00
Alexander Cherniuk ba5725cb5d Can not break a string like that. 2010-09-19 10:37:40 +03:00
Yann Leboulanger 0b448cfb10 [Dicson] use manifest.ini files in plugins to have a separate file for plugin's information. Fixes #5920 2010-09-18 23:00:43 +02:00
Yann Leboulanger 90d1ee3176 [Dicson] remove plugin entry in global config when removing the plugin. Fixes #5918 2010-09-17 21:16:17 +02:00
Yann Leboulanger 096b8f3d91 [Dicson] ability to install from zip / uninstall plugin. Fixes #5906 2010-09-14 19:31:35 +02:00
Éric Araujo 9b5ee1e13b convert tabs to spaces in source code thanks to reindent.py
Also use sed to remove now unneeded Vim lines, 2to3 -f ws_comma to fix
some whitespace, and fix some other madness manually.
2010-04-08 01:20:17 +02:00
Mateusz Biliński 8c75ed38b1 Google Translation plugin added (proof-of-concept) that translates incoming chat messages from English to French using Google Translate service.
Plugin object that registered new event is accessible in that event now, through self.plugin.
2008-08-25 17:20:16 +00:00
Mateusz Biliński c0a26be684 Three core (raw) events (iq, message, presence) go also through Network Events Controller (layer between network library and Global Events Dispatcher, newly added) and from there they are dispatched through Global Events Dispatcher.
Ability to register new incoming network events (based on exisiting one) added. Modify-only network events are possible (eg. add some text each message, but don't create any new global event). Events creation can be chained.
Examples of new network events classes are in New Events Example plugin.
Events from src/gajim.py now all go through Global Events Dispatcher and only through it (easy to modify, in chain, data passed with them).
2008-08-18 16:35:14 +00:00
Mateusz Biliński 8ec03d822e Added Events Dump plugin, that prints out to console info about selected events when they occur. 2008-08-11 15:22:56 +00:00
Mateusz Biliński 06aee9d2d0 Initial version of Global Events Dispatcher.
Events previously generated for D-Bus support in remote_control.py go through Global Events Dispatcher now - this means any plugin can subscribe to them.
Implemented D-Bus support plugin based on remote_control.py.
2008-08-10 13:40:49 +00:00
Mateusz Biliński d1d3cc9bbd GUI extension points removal working properly now. 2008-08-03 22:02:53 +00:00
Mateusz Biliński 16ac65e58b Improvements to GUI extension points handling - added method to remove these from PluginManager (memory optimization).
Removed logging from most of the code.
2008-08-03 13:29:11 +00:00
Mateusz Biliński 96cfc42060 Added files with Banner Tweaks plugin (initial version).
Few changes to PluginManager.
Added new GUI extension point related to draw_banner in ChatControlBase.
2008-07-31 15:30:20 +00:00
Mateusz Biliński 8581b862e1 Added new 'init' method to Plugin class that plugins can implement to make actions that need to be done only once - when plugin is added (not activated) to Gajim. In this method plugins should declare handlers for GUI extension points. This was created so that __init__ method doesn't have to be reimplemented in specific way (create config, load config) - it is all done by __init__ in Plugin class. If __init__ is reimplemented, it must call Plugin __init__ (eg. using super() ) to plugin work properly.
Example plug-ins were modified to use init() instead of __init__().

Added new category in configuration - 'plugins'. It only holds one option for each plugin - 'active', which determines whether plugin should be activated on startup.

Now, Gajim remembers which plugins are active on exit, and activates them on next startup.
2008-06-18 20:45:22 +00:00
Mateusz Biliński b6593b9493 Plugin can be a package (directory) now. Added example plugin that modifies roster window (with glade file).
Added activate and deactivate methods to Plugin (used in forementioned RosterButtonsPlugin).
2008-06-14 18:20:24 +00:00