@@ -21,12 +21,14 @@ let cache: {
2121 episodio : string
2222 season : string
2323 bannerImg : string
24+ descAnime : string
2425} = {
2526 text : '' ,
2627 nombreAnime : '' ,
2728 episodio : '' ,
2829 season : '' ,
2930 bannerImg : ActivityAssets . Gif ,
31+ descAnime : '' ,
3032}
3133
3234async function getEpisodeInfo ( text : string ) {
@@ -36,13 +38,16 @@ async function getEpisodeInfo(text: string) {
3638 episodio : cache . episodio ,
3739 season : cache . season ,
3840 bannerImg : cache . bannerImg ,
41+ descAnime : cache . descAnime ,
3942 }
4043 }
41- const [ episodioParte , tituloCompleto ] = text . split ( ' - ' )
42- const episodio = episodioParte ?. trim ( ) || ''
43- const seasonMatch = tituloCompleto ?. match ( / S e a s o n \s * ( \d + ) / i)
44- const nombreAnime = tituloCompleto ?. replace ( / S e a s o n \s * \d + / i, '' ) . trim ( ) || ''
45- const season = seasonMatch ? `Season ${ seasonMatch [ 1 ] } ` : 'Season 1'
44+ const currentEpisode = document . querySelector (
45+ '#episodes-content li.list-group-item.current' ,
46+ )
47+ const episodio = currentEpisode ?. querySelector ( 'h5' ) ?. textContent ?. trim ( ) || 'Episodio 1'
48+ const nombreAnime = document . querySelector ( '.video_i a' ) ?. textContent ?. trim ( ) || ''
49+ const season = 'Season 1'
50+ const descAnime = document . querySelector ( '.video_i p' ) ?. textContent ?. trim ( ) || ''
4651
4752 const bannerElement = document . querySelector ( 'div.video_t > a > img' )
4853 const bannerImg = bannerElement ?. getAttribute ( 'src' ) || ActivityAssets . Gif
@@ -53,13 +58,15 @@ async function getEpisodeInfo(text: string) {
5358 episodio,
5459 season,
5560 bannerImg,
61+ descAnime,
5662 }
5763
5864 return {
5965 nombreAnime,
6066 episodio,
6167 season,
6268 bannerImg,
69+ descAnime,
6370 }
6471}
6572
@@ -73,11 +80,17 @@ presence.on('iFrameData', (data: any) => {
7380} )
7481
7582presence . on ( 'UpdateData' , async ( ) => {
83+ const [ useAnimeCover , usePresenceName , logoType ] = await Promise . all ( [
84+ presence . getSetting < boolean > ( 'useAnimeCover' ) ,
85+ presence . getSetting < boolean > ( 'usePresenceName' ) ,
86+ presence . getSetting < number > ( 'logoType' ) ,
87+ ] )
88+
7689 const { pathname } = document . location
7790 const presenceData : PresenceData = {
7891 details : 'Navegando' ,
7992 state : 'Pagina de Inicio' ,
80- largeImageKey : ActivityAssets . Gif ,
93+ largeImageKey : [ ActivityAssets . Gif , ActivityAssets . Logo ] [ logoType ] || ActivityAssets . Logo ,
8194 type : ActivityType . Watching ,
8295 startTimestamp : browsingTimestamp ,
8396 smallImageKey : Assets . Reading ,
@@ -89,11 +102,23 @@ presence.on('UpdateData', async () => {
89102 const textoTest = bc . textContent
90103 const episodeData = await getEpisodeInfo ( textoTest )
91104
92- presenceData . name = episodeData ?. nombreAnime
93- presenceData . details = `${ episodeData ?. episodio } - ${ episodeData . season } `
94- presenceData . state = 'JKAnime'
95- presenceData . largeImageKey = episodeData ?. bannerImg
96- presenceData . largeImageText = `Viendo: ${ episodeData ?. nombreAnime } `
105+ if ( usePresenceName ) {
106+ presenceData . name = episodeData ?. nombreAnime
107+ }
108+ else {
109+ presenceData . name = 'JKAnime'
110+ }
111+
112+ if ( useAnimeCover ) {
113+ presenceData . largeImageKey = episodeData ?. bannerImg
114+ }
115+ else {
116+ presenceData . largeImageKey = [ ActivityAssets . Gif , ActivityAssets . Logo ] [ logoType ] || ActivityAssets . Logo
117+ }
118+
119+ presenceData . details = episodeData ?. nombreAnime
120+ presenceData . state = episodeData ?. descAnime
121+ presenceData . largeImageText = `${ episodeData . season . toString ( ) } , ${ episodeData . episodio . toString ( ) } `
97122
98123 if ( iframePlayback ) {
99124 presenceData . smallImageKey = isPaused ? Assets . Pause : Assets . Play
@@ -205,11 +230,11 @@ presence.on('UpdateData', async () => {
205230 presence . setActivity ( presenceData )
206231 return
207232 }
208- else if ( pathname . includes ( '/' ) && ! / \/ \d + \/ ? $ / . test ( pathname ) ) {
233+ else if ( pathname . includes ( '/' ) && ! / \/ \d + \/ ? $ / . test ( pathname ) && ! pathname . includes ( '/pelicula/' ) ) {
209234 const animeTitle = pathname . split ( '/' ) [ 1 ] || ''
210235
211236 if ( animeTitle ) {
212- const title = document . querySelector ( 'div.anime_info > h3' ) ?. textContent
237+ const title = document . querySelector ( 'div.anime_info > h3' ) ?. textContent || 'Comunidad'
213238
214239 presenceData . details = 'Viendo Descripción'
215240 presenceData . state = `Leyendo sobre: ${ title } `
0 commit comments