def wrapper(*args, **kwargs): try: return func(*args, **kwargs) except Exception, e: logging.error("Error: %s : %s", func.__name__, str(e)) if not hasattr(e, 'errorCode'): out.failureMessage("Sorry, operation has failed!!!.") tools.exitErr() errorCode = int(e.errorCode) # auth-token error, re-auth if errorCode == 9: storage = Storage() storage.removeUser() GeekNote() return func(*args, **kwargs) elif errorCode == 3: out.failureMessage("Sorry, you do not have permissions " "to do this operation.") # Rate limited # Patched because otherwise if you get rate limited you still keep # hammering the server on scripts elif errorCode == 19: print("\nRate Limit Hit: Please wait %s seconds before continuing" % str(e.rateLimitDuration)) tools.exitErr() else: return False tools.exitErr()
def make_resource(filename): try: mtype = mimetypes.guess_type(filename)[0] if mtype.split('/')[0] == "text": rmode = "r" else: rmode = "rb" with open(filename, rmode) as f: """ file exists """ resource = Types.Resource() resource.data = Types.Data() data = f.read() md5 = hashlib.md5() md5.update(data) resource.data.bodyHash = md5.hexdigest() resource.data.body = data resource.data.size = len(data) resource.mime = mtype resource.attributes = Types.ResourceAttributes() resource.attributes.fileName = os.path.basename(filename) return resource except IOError: msg = "The file '%s' does not exist." % filename out.failureMessage(msg) raise IOError(msg)
def test_failure_message_success(self): sav = sys.stderr buf = StringIO() sys.stderr = buf failureMessage('fail') sys.stderr = sav buf.seek(0) self.assertEquals(buf.read(), 'fail\n')
def createNote(title,content,tags,notebook,geeknote=None,\ skipnotebook=False): #-------------------Trunc texts------------------- notebook=notebook.strip() notebook=truncStr(notebook,MAX_NOTEBOOK_TITLE_LEN) title=title.strip() title=truncStr(title,MAX_NOTE_TITLE_LEN) #-------Make sure title doesnt start with #------- tp=textparse.TextParser('markdown') _h_re=re.compile(tp._h_re_base %'1,', re.X | re.M) m=_h_re.match(title) if m: title=m.group(6) m=_h_re.match(notebook) if m: notebook=m.group(6) if tags is not None and len(tags.split(','))>=MAX_NOTE_TAGS: tags=u','.join(tags.split(',')[:MAX_NOTE_TAGS]) #---------------------Connect--------------------- if geeknote is None: geeknote=GeekNoteConnector() geeknote.connectToEvertone() #-----------------Create notebook----------------- if not skipnotebook: result=createNoteBook(notebook,geeknote) if skipnotebook or result==0: #----------------------Write---------------------- inputdata=geeknote._parseInput(title,content,tags,notebook,None) out.preloader.setMessage('Creating note...') result=bool(geeknote.getEvernote().createNote(**inputdata)) if result: out.successMessage("Note has been successfully saved.") else: out.failureMessage("Error while saving the note.")
def createNote(title,content,tags,notebook,geeknote=None,\ skipnotebook=False): #-------------------Trunc texts------------------- notebook = notebook.strip() notebook = truncStr(notebook, MAX_NOTEBOOK_TITLE_LEN) title = title.strip() title = truncStr(title, MAX_NOTE_TITLE_LEN) #-------Make sure title doesnt start with #------- tp = textparse.TextParser('markdown') _h_re = re.compile(tp._h_re_base % '1,', re.X | re.M) m = _h_re.match(title) if m: title = m.group(6) m = _h_re.match(notebook) if m: notebook = m.group(6) if tags is not None and len(tags.split(',')) >= MAX_NOTE_TAGS: tags = u','.join(tags.split(',')[:MAX_NOTE_TAGS]) #---------------------Connect--------------------- if geeknote is None: geeknote = GeekNoteConnector() geeknote.connectToEvertone() #-----------------Create notebook----------------- if not skipnotebook: result = createNoteBook(notebook, geeknote) if skipnotebook or result == 0: #----------------------Write---------------------- inputdata = geeknote._parseInput(title, content, tags, notebook, None) out.preloader.setMessage('Creating note...') result = bool(geeknote.getEvernote().createNote(**inputdata)) if result: out.successMessage("Note has been successfully saved.") else: out.failureMessage("Error while saving the note.")
def createNoteBook(title,geeknote=None,verbose=True): #-------------------Trunc title------------------- title=title.strip() title=truncStr(title,MAX_NOTEBOOK_TITLE_LEN) #-------Make sure title doesnt start with #------- tp=textparse.TextParser('markdown') _h_re=re.compile(tp._h_re_base %'1,', re.X | re.M) m=_h_re.match(title) if m: title=m.group(6) #---------------------Connect--------------------- if geeknote is None: geeknote=GeekNoteConnector() geeknote.connectToEvertone() #-----------------Check if exists----------------- notebooks=geeknote.getEvernote().findNotebooks() out.preloader.stop() if not isinstance(title,unicode): title=unicode(title,'utf8') notebooks=[unicode(ii.name,'utf8') for ii in notebooks] if title in notebooks: out.successMessage('Notebook already exists.') return 0 else: out.preloader.setMessage("Creating notebook...") result = geeknote.getEvernote().createNotebook(name=title) if result: out.successMessage("Notebook has been successfully created.") return 0 else: out.failureMessage("Error while the process " "of creating the notebook.") return tools.exitErr()
def createNoteBook(title, geeknote=None, verbose=True): #-------------------Trunc title------------------- title = title.strip() title = truncStr(title, MAX_NOTEBOOK_TITLE_LEN) #-------Make sure title doesnt start with #------- tp = textparse.TextParser('markdown') _h_re = re.compile(tp._h_re_base % '1,', re.X | re.M) m = _h_re.match(title) if m: title = m.group(6) #---------------------Connect--------------------- if geeknote is None: geeknote = GeekNoteConnector() geeknote.connectToEvertone() #-----------------Check if exists----------------- notebooks = geeknote.getEvernote().findNotebooks() out.preloader.stop() if not isinstance(title, unicode): title = unicode(title, 'utf8') notebooks = [unicode(ii.name, 'utf8') for ii in notebooks] if title in notebooks: out.successMessage('Notebook already exists.') return 0 else: out.preloader.setMessage("Creating notebook...") result = geeknote.getEvernote().createNotebook(name=title) if result: out.successMessage("Notebook has been successfully created.") return 0 else: out.failureMessage("Error while the process " "of creating the notebook.") return tools.exitErr()
def wrapper(*args, **kwargs): try: return func(*args, **kwargs) except Exception, e: logging.error("Error: %s : %s", func.__name__, str(e)) if not hasattr(e, 'errorCode'): out.failureMessage("Sorry, operation has failed!!!.") tools.exitErr() errorCode = int(e.errorCode) # auth-token error, re-auth if errorCode == 9: storage = Storage() storage.removeUser() GeekNote() return func(*args, **kwargs) elif errorCode == 3: out.failureMessage("Sorry, you do not have permissions " "to do this operation.") # Rate limited # Patched because otherwise if you get rate limited you still keep # hammering the server on scripts elif errorCode == 19: print( "\nRate Limit Hit: Please wait %s seconds before continuing" % str(e.rateLimitDuration)) tools.exitErr() else: return False tools.exitErr()
def test_failure_message_success(self): failureMessage('fail') sys.stderr.seek(0) self.assertEquals(sys.stderr.read(), 'fail\n')
def test_failure_message_success(self): failureMessage('fail') sys.stdout.seek(0) self.assertEquals(sys.stdout.read(), 'fail\n')