mirror of
https://github.com/mdtahseen7/AnimepaheApi.git
synced 2026-06-02 22:08:16 +00:00
Add latest Endpoint
This commit is contained in:
+67
-1
@@ -126,6 +126,9 @@ class AnimePahe {
|
||||
if (context === 'ids') {
|
||||
return 'Anime session not found. Use /search first to get a valid session id.';
|
||||
}
|
||||
if (context === 'latest') {
|
||||
return 'Unable to fetch latest episodes right now.';
|
||||
}
|
||||
}
|
||||
|
||||
if (statusCode === 403 && /ddos-guard|checking your browser|cloudflare/i.test(rawMessage)) {
|
||||
@@ -260,6 +263,70 @@ class AnimePahe {
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Get latest airing episodes
|
||||
* @param {number} page - Page number
|
||||
* @returns {Promise<Array>} Array of latest airing episodes
|
||||
*/
|
||||
async getLatest(page = 1) {
|
||||
try {
|
||||
const latestUrl = `${this.base}/api?m=airing&page=${page}`;
|
||||
const response = await cloudscraper.get(latestUrl, {
|
||||
headers: this.getHeaders()
|
||||
});
|
||||
|
||||
const data = this._parseJsonResponse(response);
|
||||
const latestRows = this._extractArray(data, ['data', 'results', 'items', 'episodes', 'list']);
|
||||
const results = [];
|
||||
|
||||
for (const item of latestRows) {
|
||||
const animeSession =
|
||||
item.anime_session ||
|
||||
item.session ||
|
||||
item.slug ||
|
||||
item.anime?.session ||
|
||||
item.anime?.slug ||
|
||||
null;
|
||||
|
||||
const episodeSession =
|
||||
item.episode_session ||
|
||||
item.release_session ||
|
||||
item.episode?.session ||
|
||||
item.session ||
|
||||
null;
|
||||
|
||||
const title =
|
||||
item.anime_title ||
|
||||
item.title ||
|
||||
item.anime?.title ||
|
||||
item.anime?.name ||
|
||||
null;
|
||||
|
||||
const urlValue =
|
||||
item.url ||
|
||||
(animeSession ? `${this.base}/anime/${animeSession}` : null);
|
||||
|
||||
results.push({
|
||||
id: item.id || item.release_id || item.episode_id || null,
|
||||
title,
|
||||
url: urlValue,
|
||||
episode: Number(item.episode ?? item.number ?? item.ep ?? item.ep_num ?? null),
|
||||
episode_title:
|
||||
item.episode_title ||
|
||||
item.title ||
|
||||
`Episode ${item.episode ?? item.number ?? ''}`.trim(),
|
||||
snapshot: item.snapshot || item.thumbnail || item.image || null,
|
||||
anime_session: animeSession,
|
||||
episode_session: episodeSession
|
||||
});
|
||||
}
|
||||
|
||||
return results;
|
||||
} catch (error) {
|
||||
throw new Error(`Failed to get latest episodes: ${this._formatUpstreamError('latest', error)}`);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Get streaming sources for an episode
|
||||
* @param {string} animeSession - Anime session ID
|
||||
@@ -501,7 +568,6 @@ ${transformedScript}
|
||||
});
|
||||
});
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
module.exports = AnimePahe;
|
||||
|
||||
Reference in New Issue
Block a user