sijis on master
Update README.md with new URL (… (compare)
Just tested a clean install of errbot 6.1.9 using a py37 virtualenv and it works as expected. Tested under py38, it fails.
errbot -h Traceback (most recent call last): File "/root/virtualenv/errbot_py38/bin/errbot", line 5, in <module> from errbot.cli import main File "/root/virtualenv/errbot_py38/lib/python3.8/site-packages/errbot/cli.py", line 27, in <module> from errbot.bootstrap import CORE_BACKENDS File "/root/virtualenv/errbot_py38/lib/python3.8/site-packages/errbot/bootstrap.py", line 10, in <module> from errbot.plugin_manager import BotPluginManager File "/root/virtualenv/errbot_py38/lib/python3.8/site-packages/errbot/plugin_manager.py", line 8, in <module> from graphlib import CycleError ModuleNotFoundError: No module named 'graphlib'
pip pulled in the py3 wheel.
(errbot_py38) root@u2004:~# pip install errbot Collecting errbot Downloading errbot-6.1.9-py3-none-any.whl (198 kB)
dulwich/_objects.c:22:10: fatal error: Python.h: No such file or directory 22 | #include <Python.h> | ^~~~~~~~~~ compilation terminated. error: command '/usr/bin/x86_64-linux-gnu-gcc' failed with exit code 1 [end of output] note: This error originates from a subprocess, and is likely not a problem with pip. error: legacy-install-failure × Encountered error while trying to install package. ╰─> dulwich note: This is an issue with the package mentioned above, not pip. hint: See above for output from the failure.
Yes, as part of your build process you can clone the repo and put it in the plugins directory.
You could also setup the server to use a private key/token that accesses your repo too
@JothimaniRkrish_twitter: you can create your own webhook for a healthcheck.
For exception handling, not at a core level. You can configure custom/internal plugins to use whatever apm system of your choice.
errbot | 2022-06-29 14:57:08,698 ERROR slack_sdk.socket_mode.builtin.client Failed to run a request listener: 'event' errbot | Traceback (most recent call last): errbot | File "/usr/local/lib/python3.8/site-packages/slack_sdk/socket_mode/client.py", line 143, in run_message_listeners errbot | listener(self, request) # type: ignore errbot | File "/home/errbot/backends/slackv3/slackv3.py", line 377, in _sm_generic_event_handler errbot | self._generic_wrapper(req.payload) errbot | File "/home/errbot/backends/slackv3/slackv3.py", line 357, in _generic_wrapper errbot | event = event_data["event"] errbot | KeyError: 'event'
super()but that's all I've got for now.
activate()would have already been called when the plugin loaded. The only time you would want to do the
super().activate()is if you were overriding
activatewith your own implementation, for example, if you wanted to call
your_methodevery 60 seconds and wanted to start this as soon as the plugin was started.
def activate(self): super().activate() self.start_poller(60, self.your_method, 1)
I haven't looked at your example, but I can say the core plugin that checks for latest version uses a poller.