#!/usr/bin/env python3
import argparse
import subprocess

def parse_file(path):
    with open(path, "r") as fh:
        for line in fh:
            line = line.rstrip()
            if line.startswith("URL="):
                return line[4:]
            elif line.startswith("URL:"):
                # Sony-Ericsson vCard syntax
                return line[4:]

def alert(msg):
    subprocess.run(["zenity",
                    "--error",
                    "--title", "Internet Shortcut – Error",
                    "--text", msg])
    exit("error: %s" % msg)

def confirm(url):
    msg = f"Do you want to visit this site?\n\n<b>{url}</b>"
    r = subprocess.run(["zenity",
                        "--question",
                        "--title", "Internet Shortcut",
                        "--text", msg])
    return (r.returncode == 0)

def open_url(url):
    subprocess.run(["xdg-open", url])

parser = argparse.ArgumentParser()
parser.add_argument("file")
args = parser.parse_args()

url = parse_file(args.file)
if not url:
    alert("File %r is not a valid Internet shortcut." % args.file)
if not confirm(url):
    exit(1)
open_url(url)
