{"id":15636391,"url":"https://github.com/passy/tube-bot","last_synced_at":"2026-01-08T14:04:44.932Z","repository":{"id":66088599,"uuid":"63768184","full_name":"passy/tube-bot","owner":"passy","description":"Messenger bot frontend for the Tube disruption tracker","archived":false,"fork":false,"pushed_at":"2017-05-17T09:53:22.000Z","size":7083,"stargazers_count":2,"open_issues_count":10,"forks_count":0,"subscribers_count":3,"default_branch":"master","last_synced_at":"2025-03-29T20:16:50.794Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"","language":"PureScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/passy.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"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":"2016-07-20T09:22:07.000Z","updated_at":"2017-02-15T20:38:42.000Z","dependencies_parsed_at":"2023-02-23T06:30:34.036Z","dependency_job_id":null,"html_url":"https://github.com/passy/tube-bot","commit_stats":{"total_commits":147,"total_committers":1,"mean_commits":147.0,"dds":0.0,"last_synced_commit":"136ddd531c7818f62ab98ea39c3b5c253cc2c3fa"},"previous_names":[],"tags_count":17,"template":false,"template_full_name":null,"purl":"pkg:github/passy/tube-bot","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/passy%2Ftube-bot","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/passy%2Ftube-bot/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/passy%2Ftube-bot/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/passy%2Ftube-bot/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/passy","download_url":"https://codeload.github.com/passy/tube-bot/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/passy%2Ftube-bot/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28245941,"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","status":"online","status_checked_at":"2026-01-08T02:00:06.591Z","response_time":241,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"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":[],"created_at":"2024-10-03T11:03:22.409Z","updated_at":"2026-01-08T14:04:44.904Z","avatar_url":"https://github.com/passy.png","language":"PureScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"## disruption-fb-bot\n\n[![Build Status](https://travis-ci.org/passy/tube-bot.svg?branch=master)](https://travis-ci.org/passy/tube-bot)\n[![](https://images.microbadger.com/badges/version/passy/tube-bot.svg)](https://microbadger.com/images/passy/tube-bot \"Get your own version badge on microbadger.com\")\n\n\u003e A very rudimentary, incomplete Messenger bot for alerting you about Tube\n\u003e disruptions.\n\nThis is a hybrid written in JavaScript and PureScript (after I got too tired of\nstacktrace-less runtime errors), powered by a Haskell service, backed by a\nRethinkDB.\n\nCheck out\n[passy/disruption-bot-deployment](https://github.com/passy/disruption-bot-deployment)\nfor an easy setup.\n\n## Setup\n\n```\n$ npm install\n$ npm run build\n$ docker run rethink:2.3\n# For prod-ish use.\n$ npm run start\n# For dev.\n$ npm run watch\n$ pulp -w build\n```\n\n- Copy `config/default.json.example` to `config/default.json`.\n- Create a new [Facebook App](https://developers.facebook.com).\n- Copy the app secret from here and use it for your config.\n- Create a new Facebook Page that you're bot will identify as.\n- Find the Page ID in the page source (Ctrl+F for `pageId`). Yeah, this is\n  ridiculous but I couldn't find another way to find it.\n- Add \"Messenger\" as product. Generate a page access token from here, use it for\n  the config.\n- Set up the webhook. Generate a random long string as verification token. Use\n  this in your config and enter it here.\n- Use ngrok or localtunnel for testing to have an https-enabled way to link to\n  your local webserver.\n- Tick all the boxes in the popup for the messenger, even if we don't use most\n  of them at the moment.\n- Check `docker ps` for the host and port of your rethinkdb host.\n\n## Development\n\nRun these in separate terminal multiplexer panels:\n\n```\n$ pulp -w build\n$ npm run watch\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpassy%2Ftube-bot","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fpassy%2Ftube-bot","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpassy%2Ftube-bot/lists"}