def main [ interface: string type: string ] { if not ($type == 'up') { exit }; mullvad disconnect; let page = http get 'http://172.0.0.1/'; let hotspot_ip = $page | htmlq 'input[name=uamip]' -a 'value'; let hotspot_port = $page | htmlq 'input[name=uamport]' -a 'value'; let pl_data = $page | htmlq input -a name -r input[name=button] | lines | wrap name | merge ( $page | htmlq input -a value | lines | wrap value ) | drop 1; let payload = $pl_data | each {|kv| [ ($kv.name | url encode --all) ($kv.value | url encode --all) ] | str join '=' } | str join '&'; let res = curl --insecure --resolve $"www.hotsplots.de:($hotspot_port):($hotspot_ip)" -H 'Content-Type: application/x-www-form-urlencoded' "https://www.hotsplots.de/auth/login.php" --data-raw $"($payload)" ; let url = $res | htmlq 'meta[http-equiv=refresh]' -a 'content' | parse '0;url={url}'; http get $url.url.0; mullvad connect; }