Ecosyste.ms: OpenCollective
An open API service for software projects hosted on Open Collective.
github.com/sopel-irc/sopel
:robot::speech_balloon: An easy-to-use and highly extensible IRC Bot framework. Formerly Willie.
https://github.com/sopel-irc/sopel
Co-authored-by: dgw <[email protected]>
1356fd654dbfe0ce832d26e34aabd8cb69c4de9d authored over 4 years ago880ca01f6316cd1e418585d951ec6a4a725ca5f5 authored over 4 years ago
6d5f0004a4ad613ff73e587cafa3c34eb3f8124c authored over 4 years ago
Updates to Python 2.x stopped months ago. Any future release is certain
to be installed and run ...
Without this, some TLDs like `.бел` won't be included in the data table.
Originally added while...
35fd6054555d9fb6c6fef56df92717a66de19dfe authored over 4 years agoBecause Python doesn't have a static type system.
582baadfa6392ccc68a1780c1831070fe5db67c4 authored over 4 years agoe1a1789999a6e08a309718000fcc9ea397d5912f authored over 4 years ago
3d7ec8f8fe4e06c79d64856cfb111103efc4578e authored over 4 years ago
The aliases' docstrings should prevent Sphinx from outputting the same
documentation twice; a si...
Co-authored-by: Exirel <[email protected]>
bb0af62f56114b3277c668c413d8620bc855daa1 authored over 4 years ago078c4ac8d4b1428b51a8b336cd0ede3dc642fe46 authored over 4 years ago
Python's built-in `strip()` method for strings considers some control
codes used for IRC formatt...
3087846db9809401af313c8305447c2f4fee49ab authored over 4 years ago
This is for plugin convenience, as otherwise they'd all need to build
their own lists of constan...
The old "module" attr will stick around as a deprecated property until
Sopel 8.0. Until then, an...
850a178aed41c901c52c75d905123da12cd51782 authored over 4 years ago
d5854f82966aed75ce8adcd91bbceeb4b24c3c9e authored over 4 years ago
It won't start emitting any warnings until 8.0, but we won't have to
remember to decorate it lat...
I'm doing this because it's easier to drop the change later than skip
over it now and then remem...
The empty string is also allowed; it means "request this if no other
CapReq forbids it".
6fa4bb1050fbfa7e9171e2e764efa7965b5f4c48 authored over 4 years ago
This was requested on our IRC channel. Instead of just telling the user
how to write their own c...
The new test fails without the change in `irc` itself, proving that the
previous algorithm would...
Not quite ready to make this the default behavior, but plugins that make
use of `max_messages` a...
Co-authored-by: Exirel <[email protected]>
bf7337ed963682f9b05e33683f8f326465c446aa authored over 4 years ago
New optional parameter to `bot.say()` allows specifying a suffix that
Sopel will append to a mes...
Co-authored-by: dgw <[email protected]>
7c8fd587a766988af213c3aec148e62bdd1c6af2 authored over 4 years agocoretasks: better SASL handling
005a53452fdd96dde1dd266b1587d67170665317 authored over 4 years ago69338e1daa8ab876196ca3b2a93e32cf11248f7b authored over 4 years ago
70e442e4d3e56c7ae58c66e92841a60d45f6a6ef authored over 4 years ago
93c82c921de6817509836556ec907f53512c3069 authored over 4 years ago
Handles SASL 3.1 advertised mechanisms, sent after Sopel's configured
mechanism fails, *sometime...
announce: send announces to TARGMAX channels at once, if advertised
b16cfcd8e1197e4e85727f00f56c69f01c890aac authored over 4 years ago
This only works for SASL 3.2 spec. In 3.1, the supported mechanisms are
only advertised after (a...
Seems like the tests for `currency` work (locally) if 0 runs first, but
not if 1 runs first. Sor...
Only one live response that had changed, for the `.suggest` command's
example test in `search`. ...
`test_novcr` is now a shortcut to run pytest with `--disable-vcr`.
The old `test_novcr` has beco...
Allows viewing last update time, forcing the cached data to update, and
clearing the cached data...
tools: make `time` and `web` always accessible by importing `tools`
0cd434af8aef8e5122c49790f27612085c30d07c authored over 4 years ago0059659f32ba106e21817ff3d7d2350b0d62dcc8 authored over 4 years ago
Simplifies handler function (flattens the logic a bit).
5af0eea249238485d70c8e14743358a50115b0f4 authored over 4 years agoSee comments in #1859 and #1953.
ce10d0a5ae47f0668ac3f2313a0eee54d1919061 authored over 4 years agoCo-authored-by: dgw <[email protected]>
539c733b204f39c93e0c307b0d6e43c2c2f75d4c authored over 4 years ago
It's really silly that anyone who wants to use the `time` submodule has
to do `import sopel.tool...
02a53b3e82882c36ced2779d3a366fa13845ac9f authored over 4 years ago
c36e0bde594ea63ed82de615f306d0a5b0ed1839 authored over 4 years ago
In particular, added an example of `logdir` and `log_raw` usage, since
I noticed those were miss...
Copied note about relative path behavior from `pid_dir` to both `logdir`
and `ca_certs` docstrin...
d465f332b50982597c7977c2b78401bd14b27e9d authored over 4 years ago
64a71690d6c54e2138583a0a15b5a3cc9112ec50 authored over 4 years ago
We have been using e.g. '7.0.0.rc2', but `_version_info()` parsed such
version strings incorrect...
0e13d068cdf76da0bee6e4ff5982f055bd32abe2 authored over 4 years ago
c19548c61548569e05ad874d7222cffaf1d7da0e authored over 4 years ago
Reduces the bot's network overhead, and might make servers happier.
b7b6b46a84e29e26a6a6b921debf57735661a4c0 authored over 4 years agotools: new `SopelIdentifierMemory` class
54e42747959d86ddc1ba40bc02098cb3ab7d9439 authored over 4 years agoisup: fix error-series HTTP status codes; get away from assuming TLD
a0002671cb370902d1dab85f654fb05c00b632cd authored over 4 years ago2009dbfe8a4e4d24910b8bf955c7e5483bd133a1 authored over 4 years ago
Check whether the MODE message target is a nick *first*, before checking
how many arguments it h...
tld: comprehensive rewrite
f896c414934b13115d9b966c811d088eb5d321c6 authored over 4 years ago89435649ce0bf7a1b3003914e77226008a6e1366 authored over 4 years ago
c4618e3e5922a0492c9d419c66143725fe6501f8 authored over 4 years ago
core: change/recover in-use nick; fix obsolete USER command syntax
11abde6d83691a96b5c44e74b6b000c0e8b62aeb authored over 4 years ago6cfda5d94a02b3d5511e558aef56736b102a3a73 authored over 4 years ago
9f91b3e9f3dbf3aefdcacea0c93a9ed37ef8dcbc authored over 4 years ago
a0dbb9d5131dadeacdc651741590cd8a9f785aac authored over 4 years ago
17674ea0eaeebfb414fb0054f48791f919313b84 authored over 4 years ago
As discussed with @dgw on IRC, the proper USER command should be:
USER <username> 0 * :<real n...
fe8059cb184a15cdd32bfaef45af1fec260d6667 authored over 4 years ago6ab97bd3938f6d107a1b6a83c5391a48d9582ff5 authored over 4 years ago
f02e2d0c7d106a449cbe50d62bbc5cf3495d276f authored over 4 years ago
loader, plugin: load decorated callables only
daaef673886a688746cebde333bd8d8b6abb218c authored over 4 years ago
Specified timeout values, both to improve response time of the command
and to make the connect/r...
Includes tests, since that's how I verified that it used to be allowed.
778fc4f2b75a1a0155949befb49d39c3ba33c390 authored over 4 years agodocs: add space before attribute lists
fff86431147f540251061a18eb9d84e8dc27ab16 authored over 4 years ago
The "com" TLD is nowhere near as common as it once was. It's probably
better to just inform the ...
e504eacd0b147b21df2f271e05aa3f71c19aefb3 authored over 4 years ago
This explains so much about how I'd check a site that's clearly down if
I visit it in my browser...
List is cached in `bot.memory` at runtime, and persisted to a plugin
value in `bot.db` at shutdo...
Also moved the data-processing step inside the parser object, because
having a helper function f...
Replaced those horrid (and ugly) regex patterns with a bare-bones HTML
parser, an in-memory look...
plugins: check consistency of plugin code and their output formatting
19522fce13da182b683d6534ed48da6e8bd15a22 authored over 4 years agoc9d721c924fc6f262f63dbcf43b038b043e6fe5b authored over 4 years ago
* replaced `sopel.module` by `sopel.plugin`
* no output prefix for emotes, they are too pure!
855f98a2dc1c378fb6c9eb49c76b07760472ec10 authored over 4 years ago
* replaced `sopel.module` by `sopel.plugin`
* replaced `bot.say` by `bot.reply` for error cases
...
* replaced `sopel.module` by `sopel.plugin`
* replaced `web.quote` by Python's built-in `urlencode`
* replaced `sopel.module` by `sopel.plugin`
efa279822f1cb235980f226f41b234ee0d969e93 authored over 4 years ago
* replaced `sopel.module` by `sopel.plugin`
* replaced `return bot.reply` by 2 lines
* replaced `sopel.module` by `sopel.plugin`
* used `plugin.output_prefix` with `bot.say` method
...
* replaced `sopel.module` by `sopel.plugin`
* used `plugin.output_prefix` with `bot.say` method
* replaced `sopel.module` by `sopel.plugin`
* used `plugin.output_prefix` with `bot.say` method
...
* replaced `sopel.module` by `sopel.plugin`
* add manual output prefix in job
* replaced `sopel.module` by `sopel.plugin`
* removed obsolete `if main` block
* replaced `sopel.module` by `sopel.plugin`
* replaced `bot.say` by `bot.reply` for error cases
...
eea3e4a8250c6546d71fbed54183aeca0a6cdb5b authored over 4 years ago
ec8629f5147baf1aea3d6d1e50b2d32f679b43ab authored over 4 years ago
4d299d1ead6d9914ed517f15bf97ba7852fd06d7 authored over 4 years ago
* replaced `sopel.module` by `sopel.plugin`
* used output prefix with `bot.say`
* replaced `sopel.module` by `sopel.plugin`
* used output prefix with `bot.say`
* removed obsole...
* replaced `sopel.module` by `sopel.plugin`
* used `plugin.output_prefix` with `bot.say` method
...
* replaced `sopel.module` by `sopel.plugin`
* used `plugin.output_prefix` with `bot.say` method