{ "info": { "author": "Nullforce", "author_email": "glenngit@nullforce.com", "bugtrack_url": null, "classifiers": [ "Development Status :: 5 - Production/Stable", "Intended Audience :: Developers", "License :: OSI Approved :: BSD License", "Operating System :: OS Independent", "Programming Language :: Python :: 2.7", "Programming Language :: Python :: 3", "Programming Language :: Python :: 3.5", "Programming Language :: Python :: 3.6", "Programming Language :: Python :: 3.7", "Topic :: Software Development :: Libraries :: Python Modules" ], "description": "# DerPyBooru-Nullforce\n\nPython bindings for Derpibooru's API\n\nLicense: **Simplified BSD License**\n\n|||\n----------------|------\nVersion | [![Version](https://img.shields.io/pypi/v/derpybooru-nullforce.svg)](https://pypi.org/project/DerPyBooru-Nullforce/)\nPython Versions | [![](https://img.shields.io/pypi/pyversions/derpybooru-nullforce.svg)](https://pypi.org/project/DerPyBooru-Nullforce/)\nDownloads | [![Downloads](https://pepy.tech/badge/derpybooru-nullforce)](https://pepy.tech/project/derpybooru-nullforce)\n\n## About this Fork\n\nThis is a fork of the [joshua-stone/DerPyBooru](https://github.com/joshua-stone/DerPyBooru)\nrepository; it is meant to be a drop in replacement for the modules in that package.\n\n## Features\n\n- High-level abstraction over Derpibooru's REST API\n- Parameter chaining for ease of manipulation\n- Syntactic sugar for queries, e.g., \"query.score >= 100\" compiling to \"score.gte:100\"\n- Design focusing on iterables and lazy generation for network efficiency\n\n## Dependencies\n\n- python 2.7, 3.0 or newer\n- requests\n\n## How to install\n\n```shell\n pip install derpybooru-nullforce\n```\n## Checking documentation\n\n```shell\n pydoc derpibooru\n```\n\n## Typical usage\n\n### Getting images currently on Derpibooru's front page\n\n```python\nfrom derpibooru import Search\n\nfor image in Search():\n id_number, score, tags = image.id, image.score, \", \".join(image.tags)\n print(\"#{} - score: {:>3} - {}\".format(id_number, score, tags))\n```\n\n### Searching posts by tag\n\n```python\nfrom derpibooru import Search\n\nfor image in Search().query(\"rarity\", \"twilight sparkle\"):\n print(image.url)\n```\n\n### Crawling Derpibooru from first to last post\n\n```python\nfrom derpibooru import Search\n\n# This is only an example and shouldn't be used in practice as it abuses\n# Derpibooru's licensing terms\nfor image in Search().ascending().limit(None):\n id_number, score, tags = image.id, image.score, \", \".join(image.tags)\n print(\"#{} - score: {:>3} - {}\".format(id_number, score, tags))\n```\n\n### Getting random posts\n\n```python\nfrom derpibooru import Search, sort\n\nfor post in Search().sort_by(sort.RANDOM):\n print(post.url)\n```\n\n### Getting top 100 posts\n```python\nfrom derpibooru import Search, sort\n\ntop_scoring = [post for post in Search().sort_by(sort.SCORE).limit(100)]\n```\n\n### Storing and passing new search parameters\n\n```python\nfrom derpibooru import Search, sort\n\nparams = Search().sort_by(sort.SCORE).limit(100).parameters\n\ntop_scoring = Search(**params)\ntop_animated = top_scoring.query(\"animated\")\n```\n\n### Filtering by metadata\n\n```python\nfrom derpibooru import Search, query\n\nq = {\n \"wallpaper\",\n query.width == 1920,\n query.height == 1080,\n query.score >= 100\n}\n\nwallpapers = [image for image in Search().query(*q)]\n```\n\n### Getting the latest images from a watchlist\n\n```python\n\nfrom derpibooru import Search, user\n\nkey = \"your_api_key\"\n\nfor post in Search().key(key).watched(user.ONLY):\n id_number, score, tags = post.id, post.score, \", \".join(post.tags)\n print(\"#{} - score: {:>3} - {}\".format(id_number, score, tags))\n```\n\n## Changelog\n\nSee [CHANGELOG](CHANGELOG.md)\n\n## [0.10.0]\n### Added\n- Image class now has an `image_json` property to get to the underlying JSON\n field (`image` still returns `representations[\"full\"]` but will change to\n the JSON value in a future version).\n\n### Fixed\n- Updated `Search` methods to use `q=` params:\n - `faves` uses `my:faves`\n - `upvotes` uses `my:upvotes`\n - `uploads` uses `my:uploads`\n - `watched` uses `my:watched`\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/nullforce-public/DerPyBooru", "keywords": "derpibooru ponies pony mlp", "license": "Simplified BSD License", "maintainer": "", "maintainer_email": "", "name": "DerPyBooru-Nullforce", "package_url": "https://pypi.org/project/DerPyBooru-Nullforce/", "platform": "any", "project_url": "https://pypi.org/project/DerPyBooru-Nullforce/", "project_urls": { "Homepage": "https://github.com/nullforce-public/DerPyBooru" }, "release_url": "https://pypi.org/project/DerPyBooru-Nullforce/0.10.0/", "requires_dist": [ "requests" ], "requires_python": "", "summary": "Python bindings for Derpibooru's API", "version": "0.10.0" }, "last_serial": 5630376, "releases": { "0.10.0": [ { "comment_text": "", "digests": { "md5": "d3752331c0c6d781596b0a60c3e6c288", "sha256": "175ea891eb6225ce54294557b5420bd297d3e193057abd34bd76ebbdf421d9b9" }, "downloads": -1, "filename": "DerPyBooru_Nullforce-0.10.0-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "d3752331c0c6d781596b0a60c3e6c288", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 15921, "upload_time": "2019-08-04T11:17:20", "url": "https://files.pythonhosted.org/packages/8a/1a/eaab65906095fe738f2857b37cae662f077ee14f7b6b279b5e5bf39cc985/DerPyBooru_Nullforce-0.10.0-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "537d8d5e306a15d5068e6b1ce64bd76b", "sha256": "f9a8ff150b431eeff15ceac3bb9b3d4cd569de2558f6deb65339e2cca33ccaa0" }, "downloads": -1, "filename": "DerPyBooru_Nullforce-0.10.0.tar.gz", "has_sig": false, "md5_digest": "537d8d5e306a15d5068e6b1ce64bd76b", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 9118, "upload_time": "2019-08-04T11:17:21", "url": "https://files.pythonhosted.org/packages/1a/d4/a8da30a61eebc975262403df7563fc53f67edf64d6f831861a2cde9b043d/DerPyBooru_Nullforce-0.10.0.tar.gz" } ], "0.10.0a1": [ { "comment_text": "", "digests": { "md5": "a7b527006b682a0f95bfe3ac35a43e4e", "sha256": "8d9d9d4884334f1d82ef0c1f45dd822a386f556dc1f6777723a7277cf398eb86" }, "downloads": -1, "filename": "DerPyBooru_Nullforce-0.10.0a1-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "a7b527006b682a0f95bfe3ac35a43e4e", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 15840, "upload_time": "2019-08-04T10:30:22", "url": "https://files.pythonhosted.org/packages/4f/12/df8767dff4339fdef174e94e09ba8d669ee14a6545b39155e4caa5ae6807/DerPyBooru_Nullforce-0.10.0a1-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "88ed6d253c87c1633560223d4f5fc0b9", "sha256": "37b76683f35cc2b7d8c7d1c0db17faae85568f414a08eec792212e094b82d07f" }, "downloads": -1, "filename": "DerPyBooru_Nullforce-0.10.0a1.tar.gz", "has_sig": false, "md5_digest": "88ed6d253c87c1633560223d4f5fc0b9", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 9140, "upload_time": "2019-08-04T10:30:24", "url": "https://files.pythonhosted.org/packages/e2/12/bd5987e869bf58c1dec74dc1f7a0accf40fd9b0074646f1b9b1416ac46c6/DerPyBooru_Nullforce-0.10.0a1.tar.gz" } ], "0.8.0": [ { "comment_text": "", "digests": { "md5": "dbdb72d9c0c5482df438c1a035107079", "sha256": "3638ae50af146c2dddd32d17c4b2ae79383bf3437ac14a1ca6c4e0d641725a14" }, "downloads": -1, "filename": "DerPyBooru_Nullforce-0.8.0-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "dbdb72d9c0c5482df438c1a035107079", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 15380, "upload_time": "2018-11-22T01:51:02", "url": "https://files.pythonhosted.org/packages/27/e2/1a326cde1acb9fbe1615f2296ea789cf6cfd0845050702220a2c2035460f/DerPyBooru_Nullforce-0.8.0-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "deff8d8e8984fd219b02280cbfd9d1c4", "sha256": "9246160645719da7b991482c9ed6869aaf9587511bf2b176ba91824513f68948" }, "downloads": -1, "filename": "DerPyBooru_Nullforce-0.8.0.tar.gz", "has_sig": false, "md5_digest": "deff8d8e8984fd219b02280cbfd9d1c4", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 7894, "upload_time": "2018-11-22T01:51:05", "url": "https://files.pythonhosted.org/packages/f7/69/8006f537ee5e9ca0ceb28f6586da69d76f00516b7e85964ea329790da5e7/DerPyBooru_Nullforce-0.8.0.tar.gz" } ], "0.9.0": [ { "comment_text": "", "digests": { "md5": "3ef9185afb44976a2439e65a2e1bd434", "sha256": "4950825ff3450197efa302943b6dc190e536a94e9830ce2c587f31ba39b279a0" }, "downloads": -1, "filename": "DerPyBooru_Nullforce-0.9.0-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "3ef9185afb44976a2439e65a2e1bd434", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 15724, "upload_time": "2019-05-03T05:10:38", "url": "https://files.pythonhosted.org/packages/66/5a/5a1415219625ac3c7a4de5e7ad66529440d7b93ea5e4e99c0b8d047b6e0e/DerPyBooru_Nullforce-0.9.0-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "7946405b2f821e26e2bc88039764a225", "sha256": "ea9cbc9eb5b21ee35a34f3f9f01fb3eeae831bd089716e36ba257fb8a7cc7228" }, "downloads": -1, "filename": "DerPyBooru_Nullforce-0.9.0.tar.gz", "has_sig": false, "md5_digest": "7946405b2f821e26e2bc88039764a225", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 8232, "upload_time": "2019-05-03T05:10:40", "url": "https://files.pythonhosted.org/packages/43/19/c24a702dfe08eca85e388ba049e7092eda98cabd4bd09deda26df3f5004b/DerPyBooru_Nullforce-0.9.0.tar.gz" } ], "0.9.1": [ { "comment_text": "", "digests": { "md5": "d58d72038f7930a90980d0a55d87e0c5", "sha256": "95607aeba721578e20afe349b4b332c69af316696f2634894070c714531ad4c3" }, "downloads": -1, "filename": "DerPyBooru_Nullforce-0.9.1-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "d58d72038f7930a90980d0a55d87e0c5", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 15716, "upload_time": "2019-05-03T05:24:30", "url": "https://files.pythonhosted.org/packages/21/fe/bda5b567e05aa60e6dd9b0d00812c26eda2226afa41f635b8f2405a0b089/DerPyBooru_Nullforce-0.9.1-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "d6c5f34fd7558daf90a4677e7af43fa8", "sha256": "5acfa9dab0c6612ef45a21e5cc3554acad0f8ec829b7e8f0cbe10e881815a67a" }, "downloads": -1, "filename": "DerPyBooru_Nullforce-0.9.1.tar.gz", "has_sig": false, "md5_digest": "d6c5f34fd7558daf90a4677e7af43fa8", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 8254, "upload_time": "2019-05-03T05:24:31", "url": "https://files.pythonhosted.org/packages/80/79/b68baece13c1beda8a31a7096fed747bb198d2f9ba29d04caa8e55fde5ff/DerPyBooru_Nullforce-0.9.1.tar.gz" } ], "0.9.2": [ { "comment_text": "", "digests": { "md5": "4e10beff25295ad3765f4a7b4d1287da", "sha256": "0038b5730efed281b94bc88c97b6195ff6dc3340005de3f278ee9b7230d9c75f" }, "downloads": -1, "filename": "DerPyBooru_Nullforce-0.9.2-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "4e10beff25295ad3765f4a7b4d1287da", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 15823, "upload_time": "2019-05-04T06:10:41", "url": "https://files.pythonhosted.org/packages/53/77/40f9dd6316a0e82101c47cab6bd52e2a204c2d385e00c6c0d20d428f19b5/DerPyBooru_Nullforce-0.9.2-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "aa2c95ed4c4f7bb6f9ea4ce7850c971e", "sha256": "d16117b6678f6083abf7d48b7454cebaf4565d42ee2823be6d7b12b6ece07923" }, "downloads": -1, "filename": "DerPyBooru_Nullforce-0.9.2.tar.gz", "has_sig": false, "md5_digest": "aa2c95ed4c4f7bb6f9ea4ce7850c971e", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 8447, "upload_time": "2019-05-04T06:10:43", "url": "https://files.pythonhosted.org/packages/d3/55/2f78009a2529b74eb425812a5010b32f8f8a91736b0eed01f6903738e777/DerPyBooru_Nullforce-0.9.2.tar.gz" } ], "0.9.3": [ { "comment_text": "", "digests": { "md5": "aec0648e36db8699fbe720015cb4812d", "sha256": "c2eeeaed4e2eb9ecbe1a4cd9ecb6599740d391ceb54f4fa72951df35265829e3" }, "downloads": -1, "filename": "DerPyBooru_Nullforce-0.9.3-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "aec0648e36db8699fbe720015cb4812d", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 16016, "upload_time": "2019-05-04T18:38:32", "url": "https://files.pythonhosted.org/packages/c0/e1/bdbcd9ff5f72e93ea60d90d49992a385f4021995e3cfe68857a6bbe0d4d8/DerPyBooru_Nullforce-0.9.3-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "115062c47c161efdc2cd5fcf7a9fd4db", "sha256": "8f8b8a120d9706d368c32690ef6f12d569fd5cbd8fd2efce0f3aeeff43266f5a" }, "downloads": -1, "filename": "DerPyBooru_Nullforce-0.9.3.tar.gz", "has_sig": false, "md5_digest": "115062c47c161efdc2cd5fcf7a9fd4db", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 9157, "upload_time": "2019-05-04T18:38:33", "url": "https://files.pythonhosted.org/packages/15/7f/25fa99c5b2390f9141b86169ef79e79d4243f73dd0cd058c8a2e09229d20/DerPyBooru_Nullforce-0.9.3.tar.gz" } ], "0.9.4a1": [ { "comment_text": "", "digests": { "md5": "76742feaae86ac0ea99ed8986bb70a0b", "sha256": "5603b5e3099b3cedddd71a7bb9f48933e000b92d375e5358cb07febfadbacf96" }, "downloads": -1, "filename": "DerPyBooru_Nullforce-0.9.4a1-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "76742feaae86ac0ea99ed8986bb70a0b", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 15930, "upload_time": "2019-05-04T22:01:28", "url": "https://files.pythonhosted.org/packages/77/95/9c5a3786028115ea2f745714b6ce30cfeb17ecf4bad109b0c729c60e4c6f/DerPyBooru_Nullforce-0.9.4a1-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "32ac97fd82c4492b32388f88f721c874", "sha256": "3d845c2431d8424d945871fb2493ec20e20d56266ba043b7cef4472c6445b8ce" }, "downloads": -1, "filename": "DerPyBooru_Nullforce-0.9.4a1.tar.gz", "has_sig": false, "md5_digest": "32ac97fd82c4492b32388f88f721c874", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 9046, "upload_time": "2019-05-04T22:01:30", "url": "https://files.pythonhosted.org/packages/fc/0c/589334eb1ca21a76e0b3df5447e930529e83580b1504f3d79c9ae2d71c40/DerPyBooru_Nullforce-0.9.4a1.tar.gz" } ], "0.9.4a2": [ { "comment_text": "", "digests": { "md5": "ef9200e35770bd4e9148ce7dff48c2bf", "sha256": "001baf2218f6be01658f98a065b6454a4e395689bd4182cdae365d18da9124d0" }, "downloads": -1, "filename": "DerPyBooru_Nullforce-0.9.4a2-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "ef9200e35770bd4e9148ce7dff48c2bf", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 15816, "upload_time": "2019-05-15T05:48:53", "url": "https://files.pythonhosted.org/packages/f5/90/2fc219d03de8e118cc4343420ae95528a4d797babc54f28f3b700cd0a587/DerPyBooru_Nullforce-0.9.4a2-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "ee38bb222a4c403e63d91cd651b4a88c", "sha256": "c95202807b48bce2e93730ce1c631146c4f8bf614a7948af87b8355255941491" }, "downloads": -1, "filename": "DerPyBooru_Nullforce-0.9.4a2.tar.gz", "has_sig": false, "md5_digest": "ee38bb222a4c403e63d91cd651b4a88c", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 8953, "upload_time": "2019-05-15T05:48:54", "url": "https://files.pythonhosted.org/packages/20/02/69c0e84f0050b4172e81063f782f35fdb990d23ae837a64988edb0a6928c/DerPyBooru_Nullforce-0.9.4a2.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "d3752331c0c6d781596b0a60c3e6c288", "sha256": "175ea891eb6225ce54294557b5420bd297d3e193057abd34bd76ebbdf421d9b9" }, "downloads": -1, "filename": "DerPyBooru_Nullforce-0.10.0-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "d3752331c0c6d781596b0a60c3e6c288", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 15921, "upload_time": "2019-08-04T11:17:20", "url": "https://files.pythonhosted.org/packages/8a/1a/eaab65906095fe738f2857b37cae662f077ee14f7b6b279b5e5bf39cc985/DerPyBooru_Nullforce-0.10.0-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "537d8d5e306a15d5068e6b1ce64bd76b", "sha256": "f9a8ff150b431eeff15ceac3bb9b3d4cd569de2558f6deb65339e2cca33ccaa0" }, "downloads": -1, "filename": "DerPyBooru_Nullforce-0.10.0.tar.gz", "has_sig": false, "md5_digest": "537d8d5e306a15d5068e6b1ce64bd76b", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 9118, "upload_time": "2019-08-04T11:17:21", "url": "https://files.pythonhosted.org/packages/1a/d4/a8da30a61eebc975262403df7563fc53f67edf64d6f831861a2cde9b043d/DerPyBooru_Nullforce-0.10.0.tar.gz" } ] }