{"id":15691377,"url":"https://github.com/anandchowdhary/a11yisimportant","last_synced_at":"2025-04-28T15:45:11.564Z","repository":{"id":38868188,"uuid":"175826567","full_name":"AnandChowdhary/a11yisimportant","owner":"AnandChowdhary","description":"🐦 Twitter bot for @a11yisimportant × #a11y","archived":false,"fork":false,"pushed_at":"2024-12-07T03:13:13.000Z","size":3934,"stargazers_count":8,"open_issues_count":57,"forks_count":0,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-04-26T22:25:39.181Z","etag":null,"topics":["bot","twitter","twitter-api","twitter-bot","typescript"],"latest_commit_sha":null,"homepage":"https://twitter.com/a11yisimportant","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/AnandChowdhary.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":"2019-03-15T13:35:52.000Z","updated_at":"2024-11-17T16:50:04.000Z","dependencies_parsed_at":"2023-11-15T01:27:03.332Z","dependency_job_id":"9f900db9-0010-4e48-ba63-9facbc79fd53","html_url":"https://github.com/AnandChowdhary/a11yisimportant","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/AnandChowdhary%2Fa11yisimportant","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AnandChowdhary%2Fa11yisimportant/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AnandChowdhary%2Fa11yisimportant/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AnandChowdhary%2Fa11yisimportant/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/AnandChowdhary","download_url":"https://codeload.github.com/AnandChowdhary/a11yisimportant/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":251341622,"owners_count":21574169,"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","twitter","twitter-api","twitter-bot","typescript"],"created_at":"2024-10-03T18:21:18.970Z","updated_at":"2025-04-28T15:45:11.514Z","avatar_url":"https://github.com/AnandChowdhary.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# 🐦 @a11yisimportant\n\n[![Travis CI](https://img.shields.io/travis/AnandChowdhary/a11yisimportant.svg)](https://travis-ci.org/AnandChowdhary/a11yisimportant)\n[![Coverage Status](https://coveralls.io/repos/github/AnandChowdhary/a11yisimportant/badge.svg?branch=master)](https://coveralls.io/github/AnandChowdhary/a11yisimportant?branch=master)\n[![GitHub](https://img.shields.io/github/license/anandchowdhary/a11yisimportant.svg)](https://github.com/AnandChowdhary/a11yisimportant/blob/master/LICENSE)\n[![Vulnerabilities](https://img.shields.io/snyk/vulnerabilities/github/AnandChowdhary/a11yisimportant.svg)](https://snyk.io/test/github/AnandChowdhary/a11yisimportant)\n![Uptime Robot ratio (7 days)](https://img.shields.io/uptimerobot/ratio/7/m782194116-395fe492210110f2fcb38cda.svg)\n[![Oswald Labs Platform](https://img.shields.io/badge/oswald%20labs-platform-brightgreen.svg)](https://oswaldlabs.com/platform/)\n![NPM Types](https://img.shields.io/npm/types/a11yisimportant.svg)\n[![NPM](https://img.shields.io/npm/v/a11yisimportant.svg)](https://npmjs.com/package/a11yisimportant)\n[![Twitter Follow](https://img.shields.io/twitter/follow/a11yisimportant.svg?label=%40a11yisimportant)](https://twitter.com/a11yisimportant)\n\n[@a11yisimportant](https://twitter.com/a11yisimportant) is a Twitter bot which follows smart people tweeting about #a11y and retweets mentions. Written in Typescript and hosted on [Oswald Labs Platform](https://oswaldlabs.com/platform/).\n\n## ⭐ How it works\n\n#### `/follow`\n\nThe follow endpoint follows users tweeting with the hashtag #a11y. It runs every hour, powered by [IFTTT](https://ifttt.com) and a webhook:\n\n1. Find (mixed) tweets with hashtag #a11y\n1. Like all those tweets\n1. Make a list of users (unique)\n1. Remove any users @a11yisimportant already follows\n1. Follow everyone from this list\n\n#### `/retweet`\n\nThe retweet endpoint retweets tweets that @a11yisimportant is tagged in. It runs every hour, powered by [IFTTT](https://ifttt.com) and a webhook:\n\n1. Find (recent) tweets with mention @a11yisimportant\n1. Remove any tweets written by self\n1. Remove any tweets which are already retweeted\n1. Like every tweet in this list\n1. If this tweet is a reply, get the original tweet instead\n1. Remove any duplicates (unique array)\n1. Remove any \"Thanks for the follow!\" tweets\n1. Retweet every tweet in this list\n\n#### Interfaces\n\nThis package also exposes the following Typescript interfaces:\n\n- `SearchResult` for the result from a standard search using the Twitter API\n- `SearchMeta` for the metadata in a search result\n- `User` for a user's profile\n- `Tweet` for a tweet object\n\nYou can use them like this:\n\n```js\nimport { Tweet } from \"a11yisimportant/interfaces\" \nconst tweet: Tweet = {\n  id_str: \"1106516296085188609\",\n  text: \"Accessibility is important\",\n  user: {\n    id_str: \"1106514269758214144\",\n    screen_name: \"a11yisimportant\"\n  }\n  // . . .\n};\n```\n\nIn each interface, longint strings are preferred since JavaScript natively doesn't support such large integers (e.g., `id_str` instead of `id`).\n\n## 🛠️ Development\n\nInstall dependencies:\n\n```bash\nyarn\n```\n\nCompile Typescript to CommonJS before running the server:\n\n```bash\nyarn build\n```\n\nRun local server:\n\n```bash\nyarn start\n```\n\n## ✅ Todo\n\n- [x] Auto follow\n- [x] Auto retweet\n- [x] Retweet CC original tweets\n- [x] Like all mentions\n- [x] Like all #a11y tweets\n- [ ] Unfollow people who don't follow back\n\n## 📝 License\n\nMIT\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fanandchowdhary%2Fa11yisimportant","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fanandchowdhary%2Fa11yisimportant","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fanandchowdhary%2Fa11yisimportant/lists"}