Skip to content
Snippets Groups Projects
Commit 77362ad4 authored by akiraohgaki's avatar akiraohgaki
Browse files

Compatibility for python 2 and 3

parent cbcfd2cb
No related branches found
No related tags found
No related merge requests found
...@@ -9,14 +9,17 @@ import sys ...@@ -9,14 +9,17 @@ import sys
import os import os
import json import json
import urllib import urllib
import urlparse
import tempfile import tempfile
import mimetypes import mimetypes
import subprocess import subprocess
import argparse import argparse
import Tkinter
import tkMessageBox if sys.version_info.major >= 3:
import tkinter
else:
import urlparse
import Tkinter
import tkMessageBox
class XdgUrl: class XdgUrl:
"""Core class of xdgurl""" """Core class of xdgurl"""
...@@ -142,20 +145,33 @@ class XdgUrl: ...@@ -142,20 +145,33 @@ class XdgUrl:
'filename': '' 'filename': ''
} }
parse_result = urlparse.urlparse(self.xdg_url) if sys.version_info.major >= 3:
query = urlparse.parse_qs(parse_result.query) parse_result = urllib.parse.urlparse(self.xdg_url)
query = urllib.parse.parse_qs(parse_result.query)
else:
parse_result = urlparse.urlparse(self.xdg_url)
query = urlparse.parse_qs(parse_result.query)
if parse_result.netloc: if parse_result.netloc:
meta['command'] = parse_result.netloc meta['command'] = parse_result.netloc
if 'url' in query and query['url'][0]: if 'url' in query and query['url'][0]:
meta['url'] = urllib.unquote(query['url'][0]) if sys.version_info.major >= 3:
meta['url'] = urllib.parse.unquote(query['url'][0])
else:
meta['url'] = urllib.unquote(query['url'][0])
if 'type' in query and query['type'][0]: if 'type' in query and query['type'][0]:
meta['type'] = urllib.unquote(query['type'][0]) if sys.version_info.major >= 3:
meta['type'] = urllib.parse.unquote(query['type'][0])
else:
meta['type'] = urllib.unquote(query['type'][0])
if 'filename' in query and query['filename'][0]: if 'filename' in query and query['filename'][0]:
meta['filename'] = urllib.unquote(query['filename'][0]).split('?')[0] if sys.version_info.major >= 3:
meta['filename'] = urllib.parse.unquote(query['filename'][0]).split('?')[0]
else:
meta['filename'] = urllib.unquote(query['filename'][0]).split('?')[0]
if meta['url'] and not meta['filename']: if meta['url'] and not meta['filename']:
meta['filename'] = os.path.basename(meta['url']).split('?')[0] meta['filename'] = os.path.basename(meta['url']).split('?')[0]
...@@ -206,7 +222,10 @@ class XdgUrl: ...@@ -206,7 +222,10 @@ class XdgUrl:
path = os.path.join(destination, filename) path = os.path.join(destination, filename)
print('Retrieving a file from ' + url) print('Retrieving a file from ' + url)
urllib.urlretrieve(url, temp_path) if sys.version_info.major >= 3:
urllib.request.urlretrieve(url, temp_path)
else:
urllib.urlretrieve(url, temp_path)
print('Creating a directory ' + destination) print('Creating a directory ' + destination)
if not os.path.isdir(destination): if not os.path.isdir(destination):
...@@ -227,7 +246,10 @@ class XdgUrl: ...@@ -227,7 +246,10 @@ class XdgUrl:
path = os.path.join(destination, filename) path = os.path.join(destination, filename)
print('Retrieving a file from ' + url) print('Retrieving a file from ' + url)
urllib.urlretrieve(url, temp_path) if sys.version_info.major >= 3:
urllib.request.urlretrieve(url, temp_path)
else:
urllib.urlretrieve(url, temp_path)
print('Creating a directory ' + destination) print('Creating a directory ' + destination)
if not os.path.isdir(destination): if not os.path.isdir(destination):
...@@ -342,7 +364,10 @@ def main(): ...@@ -342,7 +364,10 @@ def main():
""" """
core = XdgUrl(args.xdg_url) core = XdgUrl(args.xdg_url)
window = Tkinter.Tk() if sys.version_info.major >= 3:
window = tkinter.Tk()
else:
window = Tkinter.Tk()
window.withdraw() window.withdraw()
execute_text = 'Download' execute_text = 'Download'
...@@ -351,7 +376,12 @@ def main(): ...@@ -351,7 +376,12 @@ def main():
info_text = execute_text + ': ' + core.meta['filename'] + '\nFrom: ' + core.meta['url'] info_text = execute_text + ': ' + core.meta['filename'] + '\nFrom: ' + core.meta['url']
print(info_text) print(info_text)
if tkMessageBox.askyesno(program, info_text + '\n\nDo you want to continue?'): if sys.version_info.major >= 3:
confirm = tkinter.messagebox.askyesno(program, info_text + '\n\nDo you want to continue?')
else:
confirm = tkMessageBox.askyesno(program, info_text + '\n\nDo you want to continue?')
if confirm:
try: try:
core.execute(); core.execute();
except Exception as e: except Exception as e:
...@@ -360,11 +390,17 @@ def main(): ...@@ -360,11 +390,17 @@ def main():
error_message = e.message error_message = e.message
message = execute_text + ' failed\n' + error_message message = execute_text + ' failed\n' + error_message
print(message) print(message)
tkMessageBox.showerror(program, info_text + '\n\n' + message) if sys.version_info.major >= 3:
tkinter.messagebox.showerror(program, info_text + '\n\n' + message)
else:
tkMessageBox.showerror(program, info_text + '\n\n' + message)
else: else:
message = execute_text + ' finished' message = execute_text + ' finished'
print(message) print(message)
tkMessageBox.showinfo(program, info_text + '\n\n' + message) if sys.version_info.major >= 3:
tkinter.messagebox.showinfo(program, info_text + '\n\n' + message)
else:
tkMessageBox.showinfo(program, info_text + '\n\n' + message)
sys.exit() sys.exit()
if __name__ == '__main__': if __name__ == '__main__':
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment