From 1cab103a6f1eb9caeba0c27be6c60dae65240191 Mon Sep 17 00:00:00 2001 From: Henrik Nordvik Date: Sat, 9 Apr 2011 04:27:41 +0200 Subject: [PATCH 1/3] Add errorchecking to imgur --- src/uploader.py | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/src/uploader.py b/src/uploader.py index 06560b8..222ad14 100644 --- a/src/uploader.py +++ b/src/uploader.py @@ -112,7 +112,10 @@ def upload_file_imgur(f): print 'Error: Imgur not supported' i = ImgurUploader() i.upload(f) - return True, i.mapping + if not 'error_msg' in i.mapping: + return True, i.mapping + else: + return False, i.mapping.get('error_msg') def upload_file_ubuntuone(f): pass From e3334ccce04f292e8e65a985ed26c36c6bc4d89a Mon Sep 17 00:00:00 2001 From: Henrik Nordvik Date: Sat, 9 Apr 2011 04:30:11 +0200 Subject: [PATCH 2/3] Add logging for imgur upload (to save delete url) --- src/lookit | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/src/lookit b/src/lookit index e5bb257..240dd65 100755 --- a/src/lookit +++ b/src/lookit @@ -51,6 +51,8 @@ except ImportError: CONF_FILE = os.path.expanduser('~/.config/lookit.conf') TRASH_DIR = os.path.expanduser('~/.local/share/Trash/files') +XDG_CACHE_HOME = os.environ.get('XDG_CACHE_HOME', os.path.expanduser('~/.cache')) +LOG_FILE = os.path.join(XDG_CACHE_HOME, 'lookit.log') class LookitApp: @@ -171,7 +173,19 @@ class LookitApp: self.config.get('Upload', 'url'), ) elif proto == 'Imgur': + notification = pynotify.Notification('Uploading image', 'Uploading image to Imgur') + notification.show() success, data = uploader.upload_file_imgur(image) + try: + f = open(LOG_FILE, 'ab') + f.write(time.ctime() + ' Uploaded screenshot to Imgur: ' + data['original_image'] + '\n') + f.write('Delete url: ' + data['delete_page'] + '\n') + except IOError, e: + pass + finally: + f.close() + notification.close() + elif proto == 'None': success = True else: From 1374b992d53283657b350bc40e5998bb019a2113 Mon Sep 17 00:00:00 2001 From: Henrik Nordvik Date: Sat, 9 Apr 2011 05:15:09 +0200 Subject: [PATCH 3/3] Fix renaming of file --- src/lookit | 25 ++++++++++++++++--------- 1 file changed, 16 insertions(+), 9 deletions(-) diff --git a/src/lookit b/src/lookit index 240dd65..9470a27 100755 --- a/src/lookit +++ b/src/lookit @@ -29,6 +29,7 @@ import tempfile import time import urllib import urlparse +import shutil from optparse import OptionParser @@ -145,9 +146,9 @@ class LookitApp: def process_pixbuf(self, pb): if pb is not None: - fname = tempfile.mktemp(suffix='.png', prefix='') - pb.save(fname, 'png') - self.upload_image(fname) + ftmp = tempfile.NamedTemporaryFile(suffix='.png', prefix='', delete=False) + pb.save_to_callback(ftmp.write, 'png') + self.upload_image(ftmp.name) else: self.show_error('Unable to get screenshot') @@ -185,7 +186,6 @@ class LookitApp: finally: f.close() notification.close() - elif proto == 'None': success = True else: @@ -205,15 +205,22 @@ class LookitApp: 'http://is.gd/api.php?longurl={0}' .format(url)).readline() print "URL Shortened:", url - if self.config.get('General', 'trash'): + if self.config.getboolean('General', 'trash'): os.remove(os.path.abspath(image)) else: # newimage = try: - os.rename(os.path.abspath(image), - os.path.join(self.config.get( \ - 'General', 'savedir'), image)) - except OSError: + timestamp = time.strftime('%Y-%m-%d_%H-%M-%S') + filename = timestamp + '.png' + destination = os.path.join(self.config.get('General', 'savedir'), filename) + i = 0 + while os.path.exists(destination): + filename = timestamp + '_' + str(i) + '.png' + destination = os.path.join(self.config.get('General', 'savedir'), filename) + i += 1 + shutil.move(image, destination) + image = destination + except IOError: print "Error moving file" clip = gtk.Clipboard()