Giter Club home page Giter Club logo

mangarock-api's Introduction

MangaRock-API

! Archived since the website and app are no longer available. 

A unofficial writing of the MangaRock API documentation

So, I decided to write this little documentation with some examples cause i haven't see any documentation related to the new MangaRock API.

GET requests

query_version = 450

  • get info of a manga:

https://web.mangarockhd.com/query/web{query_version}/info?oid={series_oid}&last=0

example : https://web.mangarockhd.com/query/web450/info?oid=mrs-serie-100266297
response with good parameters:

json{
	"code":int, // 0
	"data":{
		"mid":int, // this one is used for search in database to accelerate queries
		"oid":string, // this one is used in the manga url
		"name":string,
		"author":string,
		"rank":int,
		"msid":int,
		"completed":bool,
		"last_update":int,
		"removed":bool,
		"direction":int,
		"total_chapters":int,
		"description":string,
		"categories":[int],
		"chapters":[mixed],
		"thumbnail":string,
		"cover":string,
		"artworks":[string],
		"alias":[string],
		"characters":[mixed],
		"authors":[mixed],
		"rich_categories":[mixed], // contains among other things the plain name of the categories
		"extra":{ // all content in that array are optional and non-predictable (all content seems to be strings), below are some examples
			"Published":string,
			"Serialization":string,
			// etc
		},
		"mrs_series":null
	}
}

  • get pages of a chapter (in mri format):
! Please note that this request no longer work. check the application API instead.

https://web.mangarockhd.com/query/web{query_version}/pages?oid={chapter_oid}

example : https://web.mangarockhd.com/query/web450/pages?oid=mrs-chapter-100364752
response with good parameters :

json{
	"code":int, // 0
	"data":[string] // a table that contain all mri (encoded images) url of the chapter
}

  • get character information:

https://web.mangarockhd.com/query/web{query_version}/character?oid={character_oid}

example : https://web.mangarockhd.com/query/web450/character?oid=mrs-character-344901
response with good parameters:

json{
	"code":int, // 0
	"oid":string,
	"name":string,
	"bio":string,
	"thumbnail":string,
	"artworks":[string], // a table that contain all artwork url
	"extra":{ // all content in that array are optional and non-predictable (all content seems to be strings), below are some examples
		"Age":string,
		"Date of birth":string,
		"DOB":string,
		"Height":string,
		"Symbolizes":string,
		"Weight":string,
		"Zodiac sign":string
		// etc
	}
}

  • get author information:

https://web.mangarockhd.com/query/web{query_version}/author?oid={author_oid}

example : https://web.mangarockhd.com/query/web450/author?oid=mrs-author-100018057

response with good parameters:

json{
	"code":int, // 0
	"oid":string,
	"name":string,
	"bio":string,
	"thumbnail":string,
	"artworks":[string], // a table that contain all artwork url
	"extra":{ // all content in that array are optional and non-predictable (all content seems to be strings), below are some examples
		"Alternate names":string,
	        "Birthday":string,
		"Family name":string,
		"Given name":string,
		"Website":string
		// etc
	}
}

  • get genre infos:

https://web.mangarockhd.com/query/web{query_version}/genre?oid={genre_oid}

example : https://web.mangarockhd.com/query/web450/genre?oid=mrs-genre-304070

response with good parameters:

json{
	//to do
}

Payload POST requests

These requests use raw POST data in json form. You can use Postman to test it.

query_version = 401

  • search for mangas:

https://api.mangarockhd.com/query/web{query_version}/mrs_filter

payload format:

json{
	"status":"all", // completed, ongoing or all
	"genres":{ // list of genre to search for, can be empty
		"mrs-genre-100291868":true, // true to include
		"mrs-genre-304070":false // false to exclude
	},
	"rank":"all", // xx-xx or all
	"order":"rank" // rank or name
}

response with good parameters:
json{
	"code": 0,
	"data": [string] // array of all mrs-serie corresponding to the search
}

  • manga details:

https://api.mangarockhd.com/query/web{query_version}/manga_detail

payload format:

json{
	"oids":{ // you can search for multiple oids in one request, way more fast
		"mrs-serie-100317564":0,
		"mrs-serie-200083351":0
		// etc
	},
	"sections":[ // list of sections to get, can be empty
		"basic_info",
		"summary"
		// potentially others sections
	]
}

response with good parameters:
json{
	"code":0,
	"data":{
		"{series_oid}":{
			"basic_info":{
			"name":string,
			"thumbnail":string,
			"thumbnail_extra":{
				"generated":bool,
				"averageColor":string,
				"textBackgroundColor":string,
				"textColor":string
			},
			"cover":string,
			"alias":[string],
			"cover_extra":{
				"generated":bool,
				"averageColor":string,
				"textBackgroundColor":string,
				"textColor":string
			},
			"rank":int,
			"removed":bool,
			"author":string,
			"completed":bool,
			"direction":int,
			"categories": [int],
			"total_chapters": 15,
			"description":string,
			"release_frequency":{
				"type":string,
				"unit":string,
				"amount":int
			},
			"mrs_series":null
		},
		"summary":{
			"plot_points":[string],
			"key_genres":[string]
		},
		"default": {
			"oid":string,
			"mid":int,
			"msid":int,
			"last_updated":int
		}
	},
	"{series_oid}":{array} // depend on how many oids are in the request header
}

Application API (Android)

These requests use headers. You can use Postman to test it.

query_version = 402

  • get pages of a chapter (in mri format):

http://api.mangarockhd.com/query/android{query_version}/pagesv2?oid={chapter_oid}

header :

{
  'qtoken': token(url)
}

the qtoken is generated using the following code (nodejs example):

const XXH  = require('xxhashjs');

var url = "https://api.mangarockhd.com/query/android402/pagesv2?oid=mrs-chapter-100350606"

console.log('4'+XXH.h64(`${url}:425bd0ffd40bfaefbd184ea34e85d5042c8e74716f6e9f770cefbadba395782b`,0).toString(16))
// this will output 4c4bb873793d42a73

response with good parameters:
json{
	"code":0,
	"data":[{ // tab with no min and no max
		"url":string
	}, {
		"url":string
	}, {
		"url":string
	}, {
		"url":string
	... // there can be many more
	}],
}

Thanks

thanks to @MeatReed for all the application API tests and @duyleekun for the reverse enginerring part to get the qtoken.

mangarock-api's People

Contributors

ooggle avatar

Stargazers

 avatar  avatar

Watchers

 avatar  avatar

mangarock-api's Issues

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.