wikipedia: fix crash

This commit is contained in:
dece 2022-09-04 15:27:13 +02:00
parent 655f160a29
commit ae21c1ff8b
2 changed files with 13 additions and 11 deletions

View file

@ -37,13 +37,13 @@ class Plugin:
plugins. It can also save data using the Bot's storage feature to be
available after a restart.
Initalisation should be very fast, no network connections or anything. They
are initialised before connecting to the server, so their `is_ready` flag
is set at that point. The loading order is more or less random, so a plugin
cannot assume another has been loaded during initialisation. If it wants to
interact with another plugin, the earliest point to do that is in the
on_welcome callback which is called after connecting to a server, and can
disable itself by setting its own `is_ready` flag to false.
Initialisation should be very fast, no network connections or anything.
They are initialised before connecting to the server, so their `is_ready`
flag is set at that point. The loading order is more or less random, so a
plugin cannot assume another has been loaded during initialisation. If it
wants to interact with another plugin, the earliest point to do that is in
the on_welcome callback which is called after connecting to a server, and
can disable itself by setting its own `is_ready` flag to false.
A plugin can access its config once the base `__init__` has been called.
The configuration is valid only is `is_ready` is True, else accessing its

View file

@ -38,14 +38,16 @@ class WikipediaPlugin(Plugin):
return True
def tell_random_summary(self, event):
summary = ""
page = None
retries = self.NUM_RETRIES
while retries > 0:
try:
page = wikipedia.page(title=wikipedia.random(), sentences=1)
page = wikipedia.page(title=wikipedia.random())
break
except: # The wikipedia package can raise a lot of different stuff.
pass
except Exception as exc:
# The wikipedia package can raise a lot of different stuff,
# so we sort of have to catch broadly.
self.bot.log_d(f"Wikipedia exception: {exc}")
retries -= 1
if page:
if plus_plugin := self.bot.get_plugin("plus"):