/* 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://)) } } }