diff --git a/package.json b/package.json index 3aca155..fb9cac9 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "Miru", - "version": "4.1.1", + "version": "4.1.2", "author": "ThaUnknown_ ", "description": "Stream anime torrents, real-time with no waiting for downloads.", "main": "build/main.js", diff --git a/src/renderer/components/cards/EpisodeCard.svelte b/src/renderer/components/cards/EpisodeCard.svelte index 8f16c09..8591ad7 100644 --- a/src/renderer/components/cards/EpisodeCard.svelte +++ b/src/renderer/components/cards/EpisodeCard.svelte @@ -31,14 +31,16 @@ {data.media?.title.userPreferred || data.parseObject.anime_title} -
-
- Episode {data.episode} + {#if data.episode} +
+
+ Episode {data.episode} +
+
+ {data.episodeData?.title || ''} +
-
- {data.episodeData?.title || ''} -
-
+ {/if}
diff --git a/src/renderer/components/cards/EpisodePreviewCard.svelte b/src/renderer/components/cards/EpisodePreviewCard.svelte index db82938..21d7c41 100644 --- a/src/renderer/components/cards/EpisodePreviewCard.svelte +++ b/src/renderer/components/cards/EpisodePreviewCard.svelte @@ -27,14 +27,16 @@ {data.media?.title.userPreferred || data.parseObject.anime_title} -
-
- Episode {data.episode} + {#if data.episode} +
+
+ Episode {data.episode} +
+
+ {data.episodeData?.title || ''} +
-
- {data.episodeData?.title || ''} -
-
+ {/if}
{data.episodeData?.description || media?.description?.replace(/<[^>]*>/g, '') || ''} diff --git a/src/renderer/modules/providers/tosho.js b/src/renderer/modules/providers/tosho.js index 0dbd4fd..20f3d02 100644 --- a/src/renderer/modules/providers/tosho.js +++ b/src/renderer/modules/providers/tosho.js @@ -1,23 +1,27 @@ import { mapBestRelease } from '../anime.js' import { fastPrettyBytes } from '../util.js' +import { exclusions } from '../rss.js' const toshoURL = decodeURIComponent(atob('aHR0cHM6Ly9mZWVkLmFuaW1ldG9zaG8ub3JnL2pzb24/')) -// TODO: exclude unsupported codecd, query resolution +// TODO query resolution export default async function ({ media, episode }) { - const mappings = await fetch('https://api.ani.zip/mappings?anilist_id=' + media.id) + const mappings = await fetch('https://api.ani.zip/mappings?anilist_id=' + media.id + '&qx=' + exclusions.map(e => '!' + e).join(' ')) const { episodes, mappings: map } = await mappings.json() + const entries = [] - const { anidbEid } = episodes[Number(episode)] + if (episodes[Number(episode)]) { + const { anidbEid } = episodes[Number(episode)] - const torrents = await fetch(toshoURL + 'eid=' + anidbEid) + const torrents = await fetch(toshoURL + 'eid=' + anidbEid) - const entries = (await torrents.json()) + entries.push(...await torrents.json()) + } // look for batches - if (media.status === 'FINISHED' && media.episodes && media.episodes !== 1) { - const torrents = await fetch(toshoURL + 'aid=' + map.anidb_id + '&order=size-d') + if (map.anidb_id && (media.status === 'FINISHED' || media.episodes === 1)) { + const torrents = await fetch(toshoURL + 'aid=' + map.anidb_id + '&order=size-d' + '&qx=' + exclusions.map(e => '!' + e).join(' ')) const batches = (await torrents.json()).filter(entry => { return entry.num_files >= media.episodes diff --git a/src/renderer/modules/rss.js b/src/renderer/modules/rss.js index 78476b7..af0d92f 100644 --- a/src/renderer/modules/rss.js +++ b/src/renderer/modules/rss.js @@ -99,7 +99,7 @@ class RSSMediaManager { await this.lastResult const res = (await resolveFileMedia(title))[0] if (res.media?.id) { - res.episodeData = (await getEpisodeMetadataForMedia(res.media)).find(({ number }) => number === res.episode) + res.episodeData = (await getEpisodeMetadataForMedia(res.media))?.find(({ number }) => number === res.episode) } res.onclick = () => add(link) return res