{ "info": { "author": "Ruwai", "author_email": "", "bugtrack_url": null, "classifiers": [ "Development Status :: 4 - Beta", "License :: OSI Approved :: GNU General Public License v3 (GPLv3)", "Operating System :: OS Independent", "Programming Language :: Python :: 3" ], "description": "# twitterframe\n\n\ud83e\udd5a\ud83d\udd1c\ud83d\udc26 twiterframe. A basic command line application used in tandem with Twitter API to frame content from Twitter into your preferred format.\n\nIn the future, I want to add more flexibility with the preferred output. (i.e. JSON, SQL databases, etc.)\n\n# Project Currently: **ON HOLD**\n\n[Tweepy](https://github.com/tweepy/tweepy/blob/e6616fed65e75bbb93633290eadd5940c41772e7/tweepy/models.py#L73) does not currently have the values from Twitter's API that I would like to use for the purpose of this project.\n\nFor example, if you click on the link for tweepy, it should bring you to Line 73 of the ```tweepy/models.py``` script, where the ```class Status(Model):``` and ```@classmethod``` is located. The ```Status``` object (which is just a ```Tweet``` object) from Twitter's API should give you a set of attributes like the following from the [Twitter Developer documentation](https://developer.twitter.com/en/docs/tweets/data-dictionary/overview/tweet-object).\n\nUnforunately, if we refer back to [tweepy](https://github.com/tweepy/tweepy/blob/e6616fed65e75bbb93633290eadd5940c41772e7/tweepy/models.py#L73), inside of the parse function, we can see that the ```key,value``` pairings do not provide as many ```Tweet``` object attributes as one may like to have. (That one being me.) And so what I am going to be working on in the mean time is a pull request to @tweepy, and add the attributes I want to see from Twitter's API.\n\nHopefully all goes well and i'll be able to use tweepy once again, and finish up this command-line-application, but in the mean time, please use my pre-alpha version from the **Installation**.\n\n# Installation and Usage:\n\n- **Coming soon**.\n\n# Progress so far...\n\n\u2705 Users are able to create .json files to store their API keys.\n\n\u2705 Added click functionality.\n\n\u2705 Functional Command Line Application by invoking ```twitterframe```\n\n\u2705 Added a command that removes your Twitter API credentials file from your home directory.\n\n\u2705 ```scrape``` command is now functioning as it should be.\n\n\u2705 Opened up project on pypi.org so it can be 'pip-install-able' [here](https://pypi.org/project/twitterframe/)\n\n\ud83d\udd1c Make some basic documentation on installation/usage.\n\n\ud83d\udd1c ```crawl``` command will require a mandatory argument for how many tweets to get per request, and the rate limit for the TwitterAPI is reached, an exception is passed.\n\n\ud83d\udd1c Add functionality for a StreamListener class that will listen for live tweets and bin based on sentiment.\n\n\ud83d\udd1c Decorate the command line application with more colors\n\n\n# Ideas on new features and commands\n\n\ud83d\udca1 Command that dumps tweets into a SQL database.\n\n\ud83d\udca1 Add more emojis.\n\n\ud83d\udca1 Add click.progress_bar(s) on commands like ```scrape``` and ```crawl``` to show progress.\n\n\ud83d\udca1 Remove some of the comments because the code looks kinda ugly.\n\n\ud83d\udca1 A way to parse images in tweets/replies/retweets. Dump into a JSON or CSV.\n\n\ud83d\udca1 Add options/configurations to determine the output for exporting tweets from ```scrape```,\n```crawl```, etc.\n\n\ud83d\udca1 Create options for the output for each given command. (i.e. ```scrape``` would have the option to dump the tweets from user: @twitteruser, to either a CSV, an SQL database, etc.) (etc. is used quite liberally in my explanations of things in this README.)\n\n\n# Known issues\n\n\u2757\ufe0f ```crawl``` command is not pulling tweets by the specified times.\n\n\u2757\ufe0f ```crawl``` gets a Twitter error response: status code = 429 due to the application's rate limit on the amount of requests to be served.\n\n\u2757\ufe0f ```listener``` does not do anything. Yeah I know, big issue here.\n\n\u2757\ufe0f Some exceptions are not working apprropriately.\n\n\u2757\ufe0f Honestly there are so many known issues at this point LOL\n\n\u2757\ufe0f ```tweepy``` does not have enough attributes in the class methods to my liking.\n\n\u2757\ufe0f Going to learn some more object oriented programming and classmethod related stuff, so that I can either A) build a new tweepy or B) add more funcitonality to the next version of tweepy.\n\n\u2757\ufe0f Streaming does not work.\n\n\u2757\ufe0f RateLimitError is not being raised even if intentional.\n\n### Contributors with \ud83d\udc9a\n\n\ud83c\udfc6 @colejhudson\n\n### Contact\n\n\ud83d\udcec christopher.a.louie@gmail.com\n\n\n\n\n", "description_content_type": "text/markdown", "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/Ruwai/twitterframe", "keywords": "", "license": "", "maintainer": "", "maintainer_email": "", "name": "twitterframe", "package_url": "https://pypi.org/project/twitterframe/", "platform": "", "project_url": "https://pypi.org/project/twitterframe/", "project_urls": { "Homepage": "https://github.com/Ruwai/twitterframe" }, "release_url": "https://pypi.org/project/twitterframe/1.0.0/", "requires_dist": [ "tweepy", "pandas", "click" ], "requires_python": ">=3.5", "summary": "A basic command line application used in tandem with Twitter API to frame anything from Twitter into a Pandas DataFrame, or exported as a CSV.", "version": "1.0.0" }, "last_serial": 5101789, "releases": { "0.0.1": [ { "comment_text": "", "digests": { "md5": "cbad17195d5614d6e6c04d1409f8b2d2", "sha256": "aa6c351c9ba26f0378379073d667f796447d8206a532f71eab3f180ef1bd859b" }, "downloads": -1, "filename": "twitterframe-0.0.1-py3-none-any.whl", "has_sig": false, "md5_digest": "cbad17195d5614d6e6c04d1409f8b2d2", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.5", "size": 19146, "upload_time": "2019-03-28T00:23:22", "url": "https://files.pythonhosted.org/packages/71/6c/9692d5ea099f2144b57aacbf209b133683259123f2f05e8d119d3c6d605e/twitterframe-0.0.1-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "75ad4a249f46dc3eed340d8d6aed173a", "sha256": "357e9fcea4fdbfaf03b45d5a07ab30f06903ecf1a0f93090336b0232bad8e7ba" }, "downloads": -1, "filename": "twitterframe-0.0.1.tar.gz", "has_sig": false, "md5_digest": "75ad4a249f46dc3eed340d8d6aed173a", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.5", "size": 5482, "upload_time": "2019-03-28T00:23:24", "url": "https://files.pythonhosted.org/packages/9f/cd/4c0a63d82c76652b28a5e2fdc0810f9315536bdec51c954f17c37a0c6e1a/twitterframe-0.0.1.tar.gz" } ], "0.0.2": [ { "comment_text": "", "digests": { "md5": "8777980cf642b08af524079f32f77aa5", "sha256": "6f1b84870de87aff6e34f4f9805065745e2b1b550d457063cde743eeb254e7f4" }, "downloads": -1, "filename": "twitterframe-0.0.2-py3-none-any.whl", "has_sig": false, "md5_digest": "8777980cf642b08af524079f32f77aa5", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.5", "size": 19036, "upload_time": "2019-03-28T02:21:39", "url": "https://files.pythonhosted.org/packages/b3/1d/ee6d8e6638b19601447aa67cafb35f3ebc171ddf96237718276bf00c0677/twitterframe-0.0.2-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "fc11805f8778741296ca134eeb4f52cd", "sha256": "b2ee50a50a4f0868d8d61d857350dd33c739e01654d88989b16d69b9b7fc6493" }, "downloads": -1, "filename": "twitterframe-0.0.2.tar.gz", "has_sig": false, "md5_digest": "fc11805f8778741296ca134eeb4f52cd", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.5", "size": 5358, "upload_time": "2019-03-28T02:21:40", "url": "https://files.pythonhosted.org/packages/a0/96/93b8a129688002d572cc07ab5e9c4ecacbc03a5f22b8c305f41fd02bace2/twitterframe-0.0.2.tar.gz" } ], "0.0.3": [ { "comment_text": "", "digests": { "md5": "1310913aacf5842b4f8ed4138f9c298c", "sha256": "1e145d5ede0009038fb04c620cbda2c6801df649e2e92fb8f490a8da2d05c00a" }, "downloads": -1, "filename": "twitterframe-0.0.3-py3-none-any.whl", "has_sig": false, "md5_digest": "1310913aacf5842b4f8ed4138f9c298c", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.5", "size": 19202, "upload_time": "2019-03-28T18:43:15", "url": "https://files.pythonhosted.org/packages/9c/19/30fcc8fa5320618da13a5cec5f22477e370facbe5e3bcf5b0a0845f72d6b/twitterframe-0.0.3-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "a3c773220ec8dbe703ad6f79c080e691", "sha256": "c15391e3a1e88fadddd57437b340e3d284e7d2d7935edd55a29f2f62245c3cdf" }, "downloads": -1, "filename": "twitterframe-0.0.3.tar.gz", "has_sig": false, "md5_digest": "a3c773220ec8dbe703ad6f79c080e691", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.5", "size": 5505, "upload_time": "2019-03-28T18:43:16", "url": "https://files.pythonhosted.org/packages/c9/99/aa7f4e7cb772364055c6d14fc299dc92aa4d0065420335cf6ef429d4e299/twitterframe-0.0.3.tar.gz" } ], "0.0.4": [ { "comment_text": "", "digests": { "md5": "2e246a745e20981e19e55efb3449a103", "sha256": "13bfb270e1fdc5bb9790017417b82f43c899887a690b7ff5af6a97312d094ab6" }, "downloads": -1, "filename": "twitterframe-0.0.4-py3-none-any.whl", "has_sig": false, "md5_digest": "2e246a745e20981e19e55efb3449a103", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.5", "size": 19292, "upload_time": "2019-03-28T22:24:45", "url": "https://files.pythonhosted.org/packages/e9/44/5fa86ec7af60b70d4e48b71c9c078405dcb23cc08d22e648cbcfef082a77/twitterframe-0.0.4-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "ad1e23f0f29ceffeb721de8799362c9e", "sha256": "9118cceb8d3c3f7c9ea09f2fe73a86d67cd9a8e2cc262412320df7d20eb0dadf" }, "downloads": -1, "filename": "twitterframe-0.0.4.tar.gz", "has_sig": false, "md5_digest": "ad1e23f0f29ceffeb721de8799362c9e", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.5", "size": 5609, "upload_time": "2019-03-28T22:24:46", "url": "https://files.pythonhosted.org/packages/83/ae/ab34e921df8f6d844129ef6f384e307d43787f6b94b9636ebc7c0f7ec2ff/twitterframe-0.0.4.tar.gz" } ], "0.0.5": [ { "comment_text": "", "digests": { "md5": "d40c8e81d1f2f005d9ecd4979d7258df", "sha256": "d301206b4a7718132398e4386477d90e1f6345b7d5e61b8ccc9b913410331431" }, "downloads": -1, "filename": "twitterframe-0.0.5-py3-none-any.whl", "has_sig": false, "md5_digest": "d40c8e81d1f2f005d9ecd4979d7258df", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.5", "size": 19298, "upload_time": "2019-03-29T06:42:08", "url": "https://files.pythonhosted.org/packages/98/bf/0fc0e861a30f4e93cac9174a2c73fe9a9c5fd54d87b5fb96cd137c382115/twitterframe-0.0.5-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "27498726d78b22f00a24bfb6a25c9488", "sha256": "395c4b721ab37f53c0e2aaae264526f49ad28af0a7c474a429afca6c68392f53" }, "downloads": -1, "filename": "twitterframe-0.0.5.tar.gz", "has_sig": false, "md5_digest": "27498726d78b22f00a24bfb6a25c9488", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.5", "size": 5620, "upload_time": "2019-03-29T06:42:09", "url": "https://files.pythonhosted.org/packages/1a/47/a09a0ef9969cc4eb4061a5c9bb28d69ad6ae26f3cb2d3017222b09a7b86e/twitterframe-0.0.5.tar.gz" } ], "0.0.6": [ { "comment_text": "", "digests": { "md5": "1192b981801d8ea3b5d368c6931a7b2c", "sha256": "5711de3b147450406eeaae2b788e30400e84f33e97792bef7811f680bb644636" }, "downloads": -1, "filename": "twitterframe-0.0.6-py3-none-any.whl", "has_sig": false, "md5_digest": "1192b981801d8ea3b5d368c6931a7b2c", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.5", "size": 19431, "upload_time": "2019-03-29T07:14:36", "url": "https://files.pythonhosted.org/packages/0b/46/6a53b3292183179a994bb1acb145c66d56994dbc02f9f367158f1bed37f7/twitterframe-0.0.6-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "89b6836c64c2c79328a80638f1cddc57", "sha256": "f8620c0b69f5f3fafabf25210490107be07e1b1745a3a4601220e88bbe8acae3" }, "downloads": -1, "filename": "twitterframe-0.0.6.tar.gz", "has_sig": false, "md5_digest": "89b6836c64c2c79328a80638f1cddc57", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.5", "size": 5745, "upload_time": "2019-03-29T07:14:37", "url": "https://files.pythonhosted.org/packages/cc/87/944a7e3c73bb45c948deb9033b7438b7d27978a76b99d1febed23cda81b6/twitterframe-0.0.6.tar.gz" } ], "0.0.7": [ { "comment_text": "", "digests": { "md5": "4358ef8219c10dc2307426ea539859ab", "sha256": "68ade34201601033407f39a3bed379f4cf74cb7e6a0391ba9779f4b52164edc1" }, "downloads": -1, "filename": "twitterframe-0.0.7-py3-none-any.whl", "has_sig": false, "md5_digest": "4358ef8219c10dc2307426ea539859ab", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.5", "size": 21806, "upload_time": "2019-04-01T05:19:17", "url": "https://files.pythonhosted.org/packages/66/3e/9103edca459cd9b43e3e922a2447b816155bbd904aa4fb24a45bca25989f/twitterframe-0.0.7-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "59c6f99b1eb01b7fa03d775e369e7b61", "sha256": "d2d10e0a0a378e4c94fa5555758b378c4c29496095b404a61c6bad3a5b03cdfa" }, "downloads": -1, "filename": "twitterframe-0.0.7.tar.gz", "has_sig": false, "md5_digest": "59c6f99b1eb01b7fa03d775e369e7b61", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.5", "size": 8038, "upload_time": "2019-04-01T05:19:19", "url": "https://files.pythonhosted.org/packages/34/90/d7cd6e2710da67782313af18ca1eeea6febec547c555628d77e0b0a43aac/twitterframe-0.0.7.tar.gz" } ], "1.0.0": [ { "comment_text": "", "digests": { "md5": "b968670723d0459d7536af2cb1d8b68e", "sha256": "a3ebe3dd721501e7958407e4766abad9af7c7ef513012eec3014b4a91f12ff24" }, "downloads": -1, "filename": "twitterframe-1.0.0-py3-none-any.whl", "has_sig": false, "md5_digest": "b968670723d0459d7536af2cb1d8b68e", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.5", "size": 24199, "upload_time": "2019-04-05T01:42:18", "url": "https://files.pythonhosted.org/packages/bf/e9/11a2b3c195289c589e11d771b19fa537728593c8374833155a459857e575/twitterframe-1.0.0-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "718a25a60d9f35607268ce03f0d32974", "sha256": "c8a26511b689e5ab535f44a3be12309b1cad2d85c323f62eec456b6f3f3ce677" }, "downloads": -1, "filename": "twitterframe-1.0.0.tar.gz", "has_sig": false, "md5_digest": "718a25a60d9f35607268ce03f0d32974", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.5", "size": 11965, "upload_time": "2019-04-05T01:42:20", "url": "https://files.pythonhosted.org/packages/1e/64/aa40189c26a9762fb1cb645dda18b3cd835461ad98a88a909a7a422676d7/twitterframe-1.0.0.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "b968670723d0459d7536af2cb1d8b68e", "sha256": "a3ebe3dd721501e7958407e4766abad9af7c7ef513012eec3014b4a91f12ff24" }, "downloads": -1, "filename": "twitterframe-1.0.0-py3-none-any.whl", "has_sig": false, "md5_digest": "b968670723d0459d7536af2cb1d8b68e", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.5", "size": 24199, "upload_time": "2019-04-05T01:42:18", "url": "https://files.pythonhosted.org/packages/bf/e9/11a2b3c195289c589e11d771b19fa537728593c8374833155a459857e575/twitterframe-1.0.0-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "718a25a60d9f35607268ce03f0d32974", "sha256": "c8a26511b689e5ab535f44a3be12309b1cad2d85c323f62eec456b6f3f3ce677" }, "downloads": -1, "filename": "twitterframe-1.0.0.tar.gz", "has_sig": false, "md5_digest": "718a25a60d9f35607268ce03f0d32974", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.5", "size": 11965, "upload_time": "2019-04-05T01:42:20", "url": "https://files.pythonhosted.org/packages/1e/64/aa40189c26a9762fb1cb645dda18b3cd835461ad98a88a909a7a422676d7/twitterframe-1.0.0.tar.gz" } ] }