booru 2.4.0 → 2.5.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE.md +25 -25
- package/dist/Constants.d.ts +2 -2
- package/dist/Constants.js +1 -1
- package/dist/Constants.js.map +1 -0
- package/dist/Utils.d.ts +1 -1
- package/dist/Utils.js +1 -1
- package/dist/Utils.js.map +1 -0
- package/dist/boorus/Booru.d.ts +12 -3
- package/dist/boorus/Booru.js +1 -1
- package/dist/boorus/Booru.js.map +1 -0
- package/dist/boorus/Derpibooru.d.ts +2 -2
- package/dist/boorus/Derpibooru.js +1 -1
- package/dist/boorus/Derpibooru.js.map +1 -0
- package/dist/boorus/XmlBooru.d.ts +2 -2
- package/dist/boorus/XmlBooru.js.map +1 -0
- package/dist/index.d.ts +1 -1
- package/dist/index.js +1 -1
- package/dist/index.js.map +1 -0
- package/dist/sites.json +1 -1
- package/dist/structures/InternalSearchParameters.js.map +1 -0
- package/dist/structures/Post.js +1 -1
- package/dist/structures/Post.js.map +1 -0
- package/dist/structures/SearchParameters.d.ts +3 -2
- package/dist/structures/SearchParameters.js.map +1 -0
- package/dist/structures/SearchResults.d.ts +1 -2
- package/dist/structures/SearchResults.js +1 -1
- package/dist/structures/SearchResults.js.map +1 -0
- package/dist/structures/Site.d.ts +4 -4
- package/dist/structures/Site.js +1 -1
- package/dist/structures/Site.js.map +1 -0
- package/dist/structures/SiteApi.d.ts +2 -2
- package/dist/structures/SiteApi.js.map +1 -0
- package/dist/structures/SiteInfo.js.map +1 -0
- package/package.json +33 -27
- package/CHANGELOG.md +0 -68
package/LICENSE.md
CHANGED
|
@@ -1,25 +1,25 @@
|
|
|
1
|
-
The MIT License (MIT)
|
|
2
|
-
=====================
|
|
3
|
-
|
|
4
|
-
Copyright © `2020` `D. "AtlasTheBot" Plaza`
|
|
5
|
-
|
|
6
|
-
Permission is hereby granted, free of charge, to any person
|
|
7
|
-
obtaining a copy of this software and associated documentation
|
|
8
|
-
files (the “Software”), to deal in the Software without
|
|
9
|
-
restriction, including without limitation the rights to use,
|
|
10
|
-
copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
11
|
-
copies of the Software, and to permit persons to whom the
|
|
12
|
-
Software is furnished to do so, subject to the following
|
|
13
|
-
conditions:
|
|
14
|
-
|
|
15
|
-
The above copyright notice and this permission notice shall be
|
|
16
|
-
included in all copies or substantial portions of the Software.
|
|
17
|
-
|
|
18
|
-
THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND,
|
|
19
|
-
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
|
|
20
|
-
OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
|
|
21
|
-
NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
|
|
22
|
-
HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
|
|
23
|
-
WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
|
|
24
|
-
FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
|
|
25
|
-
OTHER DEALINGS IN THE SOFTWARE.
|
|
1
|
+
The MIT License (MIT)
|
|
2
|
+
=====================
|
|
3
|
+
|
|
4
|
+
Copyright © `2020` `D. "AtlasTheBot" Plaza`
|
|
5
|
+
|
|
6
|
+
Permission is hereby granted, free of charge, to any person
|
|
7
|
+
obtaining a copy of this software and associated documentation
|
|
8
|
+
files (the “Software”), to deal in the Software without
|
|
9
|
+
restriction, including without limitation the rights to use,
|
|
10
|
+
copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
11
|
+
copies of the Software, and to permit persons to whom the
|
|
12
|
+
Software is furnished to do so, subject to the following
|
|
13
|
+
conditions:
|
|
14
|
+
|
|
15
|
+
The above copyright notice and this permission notice shall be
|
|
16
|
+
included in all copies or substantial portions of the Software.
|
|
17
|
+
|
|
18
|
+
THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND,
|
|
19
|
+
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
|
|
20
|
+
OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
|
|
21
|
+
NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
|
|
22
|
+
HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
|
|
23
|
+
WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
|
|
24
|
+
FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
|
|
25
|
+
OTHER DEALINGS IN THE SOFTWARE.
|
package/dist/Constants.d.ts
CHANGED
|
@@ -6,8 +6,8 @@ export interface SMap<V> {
|
|
|
6
6
|
}
|
|
7
7
|
export declare const sites: SMap<SiteInfo>;
|
|
8
8
|
export declare class BooruError extends Error {
|
|
9
|
-
constructor(
|
|
9
|
+
constructor(message: string | Error);
|
|
10
10
|
}
|
|
11
|
-
export declare const
|
|
11
|
+
export declare const USER_AGENT = "booru (https://github.com/AtoraSuunva/booru)";
|
|
12
12
|
export declare function searchURI(site: Site, tags: string[] | undefined, limit: number | undefined, page: number): string;
|
|
13
13
|
export declare const defaultOptions: RequestInit;
|
package/dist/Constants.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";var __importDefault=this&&this.__importDefault||function(r){return r&&r.__esModule?r:{default:r}};Object.defineProperty(exports,"__esModule",{value:!0}),exports.defaultOptions=exports.searchURI=exports.
|
|
1
|
+
"use strict";var __importDefault=this&&this.__importDefault||function(r){return r&&r.__esModule?r:{default:r}};Object.defineProperty(exports,"__esModule",{value:!0}),exports.defaultOptions=exports.searchURI=exports.USER_AGENT=exports.BooruError=exports.sites=void 0;const sites_json_1=__importDefault(require("./sites.json")),expandedTags={"rating:e":"rating:explicit","rating:q":"rating:questionable","rating:s":"rating:safe"};exports.sites=sites_json_1.default;class BooruError extends Error{constructor(r){super(r instanceof Error?r.message:r),r instanceof Error?this.stack=r.stack:Error.captureStackTrace(this,BooruError),this.name="BooruError"}}function expandTags(r){return r.map((r=>{const e=expandedTags[r.toLowerCase()];return encodeURI(e||r)}))}function searchURI(r,e=[],t=100,o){return`http${r.insecure?"":"s"}://${r.domain}${r.api.search}${r.tagQuery}=${expandTags(e).join("+")}&limit=${t}&${r.paginate}=${o}`}exports.BooruError=BooruError,exports.USER_AGENT="booru (https://github.com/AtoraSuunva/booru)",exports.searchURI=searchURI,exports.defaultOptions={headers:{Accept:"application/json, application/xml;q=0.9, */*;q=0.8","User-Agent":exports.USER_AGENT}};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Constants.js","sourceRoot":"","sources":["../src/Constants.ts"],"names":[],"mappings":";;;;;;AAMA,8DAAmC;AAgBnC,MAAM,YAAY,GAAY;IAC5B,UAAU,EAAE,iBAAiB;IAC7B,UAAU,EAAE,qBAAqB;IACjC,UAAU,EAAE,aAAa;CAC1B,CAAA;AAKY,QAAA,KAAK,GAAG,oBAAqC,CAAA;AAO1D,MAAa,UAAW,SAAQ,KAAK;IACnC,YAAY,OAAuB;QACjC,KAAK,CAAC,OAAO,YAAY,KAAK,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,CAAA;QAE3D,IAAI,OAAO,YAAY,KAAK,EAAE;YAC5B,IAAI,CAAC,KAAK,GAAG,OAAO,CAAC,KAAK,CAAA;SAC3B;aAAM;YACL,KAAK,CAAC,iBAAiB,CAAC,IAAI,EAAE,UAAU,CAAC,CAAA;SAC1C;QAED,IAAI,CAAC,IAAI,GAAG,YAAY,CAAA;IAC1B,CAAC;CACF;AAZD,gCAYC;AAMY,QAAA,UAAU,GAAG,8CAA8C,CAAA;AAQxE,SAAS,UAAU,CAAC,IAAc;IAChC,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE;QAClB,MAAM,EAAE,GAAG,YAAY,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC,CAAA;QACxC,OAAO,SAAS,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;IAC/B,CAAC,CAAC,CAAA;AACJ,CAAC;AAYD,SAAgB,SAAS,CACvB,IAAU,EACV,OAAiB,EAAE,EACnB,KAAK,GAAG,GAAG,EACX,IAAY;IAEZ,OAAO,CACL,OAAO,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,KAAK;QACpC,GAAG,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,MAAM,EAAE;QAClC,GAAG,IAAI,CAAC,QAAQ,IAAI,UAAU,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE;QAChD,UAAU,KAAK,EAAE;QACjB,IAAI,IAAI,CAAC,QAAQ,IAAI,IAAI,EAAE,CAC5B,CAAA;AACH,CAAC;AAbD,8BAaC;AAQY,QAAA,cAAc,GAAgB;IACzC,OAAO,EAAE;QACP,MAAM,EAAE,oDAAoD;QAC5D,YAAY,EAAE,kBAAU;KACzB;CACF,CAAA"}
|
package/dist/Utils.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
export declare function resolveSite(domain: string): string | null;
|
|
2
|
-
export declare function jsonfy(xml: string):
|
|
2
|
+
export declare function jsonfy(xml: string): object[];
|
|
3
3
|
export declare function shuffle<T>(array: T[]): T[];
|
|
4
4
|
export declare function randInt(min: number, max: number): number;
|
|
5
5
|
export declare function validateSearchParams(site: string, limit: number | string): {
|
package/dist/Utils.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.compareArrays=exports.validateSearchParams=exports.randInt=exports.shuffle=exports.jsonfy=exports.resolveSite=void 0;const Constants_1=require("./Constants"),fast_xml_parser_1=require("fast-xml-parser");function resolveSite(t){if("string"!=typeof t)return null;t=t.toLowerCase();for(const r in Constants_1.sites)if(r===t||Constants_1.sites[r].aliases.includes(t))return r;return null}
|
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.compareArrays=exports.validateSearchParams=exports.randInt=exports.shuffle=exports.jsonfy=exports.resolveSite=void 0;const Constants_1=require("./Constants"),fast_xml_parser_1=require("fast-xml-parser");function resolveSite(t){if("string"!=typeof t)return null;t=t.toLowerCase();for(const r in Constants_1.sites)if(r===t||Constants_1.sites[r].domain===t||Constants_1.sites[r].aliases.includes(t))return r;return null}function jsonfy(t){if("object"==typeof t)return t;const r=(0,fast_xml_parser_1.parse)(t,{ignoreAttributes:!1,attributeNamePrefix:""});if(r.html||r["!doctype"]){const t=r.html||r["!doctype"]?.html,e=[];throw t.body.h1&&e.push(t.body.h1),t.body.p&&e.push(t.body.p["#text"]),new Constants_1.BooruError(`The Booru sent back an error: '${e.join(": ")}'`)}return r.posts.post?r.posts.post:r.posts.tag?Array.isArray(r.posts.tag)?r.posts.tag:[r.posts.tag]:[]}function shuffle(t){let r,e,o=t.length;for(;0!==o;)e=Math.floor(Math.random()*o),o-=1,r=t[o],t[o]=t[e],t[e]=r;return t}function randInt(t,r){return t=Math.ceil(t),r=Math.floor(r),Math.floor(Math.random()*(r-t+1))+t}function validateSearchParams(t,r){const e=resolveSite(t);if("number"!=typeof r&&(r=parseInt(r,10)),null===e)throw new Constants_1.BooruError("Site not supported");if("number"!=typeof r||Number.isNaN(r))throw new Constants_1.BooruError("`limit` should be an int");return{site:e,limit:r}}function compareArrays(t,r){return t.filter((t=>r.some((r=>t.toLowerCase()===r.toLowerCase()))))}exports.resolveSite=resolveSite,exports.jsonfy=jsonfy,exports.shuffle=shuffle,exports.randInt=randInt,exports.validateSearchParams=validateSearchParams,exports.compareArrays=compareArrays;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Utils.js","sourceRoot":"","sources":["../src/Utils.ts"],"names":[],"mappings":"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"}
|
package/dist/boorus/Booru.d.ts
CHANGED
|
@@ -2,14 +2,23 @@
|
|
|
2
2
|
import SearchParameters from '../structures/SearchParameters';
|
|
3
3
|
import SearchResults from '../structures/SearchResults';
|
|
4
4
|
import Site from '../structures/Site';
|
|
5
|
+
export interface BooruCredentials {
|
|
6
|
+
token: string;
|
|
7
|
+
}
|
|
8
|
+
interface SearchUrlParams {
|
|
9
|
+
tags: string[];
|
|
10
|
+
limit: number;
|
|
11
|
+
page: number;
|
|
12
|
+
}
|
|
5
13
|
export declare class Booru {
|
|
6
14
|
domain: string;
|
|
7
15
|
site: Site;
|
|
8
|
-
credentials
|
|
9
|
-
constructor(site: Site, credentials?:
|
|
10
|
-
search(tags: string | string[], { limit, random, page, showUnavailable }?: SearchParameters): Promise<SearchResults>;
|
|
16
|
+
credentials?: BooruCredentials;
|
|
17
|
+
constructor(site: Site, credentials?: BooruCredentials);
|
|
18
|
+
search(tags: string | string[], { limit, random, page, showUnavailable, }?: SearchParameters): Promise<SearchResults>;
|
|
11
19
|
postView(id: string | number): string;
|
|
12
20
|
protected doSearchRequest(tags: string[] | string, { uri, limit, random, page, }?: InternalSearchParameters): Promise<any>;
|
|
21
|
+
getSearchUrl({ tags, limit, page, }: Partial<SearchUrlParams>): string;
|
|
13
22
|
protected parseSearchResult(result: any, { fakeLimit, tags, limit, random, page, showUnavailable, }: InternalSearchParameters): SearchResults;
|
|
14
23
|
}
|
|
15
24
|
export default Booru;
|
package/dist/boorus/Booru.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";var __importDefault=this&&this.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(exports,"__esModule",{value:!0}),exports.Booru=void 0;const node_fetch_1=__importDefault(require("node-fetch")),Constants_1=require("../Constants"),Utils_1=require("../Utils"),Post_1=__importDefault(require("../structures/Post")),SearchResults_1=__importDefault(require("../structures/SearchResults")),resolvedFetch="undefined"!=typeof window?window.fetch.bind(window):node_fetch_1.default;class Booru{constructor(t,e
|
|
1
|
+
"use strict";var __importDefault=this&&this.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(exports,"__esModule",{value:!0}),exports.Booru=void 0;const node_fetch_1=__importDefault(require("node-fetch")),Constants_1=require("../Constants"),Utils_1=require("../Utils"),Post_1=__importDefault(require("../structures/Post")),SearchResults_1=__importDefault(require("../structures/SearchResults")),resolvedFetch="undefined"!=typeof window?window.fetch.bind(window):node_fetch_1.default;class Booru{domain;site;credentials;constructor(t,e){const s=(0,Utils_1.resolveSite)(t.domain);if(null===s)throw new Error(`Invalid site passed: ${t}`);this.domain=s,this.site=t,this.credentials=e}async search(t,{limit:e=1,random:s=!1,page:r=0,showUnavailable:i=!1}={}){const o=s&&!this.site.random?100:0;try{const a=await this.doSearchRequest(t,{limit:e,random:s,page:r,showUnavailable:i});return this.parseSearchResult(a,{fakeLimit:o,tags:t,limit:e,random:s,page:r,showUnavailable:i})}catch(t){throw t instanceof Error?new Constants_1.BooruError(t):t}}postView(t){if("string"==typeof t&&Number.isNaN(parseInt(t,10)))throw new Constants_1.BooruError(`Not a valid id for postView: ${t}`);return`http${this.site.insecure?"":"s"}://${this.domain}${this.site.api.postView}${t}`}async doSearchRequest(t,{uri:e=null,limit:s=1,random:r=!1,page:i=0}={}){let o;Array.isArray(t)||(t=[t]),r&&(this.site.random?t.push("order:random"):o=100),this.site.defaultTags&&(t=t.concat(this.site.defaultTags.filter((e=>!t.includes(e)))));const a=e||this.getSearchUrl({tags:t,limit:o||s,page:i}),n=Constants_1.defaultOptions,l="xml"===this.site.type;try{const t=await resolvedFetch(a,n);if(503===t.status){if((await t.clone().text()).includes("cf-browser-verification"))throw new Constants_1.BooruError("Received a CloudFlare browser verification request. Can't proceed.")}const e=l?await t.text():await t.json(),s=l?(0,Utils_1.jsonfy)(e):e;if(t.ok)return s;throw new Constants_1.BooruError(`Received HTTP ${t.status} from booru: '${s.error||s.message||JSON.stringify(s)}'`)}catch(t){if("invalid-json"===t.type)return"";throw t}}getSearchUrl({tags:t=[],limit:e=100,page:s=1}){return(0,Constants_1.searchURI)(this.site,t,e,s)}parseSearchResult(t,{fakeLimit:e,tags:s,limit:r,random:i,page:o,showUnavailable:a}){if(!1===t.success)throw new Constants_1.BooruError(t.message||t.reason);let n;t.posts&&(t=t.posts),t.images&&(t=t.images),""===t?n=[]:e?n=(0,Utils_1.shuffle)(t):t.constructor===Object&&(n=[t]);let l=(n||t).slice(0,r).map((t=>new Post_1.default(t,this)));const u={limit:r,random:i,page:o,showUnavailable:a};return void 0===s&&(s=[]),Array.isArray(s)||(s=[s]),a||(l=l.filter((t=>t.available))),new SearchResults_1.default(l,s,u,this)}}exports.Booru=Booru,exports.default=Booru;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Booru.js","sourceRoot":"","sources":["../../src/boorus/Booru.ts"],"names":[],"mappings":";;;;;;AAKA,4DAA8C;AAC9C,4CAAoE;AACpE,oCAAuD;AAGvD,8DAAqC;AAErC,gFAAuD;AAOvD,MAAM,aAAa,GACjB,OAAO,MAAM,KAAK,WAAW,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,oBAAK,CAAA;AAuCnE,MAAa,KAAK;IAET,MAAM,CAAQ;IAEd,IAAI,CAAM;IAEV,WAAW,CAAmB;IASrC,YAAY,IAAU,EAAE,WAA8B;QACpD,MAAM,MAAM,GAAG,IAAA,mBAAW,EAAC,IAAI,CAAC,MAAM,CAAC,CAAA;QAEvC,IAAI,MAAM,KAAK,IAAI,EAAE;YACnB,MAAM,IAAI,KAAK,CAAC,wBAAwB,IAAI,EAAE,CAAC,CAAA;SAChD;QAED,IAAI,CAAC,MAAM,GAAG,MAAM,CAAA;QACpB,IAAI,CAAC,IAAI,GAAG,IAAI,CAAA;QAChB,IAAI,CAAC,WAAW,GAAG,WAAW,CAAA;IAChC,CAAC;IAQM,KAAK,CAAC,MAAM,CACjB,IAAuB,EACvB,EACE,KAAK,GAAG,CAAC,EACT,MAAM,GAAG,KAAK,EACd,IAAI,GAAG,CAAC,EACR,eAAe,GAAG,KAAK,MACH,EAAE;QAExB,MAAM,SAAS,GAAW,MAAM,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAA;QAE/D,IAAI;YACF,MAAM,YAAY,GAAG,MAAM,IAAI,CAAC,eAAe,CAAC,IAAI,EAAE;gBACpD,KAAK;gBACL,MAAM;gBACN,IAAI;gBACJ,eAAe;aAChB,CAAC,CAAA;YACF,OAAO,IAAI,CAAC,iBAAiB,CAAC,YAAY,EAAE;gBAC1C,SAAS;gBACT,IAAI;gBACJ,KAAK;gBACL,MAAM;gBACN,IAAI;gBACJ,eAAe;aAChB,CAAC,CAAA;SACH;QAAC,OAAO,GAAG,EAAE;YACZ,IAAI,GAAG,YAAY,KAAK,EAAE;gBACxB,MAAM,IAAI,sBAAU,CAAC,GAAG,CAAC,CAAA;aAC1B;iBAAM;gBACL,MAAM,GAAG,CAAA;aACV;SACF;IACH,CAAC;IAQM,QAAQ,CAAC,EAAmB;QACjC,IAAI,OAAO,EAAE,KAAK,QAAQ,IAAI,MAAM,CAAC,KAAK,CAAC,QAAQ,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,EAAE;YAC5D,MAAM,IAAI,sBAAU,CAAC,gCAAgC,EAAE,EAAE,CAAC,CAAA;SAC3D;QAED,OAAO,OAAO,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,MAAM,IAAI,CAAC,MAAM,GAC1D,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,QAChB,GAAG,EAAE,EAAE,CAAA;IACT,CAAC;IAUS,KAAK,CAAC,eAAe,CAC7B,IAAuB,EACvB,EACE,GAAG,GAAG,IAAI,EACV,KAAK,GAAG,CAAC,EACT,MAAM,GAAG,KAAK,EACd,IAAI,GAAG,CAAC,MACoB,EAAE;QAEhC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC;YAAE,IAAI,GAAG,CAAC,IAAI,CAAC,CAAA;QAGvC,IAAI,SAA6B,CAAA;QAEjC,IAAI,MAAM,EAAE;YACV,IAAI,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE;gBACpB,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,CAAA;aAC1B;iBAAM;gBACL,SAAS,GAAG,GAAG,CAAA;aAChB;SACF;QAED,IAAI,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE;YACzB,IAAI,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;SACzE;QAED,MAAM,QAAQ,GACZ,GAAG,IAAI,IAAI,CAAC,YAAY,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,SAAS,IAAI,KAAK,EAAE,IAAI,EAAE,CAAC,CAAA;QACrE,MAAM,OAAO,GAAG,0BAAc,CAAA;QAC9B,MAAM,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,KAAK,KAAK,CAAA;QAEpC,IAAI;YACF,MAAM,QAAQ,GAAG,MAAM,aAAa,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAA;YAGvD,IAAI,QAAQ,CAAC,MAAM,KAAK,GAAG,EAAE;gBAC3B,MAAM,IAAI,GAAG,MAAM,QAAQ,CAAC,KAAK,EAAE,CAAC,IAAI,EAAE,CAAA;gBAC1C,IAAI,IAAI,CAAC,QAAQ,CAAC,yBAAyB,CAAC,EAAE;oBAC5C,MAAM,IAAI,sBAAU,CAClB,oEAAoE,CACrE,CAAA;iBACF;aACF;YAED,MAAM,IAAI,GAAG,GAAG,CAAC,CAAC,CAAC,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAA;YAChE,MAAM,KAAK,GAAG,GAAG,CAAC,CAAC,CAAC,IAAA,cAAM,EAAC,IAAc,CAAC,CAAC,CAAC,CAAC,IAAI,CAAA;YAEjD,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE;gBAChB,MAAM,IAAI,sBAAU,CAClB,iBAAiB,QAAQ,CAAC,MAAM,GAAG;oBACjC,gBACE,KAAK,CAAC,KAAK,IAAI,KAAK,CAAC,OAAO,IAAI,IAAI,CAAC,SAAS,CAAC,KAAK,CACtD,GAAG,CACN,CAAA;aACF;iBAAM;gBACL,OAAO,KAAK,CAAA;aACb;SACF;QAAC,OAAO,GAAG,EAAE;YACZ,IAAK,GAAkB,CAAC,IAAI,KAAK,cAAc;gBAAE,OAAO,EAAE,CAAA;YAC1D,MAAM,GAAG,CAAA;SACV;IACH,CAAC;IAUD,YAAY,CAAC,EACX,IAAI,GAAG,EAAE,EACT,KAAK,GAAG,GAAG,EACX,IAAI,GAAG,CAAC,GACiB;QACzB,OAAO,IAAA,qBAAS,EAAC,IAAI,CAAC,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,CAAC,CAAA;IAChD,CAAC;IAUS,iBAAiB,CACzB,MAAW,EACX,EACE,SAAS,EACT,IAAI,EACJ,KAAK,EACL,MAAM,EACN,IAAI,EACJ,eAAe,GACU;QAE3B,IAAI,MAAM,CAAC,OAAO,KAAK,KAAK,EAAE;YAC5B,MAAM,IAAI,sBAAU,CAAC,MAAM,CAAC,OAAO,IAAI,MAAM,CAAC,MAAM,CAAC,CAAA;SACtD;QAED,IAAI,MAAM,CAAC,KAAK,EAAE;YAChB,MAAM,GAAG,MAAM,CAAC,KAAK,CAAA;SACtB;QAED,IAAI,MAAM,CAAC,MAAM,EAAE;YACjB,MAAM,GAAG,MAAM,CAAC,MAAM,CAAA;SACvB;QAED,IAAI,CAAuB,CAAA;QAE3B,IAAI,MAAM,KAAK,EAAE,EAAE;YACjB,CAAC,GAAG,EAAE,CAAA;SACP;aAAM,IAAI,SAAS,EAAE;YACpB,CAAC,GAAG,IAAA,eAAO,EAAC,MAAM,CAAC,CAAA;SACpB;aAAM,IAAI,MAAM,CAAC,WAAW,KAAK,MAAM,EAAE;YAExC,CAAC,GAAG,CAAC,MAAM,CAAC,CAAA;SACb;QAED,MAAM,OAAO,GAAG,CAAC,IAAI,MAAM,CAAA;QAC3B,IAAI,KAAK,GAAW,OAAO;aACxB,KAAK,CAAC,CAAC,EAAE,KAAK,CAAC;aACf,GAAG,CAAC,CAAC,CAAM,EAAE,EAAE,CAAC,IAAI,cAAI,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,CAAA;QACrC,MAAM,OAAO,GAAG,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,eAAe,EAAE,CAAA;QAExD,IAAI,IAAI,KAAK,SAAS,EAAE;YACtB,IAAI,GAAG,EAAE,CAAA;SACV;QAED,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE;YACxB,IAAI,GAAG,CAAC,IAAI,CAAC,CAAA;SACd;QAED,IAAI,CAAC,eAAe,EAAE;YACpB,KAAK,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC,CAAA;SACvC;QAED,OAAO,IAAI,uBAAa,CAAC,KAAK,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,CAAC,CAAA;IACtD,CAAC;CACF;AAzOD,sBAyOC;AAED,kBAAe,KAAK,CAAA"}
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import SearchParameters from '../structures/SearchParameters';
|
|
2
2
|
import SearchResults from '../structures/SearchResults';
|
|
3
3
|
import Site from '../structures/Site';
|
|
4
|
-
import Booru from './Booru';
|
|
4
|
+
import Booru, { BooruCredentials } from './Booru';
|
|
5
5
|
export default class Derpibooru extends Booru {
|
|
6
|
-
constructor(site: Site, credentials?:
|
|
6
|
+
constructor(site: Site, credentials?: BooruCredentials);
|
|
7
7
|
search(tags: string[] | string, { limit, random, page }?: SearchParameters): Promise<SearchResults>;
|
|
8
8
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";var __importDefault=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(exports,"__esModule",{value:!0});const Constants_1=require("../Constants"),Booru_1=__importDefault(require("./Booru"));class Derpibooru extends Booru_1.default{constructor(e,
|
|
1
|
+
"use strict";var __importDefault=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(exports,"__esModule",{value:!0});const Constants_1=require("../Constants"),Booru_1=__importDefault(require("./Booru"));class Derpibooru extends Booru_1.default{constructor(e,t){super(e,t)}search(e,{limit:t=1,random:r=!1,page:s=0}={}){Array.isArray(e)||(e=[e]),void 0===e[0]&&(e[0]="*"),s+=1;const o=this.getSearchUrl({tags:e,limit:t,page:s})+(r&&"string"===this.site.random?`&${this.site.random}`:"")+(this.credentials?`&key=${this.credentials.token}`:"");return super.doSearchRequest(e,{limit:t,random:r,page:s,uri:o}).then((o=>super.parseSearchResult(o,{fakeLimit:0,tags:e,limit:t,random:r,page:s}))).catch((e=>Promise.reject(new Constants_1.BooruError(e))))}}exports.default=Derpibooru;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Derpibooru.js","sourceRoot":"","sources":["../../src/boorus/Derpibooru.ts"],"names":[],"mappings":";;;;;AAKA,4CAAyC;AAIzC,oDAAiD;AASjD,MAAqB,UAAW,SAAQ,eAAK;IAM3C,YAAY,IAAU,EAAE,WAA8B;QACpD,KAAK,CAAC,IAAI,EAAE,WAAW,CAAC,CAAA;IAC1B,CAAC;IAGM,MAAM,CACX,IAAuB,EACvB,EAAE,KAAK,GAAG,CAAC,EAAE,MAAM,GAAG,KAAK,EAAE,IAAI,GAAG,CAAC,KAAuB,EAAE;QAE9D,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE;YACxB,IAAI,GAAG,CAAC,IAAI,CAAC,CAAA;SACd;QAGD,IAAI,IAAI,CAAC,CAAC,CAAC,KAAK,SAAS,EAAE;YACzB,IAAI,CAAC,CAAC,CAAC,GAAG,GAAG,CAAA;SACd;QAGD,IAAI,IAAI,CAAC,CAAA;QAET,MAAM,GAAG,GACP,IAAI,CAAC,YAAY,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC;YACxC,CAAC,MAAM,IAAI,IAAI,CAAC,IAAI,CAAC,MAAM,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YACvE,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,QAAQ,IAAI,CAAC,WAAW,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAA;QAE5D,OAAO,KAAK;aACT,eAAe,CAAC,IAAI,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,GAAG,EAAE,CAAC;aACnD,IAAI,CAAC,CAAC,CAAC,EAAE,CACR,KAAK,CAAC,iBAAiB,CAAC,CAAC,EAAE,EAAE,SAAS,EAAE,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CACxE;aACA,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,sBAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;IAClD,CAAC;CACF;AAvCD,6BAuCC"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import Site from '../structures/Site';
|
|
2
|
-
import Booru from './Booru';
|
|
2
|
+
import Booru, { BooruCredentials } from './Booru';
|
|
3
3
|
export default class XmlBooru extends Booru {
|
|
4
|
-
constructor(site: Site, credentials?:
|
|
4
|
+
constructor(site: Site, credentials?: BooruCredentials);
|
|
5
5
|
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"XmlBooru.js","sourceRoot":"","sources":["../../src/boorus/XmlBooru.ts"],"names":[],"mappings":";;;;;AAMA,oDAAiD;AAQjD,MAAqB,QAAS,SAAQ,eAAK;IAMzC,YAAY,IAAU,EAAE,WAA8B;QACpD,KAAK,CAAC,IAAI,EAAE,WAAW,CAAC,CAAA;IAC1B,CAAC;CACF;AATD,2BASC"}
|
package/dist/index.d.ts
CHANGED
|
@@ -5,7 +5,7 @@ import SearchResults from './structures/SearchResults';
|
|
|
5
5
|
declare function booruForSite(site: string, credentials?: any): Booru;
|
|
6
6
|
export { booruForSite as forSite };
|
|
7
7
|
export default booruForSite;
|
|
8
|
-
export declare function search(site: string, tags?: string[] | string, { limit, random, page, credentials
|
|
8
|
+
export declare function search(site: string, tags?: string[] | string, { limit, random, page, credentials }?: SearchParameters): Promise<SearchResults>;
|
|
9
9
|
export declare function commonfy(images: Post[]): Promise<Post[]>;
|
|
10
10
|
export { Booru as BooruClass } from './boorus/Booru';
|
|
11
11
|
export { sites } from './Constants';
|
package/dist/index.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";var __importDefault=this&&this.__importDefault||function(r){return r&&r.__esModule?r:{default:r}};Object.defineProperty(exports,"__esModule",{value:!0}),exports.BooruError=exports.resolveSite=exports.sites=exports.BooruClass=exports.commonfy=exports.search=exports.forSite=void 0;const Constants_1=require("./Constants"),util_1=require("util"),Booru_1=__importDefault(require("./boorus/Booru")),Derpibooru_1=__importDefault(require("./boorus/Derpibooru")),XmlBooru_1=__importDefault(require("./boorus/XmlBooru")),Site_1=__importDefault(require("./structures/Site")),Utils_1=require("./Utils"),BooruTypes={derpi:Derpibooru_1.default,xml:XmlBooru_1.default},booruCache={};function booruFrom(r,e){return new(void 0!==r.type&&BooruTypes[r.type]?BooruTypes[r.type]:Booru_1.default)(r,e)}function booruForSite(r,e=null){const o=Utils_1.resolveSite(r);if(!o)throw new Constants_1.BooruError("Site not supported");return booruFrom(new Site_1.default(Constants_1.sites[o]),e)}function search(r,e=[],{limit:o=1,random:t=!1,page:s=0,credentials:u
|
|
1
|
+
"use strict";var __importDefault=this&&this.__importDefault||function(r){return r&&r.__esModule?r:{default:r}};Object.defineProperty(exports,"__esModule",{value:!0}),exports.BooruError=exports.resolveSite=exports.sites=exports.BooruClass=exports.commonfy=exports.search=exports.forSite=void 0;const Constants_1=require("./Constants"),util_1=require("util"),Booru_1=__importDefault(require("./boorus/Booru")),Derpibooru_1=__importDefault(require("./boorus/Derpibooru")),XmlBooru_1=__importDefault(require("./boorus/XmlBooru")),Site_1=__importDefault(require("./structures/Site")),Utils_1=require("./Utils"),BooruTypes={derpi:Derpibooru_1.default,xml:XmlBooru_1.default},booruCache={};function booruFrom(r,e){return new(void 0!==r.type&&BooruTypes[r.type]?BooruTypes[r.type]:Booru_1.default)(r,e)}function booruForSite(r,e=null){const o=(0,Utils_1.resolveSite)(r);if(!o)throw new Constants_1.BooruError("Site not supported");return booruFrom(new Site_1.default(Constants_1.sites[o]),e)}function search(r,e=[],{limit:o=1,random:t=!1,page:s=0,credentials:u}={}){const n=(0,Utils_1.resolveSite)(r);if("string"==typeof o&&(o=parseInt(o,10)),null===n)throw new Constants_1.BooruError("Site not supported");if(!Array.isArray(e)&&"string"!=typeof e)throw new Constants_1.BooruError("`tags` should be an array or string");if("number"!=typeof o||Number.isNaN(o))throw new Constants_1.BooruError("`limit` should be an int");const i=new Site_1.default(Constants_1.sites[n]);return booruCache[n]||(booruCache[n]=booruFrom(i)),booruCache[n].search(e,{limit:o,random:t,page:s,credentials:u})}exports.forSite=booruForSite,exports.default=booruForSite,exports.search=search;const deprecatedCommonfy=(0,util_1.deprecate)((()=>{}),"Common is now deprecated, just access the properties directly");function commonfy(r){return deprecatedCommonfy(),Promise.resolve(r)}exports.commonfy=commonfy;var Booru_2=require("./boorus/Booru");Object.defineProperty(exports,"BooruClass",{enumerable:!0,get:function(){return Booru_2.Booru}});var Constants_2=require("./Constants");Object.defineProperty(exports,"sites",{enumerable:!0,get:function(){return Constants_2.sites}});var Utils_2=require("./Utils");Object.defineProperty(exports,"resolveSite",{enumerable:!0,get:function(){return Utils_2.resolveSite}});var Constants_3=require("./Constants");Object.defineProperty(exports,"BooruError",{enumerable:!0,get:function(){return Constants_3.BooruError}});
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;AAKA,2CAAqD;AAErD,+BAAgC;AAChC,2DAAwD;AACxD,qEAA4C;AAC5C,iEAAwC;AAIxC,6DAAoC;AACpC,mCAAqC;AAErC,MAAM,UAAU,GAAiC;IAC/C,KAAK,EAAE,oBAAU;IACjB,GAAG,EAAE,kBAAQ;CACd,CAAA;AAED,MAAM,UAAU,GAAgB,EAAE,CAAA;AASlC,SAAS,SAAS,CAAC,SAAe,EAAE,WAA8B;IAChE,OAAO,IAAI,CACT,SAAS,CAAC,IAAI,KAAK,SAAS,IAAI,UAAU,CAAC,SAAS,CAAC,IAAI,CAAC;QACxD,CAAC,CAAC,UAAU,CAAC,SAAS,CAAC,IAAI,CAAC;QAC5B,CAAC,CAAC,eAAK,CACV,CAAC,SAAS,EAAE,WAAW,CAAC,CAAA;AAC3B,CAAC;AAUD,SAAS,YAAY,CAAC,IAAY,EAAE,cAAmB,IAAI;IACzD,MAAM,KAAK,GAAG,IAAA,mBAAW,EAAC,IAAI,CAAC,CAAA;IAE/B,IAAI,CAAC,KAAK;QAAE,MAAM,IAAI,sBAAU,CAAC,oBAAoB,CAAC,CAAA;IAEtD,MAAM,SAAS,GAAG,IAAI,cAAI,CAAC,iBAAK,CAAC,KAAK,CAAC,CAAC,CAAA;IAGxC,OAAO,SAAS,CAAC,SAAS,EAAE,WAAW,CAAC,CAAA;AAC1C,CAAC;AAEwB,+BAAO;AAChC,kBAAe,YAAY,CAAA;AAiB3B,SAAgB,MAAM,CACpB,IAAY,EACZ,OAA0B,EAAE,EAC5B,EAAE,KAAK,GAAG,CAAC,EAAE,MAAM,GAAG,KAAK,EAAE,IAAI,GAAG,CAAC,EAAE,WAAW,KAAuB,EAAE;IAE3E,MAAM,KAAK,GAAkB,IAAA,mBAAW,EAAC,IAAI,CAAC,CAAA;IAE9C,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE;QAC7B,KAAK,GAAG,QAAQ,CAAC,KAAK,EAAE,EAAE,CAAC,CAAA;KAC5B;IAED,IAAI,KAAK,KAAK,IAAI,EAAE;QAClB,MAAM,IAAI,sBAAU,CAAC,oBAAoB,CAAC,CAAA;KAC3C;IAED,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE;QACpD,MAAM,IAAI,sBAAU,CAAC,qCAAqC,CAAC,CAAA;KAC5D;IAED,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE;QACpD,MAAM,IAAI,sBAAU,CAAC,0BAA0B,CAAC,CAAA;KACjD;IAED,MAAM,SAAS,GAAG,IAAI,cAAI,CAAC,iBAAK,CAAC,KAAK,CAAC,CAAC,CAAA;IAExC,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,EAAE;QACtB,UAAU,CAAC,KAAK,CAAC,GAAG,SAAS,CAAC,SAAS,CAAC,CAAA;KACzC;IAED,OAAO,UAAU,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,IAAI,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,WAAW,EAAE,CAAC,CAAA;AAC7E,CAAC;AA9BD,wBA8BC;AAGD,MAAM,kBAAkB,GAAG,IAAA,gBAAS,EAAC,GAAG,EAAE,GAAE,CAAC,EAC7C,+DAA+D,CAAC,CAAA;AAWhE,SAAgB,QAAQ,CAAC,MAAc;IACrC,kBAAkB,EAAE,CAAA;IACpB,OAAO,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,CAAA;AAChC,CAAC;AAHD,4BAGC;AAED,wCAAoD;AAA3C,mGAAA,KAAK,OAAc;AAC5B,yCAAmC;AAA1B,kGAAA,KAAK,OAAA;AACd,iCAAqC;AAA5B,oGAAA,WAAW,OAAA;AACpB,yCAAwC;AAA/B,uGAAA,UAAU,OAAA"}
|
package/dist/sites.json
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"e621.net":{"domain":"e621.net","aliases":["e6","e621"],"nsfw":true,"api":{"search":"/posts.json?","postView":"/post/show/"},"random":true},"e926.net":{"domain":"e926.net","aliases":["e9","e926"],"nsfw":false,"api":{"search":"/posts.json?","postView":"/post/show/"},"random":true,"defaultTags":["rating:safe"]},"hypnohub.net":{"domain":"hypnohub.net","aliases":["hh","hypno","hypnohub"],"nsfw":true,"api":{"search":"/post/index.json?","postView":"/post/show/"},"random":true},"danbooru.donmai.us":{"domain":"danbooru.donmai.us","aliases":["db","dan","danbooru"],"nsfw":true,"api":{"search":"/posts.json?","postView":"/posts/"},"random":true},"konachan.com":{"domain":"konachan.com","aliases":["kc","konac","kcom"],"nsfw":true,"api":{"search":"/post.json?","postView":"/post/show/"},"random":true},"konachan.net":{"domain":"konachan.net","aliases":["kn","konan","knet"],"nsfw":false,"api":{"search":"/post.json?","postView":"/post/show/"},"random":true},"yande.re":{"domain":"yande.re","aliases":["yd","yand","yandere"],"nsfw":true,"api":{"search":"/post.json?","postView":"/post/show/"},"random":true},"gelbooru.com":{"domain":"gelbooru.com","aliases":["gb","gel","gelbooru"],"nsfw":true,"api":{"search":"/index.php?page=dapi&s=post&q=index&json=1&","postView":"/index.php?page=post&s=view&json=1&id="},"paginate":"pid","random":false},"rule34.xxx":{"domain":"rule34.xxx","aliases":["r34","rule34"],"nsfw":true,"api":{"search":"/index.php?page=dapi&s=post&q=index&json=1&","postView":"/index.php?page=post&s=view&json=1&id="},"paginate":"pid","random":false},"safebooru.org":{"domain":"safebooru.org","aliases":["sb","safe","safebooru"],"nsfw":false,"api":{"search":"/index.php?page=dapi&s=post&q=index&json=1&","postView":"/index.php?page=post&s=view&json=1&id="},"paginate":"pid","random":false},"tbib.org":{"domain":"tbib.org","aliases":["tb","tbib","big"],"nsfw":false,"api":{"search":"/index.php?page=dapi&s=post&q=index&json=1&","postView":"/index.php?page=post&s=view&json=1&id="},"paginate":"pid","random":false},"xbooru.com":{"domain":"xbooru.com","aliases":["xb","xbooru"],"nsfw":true,"api":{"search":"/index.php?page=dapi&s=post&q=index&json=1&","postView":"/index.php?page=post&s=view&json=1&id="},"paginate":"pid","random":false},"rule34.paheal.net":{"domain":"rule34.paheal.net","type":"xml","aliases":["pa","paheal"],"nsfw":true,"api":{"search":"/api/danbooru/find_posts/index.xml?","postView":"/post/view/"},"random":false},"derpibooru.org":{"domain":"derpibooru.org","type":"derpi","aliases":["dp","derp","derpi","derpibooru"],"nsfw":true,"api":{"search":"/api/v1/json/search/images?","postView":"/images/"},"tagQuery":"q","random":"sf=random"},"realbooru.com":{"domain":"realbooru.com","aliases":["rb","realbooru"],"nsfw":true,"api":{"search":"/index.php?page=dapi&s=post&q=index&json=1&","postView":"/index.php?page=post&s=view&id="},"paginate":"pid","random":false}}
|
|
1
|
+
{"e621.net":{"domain":"e621.net","aliases":["e6","e621"],"nsfw":true,"api":{"search":"/posts.json?","postView":"/post/show/"},"random":true},"e926.net":{"domain":"e926.net","aliases":["e9","e926"],"nsfw":false,"api":{"search":"/posts.json?","postView":"/post/show/"},"random":true,"defaultTags":["rating:safe"]},"hypnohub.net":{"domain":"hypnohub.net","aliases":["hh","hypno","hypnohub"],"nsfw":true,"api":{"search":"/post/index.json?","postView":"/post/show/"},"random":true},"danbooru.donmai.us":{"domain":"danbooru.donmai.us","aliases":["db","dan","danbooru"],"nsfw":true,"api":{"search":"/posts.json?","postView":"/posts/"},"random":true},"konachan.com":{"domain":"konachan.com","aliases":["kc","konac","kcom"],"nsfw":true,"api":{"search":"/post.json?","postView":"/post/show/"},"random":true},"konachan.net":{"domain":"konachan.net","aliases":["kn","konan","knet"],"nsfw":false,"api":{"search":"/post.json?","postView":"/post/show/"},"random":true},"yande.re":{"domain":"yande.re","aliases":["yd","yand","yandere"],"nsfw":true,"api":{"search":"/post.json?","postView":"/post/show/"},"random":true},"gelbooru.com":{"domain":"gelbooru.com","aliases":["gb","gel","gelbooru"],"nsfw":true,"api":{"search":"/index.php?page=dapi&s=post&q=index&json=1&","postView":"/index.php?page=post&s=view&json=1&id="},"paginate":"pid","random":false},"rule34.xxx":{"domain":"api.rule34.xxx","aliases":["r34","rule34"],"nsfw":true,"api":{"search":"/index.php?page=dapi&s=post&q=index&json=1&","postView":"/index.php?page=post&s=view&json=1&id="},"paginate":"pid","random":false},"safebooru.org":{"domain":"safebooru.org","aliases":["sb","safe","safebooru"],"nsfw":false,"api":{"search":"/index.php?page=dapi&s=post&q=index&json=1&","postView":"/index.php?page=post&s=view&json=1&id="},"paginate":"pid","random":false},"tbib.org":{"domain":"tbib.org","aliases":["tb","tbib","big"],"nsfw":false,"api":{"search":"/index.php?page=dapi&s=post&q=index&json=1&","postView":"/index.php?page=post&s=view&json=1&id="},"paginate":"pid","random":false},"xbooru.com":{"domain":"xbooru.com","aliases":["xb","xbooru"],"nsfw":true,"api":{"search":"/index.php?page=dapi&s=post&q=index&json=1&","postView":"/index.php?page=post&s=view&json=1&id="},"paginate":"pid","random":false},"rule34.paheal.net":{"domain":"rule34.paheal.net","type":"xml","aliases":["pa","paheal"],"nsfw":true,"api":{"search":"/api/danbooru/find_posts/index.xml?","postView":"/post/view/"},"random":false},"derpibooru.org":{"domain":"derpibooru.org","type":"derpi","aliases":["dp","derp","derpi","derpibooru"],"nsfw":true,"api":{"search":"/api/v1/json/search/images?","postView":"/images/"},"tagQuery":"q","random":"sf=random"},"realbooru.com":{"domain":"realbooru.com","aliases":["rb","realbooru"],"nsfw":true,"api":{"search":"/index.php?page=dapi&s=post&q=index&json=1&","postView":"/index.php?page=post&s=view&id="},"paginate":"pid","random":false}}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"InternalSearchParameters.js","sourceRoot":"","sources":["../../src/structures/InternalSearchParameters.ts"],"names":[],"mappings":""}
|
package/dist/structures/Post.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});const util_1=require("util"),common=util_1.deprecate((()=>{}),"Common is now deprecated, just access the properties directly");function parseImageUrl(e,t,i){return!e||""===e.trim()||t.is_deleted?null:(e.startsWith("/data")&&(e
|
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});const util_1=require("util"),common=(0,util_1.deprecate)((()=>{}),"Common is now deprecated, just access the properties directly");function parseImageUrl(e,t,i){return!e||""===e.trim()||t.is_deleted?null:(e.startsWith("/data")&&(e=`https://danbooru.donmai.us${e}`),e.startsWith("/cached")&&(e=`https://danbooru.donmai.us${e}`),e.startsWith("/_images")&&(e=`https://dollbooru.org${e}`),e.startsWith("//derpicdn.net")&&(e=`https:${t.image}`),!t.file_url&&t.directory&&(e=`//${i.domain}/images/${t.directory}/${t.image}`),e.startsWith("http")||(e=`https:${e}`),encodeURI(e))}function getTags(e){let t=[];return Array.isArray(e.tags)?e.tags:(t=e.tags&&e.tags.general?Object.values(e.tags).reduce(((e,t)=>e.concat(t)),[]):e.tags?e.tags.split(" "):e.tag_string.split(" ").map((e=>e.replace(/,/g,"").replace(/ /g,"_"))),t.filter((e=>""!==e)))}class Post{booru;fileUrl;height;width;sampleUrl;sampleHeight;sampleWidth;previewUrl;previewHeight;previewWidth;id;available;tags;score;source;rating;createdAt;data;constructor(e,t){this.data=e,this.booru=t;const i=e.is_deleted||e.is_banned;this.fileUrl=parseImageUrl(e.file_url||e.image||(i?e.source:void 0)||e.file&&e.file.url||e.representations&&e.representations.full,e,t),this.available=!i&&null!==this.fileUrl,this.height=parseInt(e.height||e.image_height||e.file&&e.file.height,10),this.width=parseInt(e.width||e.image_width||e.file&&e.file.width,10),this.sampleUrl=parseImageUrl(e.sample_url||e.large_file_url||e.representations&&e.representations.large||e.sample&&e.sample.url,e,t),this.sampleHeight=parseInt(e.sample_height||e.sample&&e.sample.height,10),this.sampleWidth=parseInt(e.sample_width||e.sample&&e.sample.width,10),this.previewUrl=parseImageUrl(e.preview_url||e.preview_file_url||e.representations&&e.representations.small||e.preview&&e.preview.url,e,t),this.previewHeight=parseInt(e.preview_height||e.preview&&e.preview.height,10),this.previewWidth=parseInt(e.preview_width||e.preview&&e.preview.width,10),this.id=e.id?e.id.toString():"No ID available",this.tags=getTags(e),e.score&&e.score.total?this.score=e.score.total:this.score=e.score?parseInt(e.score,10):e.score,this.source=e.source||e.sources||e.source_url,this.rating=e.rating||/(safe|suggestive|questionable|explicit)/i.exec(e.tags)||"u",Array.isArray(this.rating)&&(this.rating=this.rating[0]),"suggestive"===this.rating&&(this.rating="q"),this.rating=this.rating.charAt(0),this.createdAt=null,"object"==typeof e.created_at?this.createdAt=new Date(1e3*e.created_at.s+e.created_at.n/1e9):"number"==typeof e.created_at?this.createdAt=new Date(1e3*e.created_at):"number"==typeof e.change?this.createdAt=new Date(1e3*e.change):this.createdAt=new Date(e.created_at||e.date)}get file_url(){return this.fileUrl}get sample_url(){return this.sampleUrl}get sample_height(){return this.sampleHeight}get sample_width(){return this.sampleWidth}get preview_url(){return this.previewUrl}get preview_height(){return this.previewHeight}get preview_width(){return this.previewWidth}get postView(){return this.booru.postView(this.id)}get common(){return common(),this}}exports.default=Post;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Post.js","sourceRoot":"","sources":["../../src/structures/Post.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,7 +1,8 @@
|
|
|
1
|
-
|
|
1
|
+
import { BooruCredentials } from '../boorus/Booru';
|
|
2
|
+
export default interface SearchParameters {
|
|
2
3
|
limit?: number;
|
|
3
4
|
random?: boolean;
|
|
4
5
|
page?: number;
|
|
5
|
-
credentials?:
|
|
6
|
+
credentials?: BooruCredentials;
|
|
6
7
|
showUnavailable?: boolean;
|
|
7
8
|
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SearchParameters.js","sourceRoot":"","sources":["../../src/structures/SearchParameters.ts"],"names":[],"mappings":""}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import Booru from '../boorus/Booru';
|
|
2
2
|
import Post from '../structures/Post';
|
|
3
3
|
import SearchParameters from './SearchParameters';
|
|
4
|
-
|
|
4
|
+
export default class SearchResults extends Array<Post> {
|
|
5
5
|
booru: Booru;
|
|
6
6
|
page: number;
|
|
7
7
|
readonly tags: string[];
|
|
@@ -16,4 +16,3 @@ declare class SearchResults extends Array<Post> {
|
|
|
16
16
|
}): SearchResults;
|
|
17
17
|
blacklist(tags: string[] | string): SearchResults;
|
|
18
18
|
}
|
|
19
|
-
export default SearchResults;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";var __createBinding=this&&this.__createBinding||(Object.create?function(t,e,r
|
|
1
|
+
"use strict";var __createBinding=this&&this.__createBinding||(Object.create?function(t,e,s,r){void 0===r&&(r=s),Object.defineProperty(t,r,{enumerable:!0,get:function(){return e[s]}})}:function(t,e,s,r){void 0===r&&(r=s),t[r]=e[s]}),__setModuleDefault=this&&this.__setModuleDefault||(Object.create?function(t,e){Object.defineProperty(t,"default",{enumerable:!0,value:e})}:function(t,e){t.default=e}),__importStar=this&&this.__importStar||function(t){if(t&&t.__esModule)return t;var e={};if(null!=t)for(var s in t)"default"!==s&&Object.prototype.hasOwnProperty.call(t,s)&&__createBinding(e,t,s);return __setModuleDefault(e,t),e};Object.defineProperty(exports,"__esModule",{value:!0});const Utils=__importStar(require("../Utils"));class SearchResults extends Array{booru;page;tags;options;posts;constructor(t,e,s,r){super(t.length);for(let e=0;e<t.length;e++)this[e]=t[e];this.posts=t,this.tags=e,this.options=s,this.booru=r,this.page=s&&s.page||0}get first(){return this[0]}get last(){return this[this.length-1]}nextPage(){const t=this.options;return t.page=this.page+1,this.booru.search(this.tags,t)}tagged(t,{invert:e=!1}={}){Array.isArray(t)||(t=[t]);const s=[];for(const r of this){const i=Utils.compareArrays(t,r.tags).length;(!e&&i>0||e&&0===i)&&s.push(r)}return new SearchResults(s,this.tags,this.options,this.booru)}blacklist(t){return this.tagged(t,{invert:!0})}}exports.default=SearchResults;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SearchResults.js","sourceRoot":"","sources":["../../src/structures/SearchResults.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;AAOA,gDAAiC;AAqBjC,MAAqB,aAAc,SAAQ,KAAW;IAE7C,KAAK,CAAO;IAEZ,IAAI,CAAQ;IAEH,IAAI,CAAU;IAEd,OAAO,CAAkB;IAEzB,KAAK,CAAQ;IAG7B,YACE,KAAa,EACb,IAAc,EACd,OAAyB,EACzB,KAAY;QAEZ,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,CAAA;QAEnB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;YACrC,IAAI,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,CAAA;SACnB;QAED,IAAI,CAAC,KAAK,GAAG,KAAK,CAAA;QAClB,IAAI,CAAC,IAAI,GAAG,IAAI,CAAA;QAChB,IAAI,CAAC,OAAO,GAAG,OAAO,CAAA;QACtB,IAAI,CAAC,KAAK,GAAG,KAAK,CAAA;QAClB,IAAI,CAAC,IAAI,GAAG,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;IAC7C,CAAC;IAMD,IAAI,KAAK;QACP,OAAO,IAAI,CAAC,CAAC,CAAC,CAAA;IAChB,CAAC;IAMD,IAAI,IAAI;QACN,OAAO,IAAI,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,CAAA;IAC9B,CAAC;IAOM,QAAQ;QACb,MAAM,IAAI,GAAqB,IAAI,CAAC,OAAO,CAAA;QAC3C,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,GAAG,CAAC,CAAA;QAEzB,OAAO,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,CAAA;IAC3C,CAAC;IAWM,MAAM,CACX,IAAuB,EACvB,EAAE,MAAM,GAAG,KAAK,EAAE,GAAG,EAAE;QAEvB,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE;YACxB,IAAI,GAAG,CAAC,IAAI,CAAC,CAAA;SACd;QAED,MAAM,KAAK,GAAW,EAAE,CAAA;QAExB,KAAK,MAAM,CAAC,IAAI,IAAI,EAAE;YACpB,MAAM,CAAC,GAAW,KAAK,CAAC,aAAa,CAAC,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,CAAA;YAC1D,IAAI,CAAC,CAAC,MAAM,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,MAAM,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE;gBAC7C,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;aACd;SACF;QAED,OAAO,IAAI,aAAa,CAAC,KAAK,EAAE,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,KAAK,CAAC,CAAA;IACtE,CAAC;IAOM,SAAS,CAAC,IAAuB;QACtC,OAAO,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CAAA;IAC5C,CAAC;CACF;AAjGD,gCAiGC"}
|
|
@@ -2,14 +2,14 @@
|
|
|
2
2
|
import SiteInfo from './SiteInfo';
|
|
3
3
|
export default class Site {
|
|
4
4
|
domain: string;
|
|
5
|
-
type
|
|
5
|
+
type: string;
|
|
6
6
|
aliases: string[];
|
|
7
7
|
nsfw: boolean;
|
|
8
8
|
api: SiteApi;
|
|
9
9
|
paginate: string;
|
|
10
10
|
random: boolean | string;
|
|
11
|
-
tagQuery
|
|
12
|
-
insecure
|
|
13
|
-
defaultTags
|
|
11
|
+
tagQuery: string;
|
|
12
|
+
insecure: boolean;
|
|
13
|
+
defaultTags: string[];
|
|
14
14
|
constructor(data: SiteInfo);
|
|
15
15
|
}
|
package/dist/structures/Site.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});class Site{constructor(
|
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});class Site{domain;type;aliases;nsfw;api;paginate;random;tagQuery;insecure;defaultTags;constructor(a){this.domain=a.domain,this.type=a.type||"json",this.aliases=a.aliases||[],this.nsfw=a.nsfw,this.api=a.api||{},this.paginate=a.paginate||"page",this.random=a.random||!1,this.tagQuery=a.tagQuery||"tags",this.insecure=a.insecure||!1,this.defaultTags=a.defaultTags||[]}}exports.default=Site;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Site.js","sourceRoot":"","sources":["../../src/structures/Site.ts"],"names":[],"mappings":";;AAWA,MAAqB,IAAI;IAEhB,MAAM,CAAQ;IAEd,IAAI,CAAQ;IAEZ,OAAO,CAAU;IAEjB,IAAI,CAAS;IAEb,GAAG,CAAS;IAEZ,QAAQ,CAAQ;IAKhB,MAAM,CAAkB;IAExB,QAAQ,CAAQ;IAEhB,QAAQ,CAAS;IAEjB,WAAW,CAAU;IAE5B,YAAY,IAAc;QACxB,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,CAAA;QACzB,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,IAAI,MAAM,CAAA;QAC/B,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,OAAO,IAAI,EAAE,CAAA;QACjC,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAA;QACrB,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,GAAG,IAAI,EAAE,CAAA;QACzB,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,IAAI,MAAM,CAAA;QACvC,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,IAAI,KAAK,CAAA;QAClC,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,IAAI,MAAM,CAAA;QACvC,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,IAAI,KAAK,CAAA;QACtC,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,WAAW,IAAI,EAAE,CAAA;IAC3C,CAAC;CACF;AArCD,uBAqCC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SiteApi.js","sourceRoot":"","sources":["../../src/structures/SiteApi.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SiteInfo.js","sourceRoot":"","sources":["../../src/structures/SiteInfo.ts"],"names":[],"mappings":""}
|
package/package.json
CHANGED
|
@@ -1,29 +1,29 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "booru",
|
|
3
|
-
"version": "2.
|
|
3
|
+
"version": "2.5.0",
|
|
4
4
|
"description": "Search (and do other things) on a bunch of different boorus!",
|
|
5
|
-
"author": "
|
|
5
|
+
"author": "AtoraSuunva (https://github.com/AtoraSuunva/)",
|
|
6
6
|
"license": "MIT",
|
|
7
7
|
"main": "./dist/index.js",
|
|
8
8
|
"typings": "./dist/index.d.ts",
|
|
9
9
|
"runkitExampleFilename": "./dist/example.js",
|
|
10
|
-
"homepage": "https://github.com/
|
|
10
|
+
"homepage": "https://github.com/AtoraSuunva/booru#readme",
|
|
11
11
|
"repository": {
|
|
12
12
|
"type": "git",
|
|
13
|
-
"url": "git+https://github.com/
|
|
13
|
+
"url": "git+https://github.com/AtoraSuunva/booru.git"
|
|
14
14
|
},
|
|
15
15
|
"bugs": {
|
|
16
|
-
"url": "https://github.com/
|
|
16
|
+
"url": "https://github.com/AtoraSuunva/booru/issues"
|
|
17
17
|
},
|
|
18
18
|
"scripts": {
|
|
19
|
-
"test": "
|
|
20
|
-
"lint": "
|
|
21
|
-
"clean": "
|
|
22
|
-
"prebuild": "npm run
|
|
23
|
-
"build": "
|
|
24
|
-
"build-dev": "
|
|
19
|
+
"test": "jest",
|
|
20
|
+
"lint": "eslint -c .eslintrc.js --ext .ts ./src",
|
|
21
|
+
"clean": "rimraf ./dist && rm tsconfig.tsbuildinfo",
|
|
22
|
+
"prebuild": "npm run clean && npm run lint",
|
|
23
|
+
"build": "tsc --sourceMap",
|
|
24
|
+
"build-dev": "tsc --sourceMap",
|
|
25
25
|
"postbuild": "node ./minify.js",
|
|
26
|
-
"prepublishOnly": "npm run
|
|
26
|
+
"prepublishOnly": "npm run build"
|
|
27
27
|
},
|
|
28
28
|
"keywords": [
|
|
29
29
|
"booru",
|
|
@@ -44,24 +44,30 @@
|
|
|
44
44
|
"node": ">=10.0.0"
|
|
45
45
|
},
|
|
46
46
|
"dependencies": {
|
|
47
|
-
"fast-xml-parser": "^3.
|
|
47
|
+
"fast-xml-parser": "^3.19.0",
|
|
48
48
|
"node-fetch": "^2.6.1"
|
|
49
49
|
},
|
|
50
50
|
"devDependencies": {
|
|
51
|
-
"@babel/core": "^7.
|
|
51
|
+
"@babel/core": "^7.15.5",
|
|
52
52
|
"@babel/polyfill": "^7.12.1",
|
|
53
|
-
"@babel/preset-env": "^7.
|
|
54
|
-
"@babel/preset-typescript": "^7.
|
|
55
|
-
"@types/jest": "^
|
|
56
|
-
"@types/node": "^
|
|
57
|
-
"@types/node-fetch": "^2.5.
|
|
58
|
-
"
|
|
53
|
+
"@babel/preset-env": "^7.15.4",
|
|
54
|
+
"@babel/preset-typescript": "^7.15.0",
|
|
55
|
+
"@types/jest": "^27.0.1",
|
|
56
|
+
"@types/node": "^16.9.0",
|
|
57
|
+
"@types/node-fetch": "^2.5.12",
|
|
58
|
+
"@typescript-eslint/eslint-plugin": "^4.31.0",
|
|
59
|
+
"@typescript-eslint/parser": "^4.31.0",
|
|
60
|
+
"eslint": "^7.32.0",
|
|
61
|
+
"eslint-config-prettier": "^8.3.0",
|
|
62
|
+
"eslint-plugin-import": "^2.24.2",
|
|
63
|
+
"eslint-plugin-jsdoc": "^36.1.0",
|
|
64
|
+
"eslint-plugin-no-null": "^1.0.2",
|
|
65
|
+
"eslint-plugin-prefer-arrow": "^1.2.3",
|
|
66
|
+
"jest": "^27.1.1",
|
|
67
|
+
"prettier": "^2.3.2",
|
|
59
68
|
"rimraf": "^3.0.2",
|
|
60
|
-
"terser": "^5.
|
|
61
|
-
"
|
|
62
|
-
"typedoc": "^0.19.2",
|
|
63
|
-
"typedoc-plugin-external-module-name": "^4.0.3",
|
|
64
|
-
"typescript": "^4.0.5"
|
|
69
|
+
"terser": "^5.7.2",
|
|
70
|
+
"typescript": "^4.4.2"
|
|
65
71
|
},
|
|
66
72
|
"files": [
|
|
67
73
|
"dist/"
|
|
@@ -84,8 +90,8 @@
|
|
|
84
90
|
"url": "https://github.com/BobbyWibowo"
|
|
85
91
|
},
|
|
86
92
|
{
|
|
87
|
-
"name": "
|
|
88
|
-
"url": "https://github.com/
|
|
93
|
+
"name": "AtoraSuunva",
|
|
94
|
+
"url": "https://github.com/AtoraSuunva"
|
|
89
95
|
}
|
|
90
96
|
]
|
|
91
97
|
}
|
package/CHANGELOG.md
DELETED
|
@@ -1,68 +0,0 @@
|
|
|
1
|
-
# booru Changelog
|
|
2
|
-
|
|
3
|
-
## 2.4.0
|
|
4
|
-
|
|
5
|
-
- Removed furry.booru.org since they have CloudFlare browser verification enabled.
|
|
6
|
-
- As far as I know, there's no (intended) way to bypass this if you're not a browser.
|
|
7
|
-
- Added CloudFlare-specific error message if this happens in the future
|
|
8
|
-
- Add fix for Paheal changing their API response format
|
|
9
|
-
- Make example.js only specify the "cat" default tag if you don't specify a site
|
|
10
|
-
- Change from `tsc` -> `typescript` for package.json scripts, since `tsc` is deprecated.
|
|
11
|
-
- Update dependencies
|
|
12
|
-
|
|
13
|
-
## 2.3.3
|
|
14
|
-
|
|
15
|
-
- Fix Paheal failing to provide a useful error message.
|
|
16
|
-
- Details: Paheal was returning an HTML error page instead of a JSON response. The previous way
|
|
17
|
-
of scraping an error message off HTML pages failed on the page Paheal returned.
|
|
18
|
-
- Move from `terser-folder` to a custom `minify.js`, which handles both .js and .json minifying
|
|
19
|
-
- `terser-folder` also hasn't been updated in 2 years
|
|
20
|
-
- Update circle ci to use node 14 instead of 11
|
|
21
|
-
- Update dependencies, no more security vulnerabilities!
|
|
22
|
-
|
|
23
|
-
## 2.3.2
|
|
24
|
-
|
|
25
|
-
- Added `Post#available`, to check if a post isn't deleted/banned
|
|
26
|
-
- By default, unavailable posts aren't returned in search results
|
|
27
|
-
- You can use `SearchParameters#showUnavailable` to still get them
|
|
28
|
-
- `Booru.search('db', ['cat'], { showUnavailable: true })`
|
|
29
|
-
- Fix for danbooru occasionally having invalid `fileUrl` or missing IDs
|
|
30
|
-
- You can use `Post#available` to check for this
|
|
31
|
-
|
|
32
|
-
## 2.3.0
|
|
33
|
-
|
|
34
|
-
- Fix for illegal invocation errors when using booru on the web
|
|
35
|
-
- Some of the APIs don't have the required CORS headers however
|
|
36
|
-
- Add `encodeURI` to tags when searching, to avoid encoding errors from the API
|
|
37
|
-
- Better example.js file, now supports command line input
|
|
38
|
-
- Remove lolibooru
|
|
39
|
-
|
|
40
|
-
## 2.2.3
|
|
41
|
-
|
|
42
|
-
- Various fixes for Derpibooru support
|
|
43
|
-
|
|
44
|
-
## 2.2.2
|
|
45
|
-
|
|
46
|
-
- Fix default tags missing from post results
|
|
47
|
-
- Fix scores/sources/createdAt post props for some sites
|
|
48
|
-
|
|
49
|
-
## 2.2.1
|
|
50
|
-
|
|
51
|
-
- Added missing check for `results.posts` in API response
|
|
52
|
-
|
|
53
|
-
## 2.2.0
|
|
54
|
-
|
|
55
|
-
- Support for e621/e926's new api
|
|
56
|
-
- Fix BooruError wiping out stack trace of caught error
|
|
57
|
-
- Dependency updates
|
|
58
|
-
|
|
59
|
-
## 2.1.0
|
|
60
|
-
|
|
61
|
-
- Update dependencies
|
|
62
|
-
- Fix typo in "hypo" for hypnohub's aliases #42
|
|
63
|
-
- Workaround for JS projects trying to use `new booru(site)` #40
|
|
64
|
-
- Will still "work" for certain projects, but now `booru.forSite(site)` is preferred
|
|
65
|
-
|
|
66
|
-
## 2.0.5
|
|
67
|
-
|
|
68
|
-
- Last release before changelog started
|