{ "info": { "author": "Santiago Basulto", "author_email": "santiago.basulto@gmail.com", "bugtrack_url": null, "classifiers": [], "description": "\n# HackerNews / Algolia Python Library\n\nThis is a simple library to interface with [HN Search API](https://hn.algolia.com/api) (provided by Algolia).\n\n### Install instructions\n\n```bash\n$ pip install python-hn\n```\n\n### Usage\n\n**Check out [Interactive Docs](https://notebooks.rmotr.com/santiagobasulto/python-hn-library-interactive-docs-d49b8026) to try the library without installing it.**\n\n```python\nfrom hn import search_by_date\n\n# Search everything (stories, comments, etc) containing the keyword 'python'\nsearch_by_date('python')\n\n\n# Search everything (stories, comments, etc) from author 'pg' and keyword 'lisp'\nsearch_by_date('lisp', author='pg', created_at__lt='2018-01-01')\n\n# Search only stories\nsearch_by_date('lisp', author='pg', stories=True, created_at__lt='2018-01-01')\n\n# Search stories *or* comments\nsearch_by_date(q='lisp', author='pg', stories=True, comments=True, created_at__lt='2018-01-01')\n```\n\n##### Tags\n\nTags are part of HN Search API provided by Algolia. You can read more in [their docs](https://hn.algolia.com/api). They can form complex queries, for example:\n\n```python\n# All the comments in the story `6902129`\ntags = PostType('comment') & StoryID('6902129')\n```\n\nThe available tags are:\n* `PostType`: with options `story`, `comment`, `poll`, `pollopt`, `show_hn`, `ask_hn`, `front_page`.\n* `Author`: receives the username as param (`Author('pg')`).\n* `StoryID`: receives the story id (`StoryID('6902129')`)\n\n\n##### Filters\n\nFilters can be applied to restrict the search by:\n\n* Creation Date: `created_at`\n* Points: `points`\n* Number of comments: `num_comments`\n\nThey can accept `>, <, >=, <=` operators with a syntax similar to Django's.\n* `lt` (`<`): Lower than. Example `ponts__lt=100`\n* `lte` (`<=`): Lower than or equals to. Example `ponts__lte=100`\n* `gt` (`>`): Greater than. Example `created_at__gt='2018'` (created after 2018-01-01).\n* `gte` (`>=`): Greater than or equals to. Example `num_comments__gte=50`.\n\nExamples (See [Algolia docs](https://hn.algolia.com/api) for more info):\n\n```python\n# Created after October 1st, 2018\nsearch_by_date(created_at__gt='2018-10')\n\n# Created after October 1st, 2017 and before January 1st 2018\nsearch_by_date(created_at__gt='2018-10', created_at__lt='2018')\n\n# Stories with *exactly* 1000 points\nsearch_by_date(tags=PostType('story'), points=1000)\n\n# Comments with more than 50 points\nsearch_by_date(tags=PostType('comment'), points__gt=50)\n\n# Stories with 100 comments or more\nsearch_by_date(tags=PostType('story'), num_comments__gt=100)\n```\n\n##### Search\n\n_[TODO]_\n\n### Roadmap\n\n* V0.0.3: Post type aliases\n* V0.0.2 **CURRENT**: Functioning API\n* V0.0.1: Initial Version\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/santiagobasulto/python-hacker-news", "keywords": "", "license": "MIT", "maintainer": "Santiago Basulto", "maintainer_email": "", "name": "python-hn", "package_url": "https://pypi.org/project/python-hn/", "platform": "", "project_url": "https://pypi.org/project/python-hn/", "project_urls": { "Homepage": "https://github.com/santiagobasulto/python-hacker-news" }, "release_url": "https://pypi.org/project/python-hn/0.0.3/", "requires_dist": [ "requests (>=2.20)" ], "requires_python": "", "summary": "A wrapper library for Hacker News Search API (provided by Algolia)", "version": "0.0.3" }, "last_serial": 4518555, "releases": { "0.0.2": [ { "comment_text": "", "digests": { "md5": "0118b7532195f28459cac66c3ed7278a", "sha256": "8912409f89ebc00fced08d9ed13f3e1612d8295ac717880edfc6c5f28a7ba5ef" }, "downloads": -1, "filename": "python_hn-0.0.2-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "0118b7532195f28459cac66c3ed7278a", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 6645, "upload_time": "2018-11-16T22:18:56", "url": "https://files.pythonhosted.org/packages/e0/59/e563c4972941772d19e7c691088a45d44da027e4f2cd7f3e8eb5377f21b9/python_hn-0.0.2-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "f4e3b87c3f80052835fe1cc73d4ee314", "sha256": "474ab19acf7031f5b14d38418ec5e533b1e03e2bbb3a464a520adcfdc42afbeb" }, "downloads": -1, "filename": "python-hn-0.0.2.tar.gz", "has_sig": false, "md5_digest": "f4e3b87c3f80052835fe1cc73d4ee314", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 6160, "upload_time": "2018-11-16T22:18:57", "url": "https://files.pythonhosted.org/packages/94/e2/c16d26b304fd4f84cb86d8a6009bcc2b625180378a9e46af34af1df44f6f/python-hn-0.0.2.tar.gz" } ], "0.0.3": [ { "comment_text": "", "digests": { "md5": "8f26ca63ef893bfbfcb73b7982ab5a40", "sha256": "9fc7b7cfeb350f09a564c40d431a538aefacb8eebba2162e3ab1ee70db19463b" }, "downloads": -1, "filename": "python_hn-0.0.3-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "8f26ca63ef893bfbfcb73b7982ab5a40", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 7398, "upload_time": "2018-11-22T22:40:07", "url": "https://files.pythonhosted.org/packages/41/3b/3d0d0507e62aaaa63a46cd4e083f28f8a66fbbf8fd1052e403b8c91ff227/python_hn-0.0.3-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "8b571cd38de800d7cb2db63c8b138342", "sha256": "8328cb8d247ff59fde65206005779f05fb52267455fba017582a914a47cce633" }, "downloads": -1, "filename": "python-hn-0.0.3.tar.gz", "has_sig": false, "md5_digest": "8b571cd38de800d7cb2db63c8b138342", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 6768, "upload_time": "2018-11-22T22:40:10", "url": "https://files.pythonhosted.org/packages/51/f0/1906a01d4a6714e7dde30dddb9d04b1bc3740f9719dfbda100abec9ce6be/python-hn-0.0.3.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "8f26ca63ef893bfbfcb73b7982ab5a40", "sha256": "9fc7b7cfeb350f09a564c40d431a538aefacb8eebba2162e3ab1ee70db19463b" }, "downloads": -1, "filename": "python_hn-0.0.3-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "8f26ca63ef893bfbfcb73b7982ab5a40", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 7398, "upload_time": "2018-11-22T22:40:07", "url": "https://files.pythonhosted.org/packages/41/3b/3d0d0507e62aaaa63a46cd4e083f28f8a66fbbf8fd1052e403b8c91ff227/python_hn-0.0.3-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "8b571cd38de800d7cb2db63c8b138342", "sha256": "8328cb8d247ff59fde65206005779f05fb52267455fba017582a914a47cce633" }, "downloads": -1, "filename": "python-hn-0.0.3.tar.gz", "has_sig": false, "md5_digest": "8b571cd38de800d7cb2db63c8b138342", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 6768, "upload_time": "2018-11-22T22:40:10", "url": "https://files.pythonhosted.org/packages/51/f0/1906a01d4a6714e7dde30dddb9d04b1bc3740f9719dfbda100abec9ce6be/python-hn-0.0.3.tar.gz" } ] }