{"id":22534090,"url":"https://github.com/mariari/vomitchan","last_synced_at":"2025-04-09T18:11:14.511Z","repository":{"id":26764737,"uuid":"105817534","full_name":"mariari/vomitchan","owner":"mariari","description":"*cheek pinch*","archived":false,"fork":false,"pushed_at":"2024-09-16T09:18:31.000Z","size":254,"stargazers_count":8,"open_issues_count":0,"forks_count":4,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-03-23T20:11:37.464Z","etag":null,"topics":["bot","irc"],"latest_commit_sha":null,"homepage":"","language":"Haskell","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"bsd-3-clause","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/mariari.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}},"created_at":"2017-10-04T20:56:05.000Z","updated_at":"2025-03-13T03:02:41.000Z","dependencies_parsed_at":"2023-02-10T06:00:36.744Z","dependency_job_id":null,"html_url":"https://github.com/mariari/vomitchan","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mariari%2Fvomitchan","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mariari%2Fvomitchan/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mariari%2Fvomitchan/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mariari%2Fvomitchan/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/mariari","download_url":"https://codeload.github.com/mariari/vomitchan/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248085277,"owners_count":21045138,"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"],"created_at":"2024-12-07T09:11:58.657Z","updated_at":"2025-04-09T18:11:14.495Z","avatar_url":"https://github.com/mariari.png","language":"Haskell","funding_links":[],"categories":[],"sub_categories":[],"readme":"# vomitchan\nAn IRC bot written in Haskell.  *cheek pinch*\n\n---\n\n![vomitchan running in IRC](https://puu.sh/BJHkI/08007ee669.png)\n\n## Commands\n- `.bots [vomitchan]` - prints bot info\n- `.source vomitchan` - prints a link to bot source\n- `.lewd \u003csomeone\u003e` - lewds someone\n- `*vomits* \u003csomeone\u003e` - 'vomits' a link posted by you, or optionally someone else\n- `*cheek pinch*` - turns off and on dreammode for a channel\n- `*step*` - turns off and on fleecyMode for a channel\n- `*yuki*` - turns off and on yukiMode for a channel\n- `.lotg \u003csomeone\u003e` - gives the luck of the grasshopper to a user\n- `.8ball \u003cquestion\u003e` - acts like an eight ball!\n\n### Admin Only\n- Currently admins are stored in the admins list in Command.hs (will be read from a file later)\n- `.quit` - kills vomitchan from the current server ;-;\n- `.part` - an alias for quit\n- `.quit all` - Kills vomitchan from all servers ;-;\n- `.join \u003cchannel\u003e` - vomitchan joins specified channel\n- `.leave \u003cchannel\u003e` - vomitchan leaves the spcified channel\n- `.leave` - vomitchan leaves the current channel\n\n## Building\n### Requirements\n- Stack\n- Haskell packages (stack should install these for you):\n  - bytestring\n  - connection\n  - directory \u003e= 1.2.5\n  - lens\n  - monad-loops\n  - network\n  - random\n  - stm\n  - text\n  - turtle\n  - utf8-string\n  - vector\n  - containers\n  - stm-containers\n  - mtl\n  - base64-bytestring\n  - attoparsec\n\n\n### Building on Linux\n- clone this repo using `git clone https://github.com/mariari/vomitchan.git`\n- run `cd vomitchan \u0026\u0026 stack setup \u0026\u0026 stack build` to compile\n\n## Configuration\nvomitchan requires `data/networks.json` to store information about IRC networks to connect to.\nThis file should look like the following:\n\n**NOTE: one can forego writing T F F F for \"dreammode\", \"mutemode\", \"fleecyMode\", and YukiMode because they default to T F F F**\n\n```json\n[\n    { \"netServer\"   : \"irc.freenode.net\"\n      , \"netPort\"   : 6697\n      , \"netSSL\"    : false\n      , \"netNick\"   : \"vomitchan\"\n      , \"netPass\"   : \"PASS\"\n      , \"netAdmins\" : [\"mariari@net-8bn.43k.64gvlf.IP\"]\n      , \"netChans\"  : [\"#hardfought\", \"#em.slashem.me\", \"#Haskell\"]\n      , \"netIgnore\" : []\n      , \"netBans\"   : []\n      , \"netState\"  : [[\"#hardfought\", {\"dream\"  : true,\n                                       \"mute\"   : false,\n                                       \"fleecy\" : false,\n                                       \"yuki\"   : false}]\n                      ,[\"#em.slashem.me\", {\"dream\"  : true,\n                                           \"mute\"   : false,\n                                           \"fleecy\" : true,\n                                           \"yuki\"   : false}]]\n    },\n\n    { \"netServer\"   : \"other\"\n      , \"netPort\"   : 6697\n      , \"netSSL\"    : false\n      , \"netNick\"   : \"vomitchan\"\n      , \"netPass\"   : \"\"\n      , \"netAdmins\" : [\"mariari@net.ip\"]\n      , \"netChans\"  : [\"#bots\", \"#programming\"]\n      , \"netIgnore\" : [\"mariari\"]\n      , \"netBans\"   : [\"4ed600d4c9f69bcaf14540e887c75bbe\"]\n      , \"netState\"  : []\n    }\n]\n\n```\n\n## Running\nThe bot can be started within ghci by running `stack ghci` in the project directory. Once at the prompt, run the `main` function.\n`stack build` should also create an executable that can be started with `stack exec vomitchan-exe`\n\n## Planned Features\n- Versioning\n- Per-channel rate limiting, to prevent spam\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmariari%2Fvomitchan","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmariari%2Fvomitchan","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmariari%2Fvomitchan/lists"}