123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443 |
- import { Assets } from 'premid'
- const presence = new Presence({
- clientId: '617113314572369973', // CLIENT ID FOR YOUR PRESENCE
- })
- const browsingTimestamp = Math.floor(Date.now() / 1000)
- presence.on('UpdateData', async () => {
- const presenceData: PresenceData = {
- largeImageKey: 'https://cdn.rcd.gg/PreMiD/websites/S/Slack/assets/logo.png',
- }
- presenceData.startTimestamp = browsingTimestamp
- if (document.location.hostname === 'app.slack.com') {
- const group = document.querySelector(
- '#team-menu-trigger > div.p-classic_nav__team_header__team > div.p-classic_nav__team_header__team__name',
- )
- const user = document.querySelector(
- 'body > div.p-client_container > div > div > div.p-workspace__top_nav > div > div.p-classic_nav__channel_header.p-classic_nav__model_header > div.p-classic_nav__model__title > div.p-classic_nav__model__title__name.p-classic_nav__no_drag > button > span:nth-child(1)',
- )
- const chat = document.querySelector(
- 'body > div.p-client_container > div > div > div.p-workspace__top_nav > div > div.p-classic_nav__channel_header.p-classic_nav__model_header > div.p-classic_nav__model__title > div.p-classic_nav__model__title__name.p-classic_nav__no_drag > button',
- )
- const typing = document.querySelector('#undefined')
- if (user) {
- if (!typing?.className.includes('ql-blank')) {
- presenceData.details = 'Typing in DMs to:'
- presenceData.state = `${user.textContent} (Workspace: ${group?.textContent})`
- delete presenceData.smallImageKey
- presence.setActivity(presenceData)
- }
- else {
- presenceData.details = 'Reading DMs from:'
- presenceData.state = `${user.textContent} (Workspace: ${group?.textContent})`
- presenceData.smallImageKey = Assets.Reading
- presence.setActivity(presenceData)
- }
- }
- else if (chat) {
- if (!typing?.className.includes('ql-blank')) {
- presenceData.details = 'Typing in channel:'
- presenceData.state = `#${chat.textContent} (Workspace: ${group?.textContent})`
- delete presenceData.smallImageKey
- presence.setActivity(presenceData)
- }
- else {
- presenceData.details = 'Reading channel messages:'
- presenceData.state = `#${chat.textContent} (Workspace: ${group?.textContent})`
- presenceData.smallImageKey = Assets.Reading
- presence.setActivity(presenceData)
- }
- }
- else {
- presence.setActivity()
- }
- }
- else if (
- document.location.hostname === 'slackhq.com'
- && document.location.pathname.includes('/search/')
- ) {
- const path = document.location.pathname.split('/', 7)
- presenceData.details = 'Slack Blog'
- presenceData.state = `Searching for: ${path[2]}`
- presenceData.smallImageKey = Assets.Search
- presence.setActivity(presenceData)
- }
- else if (
- document.location.hostname === 'slackhq.com'
- && document.location.pathname.includes('/role/')
- ) {
- const path = document.location.pathname.split('/', 7)
- presenceData.details = 'Slack Blog'
- presenceData.state = `Searching with role: ${path[2]}`
- presenceData.smallImageKey = Assets.Search
- presence.setActivity(presenceData)
- }
- else if (
- document.location.hostname === 'slackhq.com'
- && document.location.pathname.includes('/tags/')
- ) {
- const path = document.location.pathname.split('/', 7)
- presenceData.details = 'Slack Blog'
- presenceData.state = `Searching with tag: ${path[2]}`
- presenceData.smallImageKey = Assets.Search
- presence.setActivity(presenceData)
- }
- else if (
- document.location.hostname === 'slackhq.com'
- && document.location.pathname.includes('/categories/')
- ) {
- const path = document.location.pathname.split('/', 7)
- presenceData.details = 'Slack Blog'
- presenceData.state = `Searching with category: ${path[2]}`
- presenceData.smallImageKey = Assets.Search
- presence.setActivity(presenceData)
- }
- else if (document.location.hostname === 'slackhq.com') {
- const group = document.querySelector(
- '#main > article > header > div > div > div > h1',
- )
- if (group) {
- presenceData.details = 'Slack Blog'
- presenceData.state = `Reading article: ${group.textContent}`
- presenceData.smallImageKey = Assets.Reading
- presence.setActivity(presenceData)
- }
- else {
- presenceData.details = 'Slack Blog'
- presenceData.state = 'Home page'
- delete presenceData.smallImageKey
- presence.setActivity(presenceData)
- }
- }
- else if (
- document.location.hostname === 'get.slack.help'
- && document.location.pathname.includes('/categories/')
- ) {
- const search = document.querySelector(
- 'body > main > section > div.banner_container > h1',
- )
- presenceData.details = 'Slack Help Center'
- presenceData.state = `Browsing through category: ${search?.textContent}`
- delete presenceData.smallImageKey
- presence.setActivity(presenceData)
- }
- else if (
- document.location.hostname === 'get.slack.help'
- && document.location.pathname.includes('/articles/')
- ) {
- const search = document.querySelector(
- 'body > main > div.article_page.has_sidenav > div.article_container > div.content_col > h1',
- )
- presenceData.details = 'Slack Help Center'
- presenceData.state = `Reading article: ${search?.textContent}`
- delete presenceData.smallImageKey
- presence.setActivity(presenceData)
- }
- else if (
- document.location.hostname === 'get.slack.help'
- && document.location.pathname.includes('/search')
- ) {
- const search = document.querySelector(
- 'body > main > section.banner.banner_search_results > div > h1 > span.hidden.query_val',
- )
- presenceData.details = 'Slack Help Center'
- presenceData.state = `Searching for: ${search?.textContent}`
- presenceData.smallImageKey = Assets.Search
- presence.setActivity(presenceData)
- }
- else if (document.location.hostname === 'get.slack.help') {
- presenceData.details = 'Slack Help Center'
- presenceData.state = 'Home page'
- delete presenceData.smallImageKey
- presence.setActivity(presenceData)
- }
- else if (
- document.location.hostname === 'api.slack.com'
- && document.location.pathname.includes('/apps')
- ) {
- presenceData.details = 'Slack api'
- presenceData.state = 'Browsing through their apps'
- delete presenceData.smallImageKey
- presence.setActivity(presenceData)
- }
- else if (document.location.hostname === 'api.slack.com') {
- const group = document.querySelector('#api_main_content > h1')
- if (group) {
- presenceData.details = 'Slack api'
- presenceData.state = `Reading article: ${group.textContent}`
- presenceData.smallImageKey = Assets.Reading
- presence.setActivity(presenceData)
- }
- else {
- presenceData.details = 'Slack api'
- presenceData.state = 'Home page'
- delete presenceData.smallImageKey
- presence.setActivity(presenceData)
- }
- }
- else if (document.location.hostname === 'slackdemo.com') {
- presenceData.details = 'Slack Demo'
- presenceData.state = 'Trying out Slack'
- delete presenceData.smallImageKey
- presence.setActivity(presenceData)
- }
- else if (
- document.location.hostname === 'slack.com'
- && document.location.pathname.includes('/pricing')
- ) {
- presenceData.details = 'Slack'
- presenceData.state = 'Checking the pricing'
- delete presenceData.smallImageKey
- presence.setActivity(presenceData)
- }
- else if (
- document.location.hostname === 'slack.com'
- && document.location.pathname.includes('/enterprise')
- ) {
- presenceData.details = 'Slack'
- presenceData.state = 'Checking the enterprise plan'
- delete presenceData.smallImageKey
- presence.setActivity(presenceData)
- }
- else if (
- document.location.hostname === 'slack.com'
- && document.location.pathname.includes('/resources')
- ) {
- const path = document.location.pathname.split('/', 9)
- if (path[4]) {
- const group = document.querySelector('#main > div:nth-child(1) > h1')
- presenceData.details = 'Slack'
- presenceData.state = `Reading article: ${group?.textContent}`
- presenceData.smallImageKey = Assets.Reading
- presence.setActivity(presenceData)
- }
- else {
- presence.setActivity()
- }
- }
- else if (
- document.location.hostname === 'slack.com'
- && document.location.pathname.includes('/slack-tips')
- ) {
- const path = document.location.pathname.split('/', 9)
- if (path[4]) {
- const group = document.querySelector('#main > section > div > header > h1')
- presenceData.details = 'Slack'
- presenceData.state = `Reading article: ${group?.textContent}`
- presenceData.smallImageKey = Assets.Reading
- presence.setActivity(presenceData)
- }
- else {
- presence.setActivity()
- }
- }
- else if (
- document.location.hostname === 'slack.com'
- && document.location.pathname.includes('/solutions')
- ) {
- const path = document.location.pathname.split('/', 9)
- if (path[4]) {
- const group = document.querySelector(
- '#main > section.c-billboard > div > header > h1',
- )
- presenceData.details = 'Slack'
- presenceData.state = `Reading article: ${group?.textContent}`
- presenceData.smallImageKey = Assets.Reading
- presence.setActivity(presenceData)
- }
- else {
- presence.setActivity()
- }
- }
- else if (
- document.location.hostname === 'slack.com'
- && document.location.pathname.includes('/features')
- ) {
- presenceData.details = 'Slack'
- presenceData.state = 'Checking the features'
- delete presenceData.smallImageKey
- presence.setActivity(presenceData)
- }
- else if (
- document.location.hostname === 'slack.com'
- && document.location.pathname.includes('/security')
- ) {
- presenceData.details = 'Slack'
- presenceData.state = 'Checking the security'
- delete presenceData.smallImageKey
- presence.setActivity(presenceData)
- }
- else if (
- document.location.hostname === 'slack.com'
- && document.location.pathname.includes('/customer-stories')
- ) {
- presenceData.details = 'Slack'
- presenceData.state = 'Checking the customer stories'
- delete presenceData.smallImageKey
- presence.setActivity(presenceData)
- }
- else if (
- document.location.hostname === 'slack.com'
- && document.location.pathname.includes('/about')
- ) {
- presenceData.details = 'Slack'
- presenceData.state = 'Checking the about page'
- delete presenceData.smallImageKey
- presence.setActivity(presenceData)
- }
- else if (
- document.location.hostname === 'slack.com'
- && document.location.pathname.includes('/partners')
- ) {
- presenceData.details = 'Slack'
- presenceData.state = 'Checking the partners'
- delete presenceData.smallImageKey
- presence.setActivity(presenceData)
- }
- else if (
- document.location.hostname === 'slack.com'
- && document.location.pathname.includes('/newsroom')
- ) {
- presenceData.details = 'Slack'
- presenceData.state = 'Checking the latest news'
- delete presenceData.smallImageKey
- presence.setActivity(presenceData)
- }
- else if (
- document.location.hostname === 'slack.com'
- && document.location.pathname.includes('/media-kit')
- ) {
- presenceData.details = 'Slack'
- presenceData.state = 'Checking the media kit'
- delete presenceData.smallImageKey
- presence.setActivity(presenceData)
- }
- else if (
- document.location.hostname === 'slack.com'
- && document.location.pathname.includes('/careers')
- ) {
- presenceData.details = 'Slack'
- presenceData.state = 'Checking the careers'
- delete presenceData.smallImageKey
- presence.setActivity(presenceData)
- }
- else if (
- document.location.hostname === 'slack.com'
- && document.location.pathname.includes('/intl')
- ) {
- presenceData.details = 'Slack'
- presenceData.state = 'Home page'
- delete presenceData.smallImageKey
- presence.setActivity(presenceData)
- }
- else if (document.querySelector('#header_team_name > a')) {
- const group = document.querySelector('#header_team_name > a')
- presenceData.details = 'Viewing admin pages for:'
- presenceData.state = group?.textContent
- delete presenceData.smallImageKey
- presence.setActivity(presenceData)
- }
- else if (
- document.querySelector(
- '#apps-page-app-element > header > nav > div.menu_actions > ul > li.left_margin.float_right > div > div > div > div > div.c-menu_select__label',
- )
- ) {
- const group = document.querySelector(
- '#apps-page-app-element > header > nav > div.menu_actions > ul > li.left_margin.float_right > div > div > div > div > div.c-menu_select__label',
- )
- presenceData.details = 'Viewing admin pages for:'
- presenceData.state = group?.textContent
- delete presenceData.smallImageKey
- presence.setActivity(presenceData)
- }
- else if (
- document.querySelector(
- '#apps-page-app-element > header > nav > div.menu_actions > ul > li.left_margin.float_right > span',
- )
- ) {
- const group = document.querySelector(
- '#apps-page-app-element > header > nav > div.menu_actions > ul > li.left_margin.float_right > span',
- )
- presenceData.details = 'Viewing admin pages for:'
- presenceData.state = group?.textContent
- delete presenceData.smallImageKey
- presence.setActivity(presenceData)
- }
- else {
- presence.setActivity()
- }
- })
|