Hack and slack, first commit.
This commit is contained in:
commit
188ae06e9a
2 changed files with 83 additions and 0 deletions
80
u1transfers.py
Executable file
80
u1transfers.py
Executable file
|
@ -0,0 +1,80 @@
|
|||
#!/usr/bin/env python
|
||||
|
||||
import threading
|
||||
import time
|
||||
import gobject
|
||||
import gtk
|
||||
import subprocess
|
||||
import re
|
||||
import md5
|
||||
|
||||
gobject.threads_init()
|
||||
|
||||
class MyThread(threading.Thread):
|
||||
def __init__(self, vbox):
|
||||
super(MyThread, self).__init__()
|
||||
self.vbox = vbox
|
||||
self.quit = False
|
||||
self.files = {}
|
||||
|
||||
def update_label(self, counter):
|
||||
transfers = subprocess.check_output(["u1sdtool", "--current-transfers"])
|
||||
transfers = transfers.split("\n");
|
||||
|
||||
for line in transfers:
|
||||
if re.match("Current uploads:", line) != None:
|
||||
transfer_type = 'Uploading'
|
||||
elif re.match("Current downloads:", line) != None:
|
||||
transfer_type = 'Downloading'
|
||||
else:
|
||||
if re.match(" path: ", line) != None:
|
||||
transfer_file = line.replace(" path: ", "")
|
||||
elif re.match(" deflated size: ", line) != None:
|
||||
total = line.replace(" deflated size: ", "")
|
||||
elif re.match(" bytes written: ", line) != None:
|
||||
transferred = line.replace(" bytes written: ", "")
|
||||
|
||||
complete = int((float(transferred) / float(total)) * 100)
|
||||
|
||||
m = md5.new()
|
||||
m.update(transfer_file)
|
||||
file_hash = m.digest()
|
||||
|
||||
if file_hash not in self.files:
|
||||
label = gtk.Label(transfer_file)
|
||||
label.set_justify(gtk.JUSTIFY_LEFT)
|
||||
self.vbox.pack_end(label, True, True, 2)
|
||||
label.show()
|
||||
|
||||
self.files[file_hash] = label
|
||||
|
||||
if complete < 100:
|
||||
self.files[file_hash].set_text("[" + str(complete) + "%] " + transfer_type + " " + transfer_file)
|
||||
else:
|
||||
self.files[file_hash].destroy()
|
||||
|
||||
return False
|
||||
|
||||
def run(self):
|
||||
counter = 0
|
||||
while not self.quit:
|
||||
counter += 1
|
||||
gobject.idle_add(self.update_label, counter)
|
||||
time.sleep(5)
|
||||
|
||||
w = gtk.Window()
|
||||
w.set_title("Ubuntu One Active Transfers")
|
||||
w.set_border_width(0)
|
||||
w.set_size_request(800, 300)
|
||||
|
||||
v = gtk.VBox(False, 0)
|
||||
w.add(v)
|
||||
v.show()
|
||||
|
||||
w.show_all()
|
||||
w.connect("destroy", lambda _: gtk.main_quit())
|
||||
t = MyThread(v)
|
||||
t.start()
|
||||
|
||||
gtk.main()
|
||||
t.quit = True
|
Loading…
Add table
Add a link
Reference in a new issue