{"id":15115967,"url":"https://github.com/albino/shithead-ng","last_synced_at":"2026-03-10T08:46:22.172Z","repository":{"id":176289773,"uuid":"84870564","full_name":"albino/shithead-ng","owner":"albino","description":"next generation markov chain irc shitposting bot","archived":false,"fork":false,"pushed_at":"2020-05-21T22:25:12.000Z","size":23,"stargazers_count":3,"open_issues_count":0,"forks_count":0,"subscribers_count":3,"default_branch":"master","last_synced_at":"2024-09-26T01:50:05.595Z","etag":null,"topics":["bot","irc","irc-channel","redis"],"latest_commit_sha":null,"homepage":null,"language":"Perl","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"artistic-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/albino.png","metadata":{"files":{"readme":"README.md","changelog":null,"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":"2017-03-13T20:19:14.000Z","updated_at":"2023-06-02T02:18:46.000Z","dependencies_parsed_at":null,"dependency_job_id":"576a59dc-f558-4549-8b08-32e2661c99fe","html_url":"https://github.com/albino/shithead-ng","commit_stats":null,"previous_names":["albino/shithead-ng"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/albino%2Fshithead-ng","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/albino%2Fshithead-ng/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/albino%2Fshithead-ng/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/albino%2Fshithead-ng/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/albino","download_url":"https://codeload.github.com/albino/shithead-ng/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":234460505,"owners_count":18836837,"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":["bot","irc","irc-channel","redis"],"created_at":"2024-09-26T01:44:06.451Z","updated_at":"2025-09-27T21:31:22.767Z","avatar_url":"https://github.com/albino.png","language":"Perl","funding_links":[],"categories":["Perl"],"sub_categories":[],"readme":"## cool new stuff\n\nshithead-ng has been superseded by [shithead-X](https://github.com/albino/shithead-X), which uses very fancy GPT-2 instead of old and boring Markov chains. but if you submit an issue to shithead-ng I will still answer it.\n\n## important\n\nrecent config changes:\n\n - target_words option\n - irc_channel changed to irc_channels\n - respond_on_highlight option\n\nIf you do not update your config.yml file to reflect these changes, shithead-ng will not work!\n\n# shithead-ng\n\nnext generation markov chain irc shitposting bot\n\n### The problem\nThe original shithead uses far too much ram and is badly implemented.\n\n### The solution\nLet's reimplement it and get redis to do all the heavy lifting.\n\n## Getting Started\nFirst, set up dependencies. You need a redis server and the necessary perl modules:\n\n```bash\n# install cpanminus with your package manager of choice (preferred), or install it through cpan:\ncpan App::cpanminus\n# clone the git repo if you haven't already, then install the perl modules\ngit clone https://neetco.de/albino/shithead-ng\ncd shithead-ng\ncpanm --installdeps .\n# or, to avoid setting up local::lib:\ncpanm --sudo --installdeps .\n```\n\nNext, you need a brainfile. A brainfile is simply an irc log with all joins, parts, timestamps and nicknames stripped. In other words, it contains only what was said.\n\n```bash\n# if you have an old brainfile, import it into redis\nperl import-brain.pl /home/you/brainfile\n# this can take a long time (about ten minutes for me), so be patient\n```\n\n```bash\n# now, you need a config file\ncp config.default.yml config.yml\n# edit the values in config.yml to your choosing\n```\n\nNow, just run `perl MarkovBot.pl`.\n\n## Commands\n\n* .shitposting - controls the % of messages the bot will reply to\n```\n\u003c user\u003e .shitposting 1.5\n\u003c shithead-ng\u003e OK\n```\n\n* .ignore - make the bot totally ignore a user (useful for bots)\n```\n\u003c user\u003e .ignore bot\n\u003c shithead-ng\u003e Now ignoring bot.\n```\n\n* .unignore - removes a user from the ignore list\n```\n\u003c user\u003e .unignore bot\n\u003c shithead-ng\u003e No longer ignoring bot.\n```\n\n* .ping - check that shithead-ng is still alive\n```\n\u003c user\u003e .ping\n\u003c shithead-ng\u003e Pong!\n```\n\n## Command line options\n```text\n-f: specify a YAML config file for shithead-ng to use. Defaults to /path/to/shithead-ng/config.yml.\n```\n\n## Exporting the brainfile\n\n```bash\nperl export-brain.pl \u003e brain\n```\n\nThis produces a shithead-ng brainfile which cannot (currently) be read by other programs. This is because the redis database does not contain enough information to reconstruct the brainfile it was created from. This file can, however, be read by shithead-ng's import-brain.pl.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Falbino%2Fshithead-ng","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Falbino%2Fshithead-ng","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Falbino%2Fshithead-ng/lists"}