#!/bin/env python3
import urllib.parse
import os.path
import argparse
import subprocess

def run(action, arg):
    final_url = "steam://{0}/{1}".format(action, arg)
    subprocess.run(["steam", final_url])

def main():
    parser = argparse.ArgumentParser(description='Launch a link in the steam browser.')
    parser.add_argument('uri')
    args = parser.parse_args()

    uri = args.uri

    url = urllib.parse.urlparse(uri, "file")

    # convert mailto://A@b.com to steam://mailto/A@b.com
    if (url.scheme == 'mailto'):
        run('mailto', url.netloc)
        return

    # open any other URL, converting paths to full file URIs
    if (url.scheme == 'file' and not os.path.isabs(url.path)):
        absolute_path = os.path.abspath(url.path)
        url = url._replace(path=absolute_path)
    run('openurl_external', url.geturl())
    return

main()
