Skip to content

*** Eggdrop v1.10.0 STABLE ***

Latest
Compare
Choose a tag to compare
@vanosg vanosg released this 14 Oct 01:55
· 36 commits to develop since this release

Greetings, Eggheads!

After a long year and a half, we have finalized another release of Eggdrop- this one is big enough to warrant rolling over to the next version series, 1.10! What makes it so big, you may ask? We'll tell you!

By far, the biggest improvement is something people have been asking for a long time- the inclusion of a Python module! Thanks to a herculean effort by thommey, Eggdrop now comes with a Python module that has full access to the existing Tcl API, so it is feature complete. It requires Python >= 3.8 and supports both threads and async Python allowing it run in parallel to Eggdrop.

One important "feature" notification for python- we're still struggling to correctly handle the bind table in this version, so if you do a '.rehash', you may find that binds are duplicated. Check out the example script 'greet.py' in the python module directory and look at one possible example on how to code unloading binds after a rehash. And for all your other inquiries, please take a look at the examples in the src/mod/python.mod/scripts directory and documentation in doc/PYTHON for an introduction.

Also, we we know there is not a lot of sample material to pull from like there is from the last (gasp) thirty years of Tcl scripts, @thommey has put together a slightly more advanced script to look at. Check out https://github.com/thommey/eggdrop-github-py for a Python script that interacts with GitHub to announce various GitHub events like Commits, Pull Requests, etc. It is still a work in progress but may serve as a solid foundation to create your own python scripting adventures!

We also added a new capability called "autoscripts"- by loading autoscripts.tcl in your config file, you can now download, activate, and configure specially-configured Tcl scripts from the partyline. Responding to user feedback that it is hard to find "Tcl scripts that work", we are working to curate and maintain a repository of commonly-used scripts that can be fully administered from the partyline. Please read doc/AUTOSCRIPTS for all the details and feel free to submit suggestions (and scripts) via #eggdrop on Libera. This is an evolving capability and we welcome your feedback (and bugfinds) on it.

Another big improvement is Eggdrop's ability to identify users based on their IRC server accounts, not just their hostnames. If Eggdrop is on a server that supports WHOX and the IRCv3 capability of account-tracking and extended-join are enabled, Eggdrop can now use the IRC server account a user is logged into as a basis to do things like trigger Tcl binds and auto-op, etc.

One more small "gotcha" change for compiling- Eggdrop now requires openssl development libraries to be installed by default. If you don't have openssl and aren't able to get it installed, you can bypass this check by using ./configure --disable-tls, but of course we don't recommend this. Other changes include the addition of the IRCv3 userhost-in-names and standard-replies capabilities, added a "hidden-host" EVNT bind type that triggers when the bot's own host is successfully hidden via the +x usermode, a got-chanlist EVNT bind that runs once Eggdrop finishes getting the member list of a channel when it joins, and some more documentation and tutorials to help.

We'd like to also thank DasBrain for his work updating code to be Tcl 9 compliant. Tcl 9 was finally released after much anticipation! To the best of our knowledge, these changes make Eggdrop 1.10.0 compliant with Tcl 9. These changes are "under the hood" and are not expected to break existing scripts. The good news though- this should fix the default handling of Emoji and other UTF-8 characters that have previously caused issues with some scripts!

Lastly, in an effort to help new users with the install process, we are hosting an installation file at https://geteggdrop.com/install.sh . Running this file will walk a user through the compilation process, starting by checking for required libraries, then compiling and installing Eggdrop, and finally setting up a basic configuration file to use. We're not quite ready to include it with the core install files yet, but you can easily download it with curl -L geteggdrop.com/install.sh and then run it.

Wow - that's quite the list. You can read more about all of the enhancements and fixes in the NEWS file included with the source, its a quick read, we promise.

Many thanks to those in the community that continue to contribute new ideas and identify areas for improvement- user feedback is very important to us as we continue to drive development in a direction most useful to our users. We invite everyone to idle in #eggdrop on Libera or, even better, participate in the conversation! Thank you for continuing to make this project so rewarding to both us the developers and the IRC community at large!