예제 #1
0
	def OnNavigated(self, event):
		url = event.GetURL()
		if url == 'https://www.dropbox.com/1/oauth2/authorize_submit':
			result = self.browser.RunScript("""
				if (!document.getElementsByClassName) {
    				document.getElementsByClassName=function(cn) {
        			var allT=document.getElementsByTagName('*'), allCN=[], i=0, a;
        			while(a=allT[i++]) {
            			a.className==cn ? allCN[allCN.length]=a : null;
        			}
        			return allCN
   					}
				}
				document.title = document.getElementsByClassName('auth-code')[0].innerText;
				""")
			auth_code = self.browser.GetCurrentTitle()
			self.parent.Hide()
			self.Destroy()
			
			track_event('Dropbox auth finished')

			startWorker(did_login, self.shotBufApp.did_finish_auth(auth_code))
			

		else:
			print 'Fail'
예제 #2
0
	def OnConnectDropbox(self, event):
		track_event('Connect button pressed')
		self.dialog = WebViewDialog(self, -1)
		self.dialog.parent = self
		self.dialog.shotBufApp = self.shotBufApp

		self.dialog.browser.LoadURL(shotBufApp.get_auth_url())

		self.SetWindowStyle(self.style)
		self.dialog.Show()
예제 #3
0
def image():
    localFilePath = ''
    try:
        track_event('spotainize_common', 'api', '/eval/image')
        url = request.json["url"]
        localFilePath = downloadImage(url)
        score = list(evaluate([localFilePath]))
        return jsonify({'score': str(score[0])}), 200
    except Exception as e:
        return jsonify({'message': str(e)}), 400
    finally:
        removeFile(localFilePath)
예제 #4
0
def images():
    localFilePathList = []
    try:
        track_event('spotainize_common', 'api', '/eval/images')
        urlList = request.get_json()["urlList"]
        if (len(urlList) > 10):
            return {'error': 'No more than 10.'}
        localFilePathList = downloadImages(urlList)
        result = list(evaluate(localFilePathList))
        removeFiles(localFilePathList)
        return {'score': result}
    except Exception as e:
        removeFiles(localFilePathList)
        return {'error': str(e)}
예제 #5
0
	def OnMenu(self, event):
		evt_id = event.GetId()
		if evt_id == CustomTaskBarIcon.ID_DISABLE_SHOTBUF:
			track_event('Disable shotbuf')
			self.isEnabled = True
			disable_shotbuf()
		if evt_id == CustomTaskBarIcon.ID_ENABLE_SHOTBUF:
			track_event('Enable shotbuf')
			self.isEnabled = False
			enable_shotbuf()	
		elif evt_id == CustomTaskBarIcon.ID_UNLINK_DROPBOX:
			track_event('unlink dropbox account')
			shotBufApp.unlink_dropbox()
			frame.ShowAsTopWindow()
			disable_shotbuf()
		elif evt_id == CustomTaskBarIcon.ID_CHECK_UPDATES:
			track_event('check updates clicked')
			if not check_if_new_version_is_available():
				message = 'ShotBuf %s is currently the newest version available.' % update_checker.CURRENT_VERSION
				dlg = wx.MessageDialog(frame, message, "You're up to date!", wx.OK | wx.ICON_INFORMATION | wx.STAY_ON_TOP)
				dlg = dlg.ShowModal()
				
			# dlg.ShowModal()
		elif evt_id == CustomTaskBarIcon.ID_QUIT_SHOTBUF:
			track_event('Quit Shotbuf')
			app.ExitMainLoop()
			# dlg.Destroy()
			# dialog = MyDialog(self, -1)
			# print 'dialog', dialog
			# dialog.Show()
			# # if not updateChecker.is_newest_version_available():
			# updateChecker.is_newest_version_available()
			# updateCheckerFrame.ShowAsTopWindow()
        	# dlg.Destroy()
        	# else:
   #      elif evt_id == wx.ID_EXIT:
			# disable_shotbuf()
			# print 'Quit'
			# app.ExitMainLoop()
		# 	wx.MessageBox("Hello World!", "Hello")
		# elif evt_id == CustomTaskBarIcon.ID_HELLO2:
		# 	wx.MessageBox("Hi Again!", "Hi!")
		# el
		# if evt_id == wx.ID_CLOSE:
		# 	self.Destroy()
		# else:
		event.Skip()
예제 #6
0
def OnPasteButton(event):
	if not wx.TheClipboard.IsOpened():
		wx.TheClipboard.Open()
		bitmap_success = wx.TheClipboard.IsSupported(wx.DataFormat(wx.DF_BITMAP))
		
		text_success = wx.TheClipboard.IsSupported(wx.DataFormat(wx.DF_TEXT))
		if bitmap_success or text_success:

			bitmap_data_object = wx.BitmapDataObject()
			text_data_object = wx.TextDataObject()
			do = wx.DataObjectComposite()
			do.Add(bitmap_data_object, True)
			do.Add(text_data_object, True)
			success = wx.TheClipboard.GetData(do)
			if success:
				format = do.GetReceivedFormat()
				data_object = do.GetObject(format)

				format_type = format.GetType()

				if format_type in [wx.DF_DIB, wx.DF_BITMAP]:
					bitmap = bitmap_data_object.GetBitmap()
					size = bitmap.GetSize()

					image_data = numpy.zeros((size[0], size[1], 3), dtype=numpy.uint8)

					image = bitmap.ConvertToImage()
					rgb_bitmap = image.ConvertToBitmap()
					rgb_bitmap.CopyToBuffer(image_data)
				
	
					isNewImage = shotBufApp.set_image_data_if_new(image_data) 
					if isNewImage:
						track_event('Paste new Image')
						fileTemp = tempfile.NamedTemporaryFile(delete = False)
						bitmap.SaveFile(fileTemp.name, wx.BITMAP_TYPE_PNG)

						shotBufApp.paste_file(fileTemp.name)

				elif format_type in [wx.DF_UNICODETEXT, wx.DF_TEXT]:
					text = text_data_object.GetText()
					shotBufApp.paste_text_if_new(text)
					
				
		wx.TheClipboard.Close()
예제 #7
0
def check_if_new_version_is_available():
	result = updateChecker.is_newest_version_available()
	if updateChecker.is_newest_version_available():
		track_event('Newest version is available')
		message = 'You are currently running version %s, version %s is now available for download.\n\nDo you wish to install it now?'
		message = message % (update_checker.CURRENT_VERSION, updateChecker.get_newest_version())
		print message
		dlg = wx.MessageDialog(frame, message, 'A new version of Shotbuf is available.', wx.YES_NO | wx.YES_DEFAULT | wx.ICON_QUESTION)
		# dlg.SetIcon('distributive.icns')
		retCode = dlg.ShowModal()
		if (retCode == wx.ID_YES):
			track_event('Agree to install newest version')
			webbrowser.open('http://shotbuf.com/d')
			# dlg.ShowModal()
			dlg.Destroy()
		else:
			track_event('Disagree to install newest version')
	return result
예제 #8
0
def main():
	track_event('Launch App')	
	if not shotBufApp.is_logined():
		frame.ShowAsTopWindow()
		track_event('Connect Dropbox')
		app.MainLoop()
	else:
		try:
			shotBufApp.did_login()
			check_if_new_version_is_available()
			enable_shotbuf()
			app.MainLoop()
		except urllib3.exceptions.MaxRetryError:
			track_event('Login connection error')
			dlg = wx.MessageDialog(frame, "Please, check your internet connection.", "Network error!", wx.OK | wx.ICON_ERROR | wx.STAY_ON_TOP)

			dlg.ShowModal()
			dlg.Destroy()
		
	
	print 'Start'
예제 #9
0
	def paste_text_if_new(self, text):
		isNew = self.set_text_data_if_new(text)
		if isNew:
			track_event('Paste new text')
			self.paste_text(text)
예제 #10
0
def did_login(result):
	track_event('Did login')
	enable_shotbuf()