64 lines
1.3 KiB
Plaintext
64 lines
1.3 KiB
Plaintext
/*
|
|
|
|
Dashmini 0.1
|
|
By Sunblade
|
|
sunblade@tilde.club
|
|
https://tilde.club/~sunblade/
|
|
|
|
Usage:
|
|
/dashmini "gemini://url" (without quotes)
|
|
|
|
License:
|
|
MIT
|
|
|
|
*/
|
|
|
|
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))
|
|
}
|
|
}
|
|
}
|