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

admin: check arguments and add logs

Co-authored-by: dgw <[email protected]>

1356fd654dbfe0ce832d26e34aabd8cb69c4de9d authored over 4 years ago
py: better reply on error

880ca01f6316cd1e418585d951ec6a4a725ca5f5 authored over 4 years ago
tld: Use Wiki API

6d5f0004a4ad613ff73e587cafa3c34eb3f8124c authored over 4 years ago
cli, setup: hard-code Python 2 EOL message

Updates to Python 2.x stopped months ago. Any future release is certain
to be installed and run ...

79bddad99b5691c175825ed0f9a9c3049eb424d0 authored over 4 years ago
tld: small tweak to parser's handling of superscript

Without this, some TLDs like `.бел` won't be included in the data table.

Originally added while...

35fd6054555d9fb6c6fef56df92717a66de19dfe authored over 4 years ago
choose: validate type passed to `_format_safe()`

Because Python doesn't have a static type system.

582baadfa6392ccc68a1780c1831070fe5db67c4 authored over 4 years ago
test_modules_choose: more tests for expected character classes

e1a1789999a6e08a309718000fcc9ea397d5912f authored over 4 years ago
module: `as` imports are no longer needed

3d7ec8f8fe4e06c79d64856cfb111103efc4578e authored over 4 years ago
plugin: keep old-school plugin devs happy w/plural command decorators

The aliases' docstrings should prevent Sphinx from outputting the same
documentation twice; a si...

b2a8b0729d2bf7134935b81a7516d0b0010e9dc7 authored over 4 years ago
choose: comment blocks inspired by Exirel

Co-authored-by: Exirel <[email protected]>

bb0af62f56114b3277c668c413d8620bc855daa1 authored over 4 years ago
test_modules_choose: we'll aspire to fix these XFAIL tests someday

078c4ac8d4b1428b51a8b336cd0ede3dc642fe46 authored over 4 years ago
choose: implement own `strip()`-like function, safe for IRC formatting

Python's built-in `strip()` method for strings considers some control
codes used for IRC formatt...

e880c123da785757a32a109a5a9b624e990a684c authored over 4 years ago
test_modules_isup: fix module docstring (these don't test `remind`)

3087846db9809401af313c8305447c2f4fee49ab authored over 4 years ago
formatting: CONTROL_FORMATTING lists all known format chars

This is for plugin convenience, as otherwise they'd all need to build
their own lists of constan...

ddc23cbfeecdfdecb04b773b11adc4a151bda8ae authored over 4 years ago
irc.utils: rename "module" param & attribute to "plugin"

The old "module" attr will stick around as a deprecated property until
Sopel 8.0. Until then, an...

33b094baefc77d5b81a5bd1b6bc446781192e7b1 authored over 4 years ago
plugins.handlers: small fixes (all uses of "module" are correct)

850a178aed41c901c52c75d905123da12cd51782 authored over 4 years ago
plugins: audit docs for outdated use of "module" vs. "plugin"

d5854f82966aed75ce8adcd91bbceeb4b24c3c9e authored over 4 years ago
logger: decorate `get_logger()` with deprecation info

It won't start emitting any warnings until 8.0, but we won't have to
remember to decorate it lat...

e02a286d6c1bbdc79e2306e1b0d4f999b2c84706 authored over 4 years ago
irc: audit for outdated use of "module" vs. "plugin"

I'm doing this because it's easier to drop the change later than skip
over it now and then remem...

650e67207781e380532d103276432e0f8b10a05e authored over 4 years ago
irc.utils: fix docs for `CapReq` param `prefix`

The empty string is also allowed; it means "request this if no other
CapReq forbids it".

f8ed9e5fbfb67a41b8fe46a189215b7fa99d3993 authored over 4 years ago
coretasks: audit for outdated uses of "module" vs. "plugin"

6fa4bb1050fbfa7e9171e2e764efa7965b5f4c48 authored over 4 years ago
admin: add .chanlist command to show what channels Sopel is in

This was requested on our IRC channel. Instead of just telling the user
how to write their own c...

a42a3a5e079a3c92f95e722387366fc62b5faa64 authored over 4 years ago
irc, test_irc: handle multibyte chars in dest when splitting messages

The new test fails without the change in `irc` itself, proving that the
previous algorithm would...

830fbef6f2d5fda155fe16aa7029e4fb2c580b8e authored over 4 years ago
irc: calculate safe message length in `bot.say()` when splitting

Not quite ready to make this the default behavior, but plugins that make
use of `max_messages` a...

b7bf5e72a451990b5767251f712f021a2acaf983 authored over 4 years ago
test_irc: verify behavior of `bot.say()`'s `trailing` parameter

Co-authored-by: Exirel <[email protected]>

bf7337ed963682f9b05e33683f8f326465c446aa authored over 4 years ago
bot, irc: implement optional continuation indicator for `bot.say()`

New optional parameter to `bot.say()` allows specifying a suffix that
Sopel will append to a mes...

0a6d1eaf99ff218c852e46b55d5ec528233c3397 authored over 4 years ago
config: small refactoring and unit tests for types

Co-authored-by: dgw <[email protected]>

7c8fd587a766988af213c3aec148e62bdd1c6af2 authored over 4 years ago
Merge pull request #1928 from sopel-irc/fail-sasl-on-unadvertised-mech

coretasks: better SASL handling

005a53452fdd96dde1dd266b1587d67170665317 authored over 4 years ago
coretasks: SASL event handlers should be unblockable

69338e1daa8ab876196ca3b2a93e32cf11248f7b authored over 4 years ago
coretasks: refactor repeated SASL setting checks into helper function

70e442e4d3e56c7ae58c66e92841a60d45f6a6ef authored over 4 years ago
coretasks: minor code style

93c82c921de6817509836556ec907f53512c3069 authored over 4 years ago
coretasks: more better SASL logic

Handles SASL 3.1 advertised mechanisms, sent after Sopel's configured
mechanism fails, *sometime...

5604651d66365198a87ec6980573e79a2f65b8b2 authored over 4 years ago
Merge pull request #1859 from sopel-irc/announce-batch

announce: send announces to TARGMAX channels at once, if advertised

b16cfcd8e1197e4e85727f00f56c69f01c890aac authored over 4 years ago
coretasks: simplistic SASL mechanism verification

This only works for SASL 3.2 spec. In 3.1, the supported mechanisms are
only advertised after (a...

58eb6e944c1b0208a64bcabca8ee1a9a1adfb88c authored over 4 years ago
test: work around quirk of vcrpy + Python 3.3

Seems like the tests for `currency` work (locally) if 0 runs first, but
not if 1 runs first. Sor...

5c19545b824195df392395a28a36dd8cc4f8b018 authored over 4 years ago
test: re-record all VCR.py cassettes

Only one live response that had changed, for the `.suggest` command's
example test in `search`. ...

d40996c1bb005503099bfcc2bd3c9af5a8ea6a07 authored over 4 years ago
test: add helper make targets for VCR cassette management

`test_novcr` is now a shortcut to run pytest with `--disable-vcr`.
The old `test_novcr` has beco...

189b338c0d92ef22aba5fb2054a76cf2dca6ca94 authored over 4 years ago
tld: add .tldcache command

Allows viewing last update time, forcing the cached data to update, and
clearing the cached data...

5e45e6d29fe6f2a8772c941d8e00556edf01f029 authored over 4 years ago
Merge pull request #1948 from sopel-irc/tools-convenience-imports

tools: make `time` and `web` always accessible by importing `tools`

0cd434af8aef8e5122c49790f27612085c30d07c authored over 4 years ago
test, isup: verify behavior of `None` in `get_site_url()`

0059659f32ba106e21817ff3d7d2350b0d62dcc8 authored over 4 years ago
isup: refactor obsolete if/else

Simplifies handler function (flattens the logic a bit).

5af0eea249238485d70c8e14743358a50115b0f4 authored over 4 years ago
announce: check that message argument is set

See comments in #1859 and #1953.

ce10d0a5ae47f0668ac3f2313a0eee54d1919061 authored over 4 years ago
version: tweak command docstring for clarification

Co-authored-by: dgw <[email protected]>

539c733b204f39c93e0c307b0d6e43c2c2f75d4c authored over 4 years ago
tools: make `time` and `web` always accessible by importing `tools`

It's really silly that anyone who wants to use the `time` submodule has
to do `import sopel.tool...

0db69e01a691acc80f500a064da0338754bd3130 authored over 4 years ago
adminchannel: check formatted topic against TOPICLEN, if sent by server

02a53b3e82882c36ced2779d3a366fa13845ac9f authored over 4 years ago
adminchannel: import cleanup & punctuation fix

c36e0bde594ea63ed82de615f306d0a5b0ed1839 authored over 4 years ago
docs: note about quoted values; minor tweaks to examples

In particular, added an example of `logdir` and `log_raw` usage, since
I noticed those were miss...

cae966baaeb7dd90ce336ae54b6a66699904238a authored over 4 years ago
config.core_section: improve docs of path- & log-related settings

Copied note about relative path behavior from `pid_dir` to both `logdir`
and `ca_certs` docstrin...

624f9f24f60ae167b24966d082c5f1c627e542c2 authored over 4 years ago
ip: add note about relative `GeoIP_db_path` value behavior

d465f332b50982597c7977c2b78401bd14b27e9d authored over 4 years ago
meetbot: enforce absolute `meeting_log_path`

64a71690d6c54e2138583a0a15b5a3cc9112ec50 authored over 4 years ago
package: allow '-' or '.' before release level

We have been using e.g. '7.0.0.rc2', but `_version_info()` parsed such
version strings incorrect...

074e1f1d61c6ba6b62b794d082dbfc56e6d069eb authored over 4 years ago
find_updates: restore unstable release handling

0e13d068cdf76da0bee6e4ff5982f055bd32abe2 authored over 4 years ago
find_updates: replace startup-check flag global with bot memory value

c19548c61548569e05ad874d7222cffaf1d7da0e authored over 4 years ago
announce: send announces to TARGMAX channels at once, if advertised

Reduces the bot's network overhead, and might make servers happier.

b7b6b46a84e29e26a6a6b921debf57735661a4c0 authored over 4 years ago
Merge pull request #1938 from Exirel/tools-memory-key-factory

tools: new `SopelIdentifierMemory` class

54e42747959d86ddc1ba40bc02098cb3ab7d9439 authored over 4 years ago
Merge pull request #1940 from sopel-irc/isup-tweak

isup: fix error-series HTTP status codes; get away from assuming TLD

a0002671cb370902d1dab85f654fb05c00b632cd authored over 4 years ago
reddit: remove stray hard-coded message prefix missed in #1937

2009dbfe8a4e4d24910b8bf955c7e5483bd133a1 authored over 4 years ago
coretasks: reduce "useless MODE message" logspam

Check whether the MODE message target is a nick *first*, before checking
how many arguments it h...

6ca689fdc4646d632a67916f124db978e110af9c authored over 4 years ago
Merge pull request #1939 from sopel-irc/tld-revamp

tld: comprehensive rewrite

f896c414934b13115d9b966c811d088eb5d321c6 authored over 4 years ago
plugins: use tools.SopelIdentifierMemory in plugins

89435649ce0bf7a1b3003914e77226008a6e1366 authored over 4 years ago
tools: new SopelIdentifierMemory class

c4618e3e5922a0492c9d419c66143725fe6501f8 authored over 4 years ago
Merge pull request #1930 from Exirel/handle-nick-already-used

core: change/recover in-use nick; fix obsolete USER command syntax

11abde6d83691a96b5c44e74b6b000c0e8b62aeb authored over 4 years ago
bot: prevent sys.exit when loading plugin to crash the bot

6cfda5d94a02b3d5511e558aef56736b102a3a73 authored over 4 years ago
coretasks, admin: minor style fix for bot.write

9f91b3e9f3dbf3aefdcacea0c93a9ed37ef8dcbc authored over 4 years ago
coretasks: assume + only if core.modes does not start with + or -

a0dbb9d5131dadeacdc651741590cd8a9f785aac authored over 4 years ago
irc: quick import and docstring cleanup

17674ea0eaeebfb414fb0054f48791f919313b84 authored over 4 years ago
irc: send proper USER command

As discussed with @dgw on IRC, the proper USER command should be:

USER <username> 0 * :<real n...

fe8059cb184a15cdd32bfaef45af1fec260d6667 authored over 4 years ago
irc: backend now handles server error

6ab97bd3938f6d107a1b6a83c5391a48d9582ff5 authored over 4 years ago
core: change and recover nick when already used

f02e2d0c7d106a449cbe50d62bbc5cf3495d276f authored over 4 years ago
Merge pull request #1936 from Exirel/plugin-collect-decorated-callables-only

loader, plugin: load decorated callables only

daaef673886a688746cebde333bd8d8b6abb218c authored over 4 years ago
isup: give specific reason for "down" verdict

Specified timeout values, both to improve response time of the command
and to make the connect/r...

50ace55f2b6309b59792aeda332e12ed79472a16 authored over 4 years ago
isup: block querying invalid/test TLDs & local names with dot in path

Includes tests, since that's how I verified that it used to be allowed.

778fc4f2b75a1a0155949befb49d39c3ba33c390 authored over 4 years ago
Merge pull request #1932 from sopel-irc/sphinx-css-tweaks

docs: add space before attribute lists

fff86431147f540251061a18eb9d84e8dc27ab16 authored over 4 years ago
isup: don't assume `.com` any more if dot is missing

The "com" TLD is nowhere near as common as it once was. It's probably
better to just inform the ...

2863d727c7c7ca28e3759db5ceca7cdfb5773272 authored over 4 years ago
isup: let's just use `.startswith()` instead of slicing

e504eacd0b147b21df2f271e05aa3f71c19aefb3 authored over 4 years ago
isup: consider error status codes as "down"

This explains so much about how I'd check a site that's clearly down if
I visit it in my browser...

adc043e9acd97378be4fb900369dc533705238b9 authored over 4 years ago
tld: use TLD list from IANA to validate queried items' existence

List is cached in `bot.memory` at runtime, and persisted to a plugin
value in `bot.db` at shutdo...

1a0b4ee0b1b63acf41fdf5f0116b4353d3d5ca5b authored over 4 years ago
tld: add basic formatting support (bold & italic) to TLD data parser

Also moved the data-processing step inside the parser object, because
having a helper function f...

f67737db60e453c22f58b1317a0b01b6aabf4b69 authored over 4 years ago
tld: completely overhaul data fetching from Wikipedia

Replaced those horrid (and ugly) regex patterns with a bare-bones HTML
parser, an in-memory look...

816ac868d12f16f6a732e100afa3b80fffd159f5 authored over 4 years ago
Merge pull request #1937 from Exirel/consistency-plugins-output

plugins: check consistency of plugin code and their output formatting

19522fce13da182b683d6534ed48da6e8bd15a22 authored over 4 years ago
build: pin `coveralls` requirement on old Python versions

c9d721c924fc6f262f63dbcf43b038b043e6fe5b authored over 4 years ago
emoticons: check output consistency

* replaced `sopel.module` by `sopel.plugin`
* no output prefix for emotes, they are too pure!

ab0cac770a3bc63d04f1f3579d3c42619a3f6bd3 authored over 4 years ago
meetbot: proper imports

855f98a2dc1c378fb6c9eb49c76b07760472ec10 authored over 4 years ago
ip: check output consistency

* replaced `sopel.module` by `sopel.plugin`
* replaced `bot.say` by `bot.reply` for error cases
...

8b6318fbcf92dcbdcb5f9d7bf8bfbb95e10589e9 authored over 4 years ago
lmgtfy: check output consistency

* replaced `sopel.module` by `sopel.plugin`
* replaced `web.quote` by Python's built-in `urlencode`

a7e4390eae0bf9c662413e4721af899662fbc470 authored over 4 years ago
find: check output consistency

* replaced `sopel.module` by `sopel.plugin`

efa279822f1cb235980f226f41b234ee0d969e93 authored over 4 years ago
invite: check output consistency

* replaced `sopel.module` by `sopel.plugin`
* replaced `return bot.reply` by 2 lines

e213bd5f2d7c7460baa0cb870545068ec164114b authored over 4 years ago
unicode_info: check output consistency

* replaced `sopel.module` by `sopel.plugin`
* used `plugin.output_prefix` with `bot.say` method
...

0e5ee11fecd771fd5696059d4ce578a2ba058c4f authored over 4 years ago
isup: check output consistency

* replaced `sopel.module` by `sopel.plugin`
* used `plugin.output_prefix` with `bot.say` method

98e33ee9fbb21a67e6aed49aaa1a14451f83769c authored over 4 years ago
instagram: check output consistency

* replaced `sopel.module` by `sopel.plugin`
* used `plugin.output_prefix` with `bot.say` method
...

c92eba90c7a15d4a42c55d662f9f277da2c33a98 authored over 4 years ago
find_updates: check output consistency

* replaced `sopel.module` by `sopel.plugin`
* add manual output prefix in job

f7695ab1b75c4367dee048e28a1f1105bce1d89c authored over 4 years ago
py: check output consistency

* replaced `sopel.module` by `sopel.plugin`
* removed obsolete `if main` block

72da978926541edc08ec91957ab28e2ee6b5d2c1 authored over 4 years ago
reddit: check output consistency

* replaced `sopel.module` by `sopel.plugin`
* replaced `bot.say` by `bot.reply` for error cases
...

fa9516a0222dfaeeda088aa7202c44e5a9227479 authored over 4 years ago
bugzilla: proper config import

eea3e4a8250c6546d71fbed54183aeca0a6cdb5b authored over 4 years ago
ping: replace sopel.module by sopel.plugin

ec8629f5147baf1aea3d6d1e50b2d32f679b43ab authored over 4 years ago
help: replace sopel.module by sopel.plugin

4d299d1ead6d9914ed517f15bf97ba7852fd06d7 authored over 4 years ago
countdown: check output consistency

* replaced `sopel.module` by `sopel.plugin`
* used output prefix with `bot.say`

48e3f30c6c088fbcc24b99a744ba533af48c9902 authored over 4 years ago
calc: check output consistency

* replaced `sopel.module` by `sopel.plugin`
* used output prefix with `bot.say`
* removed obsole...

927938123693395f85fc3f99f0de472dff953ab0 authored over 4 years ago
units: check output consistency

* replaced `sopel.module` by `sopel.plugin`
* used `plugin.output_prefix` with `bot.say` method
...

e875c63aa623ac3e77c43a7f22af853fe450978b authored over 4 years ago
uptime: check output consistency

* replaced `sopel.module` by `sopel.plugin`
* used `plugin.output_prefix` with `bot.say` method

f156e8c469b27e601ea931bb7ef2780ce27241cd authored over 4 years ago