@@ -6,7 +6,7 @@ const presence = new Presence({
66const browsingTimestamp = Math . floor ( Date . now ( ) / 1000 )
77
88enum ActivityAssets {
9- Logo = 'https://cdn.rcd.gg/PreMiD/websites/D/Deno/assets/logo .png' ,
9+ Logo = 'https://litomore.me/images/deno-512 .png' ,
1010 NewsLogo = 'https://cdn.rcd.gg/PreMiD/websites/D/Deno/assets/0.png' ,
1111 MerchLogo = 'https://cdn.rcd.gg/PreMiD/websites/D/Deno/assets/1.png' ,
1212}
@@ -16,202 +16,90 @@ presence.on('UpdateData', async () => {
1616 largeImageKey : ActivityAssets . Logo ,
1717 startTimestamp : browsingTimestamp ,
1818 }
19- const { href, hash , hostname, pathname } = document . location
19+ const { href, hostname, pathname } = document . location
2020 const [ privacy , buttons ] = await Promise . all ( [
2121 presence . getSetting < boolean > ( 'privacy' ) ,
2222 presence . getSetting < boolean > ( 'buttons' ) ,
2323 ] )
24- const search = document . querySelector < HTMLInputElement > ( '[id="search-input"]' )
25- const pathnameSplit = pathname . split ( '/' )
24+ const args = pathname . split ( '/' )
2625 if ( privacy ) {
2726 presenceData . largeImageKey = ActivityAssets . Logo
2827 presenceData . details = 'Browsing'
2928 presence . setActivity ( presenceData )
3029 return
3130 }
32- switch ( hostname ) {
33- case 'deno.land' : {
34- if ( search ?. value ) {
35- presenceData . details = 'Searching for'
36- presenceData . state = search . value
37- presenceData . smallImageKey = Assets . Search
38- }
39- else if ( pathname . includes ( '/manual' ) ) {
40- presenceData . buttons = [
41- {
42- label : 'Read Manual' ,
43- url : href ,
44- } ,
45- ]
46- presenceData . state = 'Manual'
47- presenceData . smallImageKey = Assets . Reading
48- presenceData . smallImageText = 'Reading'
49- presenceData . details = document . querySelector ( '[class="anchor"]' ) ?. parentElement ?. textContent
50- }
51- else {
52- switch ( pathnameSplit [ 1 ] ) {
53- case '' : {
54- presenceData . details = 'Viewing homepage'
55- break
56- }
57- case 'blog' : {
58- presenceData . buttons = [
59- {
60- label : 'Read Blog' ,
61- url : href ,
62- } ,
63- ]
64- presenceData . details = 'Reading the blog'
65- presenceData . smallImageKey = Assets . Reading
66- presenceData . smallImageText = 'Reading'
67- break
68- }
69- case 'x' : {
70- presenceData . buttons = [
71- {
72- label : 'Explore Modules' ,
73- url : href ,
74- } ,
75- ]
76-
77- if ( document . querySelector ( '[class="text-default"]' ) ) {
78- presenceData . details = 'Viewing third party module'
79- presenceData . state = document
80- . querySelector ( 'title' )
81- ?. textContent
82- ?. split ( '|' ) [ 0 ]
83- }
84- else {
85- presenceData . smallImageKey = Assets . Reading
86- presenceData . smallImageText = 'Reading'
87- presenceData . details = 'Reading about third party modules'
88- }
89- break
90- }
91- }
92- }
93- break
31+ if ( hostname === 'deno.com' ) {
32+ presenceData . details = 'Exlporing deno.com'
33+ if ( args [ 1 ] === '' ) {
34+ presenceData . details = 'Viewing homepage'
9435 }
95- case 'doc.deno.land' : {
36+ if ( args [ 1 ] === 'blog' ) {
9637 presenceData . buttons = [
9738 {
98- label : 'View Docs ' ,
39+ label : 'View Blog ' ,
9940 url : href ,
10041 } ,
10142 ]
102- presenceData . details = `Viewing ${
103- ! hash ? 'deno' : `${ hash . replace ( '#' , '' ) } 's`
104- } (${ document . querySelector ( '[class="truncate"]' ) ?. textContent } version)`
105- break
106- }
107- case 'deno.com' : {
108- switch ( pathnameSplit [ 1 ] ) {
109- case '' : {
110- presenceData . details = 'Viewing homepage'
111- break
112- }
113- case 'blog' : {
114- presenceData . buttons = [
115- {
116- label : 'View Blog' ,
117- url : href ,
118- } ,
119- ]
120- presenceData . smallImageKey = Assets . Reading
121- presenceData . smallImageText = 'Reading'
122- if ( document . querySelector ( 'article' ) ) {
123- presenceData . details = 'Reading an article about'
124- presenceData . state = document . querySelector ( 'article' ) ?. firstElementChild ?. textContent
125- }
126- else {
127- presenceData . details = 'Reading the blog'
128- }
129- break
130- }
131- case 'deploy' : {
132- switch ( pathnameSplit [ 2 ] ) {
133- case 'subhosting' : {
134- presenceData . buttons = [
135- {
136- label : 'View Subhosting' ,
137- url : href ,
138- } ,
139- ]
140- presenceData . details = 'Viewing the subhosting page'
141- break
142- }
143- case 'docs' : {
144- presenceData . buttons = [
145- {
146- label : 'View Docs' ,
147- url : href ,
148- } ,
149- ]
150- presenceData . smallImageKey = Assets . Reading
151- presenceData . smallImageText = 'Reading'
152- presenceData . details = 'Reading an article about'
153- presenceData . state = document . querySelector ( 'article' ) ?. firstElementChild ?. textContent
154- break
155- }
156- case 'pricing' : {
157- presenceData . buttons = [
158- {
159- label : 'View Pricing' ,
160- url : href ,
161- } ,
162- ]
163- presenceData . details = 'Viewing deno\'s pricing'
164- break
165- }
166- case '' :
167- default : {
168- presenceData . buttons = [
169- {
170- label : 'View The Deploy Page' ,
171- url : href ,
172- } ,
173- ]
174- presenceData . details = 'Viewing the deploy page'
175- break
176- }
177- }
178- break
179- }
43+ presenceData . smallImageKey = Assets . Reading
44+ presenceData . smallImageText = 'Reading'
45+ if ( document . querySelector ( 'article' ) ) {
46+ presenceData . details = 'Reading an article about'
47+ presenceData . state = document . title
48+ }
49+ else {
50+ presenceData . details = 'Viewing blog posts list'
18051 }
181- break
182- }
183- case 'deno.news' : {
184- presenceData . buttons = [
185- {
186- label : 'View The News' ,
187- url : href ,
188- } ,
189- ]
190- presenceData . largeImageKey = ActivityAssets . NewsLogo
191- presenceData . details = 'Viewing the news page'
192- break
19352 }
194- case 'denostatus.com' : {
53+ if ( args [ 1 ] === 'deploy' ) {
19554 presenceData . buttons = [
19655 {
197- label : 'View Deno\'s Status ' ,
56+ label : 'View The Deploy™ Page ' ,
19857 url : href ,
19958 } ,
20059 ]
201- presenceData . details = 'Viewing deno\'s status'
202- break
60+ presenceData . details = 'Viewing the Deploy™ page'
61+ if ( args [ 2 ] === 'subhosting' ) {
62+ presenceData . buttons = [
63+ {
64+ label : 'View Subhosting' ,
65+ url : href ,
66+ } ,
67+ ]
68+ presenceData . details = 'Viewing the subhosting page'
69+ }
70+ if ( args [ 2 ] === 'pricing' ) {
71+ presenceData . buttons = [
72+ {
73+ label : 'View Pricing' ,
74+ url : href ,
75+ } ,
76+ ]
77+ presenceData . details = 'Viewing Deploy™\'s pricing'
78+ }
20379 }
204- case 'merch.deno.com' : {
205- presenceData . largeImageKey = ActivityAssets . MerchLogo
206- presenceData . buttons = [
207- {
208- label : 'View Merge Store' ,
209- url : href ,
210- } ,
211- ]
212- presenceData . details = 'Viewing deno\'s merch store'
213- break
80+ }
81+ if ( hostname === 'docs.deno.com' ) {
82+ presenceData . buttons = [
83+ {
84+ label : 'View Documentation' ,
85+ url : href ,
86+ } ,
87+ ]
88+ presenceData . details = 'Exploring Deno\'s documentation'
89+ if ( args [ 1 ] === '' ) {
90+ presenceData . details = 'Viewing the documentation homepage'
21491 }
92+ presenceData . details = 'Viewing a documentation'
93+ presenceData . state = document . title
94+ }
95+ if ( hostname === 'denostatus.com' ) {
96+ presenceData . buttons = [
97+ {
98+ label : 'View Deno\'s Status' ,
99+ url : href ,
100+ } ,
101+ ]
102+ presenceData . details = 'Viewing deno\'s status'
215103 }
216104 if ( ! buttons )
217105 delete presenceData . buttons
0 commit comments