#!/usr/bin/python
import webbrowser
import sys
import pathlib
import lz4.block
import json
import os
if sys.version_info[0] < 3:
    raise Exception("Python 3 or a more recent version is required.")

url = 'https://login.microsoftonline.com/common/oauth2/v2.0/authorize?client_id=22c49a0d-d21c-4792-aed1-8f163c982546&scope=files.readwrite%20files.readwrite.all%20offline_access&response_type=code&redirect_uri=https://login.microsoftonline.com/common/oauth2/nativeclient'

webbrowser.register('firefox', None, webbrowser.GenericBrowser('firefox'), 1)
webbrowser.get('firefox').open_new_tab(url)
os.system('clear')
path = pathlib.Path.home().joinpath('.mozilla/firefox')
files = path.glob('*default*/sessionstore.jsonlz4')

try:
    template = sys.argv[1]
except IndexError:
    template = '%s (%s)'

for f in files:
    b = f.read_bytes()
    if b[:8] == b'mozLz40\0':
        b = lz4.block.decompress(b[8:])
    j = json.loads(b)
    for w in j['windows']:
        for t in w['tabs']:
            i = t['index'] - 1
outlink = (template % (
		t['entries'][i]['url'],
                t['entries'][i]['url']
                ))

sys.stdout=open("tmp.log","w")
print (outlink)
sys.stdout.close()

script = """
clear
cat tmp.log | onedrive
sudo rm tmp.log
"""
os.system("bash -c '%s'" % script)
