UNPKG

nhentai-api-tiffceet-patch

Version:
312 lines (264 loc) 17 kB
<!DOCTYPE html> <html lang="en"> <head> <meta charset="utf-8"> <title>Source: image.js | nhentai-api</title> <script src="scripts/prettify/prettify.js"> </script> <script src="scripts/prettify/lang-css.js"> </script> <!--[if lt IE 9]> <script src="//html5shiv.googlecode.com/svn/trunk/html5.js"></script> <![endif]--> <link type="text/css" rel="stylesheet" href="styles/bootstrap.min.css"> <link type="text/css" rel="stylesheet" href="styles/prettify-jsdoc.css"> <link type="text/css" rel="stylesheet" href="styles/prettify-tomorrow.css"> <link type="text/css" rel="stylesheet" href="styles/tui-doc.css"> </head> <body> <nav class="lnb" id="lnb"> <div class="logo" style="width: 65px; height: 13px"> <a href="index.html" rel="noopener noreferrer" target="_blank"> <img src="data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAzMCA1Ij48dGV4dCB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHg9IjAiIHk9IjEwMCUiIGZpbGw9IndoaXRlIiB0ZXh0TGVuZ3RoPSIzMCIgZm9udC1zaXplPSI1IiBmb250LWZhbWlseT0ic2Fucy1zZXJpZiIgc3R5bGU9InRleHQtdHJhbnNmb3JtOnVwcGVyY2FzZSI+bmhlbnRhaS1hcGk8L3RleHQ+PC9zdmc+" width="100%" height="100%"> </a> </div> <div class="title"> <h1><a href="index.html" class="link">nhentai-api</a></h1> <span class="version">v3.0.2</span> </div> <div class="search-container" id="search-container"> <input type="text" placeholder="Search"> <ul></ul> </div> <div class="lnb-api hidden"><h3>Modules</h3><ul><li><a href="module-API.html">API</a><button type="button" class="hidden toggle-subnav btn btn-link"> <span class="glyphicon glyphicon-plus"></span></button><div class="hidden" id="module:API_sub"><div class="member-type">Typedef</div><ul class="inner"><li><a href="module-API.html#~APIArgs">APIArgs</a></li></ul></div></li><li><a href="module-Book.html">Book</a><button type="button" class="hidden toggle-subnav btn btn-link"> <span class="glyphicon glyphicon-plus"></span></button><div class="hidden" id="module:Book_sub"><div class="member-type">Typedef</div><ul class="inner"><li><a href="module-Book.html#~BookTitle">BookTitle</a></li></ul></div></li><li><a href="module-Image.html">Image</a><button type="button" class="hidden toggle-subnav btn btn-link"> <span class="glyphicon glyphicon-plus"></span></button><div class="hidden" id="module:Image_sub"><div class="member-type">Members</div><ul class="inner"><li><a href="module-Image.html#~known">known</a></li></ul><div class="member-type">Methods</div><ul class="inner"><li><a href="module-Image.html#~get">get</a></li></ul><div class="member-type">Typedef</div><ul class="inner"><li><a href="module-Image.html#~ImageTypes">ImageTypes</a></li></ul></div></li><li><a href="module-Search.html">Search</a><button type="button" class="hidden toggle-subnav btn btn-link"> <span class="glyphicon glyphicon-plus"></span></button><div class="hidden" id="module:Search_sub"></div></li><li><a href="module-Tag.html">Tag</a><button type="button" class="hidden toggle-subnav btn btn-link"> <span class="glyphicon glyphicon-plus"></span></button><div class="hidden" id="module:Tag_sub"><div class="member-type">Members</div><ul class="inner"><li><a href="module-Tag.html#~known">known</a></li></ul><div class="member-type">Methods</div><ul class="inner"><li><a href="module-Tag.html#~get">get</a></li></ul><div class="member-type">Typedef</div><ul class="inner"><li><a href="module-Tag.html#~TagTypes">TagTypes</a></li></ul></div></li></ul></div><div class="lnb-api hidden"><h3>Classes</h3><ul><li><a href="module-API-API.html">API</a><button type="button" class="hidden toggle-subnav btn btn-link"> <span class="glyphicon glyphicon-plus"></span></button><div class="hidden" id="module:API~API_sub"><div class="member-type">Members</div><ul class="inner"><li><a href="module-API-API.html#APIPath">APIPath</a></li><li><a href="module-API-API.html#net">net</a></li></ul><div class="member-type">Methods</div><ul class="inner"><li><a href="module-API-API.html#getAPIArgs">getAPIArgs</a></li><li><a href="module-API-API.html#getBook">getBook</a></li><li><a href="module-API-API.html#getImageURL">getImageURL</a></li><li><a href="module-API-API.html#getThumbURL">getThumbURL</a></li><li><a href="module-API-API.html#request">request</a></li><li><a href="module-API-API.html#search">search</a></li><li><a href="module-API-API.html#searchAlike">searchAlike</a></li><li><a href="module-API-API.html#searchTagged">searchTagged</a></li></ul></div></li><li><a href="module-API-APIPath.html">APIPath</a><button type="button" class="hidden toggle-subnav btn btn-link"> <span class="glyphicon glyphicon-plus"></span></button><div class="hidden" id="module:API~APIPath_sub"><div class="member-type">Methods</div><ul class="inner"><li><a href="module-API-APIPath.html#.book">book</a></li><li><a href="module-API-APIPath.html#.bookCover">bookCover</a></li><li><a href="module-API-APIPath.html#.bookPage">bookPage</a></li><li><a href="module-API-APIPath.html#.bookThumb">bookThumb</a></li><li><a href="module-API-APIPath.html#.search">search</a></li><li><a href="module-API-APIPath.html#.searchAlike">searchAlike</a></li><li><a href="module-API-APIPath.html#.searchTagged">searchTagged</a></li></ul></div></li><li><a href="module-Book-Book.html">Book</a><button type="button" class="hidden toggle-subnav btn btn-link"> <span class="glyphicon glyphicon-plus"></span></button><div class="hidden" id="module:Book~Book_sub"><div class="member-type">Members</div><ul class="inner"><li><a href="module-Book-Book.html#cover">cover</a></li><li><a href="module-Book-Book.html#favorites">favorites</a></li><li><a href="module-Book-Book.html#id">id</a></li><li><a href="module-Book-Book.html#isKnown">isKnown</a></li><li><a href="module-Book-Book.html#media">media</a></li><li><a href="module-Book-Book.html#pages">pages</a></li><li><a href="module-Book-Book.html#scanlator">scanlator</a></li><li><a href="module-Book-Book.html#tags">tags</a></li><li><a href="module-Book-Book.html#title">title</a></li><li><a href="module-Book-Book.html#Unknown">Unknown</a></li><li><a href="module-Book-Book.html#UnknownBook">UnknownBook</a></li><li><a href="module-Book-Book.html#uploaded">uploaded</a></li></ul><div class="member-type">Methods</div><ul class="inner"><li><a href="module-Book-Book.html#.parse">parse</a></li><li><a href="module-Book-Book.html#hasTag">hasTag</a></li><li><a href="module-Book-Book.html#hasTagWith">hasTagWith</a></li><li><a href="module-Book-Book.html#pushPage">pushPage</a></li><li><a href="module-Book-Book.html#pushTag">pushTag</a></li><li><a href="module-Book-Book.html#setCover">setCover</a></li></ul></div></li><li><a href="module-Book-UnknownBook.html">UnknownBook</a><button type="button" class="hidden toggle-subnav btn btn-link"> <span class="glyphicon glyphicon-plus"></span></button><div class="hidden" id="module:Book~UnknownBook_sub"></div></li><li><a href="module-Image-Image.html">Image</a><button type="button" class="hidden toggle-subnav btn btn-link"> <span class="glyphicon glyphicon-plus"></span></button><div class="hidden" id="module:Image~Image_sub"><div class="member-type">Members</div><ul class="inner"><li><a href="module-Image-Image.html#book">book</a></li><li><a href="module-Image-Image.html#filename">filename</a></li><li><a href="module-Image-Image.html#height">height</a></li><li><a href="module-Image-Image.html#id">id</a></li><li><a href="module-Image-Image.html#isCover">isCover</a></li><li><a href="module-Image-Image.html#type">type</a></li><li><a href="module-Image-Image.html#types">types</a></li><li><a href="module-Image-Image.html#width">width</a></li></ul><div class="member-type">Methods</div><ul class="inner"><li><a href="module-Image-Image.html#.parse">parse</a></li></ul></div></li><li><a href="module-Image-ImageType.html">ImageType</a><button type="button" class="hidden toggle-subnav btn btn-link"> <span class="glyphicon glyphicon-plus"></span></button><div class="hidden" id="module:Image~ImageType_sub"><div class="member-type">Members</div><ul class="inner"><li><a href="module-Image-ImageType.html#extension">extension</a></li><li><a href="module-Image-ImageType.html#isKnown">isKnown</a></li><li><a href="module-Image-ImageType.html#knownTypes">knownTypes</a></li><li><a href="module-Image-ImageType.html#type">type</a></li></ul></div></li><li><a href="module-Image-UnknownImageType.html">UnknownImageType</a><button type="button" class="hidden toggle-subnav btn btn-link"> <span class="glyphicon glyphicon-plus"></span></button><div class="hidden" id="module:Image~UnknownImageType_sub"></div></li><li><a href="module-Search-Search.html">Search</a><button type="button" class="hidden toggle-subnav btn btn-link"> <span class="glyphicon glyphicon-plus"></span></button><div class="hidden" id="module:Search~Search_sub"><div class="member-type">Members</div><ul class="inner"><li><a href="module-Search-Search.html#books">books</a></li><li><a href="module-Search-Search.html#page">page</a></li><li><a href="module-Search-Search.html#pages">pages</a></li><li><a href="module-Search-Search.html#perPage">perPage</a></li></ul><div class="member-type">Methods</div><ul class="inner"><li><a href="module-Search-Search.html#.parse">parse</a></li><li><a href="module-Search-Search.html#pushBook">pushBook</a></li></ul></div></li><li><a href="module-Tag-Tag.html">Tag</a><button type="button" class="hidden toggle-subnav btn btn-link"> <span class="glyphicon glyphicon-plus"></span></button><div class="hidden" id="module:Tag~Tag_sub"><div class="member-type">Members</div><ul class="inner"><li><a href="module-Tag-Tag.html#types">types</a></li></ul><div class="member-type">Methods</div><ul class="inner"><li><a href="module-Tag-Tag.html#.get">get</a></li><li><a href="module-Tag-Tag.html#compare">compare</a></li></ul></div></li><li><a href="module-Tag-TagType.html">TagType</a><button type="button" class="hidden toggle-subnav btn btn-link"> <span class="glyphicon glyphicon-plus"></span></button><div class="hidden" id="module:Tag~TagType_sub"><div class="member-type">Members</div><ul class="inner"><li><a href="module-Tag-TagType.html#isKnown">isKnown</a></li><li><a href="module-Tag-TagType.html#knownTypes">knownTypes</a></li><li><a href="module-Tag-TagType.html#type">type</a></li></ul></div></li><li><a href="module-Tag-UnknownTagType.html">UnknownTagType</a><button type="button" class="hidden toggle-subnav btn btn-link"> <span class="glyphicon glyphicon-plus"></span></button><div class="hidden" id="module:Tag~UnknownTagType_sub"></div></li></ul></div><div class="lnb-api hidden"><h3>Global</h3><ul><li class="hidden"><a href="global.html#APIBook">APIBook</a></li><li class="hidden"><a href="global.html#APIImage">APIImage</a></li><li class="hidden"><a href="global.html#APISearch">APISearch</a></li><li class="hidden"><a href="global.html#APITag">APITag</a></li><li class="hidden"><a href="global.html#httpAgent">httpAgent</a></li><li class="hidden"><a href="global.html#nHentaiHosts">nHentaiHosts</a></li><li class="hidden"><a href="global.html#nHentaiOptions">nHentaiOptions</a></li><li><a href="global.html#processOptions">processOptions</a></li></ul></div> </nav> <div id="resizer"></div> <div class="main" id="main"> <section> <article> <pre class="prettyprint source linenums"><code>/** * @module Image */ import Book from './book'; /** * Image object from API. * @global * @typedef {object} APIImage * @property {string} t Image type. * @property {number|string} w Image width. * @property {number|string} h Image height. */ /** * @typedef {object} ImageTypes * @property {TagType} JPEG JPEG image type. * @property {TagType} PNG PNG image type. */ /** * Class representing image type. * @class */ class ImageType { /** * @type {ImageTypes} * @static */ static knownTypes = {}; /** * Image type name. * @type {?string} */ type = null; /** * Image type extension. * @type {?string} */ extension = null; /** * Create image type. * @param {string} type Image type name. * @param {string} extension Image type extension. */ constructor(type, extension) { if (type) { this.type = type; this.constructor.knownTypes[type] = this; } this.extension = extension; } /** * Whatever this tag type is unknown. * @type {boolean} */ get isKnown() { return !(this instanceof UnknownImageType); } } /** * Class representing unknown image type. * @class * @extends ImageType */ class UnknownImageType extends ImageType { /** * Create unknown image type. * @param {string} type Unknown image type name. * @param {string} extension Unknown image type extension. */ constructor(type, extension) { super(null, extension); this.type = type; } } /** * Class representing image. * @class */ class Image { /** * Image types. * @type {ImageTypes} * @static */ static types = { JPEG: new ImageType('jpeg', 'jpg'), PNG : new ImageType('png', 'png'), /** * Known image types. * @type {ImageType} */ known: ImageType.knownTypes, /** * Get image type class instance by name. * @param {string} type Image type. * @returns {ImageType|UnknownImageType} Image type class instance. */ get(type) { let known; if ('string' === typeof type) { type = type.toLowerCase(); switch (type) { case 'j': case 'jpg': case 'jpeg': type = 'jpeg'; break; case 'p': case 'png': type = 'png'; break; } } return ((known = this.known[type])) ? known : new UnknownImageType(type); }, }; /** * Parse pure image object from API into class instance. * @param {APIImage} image Image object * @param {number} [id=0] Image id (a.k.a. page number). * @returns {Image} Image instance. * @static */ static parse(image, id = 0) { let { t: type, w: width, h: height, } = image; return new this({ type, width : +width, height: +height, id, }); } /** * Image ID. * @type {number} */ id = 0; /** * Image width. * @type {number} */ width = 0; /** * Image height. * @type {number} */ height = 0; /** * Image type. * @type {ImageType} */ type = this.constructor.types.JPEG; /** * Image parent book. * @type {Book} */ book = Book.Unknown; /** * Create image. * @param {object} [params] Image parameters. * @param {number} [params.id=0] Image ID. * @param {number} [params.width=0] Image width. * @param {number} [params.height=0] Image height. * @param {string|ImageType} [params.type=ImageTypes.JPEG] Image type. * @param {Book} [params.book=Book.Unknown] Image's Book. */ constructor({ id = 0, width = 0, height = 0, type = this.constructor.types.JPEG, book = Book.Unknown, } = {}) { Object.assign(this, { id: 'number' === typeof id ? id &lt; 1 ? 0 : id : 0, width, height, type: type instanceof ImageType ? type : this.constructor.types.get(type), book: book instanceof Book ? book : Book.Unknown, }); } /** * Whatever this image is book cover. * @type {boolean} */ get isCover() { return this.id &lt; 1; } /** * Image filename. * @type {string} */ get filename() { return `${this.isCover ? 'cover' : this.id}.${this.type.extension}`; } } export default Image; </code></pre> </article> </section> </div> <footer> <img class="logo" src="data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAzMCA1Ij48dGV4dCB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHg9IjAiIHk9IjEwMCUiIGZpbGw9IndoaXRlIiB0ZXh0TGVuZ3RoPSIzMCIgZm9udC1zaXplPSI1IiBmb250LWZhbWlseT0ic2Fucy1zZXJpZiIgc3R5bGU9InRleHQtdHJhbnNmb3JtOnVwcGVyY2FzZSI+bmhlbnRhaS1hcGk8L3RleHQ+PC9zdmc+" style="width: 65px; height: 13px"> <div class="footer-text">nhentai-api</div> </footer> <script>prettyPrint();</script> <script src="scripts/jquery.min.js"></script> <script src="scripts/tui-doc.js"></script> <script src="scripts/linenumber.js"></script> <script> var id = '_sub'.replace(/"/g, '_'); var selectedApi = document.getElementById(id); // do not use jquery selector var $selectedApi = $(selectedApi); $selectedApi.removeClass('hidden'); $selectedApi.parent().find('.glyphicon').removeClass('glyphicon-plus').addClass('glyphicon-minus'); showLnbApi(); </script> </body> </html>