diff --git a/package.json b/package.json index 7616615..33fe43e 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "Miru", - "version": "2.4.7", + "version": "2.5.0", "author": "ThaUnknown_ ", "main": "src/index.js", "homepage": "https://github.com/ThaUnknown/miru#readme", diff --git a/src/renderer/src/lib/RSSView.svelte b/src/renderer/src/lib/RSSView.svelte index fb6abe9..0edcd17 100644 --- a/src/renderer/src/lib/RSSView.svelte +++ b/src/renderer/src/lib/RSSView.svelte @@ -4,6 +4,7 @@ import { set } from './pages/Settings.svelte' import { addToast } from '@/lib/Toasts.svelte' import { alRequest } from '@/modules/anilist.js' + import { episodeRx, findEdge, resolveSeason, getMediaMaxEp } from '@/modules/anime.js' import { writable } from 'svelte/store' @@ -11,11 +12,28 @@ const settings = set + const exclusions = ['DTS', '[ASW]'] + + const video = document.createElement('video') + + if (!video.canPlayType('video/mp4; codecs="hev1.1.6.L93.B0"')) { + exclusions.push('HEVC', 'x265', 'H.265') + } + if (!video.canPlayType('audio/mp4; codecs="ac-3"')) { + exclusions.push('AC3', 'AC-3') + } + video.remove() + export function playAnime (media, episode = 1) { episode = isNaN(episode) ? 1 : episode rss.set({ media, episode }) } + // padleft a variable with 0 ex: 1 => '01' + function pl (v = 1) { + return (typeof v === 'string' ? v : v.toString()).padStart(2, '0') + } + export function getRSSContent (url) { return fetch(url) .then(res => { @@ -44,14 +62,128 @@ const rss = rssmap[settings.rssFeed] || settings.rssFeed return new URL(`${rss}${settings.rssQuality ? `"${settings.rssQuality}"` : ''}`) } - + // matches: OP01 ED01 EP01 E01 01v -01- _01_ with spaces and stuff + const epNumRx = /[EO]?[EPD _-]\d{2}[v _-]|\d{2}[-~]\d{2}/i + async function getRSSEntries ({ media, episode, mode, ignoreQuality }) { + // mode cuts down on the amt of queries made 'check' || 'batch' + const titles = createTitle(media).join(')|(') - + +