Commit Graph

29 Commits

Author SHA1 Message Date
Philipp Hörist c1948d05e0 Get module instance after checking for zeroconf 2019-03-16 15:38:19 +01:00
Philipp Hörist 510985d7c4 Enforce min and max version for plugin manifest
This reduces problems with old plugins without max version
2018-11-13 21:56:21 +01:00
Philipp Hörist a7624b564f Fix error when plugin cant be loaded
Fixes #9403
2018-10-26 00:23:13 +02:00
Philipp Hörist ec05b1a47e Catch exceptions when loading plugins 2018-10-13 14:14:28 +02:00
Yann Leboulanger 83c737312b Ability to update plugins on startup from a download folder 2018-10-13 13:31:00 +02:00
Philipp Hörist 796da7b2dc Dont overwrite user plugins with base plugins
- Dont load plugins without short_name
- Check with the short_name if a plugin is already loaded
2018-10-11 20:01:49 +02:00
Philipp Hörist bd2a3a0e17 Improve finding locale dir
- Dont install _() globally, although its elegant mypy cant deal with it
- If gettext cant find the translation itself, iter through all dirs and search for it
2018-10-07 00:47:00 +02:00
Philipp Hörist f197358e2f Import _() instead of using builtin namespace
- Prepare for removing the global installed _() method in builtins
- Sort some imports along the way
2018-10-07 00:47:00 +02:00
Philipp Hörist ad5f59ba49 configpaths: Add get_plugin_dirs() method
This helps with mypy because otherwise get() has multiple return types

This reduces our usage of cast()
2018-10-07 00:46:54 +02:00
Philipp Hörist f12dfb811d Fix trailing-whitespace pylint errors 2018-10-07 00:46:48 +02:00
Philipp Hörist e842298724 Fix bad-whitespace pylint errors 2018-10-07 00:46:48 +02:00
Philipp Hörist dad5331bf2 Fix no-else-return pylint errors 2018-10-07 00:46:46 +02:00
Philipp Hörist defe74cc06 Fix literal-comparison pylint errors 2018-10-07 00:46:45 +02:00
Philipp Hörist cebd83d436 Fix unused-variable pylint errors 2018-10-07 00:46:44 +02:00
Philipp Hörist 6305fc69b9 Fix logging-not-lazy pylint errors 2018-10-07 00:46:43 +02:00
Philipp Hörist ebc0dd4536 Fix license comment format
every linter flags this as an error
2018-10-07 00:46:35 +02:00
Philipp Hörist f25634bff5 Register modules defined by plugins 2018-10-07 00:46:33 +02:00
Alexander Krotov 1d27ab2254 Spellcheck 2018-06-21 03:05:47 +03:00
Philipp Hörist 779a4d4ce3 Get version from package instead of config 2018-05-01 00:37:13 +02:00
Markus Wintermann 49bfc1f226 Add support for dynamic reloading of plugins
‎* rename the remove_plugin function to uninstall_plugin because it
deletes files on the disc and uninstall is the label of the button which
triggers this function
* added a new remove_plugin function, which deactivates the plugin (if
needed), removes it from the list of managed plugins and deletes the
contents of sys.modules
2018-04-28 13:31:19 +02:00
Philipp Hörist 105427b8fd Use consistent way to get paths
This lets us now import the app module without setting paths
2018-04-25 20:49:37 +02:00
Philipp Hörist 276daa991c Correctly split version string
We changed the version format
2017-11-24 16:49:30 +01:00
Philipp Hörist 775fec2fea Dont activate plugins in PluginManager init
Plugins maybe want to use in their activation Gajim methods that
use an extension point. But because the PluginManager Object is not fully
initialized, the extension point method is not available yet

First create the PluginManager Object, then load Plugins.
2017-11-15 22:26:55 +01:00
Yann Leboulanger 8d4e815f3e fix some pylint errors 2017-08-24 23:01:06 +02:00
André Apitzsch 89c7eb6e6a Rename gajim.common.gajim to avoid name conflicts 2017-08-18 20:03:20 +02:00
André Apitzsch efec098aef Use absolute imports 2017-08-18 19:48:48 +02:00
Philipp Hörist 635ce52856 PluginManager: prefer plugins in user path
As we always load plugins from the user path first, we should not
reload them later from Gajims plugin base dir
2017-08-07 20:02:03 +02:00
Philipp Hörist 7e0e4cced0 PluginManager: remove plugin path from sys.path
Remove plugin path from sys.path after importing.

If we scan multiple plugin dirs and never remove the path from
sys.path, it is hard to predict from which path python will import
a package.

The chance that the same plugin package is in multiple plugin paths
is high.
2017-08-07 19:28:54 +02:00
André Apitzsch 125ce523e4 Rename src directory 2017-07-02 17:25:47 +02:00
Renamed from src/plugins/pluginmanager.py (Browse further)