Feat: ImageRequestInit (#979)

* add ImageRequestInit & fix Hako

* remove multisrc fetchFile

* remove plugins fetchFile

* update docs and template file
This commit is contained in:
nyagami
2024-06-08 20:09:33 +07:00
committed by GitHub
parent 6062f51460
commit 60d95fb8d2
85 changed files with 441 additions and 692 deletions
+1 -3
View File
@@ -1,4 +1,4 @@
import { fetchFile, fetchApi } from '@libs/fetch';
import { fetchApi } from '@libs/fetch';
import { Filters, FilterTypes } from '@libs/filterInputs';
import { Plugin } from '@typings/plugin';
import { NovelStatus } from '@libs/novelStatus';
@@ -162,8 +162,6 @@ class HotNovelPubPlugin implements Plugin.PluginBase {
return novels;
}
fetchImage = fetchFile;
resolveUrl = (path: string, isNovel?: boolean) => this.site + '/' + path;
}
+1 -3
View File
@@ -1,4 +1,4 @@
import { fetchFile, fetchApi } from '@libs/fetch';
import { fetchApi } from '@libs/fetch';
import { Filters, FilterTypes } from '@libs/filterInputs';
import { Plugin } from '@typings/plugin';
import { NovelStatus } from '@libs/novelStatus';
@@ -216,6 +216,4 @@ class IfreedomPlugin implements Plugin.PluginBase {
}
return dateString || null;
};
fetchImage = fetchFile;
}
+4 -5
View File
@@ -1,5 +1,5 @@
import { load as parseHTML } from 'cheerio';
import { fetchApi, fetchFile } from '@libs/fetch';
import { fetchApi } from '@libs/fetch';
import { Plugin } from '@typings/plugin';
import { Filters, FilterTypes } from '@libs/filterInputs';
import dayjs from 'dayjs';
@@ -27,6 +27,9 @@ class LightNovelWorld implements Plugin.PagePlugin {
Accept: 'application/json',
'Content-Type': 'application/json',
};
imageRequestInit?: Plugin.ImageRequestInit | undefined = {
headers: this.headers,
};
options?: LightNovelWorldOptions;
constructor(metadata: LightNovelWorldMetadata) {
@@ -188,10 +191,6 @@ class LightNovelWorld implements Plugin.PagePlugin {
return novels;
}
async fetchImage(url: string): Promise<string | undefined> {
return fetchFile(url, { headers: this.headers });
}
filters = {
order: {
value: 'popular',
+1 -3
View File
@@ -1,6 +1,6 @@
import { load } from 'cheerio';
import { Parser } from 'htmlparser2';
import { fetchApi, fetchFile } from '@libs/fetch';
import { fetchApi } from '@libs/fetch';
import { Plugin } from '@typings/plugin';
import { NovelStatus } from '@libs/novelStatus';
import { defaultCover } from '@libs/defaultCover';
@@ -407,8 +407,6 @@ class LightNovelWPPlugin implements Plugin.PluginBase {
const html = await this.safeFecth(url, true);
return this.parseNovels(html);
}
fetchImage = fetchFile;
}
function extractChapterNumber(data: string, tempChapter: Plugin.ChapterItem) {
+1 -3
View File
@@ -1,4 +1,4 @@
import { fetchApi, fetchFile } from '@libs/fetch';
import { fetchApi } from '@libs/fetch';
import { Filters, FilterTypes } from '@libs/filterInputs';
import { Plugin } from '@typings/plugin';
import { Cheerio, AnyNode, CheerioAPI, load as parseHTML } from 'cheerio';
@@ -294,8 +294,6 @@ class MadaraPlugin implements Plugin.PluginBase {
return this.parseNovels(loadedCheerio);
}
fetchImage = fetchFile;
parseData = (date: string) => {
const dayJSDate = dayjs(); // today
const timeAgo = date.match(/\d+/)?.[0] || '';
+1 -3
View File
@@ -1,5 +1,5 @@
import { CheerioAPI, load } from 'cheerio';
import { fetchApi, fetchFile } from '@libs/fetch';
import { fetchApi } from '@libs/fetch';
import { Plugin } from '@typings/plugin';
import { NovelStatus } from '@libs/novelStatus';
@@ -172,6 +172,4 @@ class ReadNovelFullPlugin implements Plugin.PluginBase {
return this.parseNovels($);
}
fetchImage = fetchFile;
}
+1 -3
View File
@@ -1,4 +1,4 @@
import { fetchFile, fetchApi } from '@libs/fetch';
import { fetchApi } from '@libs/fetch';
import { Filters, FilterTypes } from '@libs/filterInputs';
import { Plugin } from '@typings/plugin';
import { NovelStatus } from '@libs/novelStatus';
@@ -223,6 +223,4 @@ class ReadwnPlugin implements Plugin.PluginBase {
.filter(novel => novel.name && novel.path);
return novels;
}
fetchImage = fetchFile;
}
+1 -3
View File
@@ -1,4 +1,4 @@
import { fetchFile, fetchApi } from '@libs/fetch';
import { fetchApi } from '@libs/fetch';
import { Filters, FilterTypes } from '@libs/filterInputs';
import { Plugin } from '@typings/plugin';
import { NovelStatus } from '@libs/novelStatus';
@@ -246,8 +246,6 @@ class RulatePlugin implements Plugin.PluginBase {
}
return dateString || null;
};
fetchImage = fetchFile;
}
interface response {