Update anime/hianime/source.js
This commit is contained in:
@@ -1,7 +1,7 @@
|
|||||||
class HiAnime {
|
class HiAnime {
|
||||||
constructor() {
|
constructor() {
|
||||||
this.type = "anime-streaming";
|
this.type = "anime-streaming";
|
||||||
this.version = "1.0.6";
|
this.version = "1.0.7";
|
||||||
this.baseUrl = "https://hianime.to";
|
this.baseUrl = "https://hianime.to";
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -112,8 +112,19 @@ class HiAnime {
|
|||||||
return "sub";
|
return "sub";
|
||||||
}
|
}
|
||||||
|
|
||||||
|
_stripYearHints(raw) {
|
||||||
|
const s = this._safeStr(raw).trim();
|
||||||
|
if (!s) return "";
|
||||||
|
return s
|
||||||
|
.replace(/\((?:19|20)\d{2}\)/g, " ")
|
||||||
|
.replace(/\b(?:19|20)\d{2}\b/g, " ")
|
||||||
|
.replace(/\s+/g, " ")
|
||||||
|
.trim();
|
||||||
|
}
|
||||||
|
|
||||||
_normalizeTitle(title) {
|
_normalizeTitle(title) {
|
||||||
return this._safeStr(title)
|
const t = this._stripYearHints(title);
|
||||||
|
return this._safeStr(t)
|
||||||
.toLowerCase()
|
.toLowerCase()
|
||||||
.replace(/(season|cour|part|uncensored)/g, "")
|
.replace(/(season|cour|part|uncensored)/g, "")
|
||||||
.replace(/\d+(st|nd|rd|th)/g, (m) => m.replace(/st|nd|rd|th/, ""))
|
.replace(/\d+(st|nd|rd|th)/g, (m) => m.replace(/st|nd|rd|th/, ""))
|
||||||
@@ -150,7 +161,10 @@ class HiAnime {
|
|||||||
if (!n) return false;
|
if (!n) return false;
|
||||||
const parts = n.split(/\s+/).filter(Boolean);
|
const parts = n.split(/\s+/).filter(Boolean);
|
||||||
if (parts.length !== 1) return false;
|
if (parts.length !== 1) return false;
|
||||||
const t = this._normalizeTitle(n);
|
|
||||||
|
const base = this._stripYearHints(n);
|
||||||
|
const t = this._normalizeTitle(base);
|
||||||
|
|
||||||
return t.length >= 3 && t.length <= 10;
|
return t.length >= 3 && t.length <= 10;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -165,7 +179,7 @@ class HiAnime {
|
|||||||
}
|
}
|
||||||
|
|
||||||
_parseStartDate(dateStr) {
|
_parseStartDate(dateStr) {
|
||||||
const s = this._safeStr(dateStr).trim(); // "Jul 4, 2025"
|
const s = this._safeStr(dateStr).trim();
|
||||||
if (!s) return null;
|
if (!s) return null;
|
||||||
|
|
||||||
const monthMap = {
|
const monthMap = {
|
||||||
@@ -220,7 +234,7 @@ class HiAnime {
|
|||||||
const out = [];
|
const out = [];
|
||||||
let m;
|
let m;
|
||||||
while ((m = re.exec(html)) !== null) {
|
while ((m = re.exec(html)) !== null) {
|
||||||
const pageUrl = String(m[1] || "").trim(); // e.g. "monster-2004-12345"
|
const pageUrl = String(m[1] || "").trim();
|
||||||
if (!pageUrl || pageUrl.startsWith("search?")) continue;
|
if (!pageUrl || pageUrl.startsWith("search?")) continue;
|
||||||
|
|
||||||
const chunk = String(m[2] || "");
|
const chunk = String(m[2] || "");
|
||||||
@@ -277,11 +291,16 @@ class HiAnime {
|
|||||||
const en = this._safeStr(media.englishTitle || media.english || "").trim();
|
const en = this._safeStr(media.englishTitle || media.english || "").trim();
|
||||||
const ro = this._safeStr(media.romajiTitle || media.romaji || "").trim();
|
const ro = this._safeStr(media.romajiTitle || media.romaji || "").trim();
|
||||||
|
|
||||||
const targetNormJP = this._normalizeTitle(ro);
|
const enStripped = this._stripYearHints(en);
|
||||||
const targetNormEN = this._normalizeTitle(en);
|
const roStripped = this._stripYearHints(ro);
|
||||||
const targetNorm = targetNormEN || targetNormJP || this._normalizeTitle(q);
|
|
||||||
|
|
||||||
const strictTargetRaw = (this._isSingleWordStrictTarget(en) ? en : (this._isSingleWordStrictTarget(ro) ? ro : ""));
|
const targetNormJP = this._normalizeTitle(roStripped);
|
||||||
|
const targetNormEN = this._normalizeTitle(enStripped);
|
||||||
|
const targetNorm = targetNormEN || targetNormJP || this._normalizeTitle(this._stripYearHints(q));
|
||||||
|
|
||||||
|
const strictTargetRaw =
|
||||||
|
(this._isSingleWordStrictTarget(enStripped) ? enStripped :
|
||||||
|
(this._isSingleWordStrictTarget(roStripped) ? roStripped : ""));
|
||||||
const strictNorm = strictTargetRaw ? this._normalizeTitle(strictTargetRaw) : "";
|
const strictNorm = strictTargetRaw ? this._normalizeTitle(strictTargetRaw) : "";
|
||||||
|
|
||||||
let matches = this._fetchSuggestMatches(q);
|
let matches = this._fetchSuggestMatches(q);
|
||||||
|
|||||||
Reference in New Issue
Block a user