diff --git a/app/css/misc.css b/app/css/misc.css
index 3c27e33..cd4e7f0 100644
--- a/app/css/misc.css
+++ b/app/css/misc.css
@@ -94,6 +94,7 @@ input:invalid {
height: 100%;
width: 10rem;
background: linear-gradient(270deg, rgba(37, 40, 44, 1) 0%, rgba(37, 40, 44, 1) 15%, rgba(37, 40, 44, .45) 70%, rgba(37, 40, 44, 0) 100%);
+ /*this gradient looks like ass, need to find smth better*/
}
#home.noauth #homeContinue,
diff --git a/app/js/animeHandler.js b/app/js/animeHandler.js
index 8b0e537..87c9e60 100644
--- a/app/js/animeHandler.js
+++ b/app/js/animeHandler.js
@@ -486,13 +486,13 @@ function cardCreator(opts) {
${opts.media.title.userPreferred}${opts.episode ? " - " + opts.episode : ""}
+ ${opts.schedule && opts.media.nextAiringEpisode ? "
EP " + opts.media.nextAiringEpisode.episode + " in " + countdown(opts.media.nextAiringEpisode.timeUntilAiring) + "" : ""}
${(opts.media.format ? (opts.media.format == "TV" ? "" + opts.media.format + " Show" : "" + opts.media.format.toLowerCase().replace(/_/g, " ")) : "") + ""}
${opts.media.episodes ? "" + opts.media.episodes + " Episodes" : opts.media.duration ? "" + opts.media.duration + " Minutes" : ""}
${opts.media.status ? "" + opts.media.status.toLowerCase().replace(/_/g, " ") + "" : ""}
${opts.media.season || opts.media.seasonYear ? "" + ((opts.media.season.toLowerCase() || "") + " ") + (opts.media.seasonYear || "") + "" : ""}
- ${opts.schedule && opts.media.nextAiringEpisode ? "
EP " + opts.media.nextAiringEpisode.episode + " in " + countdown(opts.media.nextAiringEpisode.timeUntilAiring) + "" : ""}
${opts.media.description}
@@ -589,7 +589,8 @@ async function resolveFileMedia(opts) {
//resolve name and shit
let method, res
if (opts.isRelease) {
- method = { name: elems.anime_title, method: "SearchName", perPage: 1, status: "RELEASING", sort: "START_DATE_DESC" }
+ method = { name: elems.anime_title, method: "SearchName", perPage: 1, status: "RELEASING", sort: "TRENDING_DESC" } //START_DATE_DESC
+ // maybe releases should include this and last season? idfk
} else {
method = { name: elems.anime_title, method: opts.method, perPage: 1 }
}
@@ -603,7 +604,7 @@ async function resolveFileMedia(opts) {
}
let episode, media = store[elems.anime_title]
// resolve episode, if movie, dont.
- if ((media?.format != "MOVIE" || media.episodes) && elems.episode_number) {
+ if ((media?.format != "MOVIE" || (media.episodes || media.nextAiringEpisode.episode)) && elems.episode_number) {
async function resolveSeason(opts) {
// opts.media, opts.episode, opts.increment, opts.offset
let epMin, epMax
@@ -622,11 +623,11 @@ async function resolveFileMedia(opts) {
tempMedia = opts.media.relations.edges.filter(edge => edge.relationType == "SEQUEL" && (edge.node.format == "TV" || "TV_SHORT"))[0].node
increment = true
}
- if (tempMedia.episodes && epMax - (opts.offset + tempMedia.episodes) > media.episodes) {
+ if (tempMedia.episodes && epMax - (opts.offset + tempMedia.episodes) > (media.episodes || media.nextAiringEpisode.episode)) {
// episode is still out of bounds
let nextEdge = await alRequest({ method: "SearchIDSingle", id: tempMedia.id })
await resolveSeason({ media: nextEdge.data.Media, episode: opts.episode, offset: opts.offset + nextEdge.data.Media.episodes, increment: increment })
- } else if (tempMedia.episodes && epMax - (opts.offset + tempMedia.episodes) < media.episodes && epMin - (opts.offset + tempMedia.episodes) > 0) {
+ } else if (tempMedia.episodes && epMax - (opts.offset + tempMedia.episodes) < (media.episodes || media.nextAiringEpisode.episode) && epMin - (opts.offset + tempMedia.episodes) > 0) {
// episode is in range, seems good! overwriting media to count up "seasons"
if (opts.episode.constructor == Array) {
episode = `${elems.episode_number[0] - (opts.offset + tempMedia.episodes)} - ${elems.episode_number[elems.episode_number.length - 1] - (opts.offset + tempMedia.episodes)}`
@@ -653,8 +654,8 @@ async function resolveFileMedia(opts) {
// if it starts with #1 and overflows then it includes more than 1 season in a batch, cant fix this cleanly, name is parsed per file basis so this shouldnt be an issue
episode = `${elems.episode_number[0]} - ${elems.episode_number[elems.episode_number.length - 1]}`
} else {
- if (media.episodes && parseInt(elems.episode_number[elems.episode_number.length - 1]) > media.episodes) {
- // if highest value is bigger than episode count, parseint to math.floor a number like 12.5 - specials - in 1 go
+ if ((media?.episodes || media?.nextAiringEpisode?.episode) && parseInt(elems.episode_number[elems.episode_number.length - 1]) > (media.episodes || media.nextAiringEpisode.episode)) {
+ // if highest value is bigger than episode count or latest streamed episode +1 for safety, parseint to math.floor a number like 12.5 - specials - in 1 go
await resolveSeason({ media: media, episode: elems.episode_number, offset: 0 })
} else {
// cant find ep count or range seems fine
@@ -662,7 +663,7 @@ async function resolveFileMedia(opts) {
}
}
} else {
- if (media?.episodes && parseInt(elems.episode_number) > media.episodes) {
+ if ((media?.episodes || media?.nextAiringEpisode?.episode) && parseInt(elems.episode_number) > (media.episodes || media.nextAiringEpisode.episode)) {
// value bigger than episode count
await resolveSeason({ media: media, episode: elems.episode_number, offset: 0 })
} else {
diff --git a/app/js/interface.js b/app/js/interface.js
index 9c07d3c..c32c16c 100644
--- a/app/js/interface.js
+++ b/app/js/interface.js
@@ -6,7 +6,7 @@ async function loadHomePage() {
continue: async function (page) {
if (!page) gallerySkeleton(browseGallery)
let res = await alRequest({ method: "UserLists", status_in: "CURRENT", id: alID, page: page || 1 })
- galleryAppend({ media: res.data.Page.mediaList.map(i => i.media), gallery: browseGallery, method: "continue", page: page || 1 })
+ galleryAppend({ media: res.data.Page.mediaList.map(i => i.media), gallery: browseGallery, method: "continue", page: page || 1, schedule: true})
},
releases: async function () {
gallerySkeleton(browseGallery)
@@ -46,7 +46,7 @@ async function loadHomePage() {
homePreviewFunctions = {
continue: async function () {
let res = await alRequest({ method: "UserLists", status_in: "CURRENT", id: alID, perPage: 4 })
- galleryAppend({ media: res.data.Page.mediaList.map(i => i.media), gallery: homeContinue })
+ galleryAppend({ media: res.data.Page.mediaList.map(i => i.media), gallery: homeContinue, schedule: true })
},
releases: async function () {
let frag = await releasesRss(4)
@@ -94,7 +94,6 @@ async function loadHomePage() {
if (!opts.page || opts.page == 1) {
opts.gallery.innerHTML = '';
}
- console.log(opts)
let frag = document.createDocumentFragment()
opts.media.forEach(media => {
let template = cardCreator({ media: media, schedule: opts.schedule })
diff --git a/app/js/playerHandler.js b/app/js/playerHandler.js
index 004a50e..f03f424 100644
--- a/app/js/playerHandler.js
+++ b/app/js/playerHandler.js
@@ -132,9 +132,8 @@ async function buildVideo(torrent, opts) { // sets video source and creates a bu
navNowPlaying.classList.remove("d-none")
} else { // try to resolve name
let mediaInformation = await resolveFileMedia({ fileName: selectedFile.name, method: "SearchName" })
- console.log(mediaInformation)
+ playerData.nowPlaying = [mediaInformation.media, mediaInformation.parseObject.episode_number]
if (mediaInformation.media) {
- playerData.nowPlaying = [mediaInformation.media, mediaInformation.parseObject.episode_number]
navNowPlaying.classList.remove("d-none")
}
}
@@ -654,9 +653,9 @@ if ('mediaSession' in navigator) {
//AL entry auto add
function checkCompletion() {
- if (!playerData.watched && video.duration - 180 < video.currentTime && playerData.nowPlaying && playerData.nowPlaying[0].episodes) {
- if (settings.other2 && !(!playerData.nowPlaying[0].episodes && playerData.nowPlaying[0].streamingEpisodes.length)) {
- if (parseInt(playerData.nowPlaying[1]) <= playerData.nowPlaying[0].episodes) alEntry()
+ if (!playerData.watched && video.duration - 180 < video.currentTime && playerData.nowPlaying && (playerData.nowPlaying[0].episodes || playerData.nowPlaying[0].nextAiringEpisode.episode)) {
+ if (settings.other2 && !(!(playerData.nowPlaying[0].episodes || playerData.nowPlaying[0].nextAiringEpisode.episode) && playerData.nowPlaying[0].streamingEpisodes.length && parseInt(playerData.nowPlaying[1] > 12))) {
+ alEntry()
} else {
halfmoon.initStickyAlert({
content: `Do You Want To Mark
${playerData.nowPlaying[0].title.userPreferred}
Episode ${playerData.nowPlaying[1]} As Completed?
diff --git a/manifest.json b/manifest.json
index a417a8a..2df4ee7 100644
--- a/manifest.json
+++ b/manifest.json
@@ -21,6 +21,8 @@
],
"share_target": {
"action": "/app/#home",
+ "method": "GET",
+ "enctype": "application/x-www-form-urlencoded",
"params": {
"url": "link"
}