presence.ts 23 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554
  1. const presence = new Presence({
  2. clientId: '888141162488143893',
  3. })
  4. const browsingTimestamp = Math.floor(Date.now() / 1000)
  5. enum ActivityAssets {
  6. Logo = 'https://cdn.rcd.gg/PreMiD/websites/L/LeoSight/assets/logo.png',
  7. Lsminilogo = 'https://cdn.rcd.gg/PreMiD/websites/L/LeoSight/assets/0.png',
  8. Artic = 'https://cdn.rcd.gg/PreMiD/websites/L/LeoSight/assets/1.png',
  9. Ctf = 'https://cdn.rcd.gg/PreMiD/websites/L/LeoSight/assets/2.png',
  10. Eco = 'https://cdn.rcd.gg/PreMiD/websites/L/LeoSight/assets/3.png',
  11. Guard = 'https://cdn.rcd.gg/PreMiD/websites/L/LeoSight/assets/4.png',
  12. }
  13. let item, item2
  14. presence.on('UpdateData', async () => {
  15. const presenceData: PresenceData = {
  16. largeImageKey: ActivityAssets.Logo,
  17. smallImageKey: ActivityAssets.Lsminilogo,
  18. smallImageText: 'leosight.cz',
  19. startTimestamp: browsingTimestamp,
  20. }
  21. const path = document.location.pathname
  22. if (
  23. path === '/'
  24. && !window.location.href.includes('artic')
  25. && !window.location.href.includes('ctf')
  26. && !window.location.href.includes('eco')
  27. && !window.location.href.includes('guard')
  28. ) {
  29. presenceData.details = 'Prohlíží si hlavní stránku...'
  30. }
  31. else if (path === '/novinky') {
  32. presenceData.details = 'Fórum'
  33. presenceData.state = 'Novinky'
  34. }
  35. else if (path.includes('registrace')) {
  36. presenceData.details = 'Registrace'
  37. }
  38. else if (path.includes('podminky-uziti')) {
  39. presenceData.details = 'Podmínky užití'
  40. }
  41. else if (path.includes('ochrana-osobnich-udaju')) {
  42. presenceData.details = 'GDPR'
  43. }
  44. else if (path.includes('clanek')) {
  45. item = document.querySelector('div.panel-body h2') as HTMLElement
  46. item2 = document.querySelector(
  47. 'div.col-md-3.pull-left span.authorname',
  48. ) as HTMLElement
  49. presenceData.details = item.textContent
  50. presenceData.state = `Autor článku: ${item2.textContent}`
  51. }
  52. else if (path.includes('editor/novy')) {
  53. presenceData.details = 'Píše nový článek'
  54. }
  55. else if (path === '/forum') {
  56. presenceData.details = 'Fórum'
  57. presenceData.state = 'Hlavní stránka'
  58. }
  59. else if (
  60. path.includes('/forum/')
  61. && !path.includes('new')
  62. && !path.includes('topic')
  63. ) {
  64. item = document.querySelector('div.obsah.text-left h3') as HTMLElement
  65. presenceData.details = 'Fórum'
  66. presenceData.state = item.textContent
  67. }
  68. else if (path === '/forum/new') {
  69. presenceData.details = 'Fórum'
  70. presenceData.state = 'Nejnovější témata'
  71. }
  72. else if (path.includes('/forum/topic')) {
  73. item = document.querySelector('.text-center') as HTMLElement
  74. item2 = document.querySelector(
  75. 'div.forum-message div.left a.pname',
  76. ) as HTMLElement
  77. presenceData.details = item.textContent
  78. presenceData.state = `Autor tématu: ${item2.textContent}`
  79. }
  80. else if (path === '/forum/43') {
  81. presenceData.state = 'Chystá se způsobit adminům deprese.'
  82. }
  83. else if (path.includes('/newtopic')) {
  84. presenceData.details = 'Zakládá nové téma'
  85. }
  86. else if (path.includes('turnaje')) {
  87. presenceData.details = 'Turnaje'
  88. }
  89. else if (path === '/donate') {
  90. presenceData.details = 'Podpora portálu'
  91. }
  92. else if (path.includes('/shop')) {
  93. presenceData.details = 'Obchod'
  94. if (path.includes('/shop/web')) {
  95. presenceData.state = 'Web'
  96. }
  97. else if (path.includes('skimo')) {
  98. presenceData.state = 'Skimo'
  99. }
  100. else if (path.includes('asteria')) {
  101. presenceData.state = 'Asteria'
  102. }
  103. else if (path.includes('vip')) {
  104. presenceData.state = 'VIP'
  105. }
  106. else if (path.includes('akce')) {
  107. presenceData.state = 'Akce'
  108. }
  109. else if (path.includes('all')) {
  110. presenceData.state = 'Vše'
  111. }
  112. else if (path.includes('/shop/')) {
  113. item = document.querySelector('div.panel-body h3') as HTMLElement
  114. presenceData.state = item.textContent
  115. }
  116. }
  117. else {
  118. switch (path) {
  119. case '/trade': {
  120. presenceData.details = 'Nabídky obchodu'
  121. break
  122. }
  123. case '/market': {
  124. presenceData.details = 'Tržiště'
  125. break
  126. }
  127. case '/poukaz': {
  128. presenceData.details = 'Uplatnit poukaz'
  129. break
  130. }
  131. case '/vip': {
  132. presenceData.details = 'VIP'
  133. break
  134. }
  135. case '/premium': {
  136. presenceData.details = 'PREMIUM'
  137. break
  138. }
  139. case '/team': {
  140. presenceData.details = 'Admin-Team'
  141. break
  142. }
  143. case '/statistiky': {
  144. presenceData.details = 'Statistiky'
  145. break
  146. }
  147. case '/pravidla': {
  148. presenceData.details = 'Pravidla portálu'
  149. break
  150. }
  151. default:
  152. if (path.includes('/tym')) {
  153. item = document.querySelector(
  154. 'div.obsah.text-center p',
  155. ) as HTMLElement
  156. item2 = document.querySelector(
  157. 'div.obsah.text-center h2',
  158. ) as HTMLElement
  159. if (item2.textContent === 'Týmy') {
  160. presenceData.details = 'Prohlíží si týmy'
  161. }
  162. else {
  163. presenceData.details = 'Prohlíží si tým:'
  164. presenceData.state = `${item.textContent} (${item2.textContent})`
  165. }
  166. }
  167. else {
  168. switch (path) {
  169. case '/ucp': {
  170. presenceData.details = 'Uživatelský panel'
  171. break
  172. }
  173. case '/prospect': {
  174. presenceData.details = 'Prospect'
  175. break
  176. }
  177. case '/akce': {
  178. presenceData.details = 'Komunitní akce'
  179. break
  180. }
  181. case '/ankety': {
  182. presenceData.details = 'Ankety'
  183. break
  184. }
  185. case '/spoluhraci': {
  186. presenceData.details = 'Hledám spoluhráče'
  187. break
  188. }
  189. case '/herna': {
  190. presenceData.details = 'Jsem gambler'
  191. break
  192. }
  193. case '/hlasky': {
  194. presenceData.details = 'Hlášky'
  195. break
  196. }
  197. case '/ticket': {
  198. presenceData.details = 'Tickety'
  199. break
  200. }
  201. case '/logs': {
  202. presenceData.details = 'Logy'
  203. break
  204. }
  205. case '/ukoly': {
  206. presenceData.details = 'Denní úkoly'
  207. break
  208. }
  209. case '/rychlobitva': {
  210. presenceData.details = 'Rychlobitva!'
  211. break
  212. }
  213. case '/rychlobitva/karty': {
  214. presenceData.details = 'Seznam karet Rychlobitvy'
  215. break
  216. }
  217. case '/advent': {
  218. presenceData.details = 'Adventní kalendář'
  219. break
  220. }
  221. case '/chat': {
  222. presenceData.details = 'Chatuje'
  223. break
  224. }
  225. case '/upozorneni': {
  226. presenceData.details = 'Upozornění'
  227. break
  228. }
  229. case '/znamky': {
  230. presenceData.details = 'Katalog známek'
  231. break
  232. }
  233. case '/banlist': {
  234. presenceData.details = 'Seznam zabanovaných uživatelů'
  235. break
  236. }
  237. case '/faktury': {
  238. presenceData.details = 'Faktury'
  239. break
  240. }
  241. case '/nastaveni': {
  242. presenceData.details = 'Nastavení účtu'
  243. break
  244. }
  245. case '/dashboard': {
  246. presenceData.details = 'Provádí adminskou magii'
  247. break
  248. }
  249. case '/modlog': {
  250. presenceData.details = 'Provádí ještě adminštější magii'
  251. break
  252. }
  253. case '/kodex-at': {
  254. presenceData.details = 'Studuje adminskou Bibli'
  255. break
  256. }
  257. default:
  258. if (path.includes('/skimo')) {
  259. presenceData.details = 'Skimo rozcestník'
  260. if (path.includes('postavy')) {
  261. presenceData.state = 'Moje postavy'
  262. }
  263. else if (path.includes('/frakce')) {
  264. presenceData.details = 'Seznam frakcí'
  265. if (path.includes('/frakce/')) {
  266. item = document.querySelectorAll(
  267. 'div.obsah.text-center h2',
  268. )[1] as HTMLElement
  269. presenceData.details = 'Prohlíží si frakci'
  270. presenceData.state = item.textContent
  271. }
  272. }
  273. else if (path.includes('/auta')) {
  274. presenceData.state = 'Seznam vozidel'
  275. }
  276. else if (path.includes('/interiery')) {
  277. presenceData.state = 'Seznam interiérů'
  278. }
  279. else if (path.includes('/skiny')) {
  280. presenceData.state = 'Seznam skinů'
  281. }
  282. else if (path.includes('/radia')) {
  283. presenceData.state = 'Seznam rádií'
  284. }
  285. else if (path.includes('/banlist')) {
  286. presenceData.state = 'Seznam banů'
  287. }
  288. }
  289. else if (path === '/profil/3773') {
  290. presenceData.details = 'Obtěžuje autora tohoto'
  291. presenceData.state = 'RPC'
  292. }
  293. else if (path === '/profil/1') {
  294. presenceData.details = 'Obtěžuje Ratáže.'
  295. }
  296. else if (path.includes('uzivatele')) {
  297. presenceData.details = 'Seznam uživatelů'
  298. }
  299. else if (path.includes('/profil/')) {
  300. item = document.querySelector('.on-pname') as HTMLElement
  301. presenceData.details = 'Prohlíží si profil uživatele:'
  302. presenceData.state = item.textContent
  303. }
  304. else {
  305. switch (path) {
  306. case '/pratele': {
  307. presenceData.details = 'Seznam přátel'
  308. break
  309. }
  310. case '/avatar': {
  311. presenceData.details = 'Nastavuje si avatar'
  312. break
  313. }
  314. case '/profil': {
  315. presenceData.details = 'Prohlíží si svůj profil'
  316. break
  317. }
  318. default:
  319. if (window.location.href.includes('artic')) {
  320. presenceData.smallImageKey = ActivityAssets.Artic
  321. presenceData.smallImageText = 'artic.leosight.cz'
  322. presenceData.details = 'Artic'
  323. if (path === '/' || path === '')
  324. presenceData.state = 'Hlavní stránka'
  325. if (path.includes('mdc.ic')) {
  326. presenceData.details = 'Prohlíží si MDC'
  327. if (path === '/mdc.ic/')
  328. presenceData.state = 'Ověření uživatele'
  329. if (path.includes('dashboard'))
  330. presenceData.state = 'Hlavní stránka'
  331. else if (path.includes('apb'))
  332. presenceData.state = 'APB'
  333. else if (path.includes('warrants'))
  334. presenceData.state = 'Zatykače'
  335. else if (path.includes('osoba'))
  336. presenceData.state = 'Vyhledává osobu'
  337. else if (path.includes('vozidlo'))
  338. presenceData.state = 'Vyhledává vozidlo'
  339. else if (path.includes('nemovitost'))
  340. presenceData.state = 'Vyhledává nemovitost'
  341. else if (path.includes('firma'))
  342. presenceData.state = 'Vyhledává firmu'
  343. else if (path.includes('smazane'))
  344. presenceData.state = 'Smazané záznamy'
  345. else if (path.includes('odtahy'))
  346. presenceData.state = 'Odtažená vozidla'
  347. else if (path.includes('handbook'))
  348. presenceData.state = 'Úvod příručky'
  349. else if (path.includes('slovnik'))
  350. presenceData.state = 'Slovník'
  351. else if (path.includes('codes'))
  352. presenceData.state = 'Kódy'
  353. else if (path.includes('sazebnik'))
  354. presenceData.state = 'Sazebník trestů'
  355. else if (path.includes('stop'))
  356. presenceData.state = 'Zastavovací techniky'
  357. else if (path.includes('law'))
  358. presenceData.state = 'Zákon o policii'
  359. else if (path.includes('directive'))
  360. presenceData.state = 'Směrnice'
  361. else if (path.includes('teams'))
  362. presenceData.state = 'Hierarchie PSA'
  363. }
  364. else if (path.includes('stoongle')) {
  365. presenceData.details = 'Stoongluje'
  366. if (path.includes('katalog'))
  367. presenceData.state = 'Katalog webů'
  368. else if (path.includes('burza.ic'))
  369. presenceData.state = 'Burza'
  370. else if (path.includes('invest.ic'))
  371. presenceData.state = 'CE Invest'
  372. else if (path.includes('hzs.ic'))
  373. presenceData.state = 'Hasičský záchranný sbor'
  374. else if (path.includes('nic.ic'))
  375. presenceData.state = 'IC.NIC'
  376. else if (path.includes('garver.ic'))
  377. presenceData.state = 'Garver Auction House'
  378. else if (path.includes('sanwave.ic'))
  379. presenceData.state = 'SanWave'
  380. else if (path.includes('antares.ic'))
  381. presenceData.state = 'ANTARES'
  382. else if (path.includes('belleville.ic'))
  383. presenceData.state = 'Belleville'
  384. else if (path.includes('krypta.ic'))
  385. presenceData.state = 'Krypta - online kasíno'
  386. else if (path.includes('katastr.ic'))
  387. presenceData.state = 'Katastr nemovitostí'
  388. else if (path.includes('lemongate.ic'))
  389. presenceData.state = 'LemonGate - hlavní stránka'
  390. else if (path.includes('e6ftf4.lemon'))
  391. presenceData.state = 'LemonGate - rozcestník'
  392. else if (path.includes('board4.lemon'))
  393. presenceData.state = 'LemonGate - Board4'
  394. else if (path.includes('b3s4f3.lemon'))
  395. presenceData.state = 'LemonGate - kryptografie'
  396. else if (path.includes('irc4na.lemon'))
  397. presenceData.state = 'LemonGate - Ircana'
  398. else if (path.includes('1trade.lemon'))
  399. presenceData.state = 'LemonGate - AceTrade'
  400. else if (path.includes('blockchain.ic'))
  401. presenceData.state = 'NC Blockchain'
  402. else if (path.includes('nomelcoin.ic'))
  403. presenceData.state = 'NomelCoin'
  404. else if (path.includes('oilrig.ic'))
  405. presenceData.state = 'OilRig'
  406. else if (path.includes('kiwi.ic'))
  407. presenceData.state = 'Kiwi - internetové reklamy'
  408. else if (path.includes('spay.ic'))
  409. presenceData.state = 'SPay'
  410. else if (path.includes('sherwood.ic'))
  411. presenceData.state = 'Sherwood Corporation'
  412. }
  413. else if (path.includes('smail.ic')) {
  414. presenceData.details = 'Smail'
  415. presenceData.state = 'Hlavní stránka'
  416. if (path.includes('prijate'))
  417. presenceData.state = 'Přijaté'
  418. else if (path.includes('napsat'))
  419. presenceData.state = 'Napsat e-mail'
  420. else if (path.includes('odeslane'))
  421. presenceData.state = 'Odeslané'
  422. else if (path.includes('nastaveni'))
  423. presenceData.state = 'Nastavení'
  424. }
  425. else if (path.includes('tcu.ic')) {
  426. presenceData.state = 'Tax Compliance Unit'
  427. }
  428. else if (path.includes('mining.ic')) {
  429. presenceData.state = 'Těžba kryptoměn'
  430. }
  431. else if (path.includes('vaos.ic')) {
  432. presenceData.state = 'Veterinární a odchytová služba'
  433. }
  434. else if (path.includes('writer.ic')) {
  435. presenceData.state = 'Writer'
  436. }
  437. else if (path.includes('post.ic/')) {
  438. presenceData.details = 'Post'
  439. presenceData.state = 'Doručené'
  440. if (path.includes('sent'))
  441. presenceData.state = 'Odeslané'
  442. else if (path.includes('read'))
  443. presenceData.state = 'Čte e-mail'
  444. }
  445. else if (path.includes('iris.ic/')) {
  446. presenceData.details = 'Iris'
  447. if (path === '/iris.ic/' || path === '/iris.ic') {
  448. presenceData.state = 'Hlavní stránka'
  449. }
  450. else if (path.includes('settings')) {
  451. presenceData.state = 'Nastavení'
  452. }
  453. else if (path.includes('ic/box')) {
  454. presenceData.state = 'Schránka'
  455. }
  456. else if (path.includes('chat')) {
  457. presenceData.state = 'Chat'
  458. }
  459. else if (path.includes('hashtag')) {
  460. if (
  461. path === '/iris.ic/hashtag'
  462. || path === '/iris.ic/hashtag/'
  463. ) {
  464. presenceData.state = 'Hashtagy'
  465. }
  466. else if (path.includes('/hashtag/')) {
  467. presenceData.details = 'Iris - Hashtagy'
  468. item = path.replace('/iris.ic/hashtag/', '')
  469. presenceData.state = `#${item}`
  470. }
  471. }
  472. else if (
  473. path.includes('iris.ic/')
  474. && path !== 'iris.ic/'
  475. && !path.includes('/users')
  476. ) {
  477. presenceData.details = 'Iris uživatelský profil:'
  478. if (!path.includes('www')) {
  479. item = path.replace('/iris.ic/', '')
  480. presenceData.state = `@${item}`
  481. }
  482. else if (path.includes('www')) {
  483. item = path.replace('/www/iris.ic/', '')
  484. item = item.replace('.php', '')
  485. presenceData.state = `@${item}`
  486. }
  487. }
  488. else if (path.includes('users')) {
  489. presenceData.state = 'Seznam uživatelů'
  490. }
  491. }
  492. }
  493. else if (window.location.href.includes('ctf')) {
  494. presenceData.smallImageKey = ActivityAssets.Ctf
  495. presenceData.smallImageText = 'ctf.leosight.cz'
  496. presenceData.details = 'Leosight CTF'
  497. if (path.includes('login.php'))
  498. presenceData.state = 'Přihlášení'
  499. else if (path.includes('index.php'))
  500. presenceData.state = 'Odvařuje si mozek'
  501. }
  502. else if (window.location.href.includes('eco')) {
  503. presenceData.smallImageKey = ActivityAssets.Eco
  504. presenceData.smallImageText = 'eco.leosight.cz'
  505. presenceData.details = 'Hraje Leosight ECO'
  506. }
  507. else if (window.location.href.includes('guard')) {
  508. presenceData.smallImageKey = ActivityAssets.Guard
  509. presenceData.smallImageText = 'guard.leosight.cz'
  510. presenceData.details = 'Leosigh Guard'
  511. if (path === '' || path === '/')
  512. presenceData.state = 'Seznam serverů'
  513. if (path.includes('hive.php')) {
  514. presenceData.state = 'LSG - Hive'
  515. }
  516. else if (path.includes('skimose')) {
  517. presenceData.state = 'Skimo SE - API'
  518. }
  519. else if (path.includes('dokumentace.php')) {
  520. presenceData.state = 'Skimo SE - Public API'
  521. }
  522. else if (path.includes('servery.php')) {
  523. presenceData.state = 'LSEC ServerList'
  524. }
  525. else if (path.includes('license.php')) {
  526. presenceData.state = 'LSG LicesnseList'
  527. }
  528. else if (path.includes('breach.php')) {
  529. presenceData.state = 'LSG-Breach'
  530. }
  531. else if (path.includes('prospect.php')) {
  532. presenceData.state = 'Leosight Prospect'
  533. }
  534. else if (path.includes('/prospect/')) {
  535. presenceData.details = 'LeoSight rádio'
  536. if (path.includes('radio_mobile.php'))
  537. presenceData.state = 'Poslouchá rádio'
  538. else if (path.includes('radio_newsong.php'))
  539. presenceData.state = 'Přidává novou písničku'
  540. }
  541. }
  542. }
  543. }
  544. }
  545. }
  546. }
  547. }
  548. presence.setActivity(presenceData)
  549. })