mangadex


Namemangadex JSON
Version 2.5.2 PyPI version JSON
download
home_page
SummaryPython wrapper for the mangadex API
upload_time2022-03-06 18:48:17
maintainer
docs_urlNone
authorEduardo Ceja
requires_python>=3.6
licenseMIT
keywords python mangadex
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage No coveralls.
            # mangadex
A python wrapper for the mangadex API V5. It uses the requests library and all the aditional arguments can be viewed in the [Official Mangadex Documentation](https://api.mangadex.org/docs.html)

# Instaling the API
## PyPI

```
pip install --Upgrade mangadex
```

## Installing via setuptools
```
python setup.py install --user
```

# Using the API
```py
>>> import mangadex
>>> api = mangadex.Api()
```

# Public Calls

## Getting the latest manga
This is called mangalist in the [documentation](https://api.mangadex.org/docs.html#operation/get-search-manga)
```py
>>> manga_list = api.get_manga_list(limit = 1) #limits the query to return just one manga
>>> manga_list
Manga(id = 0001183c-2089-48e9-96b7-d48db5f1a611, title = {'en': 'Eight'}, altTitles = [{'en': '8 -Eight-'}, {'en': '8-エイト-'}, {'en': 'Eight'}, {'en': 'Eito'}, 
{'en': 'エイト'}], 
description = {'en': 'Tokyo in the 90s, the city center has been suffering from a continuing depopulation. Also affected is the Udagawa Junior High School where only six people are left, as their class leader, protector and very good friend Masato just died in an illegal skateboarding race. Five months later Eito Hachiya, nickname: Eight or "8" enrolls in school and wants to find out what happened. He even just looks like Masato! But mysteries surround him: Why does he know all the other six? Why can’t they remember him?\r\n\r\nNote: Was cancelled after ~25% of volume 4, the epilogue consists of an alternative ending for Eight.'}, 
isLocked = False, links = {'al': '38734', 'ap': 'eight', 'kt': '17709', 'mu': '6521', 'mal': '8734'}, originalLanguage = ja 
lastVolume = None, lastChapter = 37.6, publicationDemographic = seinen, status = completed, year = None, contentRating = safe 
```
You can also use the `get_manga_list()` method to search for manga. 

The usage is like this
```py
>>> manga_list = api.get_manga_list(title = "You manga title here")
```

~~**NOTE**: The search rigth now is faulty but tahts is an api problem. At the moment the only parameters that work are: `title`, `limit` and `offset`~~

The search is now working so the above is no longer true

## Getting a manga by its id
```py
>>> manga = api.view_manga_by_id(id = "0001183c-2089-48e9-96b7-d48db5f1a611")
```

## Random manga

```py
>>> random_manga = api.random_manga()
```

## Manga Feed

Get the chapter, or chapters from the feed of a specific manga.

```py
>>> manga_feed = api.manga_feed(id = "0001183c-2089-48e9-96b7-d48db5f1a611", limit = 1)
[Chapter(id = 015979c8-ffa4-4afa-b48e-3da6d10279b0, title = Navel-Gazing, volume = 3, chapter = 23, translatedLanguage = en, hash = bf986ab3bc4471980430b7c5ec407ee0 
 data = ['x1-fcec4beb464a2071023a92ec1192a3b7e3b7c5ae531fa8cc8a7d874056f509a0.jpg', 'x2-4b3bdefecd786fc64823eb118fb52da5646f44827fa82379b9b710bfe368ecbe.jpg',
  'x3-7f0fbee875edaaa511f58fdd4c75092e86a88c57722b84bda36adffbda485b9f.jpg', 'x4-933b914b685fcef4b241e91e265293ef520efa34e9da2a8a52344eab360ca6ce.jpg', 
  'x5-905e50681548041b288d7a985ba5c3415e441ef7e7d87da786edd3206d1f02ef.jpg'], publishAt = 2018-03-19 01:32:00+00:00, createdAt = 2018-03-19 01:32:00+00:00, uploadedAt = 
  2018-03-19 01:32:00+00:00, scanlation_group_id = 59957a04-fa91-4099-921d-7e7988a19acb, Mangaid = 0001183c-2089-48e9-96b7-d48db5f1a611, uploader = 
  e19519ce-8c5f-4d7c-8280-704a87d34429)]
```
## Get manga volumnes and chapters
Get a manga volumes and chapters

```py
>>> api.get_manga_volumes_and_chapters(id = "the manga id")
```

## Get Chapter

Returns a Chpater Object  by its id

```py
>>> chapter = api.get_chapter(id = "015979c8-ffa4-4afa-b48e-3da6d10279b0")
>> chapter
Chapter(id = 015979c8-ffa4-4afa-b48e-3da6d10279b0, title = Navel-Gazing, volume = 3, chapter = 23, translatedLanguage = en, hash = bf986ab3bc4471980430b7c5ec407ee0 
data = ['x1-fcec4beb464a2071023a92ec1192a3b7e3b7c5ae531fa8cc8a7d874056f509a0.jpg', 'x2-4b3bdefecd786fc64823eb118fb52da5646f44827fa82379b9b710bfe368ecbe.jpg', 'x3-7f0fbee875edaaa511f58fdd4c75092e86a88c57722b84bda36adffbda485b9f.jpg', 'x4-933b914b685fcef4b241e91e265293ef520efa34e9da2a8a52344eab360ca6ce.jpg', 'x5-905e50681548041b288d7a985ba5c3415e441ef7e7d87da786edd3206d1f02ef.jpg'], publishAt = 2018-03-19 01:32:00+00:00, createdAt = 2018-03-19 01:32:00+00:00, uploadedAt = 2018-03-19 01:32:00+00:00, scanlation_group_id = 59957a04-fa91-4099-921d-7e7988a19acb, Mangaid = 0001183c-2089-48e9-96b7-d48db5f1a611, uploader = e19519ce-8c5f-4d7c-8280-704a87d34429)
```

## Chapter List
It will return a list of chapters

```py
>>> chapter_list = api.chapter_list()
```
If you want the chpaters of a given Manga, you'll need to specify the [feed endpoints](https://api.mangadex.org/docs.html#operation/get-search-group)

## Chapter Images

Return the links for the chapter images for a given Chapter Object. This is a Chapter method
```py
>>> Chapter.fetch_chapter_images()
```

## Get User

Get a User by id
```py
>>> user = api.get_user(id = "id of user")
```

## Tag List

The list of the manga tags

```py
>>> tag_list = api.tag_list()
```

## Get scanlation group list

Get a Scanlation Group list

```py
>>> api.scanlation_group_list()
```

## Cover Images List
Get the cover image list
```py
>>> api.get_coverart_list()
```

## Get Cover by Id
```py
>>> api.get_cover(coverId = "the cover id")
```

## Edit Cover
```py
>>> api.edit_cover(coverId = "the cover id", description = "the cover description, can be null", volume = "the volume number", version = "int, the cover version")
```
## Get cover image link
```py
>>> CoverArt.fetch_cover_image()
```
This is a CoverArt method that returns the cover image url of that object

## Create account

To create an account
```py
>>> api.create_account(username = "your username", password = "your password", email = "youremail@example.com", ObjReturn = False)
```
This will send you an activation code, this is the one to pass to `activate_account`.

```py
>>> api.acticate_account(code = "the code sent")
```

If you need another activation code:

```py
>>> api.resend_activation_code(email = "anotheremail@example.com")
```

## Account recovery

To recover and account

```py
>> api.recover_account(email = "youremail@example.com")
```

This will send you and activation code that you need
```py
>>> api.complete_account_recover(code = "the code sent to you", newPassword = "the new password for the account")
```

# Private Calls

## Login

Method to login to the website
```py
>>> api.login(username = USERNAME, password = PASSWORD)
```
It is recomended that you add this values to you path for security reasons.

## Your User Info
Get your user info

```py
>>> my_user = api.me()
```

## Get Logged User Followed Manga List

Get your manga follow list!

```py
>>> follow_list = api.get_my_mangalist()
```
This functions, as well as most of the other ones accept optional parameters.
This are:
* `limit` : limits the amout of results. It accepts a value between 1 and 100, the default if 10
* `offset` : Makes an offset of the velue provided to the list. Accepts values >= 0

## Get Logged User Followed Groups

Get the list of the Scanlination group you follow!

```py
>>> scangroups_followlist = api.get_my_followed_groups()
```

## Get Logged User Followed Users

The list of the users you follow

```py
>>> followed_users = api.get_my_followed_users()
```

## Get chapters marked as read from a manga

Get a list of the capters marked as read for a given manga

```py
>>> read_chapters = api.get_manga_read_markes(id = "the manga id")
```

##  Get all followed manga reading status

Get a list of the all the manga reading stauts

```py
>>> my_manga_reading_stauts = api.get_all_manga_reading_status()
```

## Get a specific manga reading status

Get the reading status of a specific manga
```py
>>> manga_reading_status = api.get_manga_reading_status(id = "the manga id")
```
## Update Manga reading status
```py
>>> api.update_manga_reading_status(id = "the manga id", status = "the new reading status")
```
The `status` parameter can take the following values:
`"reading"` `"on_hold"` `"plan_to_read"` `"dropped"` `"re_reading"` `"completed"` 
## Follow a manga

Follow a manga
```py
>>> api.follow_manga(id = "the manga id")
```

## Unfollow a manga
Unfollows a manga
```py
>>>api.unfollow_manga(id = "the manga id")
```

## Create manga
Creates a manga
```py
>>> api.create_manga(title = "manga title", )
```
## Update Manga
Updates a manga
```py
>>> api.update_manga(id = "the manga id")
```

## Delete Manga
Deletes manga
```py
>>> api.delete_manga(id = "the manga id")
```
## Add manga to custom list

Add a manga to a custom list
```py
>>> api.add_manga_to_custom_list(id = "the manga id", listId = "the list id")
```

## Remove a manga from custom list
Removes a manga from a custom list
```py
>>> api.remove_manga_from_custom_list(id = "the manga id", listId = "the list id")
```

## Create  a custom list
```py
>>> api.create_customlist() #this will create a custom list with no special parameters
```
### Query parameters:
* `name`. The custom list name
* `visibility`. The visibility of the custom list. Default public
* `manga`. The list of manga ids

## Get custom list
```py
>>> api.get_customlist(id = "th custom list id")
```

## Update custom list
```py
>>> api.update_customlist(id = "the custom list id")
```

### Query parameters:
* `name`. The custom list name
* `visibility`. Values : `"public"` `"private"`

## Delete custom list
```py
>>> api.delete_customlist(id = "the custom list id")
```

## Get User Custom list
```py
>>> api.get_user_customlists(id = "the user id")
```

### QueryParams:

* `limit`. The limit of custom lists to return
* `offset`. The amout of offset

## Create Author
```py
>>> api.create_author(name = "author name", version = 1, ObjReturn = False)
```
## Update Author
```py
>>> api.update_author(id = "the author id", version = "int with the version", name = "author's name", ObjReturn = False)
```

## Delete Author
```py
>>> api.delete_author(id = "the author id")
```



            

Raw data

            {
    "_id": null,
    "home_page": "",
    "name": "mangadex",
    "maintainer": "",
    "docs_url": null,
    "requires_python": ">=3.6",
    "maintainer_email": "",
    "keywords": "python,mangadex",
    "author": "Eduardo Ceja",
    "author_email": "",
    "download_url": "https://files.pythonhosted.org/packages/bd/92/9cd6ac0d271a35076150f32f896af563ca1f9ec9c2091b3882623d77cb16/mangadex-2.5.2.tar.gz",
    "platform": "",
    "description": "# mangadex\nA python wrapper for the mangadex API V5. It uses the requests library and all the aditional arguments can be viewed in the [Official Mangadex Documentation](https://api.mangadex.org/docs.html)\n\n# Instaling the API\n## PyPI\n\n```\npip install --Upgrade mangadex\n```\n\n## Installing via setuptools\n```\npython setup.py install --user\n```\n\n# Using the API\n```py\n>>> import mangadex\n>>> api = mangadex.Api()\n```\n\n# Public Calls\n\n## Getting the latest manga\nThis is called mangalist in the [documentation](https://api.mangadex.org/docs.html#operation/get-search-manga)\n```py\n>>> manga_list = api.get_manga_list(limit = 1) #limits the query to return just one manga\n>>> manga_list\nManga(id = 0001183c-2089-48e9-96b7-d48db5f1a611, title = {'en': 'Eight'}, altTitles = [{'en': '8 -Eight-'}, {'en': '\uff18\uff0d\u30a8\u30a4\u30c8\uff0d'}, {'en': 'Eight'}, {'en': 'Eito'}, \n{'en': '\u30a8\u30a4\u30c8'}], \ndescription = {'en': 'Tokyo in the 90s, the city center has been suffering from a continuing depopulation. Also affected is the Udagawa Junior High School where only six people are left, as their class leader, protector and very good friend Masato just died in an illegal skateboarding race. Five months later Eito Hachiya, nickname: Eight or "8" enrolls in school and wants to find out what happened. He even just looks like Masato! But mysteries surround him: Why does he know all the other six? Why can’t they remember him?\\r\\n\\r\\nNote: Was cancelled after ~25% of volume 4, the epilogue consists of an alternative ending for Eight.'}, \nisLocked = False, links = {'al': '38734', 'ap': 'eight', 'kt': '17709', 'mu': '6521', 'mal': '8734'}, originalLanguage = ja \nlastVolume = None, lastChapter = 37.6, publicationDemographic = seinen, status = completed, year = None, contentRating = safe \n```\nYou can also use the `get_manga_list()` method to search for manga. \n\nThe usage is like this\n```py\n>>> manga_list = api.get_manga_list(title = \"You manga title here\")\n```\n\n~~**NOTE**: The search rigth now is faulty but tahts is an api problem. At the moment the only parameters that work are: `title`, `limit` and `offset`~~\n\nThe search is now working so the above is no longer true\n\n## Getting a manga by its id\n```py\n>>> manga = api.view_manga_by_id(id = \"0001183c-2089-48e9-96b7-d48db5f1a611\")\n```\n\n## Random manga\n\n```py\n>>> random_manga = api.random_manga()\n```\n\n## Manga Feed\n\nGet the chapter, or chapters from the feed of a specific manga.\n\n```py\n>>> manga_feed = api.manga_feed(id = \"0001183c-2089-48e9-96b7-d48db5f1a611\", limit = 1)\n[Chapter(id = 015979c8-ffa4-4afa-b48e-3da6d10279b0, title = Navel-Gazing, volume = 3, chapter = 23, translatedLanguage = en, hash = bf986ab3bc4471980430b7c5ec407ee0 \n data = ['x1-fcec4beb464a2071023a92ec1192a3b7e3b7c5ae531fa8cc8a7d874056f509a0.jpg', 'x2-4b3bdefecd786fc64823eb118fb52da5646f44827fa82379b9b710bfe368ecbe.jpg',\n  'x3-7f0fbee875edaaa511f58fdd4c75092e86a88c57722b84bda36adffbda485b9f.jpg', 'x4-933b914b685fcef4b241e91e265293ef520efa34e9da2a8a52344eab360ca6ce.jpg', \n  'x5-905e50681548041b288d7a985ba5c3415e441ef7e7d87da786edd3206d1f02ef.jpg'], publishAt = 2018-03-19 01:32:00+00:00, createdAt = 2018-03-19 01:32:00+00:00, uploadedAt = \n  2018-03-19 01:32:00+00:00, scanlation_group_id = 59957a04-fa91-4099-921d-7e7988a19acb, Mangaid = 0001183c-2089-48e9-96b7-d48db5f1a611, uploader = \n  e19519ce-8c5f-4d7c-8280-704a87d34429)]\n```\n## Get manga volumnes and chapters\nGet a manga volumes and chapters\n\n```py\n>>> api.get_manga_volumes_and_chapters(id = \"the manga id\")\n```\n\n## Get Chapter\n\nReturns a Chpater Object  by its id\n\n```py\n>>> chapter = api.get_chapter(id = \"015979c8-ffa4-4afa-b48e-3da6d10279b0\")\n>> chapter\nChapter(id = 015979c8-ffa4-4afa-b48e-3da6d10279b0, title = Navel-Gazing, volume = 3, chapter = 23, translatedLanguage = en, hash = bf986ab3bc4471980430b7c5ec407ee0 \ndata = ['x1-fcec4beb464a2071023a92ec1192a3b7e3b7c5ae531fa8cc8a7d874056f509a0.jpg', 'x2-4b3bdefecd786fc64823eb118fb52da5646f44827fa82379b9b710bfe368ecbe.jpg', 'x3-7f0fbee875edaaa511f58fdd4c75092e86a88c57722b84bda36adffbda485b9f.jpg', 'x4-933b914b685fcef4b241e91e265293ef520efa34e9da2a8a52344eab360ca6ce.jpg', 'x5-905e50681548041b288d7a985ba5c3415e441ef7e7d87da786edd3206d1f02ef.jpg'], publishAt = 2018-03-19 01:32:00+00:00, createdAt = 2018-03-19 01:32:00+00:00, uploadedAt = 2018-03-19 01:32:00+00:00, scanlation_group_id = 59957a04-fa91-4099-921d-7e7988a19acb, Mangaid = 0001183c-2089-48e9-96b7-d48db5f1a611, uploader = e19519ce-8c5f-4d7c-8280-704a87d34429)\n```\n\n## Chapter List\nIt will return a list of chapters\n\n```py\n>>> chapter_list = api.chapter_list()\n```\nIf you want the chpaters of a given Manga, you'll need to specify the [feed endpoints](https://api.mangadex.org/docs.html#operation/get-search-group)\n\n## Chapter Images\n\nReturn the links for the chapter images for a given Chapter Object. This is a Chapter method\n```py\n>>> Chapter.fetch_chapter_images()\n```\n\n## Get User\n\nGet a User by id\n```py\n>>> user = api.get_user(id = \"id of user\")\n```\n\n## Tag List\n\nThe list of the manga tags\n\n```py\n>>> tag_list = api.tag_list()\n```\n\n## Get scanlation group list\n\nGet a Scanlation Group list\n\n```py\n>>> api.scanlation_group_list()\n```\n\n## Cover Images List\nGet the cover image list\n```py\n>>> api.get_coverart_list()\n```\n\n## Get Cover by Id\n```py\n>>> api.get_cover(coverId = \"the cover id\")\n```\n\n## Edit Cover\n```py\n>>> api.edit_cover(coverId = \"the cover id\", description = \"the cover description, can be null\", volume = \"the volume number\", version = \"int, the cover version\")\n```\n## Get cover image link\n```py\n>>> CoverArt.fetch_cover_image()\n```\nThis is a CoverArt method that returns the cover image url of that object\n\n## Create account\n\nTo create an account\n```py\n>>> api.create_account(username = \"your username\", password = \"your password\", email = \"youremail@example.com\", ObjReturn = False)\n```\nThis will send you an activation code, this is the one to pass to `activate_account`.\n\n```py\n>>> api.acticate_account(code = \"the code sent\")\n```\n\nIf you need another activation code:\n\n```py\n>>> api.resend_activation_code(email = \"anotheremail@example.com\")\n```\n\n## Account recovery\n\nTo recover and account\n\n```py\n>> api.recover_account(email = \"youremail@example.com\")\n```\n\nThis will send you and activation code that you need\n```py\n>>> api.complete_account_recover(code = \"the code sent to you\", newPassword = \"the new password for the account\")\n```\n\n# Private Calls\n\n## Login\n\nMethod to login to the website\n```py\n>>> api.login(username = USERNAME, password = PASSWORD)\n```\nIt is recomended that you add this values to you path for security reasons.\n\n## Your User Info\nGet your user info\n\n```py\n>>> my_user = api.me()\n```\n\n## Get Logged User Followed Manga List\n\nGet your manga follow list!\n\n```py\n>>> follow_list = api.get_my_mangalist()\n```\nThis functions, as well as most of the other ones accept optional parameters.\nThis are:\n* `limit` : limits the amout of results. It accepts a value between 1 and 100, the default if 10\n* `offset` : Makes an offset of the velue provided to the list. Accepts values >= 0\n\n## Get Logged User Followed Groups\n\nGet the list of the Scanlination group you follow!\n\n```py\n>>> scangroups_followlist = api.get_my_followed_groups()\n```\n\n## Get Logged User Followed Users\n\nThe list of the users you follow\n\n```py\n>>> followed_users = api.get_my_followed_users()\n```\n\n## Get chapters marked as read from a manga\n\nGet a list of the capters marked as read for a given manga\n\n```py\n>>> read_chapters = api.get_manga_read_markes(id = \"the manga id\")\n```\n\n##  Get all followed manga reading status\n\nGet a list of the all the manga reading stauts\n\n```py\n>>> my_manga_reading_stauts = api.get_all_manga_reading_status()\n```\n\n## Get a specific manga reading status\n\nGet the reading status of a specific manga\n```py\n>>> manga_reading_status = api.get_manga_reading_status(id = \"the manga id\")\n```\n## Update Manga reading status\n```py\n>>> api.update_manga_reading_status(id = \"the manga id\", status = \"the new reading status\")\n```\nThe `status` parameter can take the following values:\n`\"reading\"` `\"on_hold\"` `\"plan_to_read\"` `\"dropped\"` `\"re_reading\"` `\"completed\"` \n## Follow a manga\n\nFollow a manga\n```py\n>>> api.follow_manga(id = \"the manga id\")\n```\n\n## Unfollow a manga\nUnfollows a manga\n```py\n>>>api.unfollow_manga(id = \"the manga id\")\n```\n\n## Create manga\nCreates a manga\n```py\n>>> api.create_manga(title = \"manga title\", )\n```\n## Update Manga\nUpdates a manga\n```py\n>>> api.update_manga(id = \"the manga id\")\n```\n\n## Delete Manga\nDeletes manga\n```py\n>>> api.delete_manga(id = \"the manga id\")\n```\n## Add manga to custom list\n\nAdd a manga to a custom list\n```py\n>>> api.add_manga_to_custom_list(id = \"the manga id\", listId = \"the list id\")\n```\n\n## Remove a manga from custom list\nRemoves a manga from a custom list\n```py\n>>> api.remove_manga_from_custom_list(id = \"the manga id\", listId = \"the list id\")\n```\n\n## Create  a custom list\n```py\n>>> api.create_customlist() #this will create a custom list with no special parameters\n```\n### Query parameters:\n* `name`. The custom list name\n* `visibility`. The visibility of the custom list. Default public\n* `manga`. The list of manga ids\n\n## Get custom list\n```py\n>>> api.get_customlist(id = \"th custom list id\")\n```\n\n## Update custom list\n```py\n>>> api.update_customlist(id = \"the custom list id\")\n```\n\n### Query parameters:\n* `name`. The custom list name\n* `visibility`. Values : `\"public\"` `\"private\"`\n\n## Delete custom list\n```py\n>>> api.delete_customlist(id = \"the custom list id\")\n```\n\n## Get User Custom list\n```py\n>>> api.get_user_customlists(id = \"the user id\")\n```\n\n### QueryParams:\n\n* `limit`. The limit of custom lists to return\n* `offset`. The amout of offset\n\n## Create Author\n```py\n>>> api.create_author(name = \"author name\", version = 1, ObjReturn = False)\n```\n## Update Author\n```py\n>>> api.update_author(id = \"the author id\", version = \"int with the version\", name = \"author's name\", ObjReturn = False)\n```\n\n## Delete Author\n```py\n>>> api.delete_author(id = \"the author id\")\n```\n\n\n",
    "bugtrack_url": null,
    "license": "MIT",
    "summary": "Python wrapper for the mangadex API",
    "version": "2.5.2",
    "split_keywords": [
        "python",
        "mangadex"
    ],
    "urls": [
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "eae9253ee5376cc26874641d79710107959842b432d02ef76a784b4929fe19a3",
                "md5": "6502ab0ec793eb99dbc4fd8bef1fe9b8",
                "sha256": "258b4a7217ace5d47fad30524a687989a7f2eaad48e05c1eb26e76926851f7f8"
            },
            "downloads": -1,
            "filename": "mangadex-2.5.2-py3-none-any.whl",
            "has_sig": false,
            "md5_digest": "6502ab0ec793eb99dbc4fd8bef1fe9b8",
            "packagetype": "bdist_wheel",
            "python_version": "py3",
            "requires_python": ">=3.6",
            "size": 16573,
            "upload_time": "2022-03-06T18:48:16",
            "upload_time_iso_8601": "2022-03-06T18:48:16.292726Z",
            "url": "https://files.pythonhosted.org/packages/ea/e9/253ee5376cc26874641d79710107959842b432d02ef76a784b4929fe19a3/mangadex-2.5.2-py3-none-any.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "bd929cd6ac0d271a35076150f32f896af563ca1f9ec9c2091b3882623d77cb16",
                "md5": "46031b0b8f4c9539953727f645112def",
                "sha256": "f08cbeb44c34a93d7a75459f8c8d90a0c6b6588997ed3096a48e9a7e0deaedda"
            },
            "downloads": -1,
            "filename": "mangadex-2.5.2.tar.gz",
            "has_sig": false,
            "md5_digest": "46031b0b8f4c9539953727f645112def",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": ">=3.6",
            "size": 20260,
            "upload_time": "2022-03-06T18:48:17",
            "upload_time_iso_8601": "2022-03-06T18:48:17.879268Z",
            "url": "https://files.pythonhosted.org/packages/bd/92/9cd6ac0d271a35076150f32f896af563ca1f9ec9c2091b3882623d77cb16/mangadex-2.5.2.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2022-03-06 18:48:17",
    "github": false,
    "gitlab": false,
    "bitbucket": false,
    "lcname": "mangadex"
}
        
Elapsed time: 0.05249s