64 lines
1.5 KiB
Plaintext
64 lines
1.5 KiB
Plaintext
|
/*
|
||
|
|
||
|
Dashmini 0.1
|
||
|
By Sunblade
|
||
|
sunblade@tilde.club
|
||
|
https://tilde.club/~sunblade/
|
||
|
|
||
|
Usage:
|
||
|
/dashmini < url > (without gemini://)
|
||
|
|
||
|
*/
|
||
|
|
||
|
alias -l gemurlformat {
|
||
|
tokenize 47 $1
|
||
|
if (($left($2,1) == $chr(126)) && (!$3-)) {
|
||
|
return $+($1,/,$2,/index.gmi)
|
||
|
}
|
||
|
else {
|
||
|
return $+($1,/,$2,/,$3-)
|
||
|
}
|
||
|
}
|
||
|
alias dashmini {
|
||
|
if (!$window(@dashmini)) {
|
||
|
window -k @dashmini
|
||
|
}
|
||
|
var %u = $gemurlformat($1)
|
||
|
var %h = $token($1,1,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 gemini:// $+ $sock($sockname).mark
|
||
|
;sockwrite -n $sockname Host: $sock($sockname).mark
|
||
|
;sockwrite -n $sockname Connection: close
|
||
|
;sockwrite $sockname $crlf
|
||
|
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($remove($hotlink(match),gemini://))
|
||
|
}
|
||
|
}
|
||
|
}
|