webbed-site/assets/terminal-functions.js
2025-11-15 18:17:45 +00:00

238 lines
12 KiB
JavaScript
Raw Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

let pubkey = `-----BEGIN PGP PUBLIC KEY BLOCK-----
mQINBGjsLnUBEACojuT/FnN4vRC4Hfh80nBDRE87XjjKYV3Fd5AnKSfx8+2OayDa
8EhDjZOqb2Y1jdNahjD4cJKwOrcBNOODMiA5TucmkRyBjQEHi4EQe8yNG1pBCh1f
vTVZelYs+fcsD04zr7RA07lTa0WCSkZ18gQWYWqf/BDfMHHuG0pWkxKRbdVPoTg2
NEjYUK1XkuyeMGzYS/sNNGbvIKpumK9vnJpiubnCL8ZlR5ljOoCVPLyFKk9NGO3m
5T/9wjDERCjh1eI/L5E858O/85CVpMm3mIBigbZmwYUSoaMivSqpKXBsPIeX4FWc
JibDBlszmrcYKWb7Al+6UZs6CLDTQ7+LFLDsggCBgDgKfdghpNlOF4pr9P6ltN0c
R0sXSQN2wvtABfZ+J8IScEw9Y9lG/deUG6JPq5A3jb0SFccx1fTavTt5chImifdu
Vvdyfom1AZIILmfdWaorDtGwZohRP06bw2EnrD27CxM6WBS1bzhqM8m3swxMKb0u
EuUfO61tpUK1DA98cTx6jTRdcq1Cq03s1jR38ld3gkUlGznaTorYUkVwA2XQjJjw
zheriDRJzbBR0ymMNdqc+0Li6/gq+NbeCufUtPMYW45vJWOiY5HD/G+Sb5ZgoHKY
wNzhql3NSxZjL3j+CBp0ox3im6fxfXuo2YvLQLCMeJT/6DxbTbWNj0FTEQARAQAB
tBtDZXJlcyA8Y2VyZXNAY2VyZXNzZWVzLmRldj6JA6YEEwEIAZACGwMFCwkIBwIC
IgIGFQoJCAsCBBYCAwECHgcCF4AWIQTZeLrh4iQIfmP4MuMgmcSqLrzAnAUCaO0J
XLQUgAAAAAAQAJtwcm9vZkBhcmlhZG5lLmlkbWF0cml4OnUvY2F0cHB1Y2Npbi1t
b2NoYS1vZmZpY2lhbDpsaW51eHBvc3RpbmcueHl6P29yZy5rZXlveGlkZS5yPWRC
ZlFaeENvR1ZtU1R1amZpdjptYXRyaXgub3JnJm9yZy5rZXlveGlkZS5lPVBNZlpo
NG13ZzhhbFhDMnp2U0tQRTRBOW5UWVJVeEhtRGlTcE1sSFZkV1kzFIAAAAAAEAAa
cHJvb2ZAYXJpYWRuZS5pZGRuczpjZXJlc3NlZXMuZGV2P3R5cGU9VFhUGxSAAAAA
AAQADm1hbnUyLDIuNSsxLjExLDIsMk8UgAAAAAAQADZwcm9vZkBhcmlhZG5lLmlk
aHR0cHM6Ly9naXQuY2VyZXNzZWVzLmRldi9jZXJlcy1zZWVzLWFsbC9mb3JnZWpv
X3Byb29mAAoJECCZxKouvMCcZlkP/115j1tMnAXLNTdjkoedJ8xiSKHJtdxakHP0
DQ/vLQ+QyDN0mrMwdwwIzZgrnaAXSav/OEYMfrAwI4pA3KKAV+YTvCvQVhANIULu
277euvajNEnIG7XolVQMxO0yB2qr0RUXc8YCQfeVQJKGRp5tBxPOppPw4TjLq29P
lhK9hSUIB3dMRC/WowNup+JRsaV1iE81Uh+X6mYwBcWCk916BWDgRcGMixiiM3U3
a1AC4ETfic+aXDybFz1o2fTl27YiDgbbvhBvn9kgK1XywWF8efkIqhJuLWL3Nkoz
GYlX3YvJ8UgoNWoz9j6HdVdaNvkOcpQmtvTObQrlCa/jpuTO9LiU8SzADZRuRFIY
Ri0PQ/OXwu2GCGnt+TncFN0iy4tIKOxh1Euk8ktvy5CKfHUat9/K7d/OCN/BWsTd
6TBPp0NZLZCMV09WK2DjFdUYZZVIQkoHGdJ6deVLZsjjxGrT/UaeSjoN48cV2yES
f2NU6OAgoegmKe2wEH/zGP5YoRK9eIu/iJRLjttDz1CFRb2RmDVsapyAtc6bI0Dc
IiQX0I0uRTffFLgNieJjNZ5f8gs9OzgUX0HdmRvbLZGSj0/U1JJcAXX3PSXHA6wB
AG5qbe9pGX8TNuESk0ChEZy+u9YxgjWCt9gmcOJep8ICKhHFMF1oU1lJ8ijvLuH5
SM2KHxXiuQINBGjsMxMBEADXfJ3gF+YCEdBHZ3/r8f8xtupjLk0KO5Ik0ylmiWlq
tPeg7gmegMvAVhbf52vII7IKDWkoLObWH0oKBk3a7mFJhVzFvsbaOIWaO035Zz00
5U3GC/GvvTQ4n22HWLeOfLrsqEth7+qxAomJIo9VHIrIryXjZO+uLx68l0edYSGm
5VPWE1q1Abp60J6rlxHhHtPYlRh9Fkp5xl/sCOGFq9Xxp4Qvr13T5EmMdbiLYzlH
HTJMg4YAgfb+RA/t8kvNA4Sxe9s7mAFbBYllu4NOETXkahEz3CZIHPPMtLRT+MaQ
K93s02wYWVOheTO8CajNru+hc2lSmiEkFFWpJ4CyVLSBMYmjG67U0C7MH8JEAyJM
qMINCrmK1sFGM5aqsxfKj2ZvQrwFHsFZFyAv0BAXhhRLETkAynB+6ia5qi6b1WRj
0aQR+gYgGD7y7cpvsE7ynYHOWcw+Rdob9L2hAm85lVSIkKqs+fSG+IG9JoQuy9d2
WdOQ3lLl3NSHWFQilC8WMt7lvXG3carWDY2MXlbnWaE6eAC/CvvvZrrR4PgEHKVG
xvE2LJAlSmTPfSXpu7lu9vLCGjFmCdfp77dAVIEOGIYH5QttwyJG3cynIrG6HER5
ZCUlk6RiOaADPIDYK1bO2oICXQWjgSWtNXHz5fW5GeW9TqsMLTre2hv11pxBsicX
DwARAQABiQSIBBgBCAA8FiEE2Xi64eIkCH5j+DLjIJnEqi68wJwFAmjsMxMbFIAA
AAAABAAObWFudTIsMi41KzEuMTEsMiwyAhsCAkAJECCZxKouvMCcwXQgBBkBCAAd
FiEE312IjMejU4NAxuaFmBR1hDZDAEUFAmjsMxMACgkQmBR1hDZDAEX14A/+Is6O
rc1ahT8DJlZjtD95Vt0PHRgFu8HRrYFJCVQbsDoMR8fHoVnYX4X7UmszsgZbLb2y
49GmSjPLYIrFStqYNlOTDx/XqJtoG0o8UmJA0eKEXFbZ35rptdEe0cJrrHDXB9Rq
lTRam/Zj2FWyWevhwUge2f+7GpBpYL+aTrt8vSIeiCXlGWwnN52t64wUhQsKqQQl
pDXPyxfIK/JDdneDhJ0SH5hvjGAhAUs/0Z8c7KgqCTQarnlPzNJEFpQsw+e2b0Zb
IfBgSWkqe9oqwPG1l6nlVi5928RNQ2CsyRiQyaSLkr9KKGBCFR85+Qfge5E6J2Io
NKHKOJu5oj+F8n2jPJiz9o0GB/bXUxnOM0WLMevlqxY2SqmaO2qubfvzcRvt42ha
0DkwAFUeuP+xJIlBPf6HIzCWNjTjrRKofDjQ1Egxk/DVyVJr5NaeOYVb8cm359En
7TYfMoCc6GSm5JOYtLmflUM/yT62qJ18Ui9lxlpAxSfTzcCy+amgwcjfZiX1WqUU
k4GOd1/matzcul8mWHmEqViGjgMvyWEFhg5ybALu1Cq/tEDs5Wm14+y980KXW6sL
Lvh6lHjZ2xQRy+ysO3mwWoOgr+M7QX8FXQNBLoiGQcRKgKAm0Ie0qIAqP5oGHvUq
b9Y91IjzUBEMy4nhprr853SUGjETZzonNhcpmSWJFA//SnJa6giW6ri/1zzA3chj
HxRaHfjB9sMspb9NJj21bRWej5PflACXSVzBLJpfZ2uzZu18LN+TahsPcA3P2hUK
/XGrXaRsnVVP6k3EYdx4qFwOYKm/AOm0FLythA7ZYYOZV/eUdk6w0nGWd74MjheX
VrTzdbV2H18zjwB3JfY6NgDvAYrno0GQ4CVjQSWyAy+nix8d6NYvl/a/Kju0o/Dn
2dOcMhVOObG7BZTFMOCy2jumQdZ5vHVs1Tk73edtkXxUxHJJPM1DOdJYn+rWsAzP
9e3C2yqr+XwoLBlNbPI+2x4RAUbF1vCw0i7vK1py1mZEN5A2W6PrMYckAZ7ITFHz
0IwoiI+/hNm9r08NFzlHUmfmYJYusK/6pO/2iXvCGlndEaCOSTxThCyClJOnuPlx
Ck4qxwuMfd+Yteb8p2r1QnaSR3ItHw8cJhUaQ/KHzc/y/22TLDcRG0aI/CQ797ZZ
zEnQBlgDJioA7/nnT/OkPWJNWmLA2ITEpCf9emfkEW+QjIzY6NEZr4AICnm1B31D
grr0gjmKOiC91cp/S8KWNhZYhoO7BQjTPEntJAFArQGllH1awaaGRBGwcYKec4+L
TQxglwGrjhdhu3YgtWDFcqYHADyhkcT7xoCBs4HE7TefePqjdwgrs7sgouiZsbHr
8jbbC3Ps9fRekUrrZGwML5+5Ag0EaOwzSwEQAOwE8mTlqy95MP1M1j4W/TnoUIi6
WZsrSFwYdNF84ms05gM+ieNlKTZAT8MH2QPVvSUicRaKtYPee9OW+J4O5nCDtWR7
P2+iO+iZUwoV1Djm7pH8LNdpFRk30LObQXp4me98XBCJ7DvT9109I8F//pJV91kO
aKMCMFAaAItL575JnipkTBrnZh04H2vgaFUN0JlHrbOGqZqRfE6vqWHNTbed1Zk6
KMADoR11z9GMJbTGlNE1ZaJkKZCRNy4XdFdEYWOvYayCdNgHV5paBolz7CmBZw9U
jXNpIx1rJwdR/DpVqBKJL7cK5NkulYKBHOoaxaGwlvay4GCfYl0YRPsQB/B72N+W
FZ7r/PzabPEZDk5qcSQ0KqOa44XreW/viLnBLBB7kZtmNRBWoIXXr0aVj4tw26Bv
kSblsVQJRsJgrqKpRYUUY9hJuk95EgiM2vsLekmd/eUVw+0vhA3kLt6XuAjdqkXp
j44bVgL6POmP+Tjx5jXEREKeqwEn88uWlQrCOskctlaBI8bvpywuvrjbfMAhocKC
aeHs6cDpmHThBi1OpAcdx2x9UDrze++DG2vTdHyfQfUhg6KPdwC6nY/NdOstnQgZ
RtAEiEVRrDqvYmSNINXKiYNf7GPaPWPgaAwYNrlqgQhUSCWBcOOMD40ChaaDotko
cczTmEvy+F+YqpHzABEBAAGJAlIEGAEIADwWIQTZeLrh4iQIfmP4MuMgmcSqLrzA
nAUCaOwzSxsUgAAAAAAEAA5tYW51MiwyLjUrMS4xMSwyLDICGwwACgkQIJnEqi68
wJzZHw//YeqDZjHEqp5fRfwTr2YqXKi9chiRUGup7XtT17zY4X7vnridVts2fB8A
GoBA3tS0AfalYhUZ00lSxfQW9fWeTu4Z7CtYICf4347CTeZ6sAnzRbwN5aT0B4q9
/eQMLROm1JuVD2Qi3y8vnViG4PJrKLQwmZNdJ1x2Cskc60hCPJhwBlpAjjyCKgCe
ht7pt+kMdYPV+n/CytIMnL5FtTolA7Tx8U5OWgqT4K279Mc4v6FacFvHciWRbW0D
b2H/tPN2cn94R6fY2KNMvyLorPvwASBtqSBrLsw92ECiEr0iosB50niaHf7a2KFd
+UEqcYV+IA/cyeqSKElDGRm6BK/oOi5VeeDgSsuLkVQiKMNPC18+dGB1RA6GDnX8
tSYXYZ1+z/xY1KZYyFMaBBmq+LQhfElIj3QDS1Oqc5tBbayKDJpbzSibbhV5nv/Q
pJcXy1PbNa89n1+SUP7mnWIdGMNgl2q8SZZngBsLlh7nAhQlly7/m/tPqvCkKW1w
FpONHZmLdRzeVYNSXMLmv4k7vi/3r8EvIIJpg/oODTRRLbb+jI4RXP4WZWr2XIXy
Lyu1rQMyXMdMLWs+aMof6C+UkyGOaZOv4l+Pl8yJKK3WEGVfZHlb/fUQcjUUGp5w
2daoEvid5EX+//L2TELShu9O4Lac+fKdffPnK5LyyHQitdPi5Eq5Ag0EaOwzbwEQ
ANoeoz500yY4kt/tAo0dASRnGHePxP1va4CNzNqDZB46i6/TJmRTGv/1AYqB0hRD
F99OZTLch4f0C4vlq9+8W54pe3hvWovezMoaOvXdQa4mE+LGb4flxOLAiS48DpBv
hvVnXYzz8YCN/bVar/WUSD9zilFjWDzTyr0PJZ/ZKhREXCjt8YIeQfgHCJ416vNT
c5d9E+uNk0T25WFmxeCUDtGH3CGZ8pWZOjhX+GuoAQZANCpMSlSjvhu7X2kohxd4
te8ZsVk7Fka9cNhhm4+AfF7LjhZM25VfCzKxr1pX7fm6WMhSUx6za5wUjwqFPPcS
GeqnQOZV7tX0x9XkZfFVfYxkmNurGKIuLk9IaQuHENTkLRU+BEV2MAGX5JB6tPnL
mn/+TsJdokc3Y+rFpYNNPTwHOvl6yv+XxduHfxDNQ68gYW1ThyTjlsDCmbeODfIy
o3j8nYeKHBbKoREtX/NhilU7WAyJB2m1nXAlt10JWszY2vFTxH2hoAuM423FF4WH
j0zH09PfbHmwgJCUHBSOvgUbPhUoeV6GvxVZFGdManDv5A57rmU3xmIcl+7qQHyZ
fT51g6RHKpUnSeqQi1dxtcuLnXj4HXUjYw8Ch76mvUAuNpeHHlW9TIedvBad8MXE
62FHfhcyagU9iHKAPjJWOkPOjgXgSs99m8cBbOXJNrAzABEBAAGJAlIEGAEIADwW
IQTZeLrh4iQIfmP4MuMgmcSqLrzAnAUCaOwzbxsUgAAAAAAEAA5tYW51MiwyLjUr
MS4xMSwyLDICGyAACgkQIJnEqi68wJzjUg/7B+qBBb6HKo8RsPus3z+ygXVuQb0K
U+wAeO1sQnlcb5coorGjfrEj6LGsYEQDL2v7SJdTqqNrrnUx2x3o5Jy4f5I9BbSt
UNw2MOP5uZsh+LJSnMCBZ9g+c2ooJO6vsBsj1YGPGDPn6WHRVvTClQzrO0ghoZlV
fFgI3ZlChuMzle+/fJHqMMLHqUllG3xgAL1UO6ZPZJcGxXr0q0sEFN+PC803Nkjv
uAz/IfB50q+ojOJbSMluwjZcDuW5izauXPFmC3hrhVcU8JyKi4M6OAoEz4zOUS5u
CBQNz92KZN/V0QAvlJZohc+vYCLpvCdpyqoB7VxPw1Ivwt1Mt0Zwiu3/+l1My+89
CIUCQBontk1ge2lta2Oc2eW7o19pslzxUtEcyS/Lnf7eTjpLW0YbPmk3hLXi9ZxH
X4ejOi7NWNuCiQV/42q/mD/EmuglqdvPpPH9W3N+OVFTIj55hmXu7yjNFFBwFVLg
s88Mi12LZauHIxmBzwffpF3+qnD0dPOceceJNSp4CTA5xHAlUBwcK2sXDzd6KjP6
KBnq6puIauYqRIR4oUS2i+2WKyNTxSBSPqSyDO6/75WdrkPDdKOqdCo4HJHYWnVC
Uo00MWT7Owxo/eZTLjqLoFBzlSB8SIuDOZC71Nkue0mICDFriqyG7Wbyw72qlXkC
rRVj04/uQmY6Cf8=
=sLy5
-----END PGP PUBLIC KEY BLOCK-----`;
$('body').terminal({
help: function() {
this.echo("Some commands to get you started:\n" +
"• about: show about info\n" +
"• services: links to all the services i host, run 'services help' to get a full list\n" +
`• search: search the internet using my searxng, run 'search "<query>"'\n`+
"• pgp: import my pgp public key\n" +
"• meow: mrow\n" +
"\n " +
"\n" +
"...Thats it for now, sorgy");
},
about: function() {
this.echo(`Hi! I'm Ceres o/
\n \nI'm a uni student studying astrophyics, and have a large interest in anything linux related
I help moderate the linuxposting community across its many locations, including hosting our tilde and a few other services, and I'm a (occasionally active) contributer to the gentoo and guru package repositories
\n\n\n\n(P.S.) [[;#f5c2e7;]I really am watching you :3]`);
},
services: function(arg) {
if (arg === 'Audiobookshelf' || arg === 'audiobookshelf') {
open('https://audio.ceressees.dev', '_self')
}
else if (arg === 'Cinny' || arg === 'cinny') {
open('https://cinny.ceressees.dev', '_self')
}
else if (arg === 'Element' || arg === 'element') {
open('https://element.ceressees.dev', '_self')
}
else if (arg === 'Forgejo' || arg === 'forgejo') {
open('https://git.ceressees.dev', '_self')
}
else if (arg === 'Immich' || arg === 'immich') {
open('https://audio.ceressees.dev', '_self')
}
else if (arg === 'Jellyfin' || arg === 'jellyfin') {
open('https://movies.ceressees.dev', '_self')
}
else if (arg === 'Komodo' || arg === 'komodo') {
open('https://server.ceressees.dev', '_self')
}
else if (arg === 'Lidarr' || arg === 'lidarr') {
open('https://lidarr.ceressees.dev', '_self')
}
else if (arg === 'Navidrome' || arg === 'navidrome') {
open('https://music.ceressees.dev', '_self')
}
else if (arg === 'Outline' || arg === 'outline') {
open('https://info.ceressees.dev', '_self')
}
else if (arg === 'Paperless' || arg === 'paperless') {
open('https://docs.ceressees.dev', '_self')
}
else if (arg === 'Piped' || arg === 'piped') {
open('https://yt.ceressees.dev', '_self')
}
else if (arg === 'Radarr' || arg === 'radarr') {
open('https://radarr.ceressees.dev', '_self')
}
else if (arg === 'Searxng' || arg === 'searxng') {
open('https://search.ceressees.dev', '_self')
}
else if (arg === 'Soulseek' || arg === 'soulseek') {
open('https://slsk.ceressees.dev', '_self')
}
else if (arg === 'Sonarr' || arg === 'sonarr') {
open('https://sonarr.ceressees.dev', '_self')
}
else {
this.echo("List of services I host. Services marked with a * are public, so you can use them too!\n" +
"Run 'services <service>' to launch the specified option!" +
"\n\n•Audiobookshelf\n" +
"*Cinny\n" +
"*Element\n" +
"*Forgejo\n" +
"•Immich\n" +
"•Jellyfin\n" +
"•Komodo\n" +
"•Lidarr\n" +
"•Navidrome\n" +
"•Outline\n" +
"•Paperless\n" +
"*Piped\n" +
"•Radarr\n" +
"*Searxng\n" +
"•Soulseek\n" +
"•Sonarr")
}
},
pgp: function(arg) {
if (arg === 'copy') {
navigator.clipboard.writeText(pubkey)
}
else if (arg === 'download') {
open('assets/ceres.asc')
}
else {
this.echo("Get my pgp public key. Either copy to the clipboard with 'pgp copy' or download with pgp download")
}
},
meow: function() {
let meows = ['meow', 'mrrrp', 'mrow', 'mrreow', 'miao', 'mraa']
let random = Math.floor(Math.random() * meows.length);
this.echo(meows[random])
},
search: function(query) {
let uri = "https://search.ceressees.dev/search?q="+query;
let encodedUri = encodeURI(uri);
open(encodedUri, '_self')
}
},
{
greetings: "[[; #f5c2e7;]" +
"▄▖ ▄▖ ▄▖▜ ▜\n" +
"▌ █▌▛▘█▌▛▘▄▖▚ █▌█▌▛▘▄▖▌▌▐ ▐ \n" +
"▙▖▙▖▌ ▙▖▄▌ ▄▌▙▖▙▖▄▌ ▛▌▐▖▐▖\n" +
"I'm watching you...]\n" +
"Run 'help' to get started",
prompt: "[[;#f5c2e7;]:3] > ",
});