{"id":20375283,"url":"https://github.com/cba85/telegram-wiptimelinebot","last_synced_at":"2025-05-08T08:31:59.207Z","repository":{"id":41822763,"uuid":"380492461","full_name":"cba85/telegram-wiptimelinebot","owner":"cba85","description":"🚧 Create your own WIP.co todos timeline of your favorite makers on Telegram.","archived":true,"fork":false,"pushed_at":"2025-01-09T18:07:30.000Z","size":243,"stargazers_count":1,"open_issues_count":0,"forks_count":2,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-03-04T21:32:49.792Z","etag":null,"topics":["cheerio","express","mysql","nodejs","nunjucks","puppeteer","telegram-bot"],"latest_commit_sha":null,"homepage":"https://wipbot.2facto.com","language":"JavaScript","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/cba85.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":"2021-06-26T12:06:31.000Z","updated_at":"2025-01-09T18:08:17.000Z","dependencies_parsed_at":"2023-02-15T19:45:17.192Z","dependency_job_id":"62c77f2e-d19a-4723-89f5-2c2c6cdf1000","html_url":"https://github.com/cba85/telegram-wiptimelinebot","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/cba85%2Ftelegram-wiptimelinebot","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cba85%2Ftelegram-wiptimelinebot/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cba85%2Ftelegram-wiptimelinebot/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cba85%2Ftelegram-wiptimelinebot/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/cba85","download_url":"https://codeload.github.com/cba85/telegram-wiptimelinebot/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":253029131,"owners_count":21843026,"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":["cheerio","express","mysql","nodejs","nunjucks","puppeteer","telegram-bot"],"created_at":"2024-11-15T01:29:43.574Z","updated_at":"2025-05-08T08:31:59.174Z","avatar_url":"https://github.com/cba85.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# WIP.co telegram timeline\n\nCreate your custom [WIP.co](https://wip.co/) completed todos timeline of your favorite makers on Telegram.\n\n~~🤖 To use the bot, just add [WipTimelineBot](https://t.me/WipTimelineBot) on Telegram !~~\n\n\u003e I don't really use WIP anymore, that's why I've decided to stop the bot. I keep the code open-source, and I hope it will help someone !\n\n---\n\nThis is a simple app to parse [WIP.co](https://wip.co/) website, get your favorite makers completed todos, and send them on Telegram using a Telegram bot.\n\nThis app doesn't require an active account on the website because it doesn't use wip.co API, but scraps wip.co website instead using [cheerio](https://cheerio.js.org/) and [puppeteer](https://pptr.dev).\n\nThis app contains a entry point `index.js` that is the Telegram bot listener.\n\nIt also contains 2 scripts located in `bin/` folder:\n\n-   `clean.js`: remove todos saved in database older than a week to clean database\n-   `parse.js`: scraper to parse [WIP.co](https://wip.co/) todos\n\n## Requirements\n\n-   A MySQL server\n-   A Telegram bot (create your own bot using Telegram's BotFather and grab your TOKEN)\n\n## Install\n\n```sh\n$ npm install\n```\n\nCreate a `.env` file based on `.env.example` file:\n\n```sh\ncp -v .env.example .env\n```\n\nAdd your database and Telegram credentials into the `.env` file.\n\n### Database\n\nCreate a MySQLtable based on the MySQL schema located in `db/` folder.\n\n## Usage\n\nLaunch bot:\n\n```sh\n$ node index.js\n```\n\nIn your Telegram bot, add usernames you want to follow using `/follow @username` command.\n\nThen launch the script to parse and get [WIP.co](https://wip.co/) todos of these users inside your Telegram bot:\n\n```sh\n$ node bin.parse.js [MAX_PAGE_TO_SCRAP]\n```\n\nDefault max page to scrap is 1.\n\nUse a cron scheduler to automatically receive updates (completed todos) from your favorite makers.\n\n## Commands\n\n-   `/start` : list commands available\n-   `/following`: list makers you follow\n-   `/follow @username`: follow @username\n-   `/unfollow @username`: unfollow @username\n-   `/debug`: get Telegram chatId and username\n\n### Telegram commands list\n\n```txt\nstart - Main menu\nfollowing - list makers you follow\nfollow - follow a maker\nunfollow - unfollow a maker\ndebug - Debug mode\n```\n\n## Resources\n\n-   PostgreSQL: https://devcenter.heroku.com/articles/heroku-postgresql#connecting-in-node-js *(not using Heroku and PostgreSQL anymore)*\n-   Pupeeter: https://github.com/puppeteer/puppeteer/blob/main/docs/troubleshooting.md#running-puppeteer-on-heroku *(not using Heroku anymore)*\n-   Heroku Telegram Bot: https://github.com/odditive/heroku-node-telegram-bot *(not using Heroku anymore)*\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcba85%2Ftelegram-wiptimelinebot","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fcba85%2Ftelegram-wiptimelinebot","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcba85%2Ftelegram-wiptimelinebot/lists"}