The Wayback Machine - https://web.archive.org/web/20190620162747/https://github.com/sopel-irc/sopel
Skip to content
🤖💬 An easy-to-use and highly extensible IRC Bot framework. Formerly Willie.
Branch: master
Clone or download
dgw Merge pull request #1548 from HumorBaby/feat-make-init-githooks
dev: adds (optional) pre-commit and pre-push Git hooks
Latest commit 971545c Jun 20, 2019
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
.github Create FUNDING.yml May 24, 2019
contrib contrib: add script to (un)install hooks Jun 19, 2019
docs doc: sopel.plugins Apr 29, 2019
sopel Merge pull request #1576 from deathbybandaid/Patch-search_url_callbacks Jun 18, 2019
test remind: test weird messages don't break the reminder May 11, 2019
.codeclimate.yml Tweak some thresholds in codeclimate config Feb 5, 2019
.coveragerc Update to testing process Apr 6, 2018
.gitignore Rip out the wiki's still-beating heart Jan 27, 2019
.travis.yml travis: make sure to install develop version before tests Jun 13, 2019
CONTRIBUTING.md docs: how to use/enable git hooks Jun 19, 2019
COPYING Added EFL license file, to actually comply with it Sep 19, 2012
CREDITS Huge cleanup of copyright headers and docstrings Dec 27, 2015
MANIFEST.in install: use setup.cfg instead of setup.py Jun 13, 2019
Makefile contrib: adds `make (un)install-hooks` to initialize/remove Git hooks Jun 19, 2019
NEWS Release 6.6.9 Jun 1, 2019
NEWS.spec.md NEWS & NEWS spec: Fix issue with indented link references Mar 24, 2019
README.rst readme: add database configuration info May 12, 2019
checkstyle.sh dev: use flake8-coding to check `coding:` magic comments Mar 29, 2019
ci_build.sh Update ci_build.sh to be useful again Mar 29, 2018
conftest.py test: register pytest 'online' marker Jun 2, 2019
dev-requirements.txt travis: add --upgrade to always install latest requirements Jun 2, 2019
pytest.ini Update to testing process Apr 6, 2018
pytest_run.py Update to testing process Apr 6, 2018
requirements.txt Merge pull request #1439 from RustyBower/web_lookup_fix May 29, 2019
setup.cfg install: use setup.cfg instead of setup.py Jun 13, 2019
setup.py install: add python_requires in setup.py Jun 13, 2019
sopel.py cli: move sopel.run_script to sopel.cli.run Mar 19, 2019

README.rst

Sopel

version build issues coverage-status license Backers on Open Collective Sponsors on Open Collective

Introduction

Sopel is a simple, lightweight, open source, easy-to-use IRC Utility bot, written in Python. It's designed to be easy to use, run and extend.

Installation

Latest stable release

On most systems where you can run Python, the best way to install Sopel is to install pip and then pip install sopel.

Arch users can install the sopel package from the [community] repository, though new versions might take slightly longer to become available.

Failing both of those options, you can grab the latest tarball from GitHub and follow the steps for installing from the latest source below.

Latest source

First, either clone the repository with git clone git://github.com/sopel-irc/sopel.git or download a tarball from GitHub.

Note: Sopel requires Python 2.7.x or Python 3.3+ to run. On Python 2.7, Sopel requires backports.ssl_match_hostname to be installed. Use pip install backports.ssl_match_hostname or yum install python-backports.ssl_match_hostname to install it, or download and install it manually from PyPI.

Note: Python 2.x is near end of life. Sopel support at that point is TBD.

In the source directory (whether cloned or from the tarball) run setup.py install. You can then run sopel to configure and start the bot. Alternately, you can just run the sopel.py file in the source directory.

Database Support

Sopel leverages SQLAlchemy to support the following database types: SQLite, MySQL, PostgreSQL, MSSQL, Oracle, Firebird, and Sybase. By default Sopel will use a SQLite database in the current configuration directory, but alternative databases can be configured with the following config options: db_type, db_filename (SQLite only), db_driver, db_user, db_pass, db_host, db_port, and db_name. You will need to manually install any packages (system or pip) needed to make your chosen database work.

Adding modules

The easiest place to put new modules is in ~/.sopel/modules. Some newer modules are installable as packages; search PyPI for these. Many more modules written by other users can be found using your favorite search engine.

Some older, unmaintained modules are available in the sopel-extras repository, but of course you can also write your own. A tutorial for creating new modules is available on Sopel's website. API documentation can be found online at https://sopel.chat/docs/, or you can create a local version by running make html in the docs directory.

Further documentation

The official website includes such valuable information as a full listing of built-in commands, tutorials, API documentation, and other usage information.

Questions?

Join us in #sopel on Freenode.

Credits

Contributors

This project exists thanks to all the people who contribute! Become a contributor.

https://opencollective.com/sopel/contributors.svg?width=890&button=false

Backers

Thank you to all our backers! Become a backer.

https://opencollective.com/sopel/backers.svg?width=890

Sponsors

Support Sopel by becoming a sponsor. Your logo will show up here with a link to your website. Become a sponsor.

You can’t perform that action at this time.