Sopel

Latest version: v8.0.0

Safety actively analyzes 638418 Python packages for vulnerabilities to keep your Python projects secure.

Scan your dependencies

Page 5 of 11

6.6.5

Not secure
===============================

Module changes
--------------

* Fixed url module not cleaning punctuation when auto-titling [[1515][]]
* Fixed url module's punctuation-cleaning on Python 2 [[1517][]]
* Fixed `.redditor` command with newer `praw` versions (4.0+) [[1506][]]
* Reloading modules now runs their `shutdown()` routines [[1412][]]

[1412]: https://github.com/sopel-irc/sopel/pull/1412
[1506]: https://github.com/sopel-irc/sopel/pull/1506
[1515]: https://github.com/sopel-irc/sopel/pull/1515
[1517]: https://github.com/sopel-irc/sopel/pull/1517

6.6.4

Not secure
===============================

Module changes
--------------

* Replaced `help` pastebin with `clbin.com`
* `ptpb.pw` shut down due to abuse — see [ptpb/pb246](
https://github.com/ptpb/pb/issues/246) for more
* More news on this front (reducing Sopel's dependence on specific pastebins)
in a future release. Several ideas are under consideration.
* Cleaned up code in `instagram` and `unicode` modules
* Core modules now use `bot.channels` instead of deprecated `bot.privileges`

Core changes
------------

* Privilege tracking now always updates both `bot.channels` & `bot.privileges`,
where before some handlers only updated one or the other
* This *should* have zero effect on behavior, but do report any observed.

6.6.3

Not secure
===============================

Module changes
--------------

* Fixed loading etymology module on Python 3.3
* Added Unicode support to calc module's `.py` output
* Correctly quote URL parameters in etymology and search modules

Core changes
------------

* Added docstrings to the privilege level constants in `sopel.module`

6.6.2

Not secure
===============================

Module changes
--------------

* wiktionary tries harder to get a valid result before erroring out

Core changes
------------

* Fixed an inconsistency between interpretations of the `--config` option in
normal operation vs. wizard mode
* Requirement specifiers tightened up to reduce/prevent `pip` trying to install
incompatible dependency versions (`IPython`, `dnspython`)
* SASL token is now split when required according to spec
* Multi-byte Unicode characters are now handled correctly when splitting lines

6.6.1

Not secure
===============================

Module changes
--------------

* spellcheck's `pyenchant` dependency is no longer required for py3.7+
* This should alleviate a lot of installation problems due to `pyenchant`
being unmaintained. If use of the spellcheck module is desired, the
necessary libraries may be installed manually.

6.6.0

Not secure
and enhancements. The big stuff is yet to come in Sopel 7, though; stay tuned!
(You can get some hints by browsing the [GitHub milestones][].)

View and contribute toward Sopel's budgetary needs by visiting the project's
new [Open Collective page](https://opencollective.com/sopel).

Now that Sopel 6.6.0 is released, the focus will shift from preparing the new
release to migrating the website and documentation off of Embolalia's personal
infrastructure. Once this migration is complete, Sopel's [documentation][docs]
will be updated to reflect the changes/additions listed below. Questions about
the new (and old) API methods are welcome in [sopel][] on Libera Chat, of
course, as always. Thank you for bearing with this transitional period!

Importantly, a couple of broken modules have been removed in this release. For
easy reference, they and their PyPI-installable replacements are listed near
the top of the "[Module changes](module-changes)" section.

Because this is the last release planned before Sopel 7, it's important to note
some upcoming changes. They're mostly for module developers, or for bot owners
who run unmaintained third-party modules (which might need manual updating).

But first, a user-facing change. Sopel is drifting toward a more streamlined
release model, which will see most of the core module library split out into
separate packages. Moving modules to their own packages will enable faster
fixes when APIs change, and easier module adoption by members of the community.

Further process details will appear in future changelogs as modules are moved
out of core, but the plan is to have Sopel "require" modules it used to include
for a release or two after their removal. Existing installations should thereby
have a smooth transition, as long as they get updated reasonably often. To
discuss this plan, visit issue [1291][].

And now, for the developer stuff.

There will be some attention given to how `Identifier` objects work in Sopel 7.
In particular, the way lowercase works appears to have been wrong for some
time. Subscribe to issue [1389][] for updates, or to join the discussion on
the best plan for addressing this.

Also in Sopel 7, the following deprecated functions in `sopel.web` will be
removed: `get()`, `head()`, `post()`, `get_urllib_object()`. Module authors
should replace these with equivalent code using `requests`. If you don't know
what that is, you're in for a treat: <https://pypi.org/project/requests/>

Remaining `sopel.web` functions might also move in a future major release. See
[1318][] and comment your opinion if you are a module developer. There is
still plenty of time to give feedback; nothing will happen before Sopel 8 at
the earliest.

Support for multiple help examples on each module command is planned for Sopel
7 and will allow for clearer command and argument documentation. The current
help system uses a deterministic but unintuitive method to choose a single
example to output. The current plan is to make the new multi-example behavior
opt-in, so only help for modules that are explicitly updated to support it will
change. Follow this initiative in [1200][].

Bot owners and admins might appreciate the new ignore system proposal, which
would (among other things) make "hostmask" blocks actually block hostmasks! See
[1355][] to participate in the design process; this change is tentatively
planned for Sopel 7 but may be pushed back.

And finally, for users who hate SQLite with a passion: Work on bringing back
alternate DB support has begun! It's unclear how soon this will be ready, but
users who want to switch off SQLite to another database engine might be able to
do so as early as Sopel 7. Follow the ups and downs of this long-awaited
journey at [1446][] for the time being.


[docs]: https://sopel.chat/docs/
[sopel]: irc://irc.libera.chat/sopel
[GitHub milestones]: https://github.com/sopel-irc/sopel/milestones
[1200]: https://github.com/sopel-irc/sopel/issues/1200
[1291]: https://github.com/sopel-irc/sopel/issues/1291
[1318]: https://github.com/sopel-irc/sopel/issues/1318
[1355]: https://github.com/sopel-irc/sopel/issues/1355
[1389]: https://github.com/sopel-irc/sopel/issues/1389
[1446]: https://github.com/sopel-irc/sopel/pull/1446

----

Module changes
--------------

* Added emoticons module: includes `.shrug`, `.tableflip`, `.lenny`, and other
common kaomoji
* Added instagram module: displays information about Instagram links in chat
* Removed movie: The OMDb API went private some time ago (Q2 2017)
* See [`sopel-modules.imdb`][pypi-imdb] on PyPI for a functional replacement
* Removed weather: Yahoo deprecated its weather service, the last known keyless
weather API
* See [`sopel-modules.weather`][pypi-weather] on PyPI for a functional
replacement that also adds the forecast command originally planned to
launch with Sopel 6.6.0.
* admin module's `.set` command handles spaces properly now
* bugzilla no longer spits out an error on shutdown if its domain list is empty
* dice module's `.roll`/`.dice`/`.d` command gives friendlier errors, and its
`.choice`/`.choose`/`.ch` command has cleaner output (will be further
improved in a later release)
* etymology module updated to work with etymonline.com's changes
* ip module can now look up nicknames (user's hostname) & IPv6 addresses
* ip module switched from deprecated GeoIP database to GeoIP2
* isup module can be forced to ignore untrusted/broken HTTPS with a new command
alias, `.isupinsecure`
* lmgtfy module gained improved output URLs (HTTPS, encoded query) and help
examples
* reddit module now picks up links under all commonly used subdomains
* reload's habit of duplicating packaged modules' command output has been
significantly curtailed
* There are still some edge cases (like reloading a module with a removed
function) that might still cause problems, but the majority of module
updates should be OK now.
* This feature will continue to improve over the next few releases.
* search module should behave better when encountering Unicode in URLs on py2
* search now warns `.ddg`/`.g` users of a bug affecting multiple "site:"
operators in a single query
* This is a bug in DuckDuckGo's plain-HTML SERP, and they have ignored all
attempts to report it. Sopel's DuckDuckGo code might be rewritten to use an
unaffected interface in the future.
* tld module gracefully handles missing arguments now
* translate now handles API failures gracefully
* url module can now create a short URL for convenience when fetching title
* only URLs longer than configured minimum length
* off by default
* url module will say an error if `.title` command fails
* url module's URL finder will ignore suspicious trailing punctuation, making
the auto-title feature more reliable when links are included in sentences
* version module no longer prints "wat" to the console/log when answering CTCP
`VERSION` requests
* wiktionary module now decodes HTML entities in its output before sending, and
it should also now give correct results for affixes & definitions containing
reference tags
* xkcd fetching by comic title should work again (switched back-end search
provider)
* Many modules updated to use HTTPS in both API calls and output

[pypi-imdb]: https://pypi.org/project/sopel-modules.imdb/
[pypi-weather]: https://pypi.org/project/sopel-modules.weather/

Core changes
------------

* Added `userserv` option for `auth_method`
* Added default value of `'UTC'` to `default_timezone`
* Added `alias_nicks` option
* Lets Sopel respond to (a) nickname(s) other than the name it uses for its
IRC nick
* Made handling `CNAME`'d TLS hostnames more forgiving
* Raw logging is no longer enabled by default
* Comparisons between Identifiers and other types were improved
* Sopel no longer sends the sticky modifier for capabilities
* Database tables are now created using "IF NOT EXISTS" to reduce error
potential
* Deprecated `sopel.web` calls in various modules updated to use `requests`
instead
* Intents/CTCP handling fixed
* Fixed more cases where module shutdown routines weren't running

API changes
-----------

* New formatting methods: `italic`, `strikethrough`, `monospace`, `hex_color`,
`reverse` (inverted video)
* With the exception of italics, these are all "niche" formatting codes that
have relatively limited client support, but they are included for
completeness.
* `sopel.db.get_uri()` was returning an incorrectly formatted result, now fixed
* Fixed populating `bot.channels` privileges dicts on connect
* Fixed updating `User` objects when receiving `NICK` events from the server
* Documentation added/corrected in several places
* Command prefix in examples is now assumed to match the default regex pattern
(currently `\.`)
* This fixes some issues with incorrect help output, but might cause new
problems in modules that use non-standard prefixes in their examples.
* Sopel's maintenance team regrets not providing advance warning of this
change, but the potential impact is limited to perhaps a few misplaced
characters in help output, at most—same as the bug itself, but likely with
a much lower incidence.

Page 5 of 11

© 2024 Safety CLI Cybersecurity Inc. All Rights Reserved.