Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
13 changes: 8 additions & 5 deletions websites/A/AnimeKai/metadata.json
Original file line number Diff line number Diff line change
Expand Up @@ -11,11 +11,14 @@
},
"url": [
"animekai.to",
"anikai.to",
"animekaitv.to"
"animekai.im",
"animekai.la",
"animekai.nl",
"animekai.vc",
"anikai.to"
],
"regExp": "^https?[:][/][/](animekai(tv)?[.]to|anikai[.]to)[/]",
"version": "2.1.2",
"regExp": "^https?[:][/][/](animekai[.](to|im|la|nl|vc)|anikai[.]to)[/]",
"version": "2.1.3",
"logo": "https://cdn.rcd.gg/PreMiD/websites/A/AnimeKai/assets/logo.png",
"thumbnail": "https://cdn.rcd.gg/PreMiD/websites/A/AnimeKai/assets/thumbnail.png",
"color": "#40b15d",
Expand All @@ -24,7 +27,7 @@
"anime"
],
"iframe": true,
"iFrameRegExp": "megaup[.]live",
"iFrameRegExp": "4spromax[.]site",
"settings": [
{
"id": "buttons",
Expand Down
101 changes: 11 additions & 90 deletions websites/A/AnimeKai/presence.ts
Original file line number Diff line number Diff line change
Expand Up @@ -34,13 +34,10 @@ presence.on('UpdateData', async () => {
name: 'AnimeKAI',
largeImageKey: ActivityAssets.Logo,
startTimestamp: browsingTimestamp,

}
const { pathname, href, hostname } = document.location
const { pathname, href } = document.location
const buttons = await presence.getSetting<boolean>('buttons')

const isNewDomain = hostname.includes('animekaitv')

if (pathname === '/' || pathname === '/home') {
presenceData.details = 'Exploring AnimeKAI'
}
Expand Down Expand Up @@ -69,9 +66,10 @@ presence.on('UpdateData', async () => {
else if (pathname.startsWith('/az-list')) {
presenceData.details = 'Looking at Anime list'
if (pathname !== '/az-list') {
presenceData.state = `Titles starting with ${pathname.substring(9) === 'other'
? 'Other characters'
: `${pathname.substring(9)}`
presenceData.state = `Titles starting with ${
pathname.substring(9) === 'other'
? 'Other characters'
: `${pathname.substring(9)}`
}`
}
presenceData.smallImageKey = Assets.Search
Expand Down Expand Up @@ -107,63 +105,17 @@ presence.on('UpdateData', async () => {
}
}
else if (pathname.startsWith('/watch')) {
let title = document.querySelector<HTMLLIElement>(
const title = document.querySelector<HTMLLIElement>(
'li.breadcrumb-item.active',
)

if (!title) {
title = document.querySelector<HTMLHeadingElement>(
'h1.title.d-title, h1.d-title, h2.film-name, h1.film-name',
) as any
}

let episode: string | null = null

if (isNewDomain) {
const epMatch = pathname.match(/\/ep-(\d+)/)
if (epMatch && epMatch[1]) {
episode = epMatch[1]
}
}
else {
const hashMatch = window.location.hash.match(/#ep=(\d+)/)
if (hashMatch) {
episode = hashMatch[1] ?? null
}

const episodeSpan = document.querySelector<HTMLSpanElement>(
'.eplist .range li a.active span',
)
if (!episode && episodeSpan) {
episode = episodeSpan?.previousSibling?.nodeValue?.trim() || null
}
}

if (!episode) {
const epElement = document.querySelector('.episode-number, .ep-number, .current-episode')
if (epElement) {
const epText = epElement.textContent?.match(/\d+/)
if (epText)
episode = epText[0]
}
}

let thumbnail = document.querySelector<HTMLImageElement>(
const episodeSpan = document.querySelector<HTMLSpanElement>(
'.eplist .range li a.active span',
)
const episode = episodeSpan?.previousSibling?.nodeValue?.trim() || null
const thumbnail = document.querySelector<HTMLImageElement>(
'.poster > div > img',
)?.src

if (!thumbnail) {
thumbnail = document.querySelector<HTMLImageElement>(
'img[itemprop="image"]',
)?.src
}

if (!thumbnail) {
thumbnail = document.querySelector<HTMLImageElement>(
'#ani_detail > div > div > div.anis-content > div.anisc-poster > div > img, .anime-poster img, .video-poster img',
)?.src
}

presenceData.largeImageKey = thumbnail
if (title)
presenceData.details = title.textContent
Expand Down Expand Up @@ -226,21 +178,11 @@ presence.on('UpdateData', async () => {
presenceData.smallImageKey = ActivityAssets.Settings
break
}
case '/member/users/settings': {
presenceData.details = 'Managing Settings'
presenceData.smallImageKey = ActivityAssets.Settings
break
}
case '/user/profile': {
presenceData.details = 'Editing Profile'
presenceData.smallImageKey = ActivityAssets.Settings
break
}
case '/member/users/profile': {
presenceData.details = 'Editing Profile'
presenceData.smallImageKey = ActivityAssets.Settings
break
}
case '/user/watching': {
presenceData.details = 'Viewing Continue Watching'
presenceData.smallImageKey = Assets.Viewing
Expand All @@ -251,11 +193,6 @@ presence.on('UpdateData', async () => {
presenceData.smallImageKey = Assets.Downloading
break
}
case '/member/mal': {
presenceData.details = 'MAL/AL Import'
presenceData.smallImageKey = Assets.Downloading
break
}
case '/user/export': {
presenceData.details = 'MAL/AL Export'
presenceData.smallImageKey = Assets.Uploading
Expand All @@ -277,17 +214,6 @@ presence.on('UpdateData', async () => {
presenceData.smallImageKey = Assets.Reading
break
}
case '/member/notifications': {
const type = new URLSearchParams(document.location.search).get('type')
if (type === 'community') {
presenceData.details = 'Looking at Community Notifications'
}
else {
presenceData.details = 'Looking at Anime Notifications'
}
presenceData.smallImageKey = Assets.Reading
break
}
case '/user/bookmarks': {
presenceData.details = 'Managing Bookmarks'
presenceData.smallImageKey = ActivityAssets.Settings
Expand All @@ -298,11 +224,6 @@ presence.on('UpdateData', async () => {
presenceData.smallImageKey = Assets.Reading
break
}
case '/status/not-yet-aired': {
presenceData.details = 'Looking at Upcoming'
presenceData.smallImageKey = Assets.Reading
break
}
default: {
const title = document.querySelector<HTMLHeadingElement>(
'h2.film-name.dynamic-name',
Expand Down
Loading