{"id":24433119,"url":"https://github.com/ap--/tweettr","last_synced_at":"2026-05-02T05:01:27.325Z","repository":{"id":62585685,"uuid":"240917600","full_name":"ap--/tweettr","owner":"ap--","description":"thin `attrdict` like wrapper around (a few) Twitter JSON objects","archived":false,"fork":false,"pushed_at":"2020-02-16T16:02:19.000Z","size":19,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-02-21T12:16:42.517Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Python","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/ap--.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":".github/FUNDING.yml","license":"LICENSE.md","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null},"funding":{"github":"ap--","custom":["https://www.buymeacoffee.com/poehlmann","https://paypal.me/apoehlmann"]}},"created_at":"2020-02-16T15:43:28.000Z","updated_at":"2020-02-16T16:02:21.000Z","dependencies_parsed_at":"2022-11-03T21:39:09.256Z","dependency_job_id":null,"html_url":"https://github.com/ap--/tweettr","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/ap--%2Ftweettr","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ap--%2Ftweettr/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ap--%2Ftweettr/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ap--%2Ftweettr/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/ap--","download_url":"https://codeload.github.com/ap--/tweettr/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":243475330,"owners_count":20296714,"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":[],"created_at":"2025-01-20T16:03:16.700Z","updated_at":"2025-12-30T05:45:27.111Z","avatar_url":"https://github.com/ap--.png","language":"Python","funding_links":["https://github.com/sponsors/ap--","https://www.buymeacoffee.com/poehlmann","https://paypal.me/apoehlmann"],"categories":[],"sub_categories":[],"readme":"# Tweettr - thin attrdict like wrapper around (a few) Tweet objects\n\n[![PyPI](https://img.shields.io/pypi/v/tweettr)](https://pypi.org/project/tweettr/)\n[![PyPI - Downloads](https://img.shields.io/pypi/dm/tweettr?label=pypi)](https://pypi.org/project/tweettr/)\n[![MIT license](http://img.shields.io/badge/license-MIT-yellowgreen.svg)](http://opensource.org/licenses/MIT)\n[![GitHub issues](https://img.shields.io/github/issues/ap--/tweettr.svg)](https://github.com/ap--/tweettr/issues)\n[![Github Sponsors](https://img.shields.io/badge/github-sponsors-blue)](https://github.com/sponsors/ap--)\n\nTweettr gives you a convenient attribute interface to (some) tweet objects without any copying overhead.\nAnd if your editor or IDE understands type annotations it let's you do attribute auto completion.\n\nIt also add a way to provide emoji parsing with a similar interface to `.entities.hashtags`. :sparkling_heart:\n\nSo when you receive a json object from the twitter streaming api you can access it in a nicer way:\n\n```yaml\n# json blob returned from twitter streaming api\n{\n  \"id\": 11223344556677889900,\n  \"id_str\": \"11223344556677889900\",\n  \"created_at\": \"Sun Feb 16 13:16:19 +0000 2020\",\n  \"user\": {\n    \"id\": 11223344556677889900,\n    \"id_str\": \"11223344556677889900\",\n    \"screen_name\": \"AAAAAAAA\",\n    # ...\n  },\n  \"entities\": {\n    \"hashtags\": [{\n        \"indices\": [12, 21],\n        \"text\": \"MyHashTag\"\n      }]\n  },\n  \"text\": \"Hello World #MyHashTag\",\n  \"favorite_count\": 0,\n  \"favorited\": false,\n  \"timestamp_ms\": \"1500000000000\",\n  \"truncated\": false,\n  # ...\n}\n```\n\nbecomes:\n```python\n\u003e\u003e\u003e import tweettr\n\u003e\u003e\u003e tweet = tweettr.Tweet(json_blob)\n\u003e\u003e\u003e tweet.user.id\n11223344556677889900\n\u003e\u003e\u003e tweet.user.screen_name\n'AAAAAAAA'\n\u003e\u003e\u003e tweet.emojis  # extract emojis like HashTags and Urls...\n[Emoji(...), Emoji(...)]\n\u003e\u003e\u003e ...  # etc, etc... \n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fap--%2Ftweettr","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fap--%2Ftweettr","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fap--%2Ftweettr/lists"}