{"id":19957623,"url":"https://github.com/cliftondavies/twitter-personal-assistant","last_synced_at":"2025-06-14T17:05:45.832Z","repository":{"id":47003913,"uuid":"261568136","full_name":"cliftondavies/Twitter-Personal-Assistant","owner":"cliftondavies","description":"A CLI that enables a Twitter account holder to interact with their account, via the Twitter API.","archived":false,"fork":false,"pushed_at":"2024-05-16T18:50:18.000Z","size":417,"stargazers_count":6,"open_issues_count":6,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-05-03T21:32:30.862Z","etag":null,"topics":["pry","rspec","ruby","twitter-api"],"latest_commit_sha":null,"homepage":"","language":"Ruby","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/cliftondavies.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,"zenodo":null}},"created_at":"2020-05-05T19:46:42.000Z","updated_at":"2021-09-26T20:25:51.000Z","dependencies_parsed_at":"2025-05-03T21:40:40.447Z","dependency_job_id":null,"html_url":"https://github.com/cliftondavies/Twitter-Personal-Assistant","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/cliftondavies/Twitter-Personal-Assistant","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cliftondavies%2FTwitter-Personal-Assistant","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cliftondavies%2FTwitter-Personal-Assistant/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cliftondavies%2FTwitter-Personal-Assistant/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cliftondavies%2FTwitter-Personal-Assistant/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/cliftondavies","download_url":"https://codeload.github.com/cliftondavies/Twitter-Personal-Assistant/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cliftondavies%2FTwitter-Personal-Assistant/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":259851736,"owners_count":22921632,"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":["pry","rspec","ruby","twitter-api"],"created_at":"2024-11-13T01:38:29.113Z","updated_at":"2025-06-14T17:05:45.791Z","avatar_url":"https://github.com/cliftondavies.png","language":"Ruby","funding_links":[],"categories":[],"sub_categories":[],"readme":"[![MIT license](https://img.shields.io/badge/License-MIT-blue.svg)](https://lbesson.mit-license.org/)\n[![PRs Welcome](https://img.shields.io/badge/PRs-welcome-brightgreen.svg?style=flat-square)](http://makeapullrequest.com)\n[![Open Source Love png1](https://badges.frapsoft.com/os/v1/open-source.png?v=103)](https://github.com/ellerbrock/open-source-badges/)\n![Tweeting](https://img.shields.io/twitter/url/http/shields.io.svg?style=social)\n\n# Twitter Personal Assistant\n\n\u003e Enter the Twitter Personal Assistant (TPA)!\nTPA is a CLI for developers who wish to access their Twitter account from the terminal. It enables you to tweet, like mentions and see a summary of your favorite account stats, all from the comfort of your terminal!\n\n![screenshot](tpa.gif)\n\n## Functionality\n\nOnce TPA is up and running, it can:\n\n- Post a tweet\n- Like new mentions of you\n- Check for\n  - tweets you made directly on Twitter, after your first tweet from the command line.\n  - new tweets or replies which mention you.\n- Store a local record of\n  - your tweets since setup, excluding retweets.\n  - your mentions since setup.\n- Update local record of\n  - your tweets to reflect current state of tweets (Example: deletions, new likes and retweets, etc).\n  - your mentions, to reflect mentions in their current state.\n- Count\n  - total followers you have.\n  - the number of times you have tweeted.\n  - retweets received since your first tweet from terminal.\n  - likes received since your first tweet from terminal.\n  - number of mentions you liked since setup.\n- Display a summary of your account\n\n## :rocket: Getting Started\n\n### Prerequisites\n\n- Ruby\n- Twitter Account\n\n### Dependencies\n\n- Dotenv\n- Twitter\n- YAML\n\n### Setup\n\n1. [Sign up](https://twitter.com/) for a personal twitter account if you don't have one. Apply for a developer account using your personal account [here](https://developer.twitter.com/). Once approved, follow the instructions to create an app and generate its credentials. You'll need the credentials to successfully run or test this version of the app.\n2. [Install Ruby](https://www.ruby-lang.org/en/documentation/installation/)\n3. Clone repo into your local environment using your favourite terminal:\n```\ngit clone [this-repo-url].git\n```\n4. Open project directory\n```\ncd directory-name\n```\n5. Bulk install dependencies\n```\nbundle install\n```\n6. Add `.env` to your gitignore file, then create a .env file. Copy the template below to your .env file, and fill in your app credentials generated from twitter.\n**NOTE:** This step is important to ensure your credentials remain protected and confidential.\n```ruby\nexport API_KEY=YOUR_API_KEY\nexport API_KEY_SECRET=YOUR_API_KEY_SECRET\nexport ACCESS_TOKEN=YOUR_ACCESS_TOKEN\nexport ACCESS_TOKEN_SECRET=YOUR_ACCESS_TOKEN_SECRET\n```\n7. All set! Now start your TPA app\n```\nbin/main.rb\n```\n- Congrats! You're in :tada:\n\n## Limitations and Further Work\n\nThe Twitter API limits the number of tweets that can be retrieved from a user's timeline to the twenty most recent tweets. To accomodate this TPA starts to keep track of your Twitter activity only after you set it up. Aside from total followers and tweets, all prior activity is ignored. Some future work may include:\n\n- Tweets with media content\n- More robust storage of tweets and mentions, instead of locally updated .yml files\n- Store all user tweets and mentions before TPA setup\n- Deployment to Heroku for persistence\n- Integrated authentication system to get user credentials automatically\n\n## :toolbox: Tools \u0026 Technologies Used\n\n- Ruby\n- RSpec\n\n## Author\n\n👤 **Clifton Davies**\n\n- Github: [@githubhandle](https://github.com/cliftondavies)\n- Twitter: [@twitterhandle](https://twitter.com/cliftonaedavies)\n- Linkedin: [linkedin](https://www.linkedin.com/in/clifton-davies-mbcs/)\n\n## 🤝 Contributing\n\nContributions, issues and feature requests are welcome!\n\n1. Fork it\n2. Create feature branch\n`git checkout -b feature/fooBar`\n3. Commit changes\n`git commit -am 'Add some fooBar'`\n4. Push to the branch\n`git push origin feature/fooBar`\n5. Create new Pull Request\n\n## Show your support\n\nGive a ⭐️ if you like this project!\n\n## Acknowledgments\n\n- The Corgis!\n- Twitter\n\n## 📝 Copyright \u0026 License\n\nCopyright (c) 2020 Clifton Davies.\nThis project is licensed under [MIT](https://opensource.org/licenses/MIT). See LICENSE file for details.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcliftondavies%2Ftwitter-personal-assistant","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fcliftondavies%2Ftwitter-personal-assistant","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcliftondavies%2Ftwitter-personal-assistant/lists"}