Dashmini/_Dashmini.mrc

64 lines
1.3 KiB
Plaintext
Raw Permalink Normal View History

2025-09-13 10:52:01 +00:00
/*
Dashmini 0.1
By Sunblade
sunblade@tilde.club
https://tilde.club/~sunblade/
Usage:
/dashmini "gemini://url" (without quotes)
2025-09-13 10:55:20 +00:00
License:
2025-09-15 10:10:42 +00:00
MIT
2025-09-13 10:55:20 +00:00
2025-09-13 10:52:01 +00:00
*/
alias -l gemurlformat {
if (($right($1,4) != .gmi) && ($right($1,1) != $chr(47))) {
return $+($1,/index.gmi)
}
else {
return $1
}
}
alias dashmini {
if (!$window(@dashmini)) {
window -k @dashmini
}
var %f = $1
var %u = $gemurlformat($1)
var %h = $token(%f,2,47)
sockopen -e dashmini %h 1965
sockmark dashmini $1
}
on 1:sockopen:dashmini:{
if ($sockerr > 0) { echo -st * /dashmini : Unable to connect. | return }
echo -tg @dashmini * /dashmini : Connection successful to $sock($sockname).mark $+([,$sock($sockname).ip,])
sockwrite -n $sockname $sock($sockname).mark
echo -tg @dashmini * /dashmini : Receiving informations...
}
on 1:sockread:dashmini:{
if ($sockerr > 0) { echo -tg @dashmini * /dashmini : An error has ocurred. Connection closed. | return }
var %read
;var %line = 1
:read
sockread -f %read
if ($sockbr == 0) return
echo -tg @dashmini * /dashmini : %read
inc %line
goto read
}
on 1:sockclose:dashmini:{
echo -tg @dashmini * /dashmini : The connection has been closed.
}
on *:hotlink:*:@dashmini:{
if ($hotlink(event) == sclick) {
if ($hotlink(match) isurl) {
dashmini $gemurlformat($hotlink(match))
}
}
}