{"id":15712854,"url":"https://github.com/hlmtre/pybot","last_synced_at":"2025-04-15T05:51:54.178Z","repository":{"id":2877007,"uuid":"3883087","full_name":"hlmtre/pybot","owner":"hlmtre","description":"An extensible, modular, configurable, and multi-threaded python irc bot.","archived":false,"fork":false,"pushed_at":"2025-03-06T03:54:53.000Z","size":2056,"stargazers_count":10,"open_issues_count":6,"forks_count":4,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-04-15T05:51:48.479Z","etag":null,"topics":["pybot","python-irc-bot"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/hlmtre.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGES","contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2012-03-31T03:52:14.000Z","updated_at":"2024-07-29T18:15:30.000Z","dependencies_parsed_at":"2024-01-27T01:57:51.253Z","dependency_job_id":"f9c02258-9285-4df2-a8f3-4fb53f076e00","html_url":"https://github.com/hlmtre/pybot","commit_stats":{"total_commits":707,"total_committers":14,"mean_commits":50.5,"dds":0.2347949080622348,"last_synced_commit":"3cd31230bb77e7aa49f4ad38dbb95ef9924fa197"},"previous_names":[],"tags_count":25,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hlmtre%2Fpybot","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hlmtre%2Fpybot/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hlmtre%2Fpybot/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hlmtre%2Fpybot/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/hlmtre","download_url":"https://codeload.github.com/hlmtre/pybot/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":249016317,"owners_count":21198832,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["pybot","python-irc-bot"],"created_at":"2024-10-03T21:18:45.132Z","updated_at":"2025-04-15T05:51:54.163Z","avatar_url":"https://github.com/hlmtre.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"[![Build Status](https://travis-ci.org/hlmtre/pybot.svg?branch=master)](https://travis-ci.org/hlmtre/pybot)\n[![Documentation Status](https://readthedocs.org/projects/pybot/badge/?version=master)](https://pybot.readthedocs.io/en/master/?badge=master)\n![Github action build status](https://github.com/hlmtre/pybot/workflows/Python%20application/badge.svg)\n[![Scrutinizer coverage](https://scrutinizer-ci.com/g/hlmtre/pybot/badges/quality-score.png?b=master)](https://scrutinizer-ci.com/g/hlmtre/pybot/?branch=master)\n\n[ReadTheDocs documentation](http://pybot.readthedocs.org/en/master/ \"ReadTheDocs pybot documentation\")\n\npybot is a python irc bot. he is a project.\n-------------------------------------------\n\nhe is modular, extensible, multi-threaded (for network independence!), and configurable.\n\npybot runs on python 2.7 and \u003e3.5, on both windows and linux, though current development is all geared towards \u003e3.5.\n\n**master branch should be stable. feature branches can be broken at any time.**\n\nIf You've Got Docker\n====================\n\nThis is mucho easier-o. Just\n----------------------------\n\n    docker build . -t pybox\n    docker run -it pybox --nick \u003cbotnick\u003e --server \u003cyourserver\u003e --port 6667 --channels \"#c1, #c2\" --owner \u003cyournick\u003e\n\n(Now probably more than) 10-second TL;DR:\n=========================================\n\nTake care of dependencies. If you don't use MySQL and don't care about certain modules breaking, you don't need anything but python 2.7/3.5 and standard libs.\n-----------------------------------------------------------------------------------------------------------------------------------------------------\n    python -m venv pybot-venv\n    source pybot-venv/bin/activate\n    # so as to not stuff pips everywhere\n    pip install -r requirements.txt\n\n* python-dev\n* libmysqlclient-dev (aka mysql-python in pip)\n* requests (used in a variety of modules)\n* praw (for reddit info module)\n* mysql-python (if you do use mysql)\n* sphinx (for docs)\n* python-twitter (twitterposter)\n* pytz (tzone)\n\nLocal Development (with sqlite3)\n--------------------------------\n1. Copy pybotrc to the user who will run the bot *(you can probably do `cp pybotrc ~/.pybotrc`)*\n2. Modify ~/.pybotrc with your network, owner, and nickname.\n3. `./pybot.py`\n4. laugh at mysql guys.\n5. continue laughing.\n6. for debugging purposes, `./pybot.py -d.`\n\nLocal Development (with MySQL)\n------------------------------\n1. modify pybotrc with your channels and passwords.\n2. run `sudo ./bootstrap.sh` to install pybot dependencies such as mysql.\n3. run `./setup.sh`. It will check for module dependencies and create a mysql\\_init file. `mysql -p \u003c mysql\\_init`\n4. `./pybot.py pybotrc`\n5. rejoice.\n6. for debugging purposes, `./pybot.py -d.`\n\nManual\n------\nAdd a mysql user for pybot with permissions to update, insert, and delete from the created tables.\nLogged into mysql: `grant all on \u003cdbname\u003e.* to '\u003cusername\u003e' identified by '\u003cpassword\u003e';`\n\nRun the included mysql\\_dump file (as root, `mysql -p \u003cpybot's database name\u003e \u003c mysql\\_dump`).\nSet his dbpass in the config file (pybotrc) to the password you've given him.\nCopy that config file to the home folder of whatever user will be running the bot. (~user/.pybotrc)\nAs that user, `./pybot.py.`\n\nVagrant Development\n-------------------\nIf you have Vagrant locally installed and configured, you can set up pybot by invoking\n`vagrant up`. Your development environment will be configured, and you can skip step 1 and\n2 above. After that, SSH into your VM and do steps 3 through 5 to finish things off.\n\nImages \u0026 Explanation\n====================\n\n![debug mode](http://i.imgur.com/x99zXOJ.png \"debug mode\")\n\nHere pybot is connected to two networks at once. They are held entirely separately. Modules loaded on one are independent of modules loaded on another.\nIf one server goes down, the other connections to other networks are unaffected.\n\n![youtube module](http://i.imgur.com/kUYW3e5.png \"youtube module\")\n\n![a totally not contrived example](http://i.imgur.com/jMpkjRf.png \"a totally not contrived example\")\n\nTODO\n----\n* add birthday module (save birthdays for your channel regulars!)\n* update scheduler to accept *at* commands - .schedule at 5pm say #development pick your child from daycare\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fhlmtre%2Fpybot","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fhlmtre%2Fpybot","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fhlmtre%2Fpybot/lists"}