Skip to content

Commit 61b8dcd

Browse files
ikeblotheusaf
andauthored
feat(Find A Grave): add activity (#10700)
Signed-off-by: ikeblo <vitusousa22@gmail.com> Co-authored-by: Daniel Lau <32113157+theusaf@users.noreply.github.com>
1 parent 6a53704 commit 61b8dcd

2 files changed

Lines changed: 68 additions & 0 deletions

File tree

Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,25 @@
1+
{
2+
"$schema": "https://schemas.premid.app/metadata/1.16",
3+
"apiVersion": 1,
4+
"author": {
5+
"id": "1471965762083098877",
6+
"name": "ikeblo"
7+
},
8+
"service": "Find A Grave",
9+
"description": {
10+
"en": "Browse memorials, cemeteries and family history on Find A Grave."
11+
},
12+
"url": ["findagrave.com", "pt.findagrave.com", "es.findagrave.com", "fr.findagrave.com", "de.findagrave.com", "it.findagrave.com"],
13+
"regExp": "^https?:[/][/]([a-z0-9-]+[.])*findagrave[.]com[/]",
14+
"version": "1.0.0",
15+
"logo": "https://raw.githubusercontent.com/ikeblo/Activities/a2edab809/websites/F/Find%20A%20Grave/logo.png",
16+
"thumbnail": "https://raw.githubusercontent.com/ikeblo/Activities/35cfa747a/websites/F/Find%20A%20Grave/thumbnail.png",
17+
"color": "#4a7c59",
18+
"category": "other",
19+
"tags": [
20+
"genealogy",
21+
"cemetery",
22+
"memorial",
23+
"graves"
24+
]
25+
}
Lines changed: 43 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,43 @@
1+
import { ActivityType } from 'premid'
2+
3+
const presence = new Presence({
4+
clientId: '1495991942297682011',
5+
})
6+
7+
const browsingTimestamp = Math.floor(Date.now() / 1000)
8+
9+
presence.on('UpdateData', async () => {
10+
const presenceData: PresenceData = {
11+
largeImageKey: 'https://raw.githubusercontent.com/ikeblo/Activities/a2edab809/websites/F/Find%20A%20Grave/logo.png',
12+
startTimestamp: browsingTimestamp,
13+
type: ActivityType.Watching,
14+
}
15+
16+
const path = document.location.pathname
17+
18+
if (path.includes('/memorial/')) {
19+
const name = document.querySelector('h1.memorial-name')?.textContent?.trim()
20+
?? document.querySelector('h1')?.textContent?.trim()
21+
?? 'Memorial'
22+
const dates = document.querySelector('.memorial-dates')?.textContent?.trim() ?? ''
23+
presenceData.details = `Vendo memorial: ${name}`
24+
presenceData.state = dates || 'Find A Grave'
25+
}
26+
else if (path.includes('/cemetery/')) {
27+
const name = document.querySelector('h1')?.textContent?.trim() ?? 'Cemitério'
28+
presenceData.details = 'Visitando cemitério'
29+
presenceData.state = name
30+
}
31+
else if (path.includes('/memorial') || path.includes('/search')) {
32+
const query = new URLSearchParams(document.location.search).get('firstname')
33+
?? new URLSearchParams(document.location.search).get('lastname')
34+
?? ''
35+
presenceData.details = 'Pesquisando memorials'
36+
presenceData.state = query ? `"${query}"` : 'Find A Grave'
37+
}
38+
else {
39+
presenceData.details = 'Navegando no Find A Grave'
40+
}
41+
42+
presence.setActivity(presenceData)
43+
})

0 commit comments

Comments
 (0)