def downloadVideo(current_user=None, media_id=None): if not current_user: current_user = user.SyncSketchUser() media_id = media_id or database.read_cache('target_media_id') logger.info("current_user: %s" % current_user) logger.info("target_media_id: %s" % media_id) return current_user.download_converted_video(media_id)
def refresh_menu_state(): ''' If before_login is the given state, some parts of the menu will be greyed out. If after_login, all parts of the menu will be enabled and accessible. ''' current_user = user.SyncSketchUser() username = current_user.get_name() login_info = 'Currently not logged in' if username: login_info = 'Logged in as: [{}]'.format(username) # Parse the yaml file and get the menu items as a dictionary yaml_path = path.get_config_yaml(yaml_file) data = database._parse_yaml(yaml_path) if not data: return if not isinstance(data, dict): return # Build menus from the parsed data menu_tops = data.keys() for menu_top in menu_tops: menu_top_name = _make_object_name(menu_top) if not cmds.menuItem('logged_in_as', exists=True): cmds.menuItem('logged_in_as', parent=menu_top_name) cmds.menuItem('logged_in_as', edit=True, enable=False, label=login_info)
def __init__(self, parent=None): super(DownloadWindow, self).__init__(parent=parent) self.decorate_ui() self.align_to_center(self.parent) current_user = user.SyncSketchUser() self.ui.review_target_url.editingFinished.connect(self.editingFinished) self.media_id = None if not current_user.is_logged_in(): logger.info("Please Login to syncsketch to Download content") return try: target_media_id = int(database.read_cache('target_media_id')) logger.info("target_media_id: {}".format(target_media_id)) except Exception as e: logger.info(e) cmds.warning( "No target media selected, please select an item from the UI") return self.item_data = current_user.get_item_info( int(database.read_cache('target_media_id')))['objects'][0] review_id = database.read_cache('target_review_id') media_id = database.read_cache('target_media_id') target_url = database.read_cache('upload_to_value') thumb_url = current_user.get_item_info( media_id)['objects'][0]['thumbnail_url'] self.ui.review_target_url.setText(target_url) self.ui.thumbnail_pushButton.set_icon_from_url(thumb_url) self.ui.review_target_name.setText(self.item_data['name'])
def download(current_user=None): if not current_user: current_user = user.SyncSketchUser() review_id = database.read_cache('target_review_id') media_id = database.read_cache('target_media_id') logger.info("current_user: %s" % current_user) logger.info("target_review_id: %s" % review_id) logger.info("target_media_id: %s" % media_id) return current_user.download_greasepencil(review_id, media_id)
def handleUpgrade(): """[summary] Returns: [SyncSketchInstaller] -- [Instance of the Upgrade UI] """ # * Check for Updates and load Upgrade UI if Needed if getVersionDifference(): logger.info("YOU ARE {} VERSIONS BEHIND".format( getVersionDifference())) if os.getenv("SS_DISABLE_UPGRADE"): logger.warning( "Upgrades disabled as environment Variable SS_DISABLE_UPGRADE is set, skipping" ) return #Let's first make sure to replace the installerGui with the latest. # * we might restore old file if not continued from here # ! Caution here, this is replacing infile your local files # ! Always make sure to remove this line when debugging, # ! It will pull from release github and override changes overwriteLatestInstallerFile() logger.info("installGui.InstallOptions.upgrade {}".format( installGui.InstallOptions.upgrade)) #Make sure we only show this window once per Session if not installGui.InstallOptions.upgrade == 1: reload(installGui) #If this is set to 1, it means upgrade was already installed installGui.InstallOptions.upgrade = 1 #Preserve Credentials current_user = user.SyncSketchUser() if current_user.is_logged_in(): installGui.InstallOptions.tokenData[ 'username'] = current_user.get_name() installGui.InstallOptions.tokenData[ 'token'] = current_user.get_token() installGui.InstallOptions.tokenData[ 'api_key'] = current_user.get_api_key() logger.info("Showing installer") Installer = installGui.SyncSketchInstaller() Installer.showit() return Installer else: logger.info( "Installer Dismissed, will be activated in the next maya session again" ) else: logger.info("You are using the latest release of this package")
def login(self): token_data = self.page().qt_object.token_data if token_data: token_dict = json.loads(token_data) current_user = user.SyncSketchUser() current_user.set_name(token_dict["email"]) current_user.set_token(token_dict["token"]) current_user.set_api_key(token_dict["token"]) current_user.auto_login() #self.loggedIn.emit() logger.info("User: {} logged id".format(token_dict["email"])) self.update_login()
def __init__(self, parent, url='https://syncsketch.com/pro'): super(OpenPlayer, self).__init__(parent) self.parent = parent self.current_user = user.SyncSketchUser() self.setWindowTitle(self.window_label) self.setObjectName(self.window_name) self.setWindowFlags(QtCore.Qt.Window) self.load(QtCore.QUrl(url)) self.show() self.activateWindow() self._myBindingFunction() qt_utils.align_to_center(self, self.parent) self.setProperty('saveWindowPref', True)
def update_login_ui(self): ''' Updates the UI based on whether the user is logged in ''' self.current_user = user.SyncSketchUser() if self.current_user.is_logged_in() and is_connected(): logger.info("self.current_user.is_logged_in() {} is_connected() {} ".format(self.current_user.is_logged_in(),is_connected() )) username = self.current_user.get_name() self.ui.ui_login_label.setText("Logged into SyncSketch as \n%s" % username) self.ui.ui_login_label.setStyleSheet("color: white; font-size: 11px;") self.ui.login_pushButton.hide() self.ui.signup_pushButton.hide() self.ui.logout_pushButton.show() else: self.ui.ui_login_label.setText("You are not logged into SyncSketch") self.ui.ui_login_label.setStyleSheet("color: white; font-size: 11px;") self.ui.login_pushButton.show() self.ui.signup_pushButton.show() self.ui.logout_pushButton.hide()
def update_login_ui(self): #user Login self.currentUser = user.SyncSketchUser() if self.currentUser.is_logged_in() and is_connected(): username = self.currentUser.get_name() self.ui.ui_login_label.setText("Logged into SyncSketch as \n%s" % username) self.ui.ui_login_label.setStyleSheet( "color: white; font-size: 11px;") self.ui.login_pushButton.hide() self.ui.signup_pushButton.hide() self.ui.logout_pushButton.show() else: # self.ui.ui_login_label.setText("You're not logged in") # self.ui.logged_in_groupBox.hide() self.ui.ui_login_label.setText( "You are not logged into SyncSketch") self.ui.ui_login_label.setStyleSheet( "color: white; font-size: 11px;") self.ui.login_pushButton.show() self.ui.signup_pushButton.show() self.ui.logout_pushButton.hide()
def editingFinished(self): from syncsketchGUI.gui import parse_url_data text = self.ui.review_target_url.text() current_user = user.SyncSketchUser() if not current_user.is_logged_in(): logger.info( "You are not logged in, please use the syncsketchGUI to log in first" ) return cleanUrl = parse_url_data(text) media_id = cleanUrl.get('id') if media_id: self.media_id = media_id item = current_user.get_item_info(media_id) #todo : try except this part if user is not logged in thumb_url = item['objects'][0]['thumbnail_url'] self.ui.thumbnail_pushButton.set_icon_from_url(thumb_url) else: logger.info( "The URL is not accessible {} with id {} doesn't exist". format(text, media_id))
def __init__(self, parent): super(WebLoginWindow, self).__init__(parent) self.parent = parent self.current_user = user.SyncSketchUser() self.setMaximumSize(650, 600) self.setWindowTitle(self.window_label) self.setObjectName(self.window_name) self.setWindowFlags(QtCore.Qt.Window | QtCore.Qt.WindowStaysOnTopHint) self.load( QtCore.QUrl( "https://syncsketch.com/login/?next=/users/getToken/&simple=1") ) self.show() self.activateWindow() self._myBindingFunction() qt_utils.align_to_center(self, self.parent) self.setProperty('saveWindowPref', True)
def _upload(current_user=None, ): errorLog = None if not current_user: current_user = user.SyncSketchUser() username = current_user.get_name() upload_file = get_current_file() if not upload_file or not os.path.isfile(upload_file): return # Try to upload to the last uploaded address first selected_item = database.read_cache('treewidget_selection') logger.info("selected_item: {0}".format(selected_item)) # ToDo rename media_id to item_id item_type = database.read_cache('target_url_type') review_id = database.read_cache('target_review_id') item_id = database.read_cache('target_media_id') item_name = database.read_cache('target_url_item_name') # Upload To current_item = selected_item upload_to_value = item_name logger.info('Selected Item: %s' % item_name) last_recorded_data = database.read_cache('last_recorded') postData = { "first_frame": last_recorded_data['start_frame'], "last_frame": last_recorded_data['end_frame'], } if item_type == 'review': logger.info('Uploading {} to {} with review_id {}'.format( upload_file, upload_to_value, review_id)) uploaded_item = current_user.upload_media_to_review(review_id, upload_file, noConvertFlag=True, itemParentId=False, data=postData) #logger.info("uploaded_item: {0}".format(pformat(uploaded_item))) elif item_type == 'media': logger.info('Updating item {} with file {}'.format( upload_to_value, upload_file)) logger.info("item id %s" % item_id) logger.info("filepath %s" % upload_file) logger.info("Trying to upload %s to item_id %s, review %s" % (upload_file, item_id, review_id)) uploaded_item = current_user.upload_media_to_review( review_id, upload_file, noConvertFlag=True, itemParentId=item_id, data=postData) logger.info(pformat(uploaded_item)) else: uploaded_item = None errorLog = 'You cannot upload to %s "%s" directly.\nPlease select a review in the tree widget to upload to!\n' % ( item_type, item_name) if not uploaded_item: if not errorLog: errorLog = 'No Uploaded Item returned from Syncsketch' logger.info('ERROR: This Upload failed: %s' % (errorLog)) return # * this is an old call, that we should replace with an async worker review_data = current_user.get_review_data_from_id(review_id) review_url = review_data.get('reviewURL') #uploaded_media_url = '{}'.format(review_url) uploaded_media_url = '{}#{}'.format(review_url, uploaded_item['id']) logger.info("review_data: {}".format(review_data)) logger.info('Upload successful. Uploaded item {} to {}'.format( upload_file, uploaded_media_url)) if 'none' in uploaded_media_url.lower(): uploaded_media_url = "" uploaded_item['reviewURL'] = uploaded_media_url return uploaded_item
def _upload(current_user=None, ): errorLog = None if not current_user: current_user = user.SyncSketchUser() username = current_user.get_name() upload_file = get_current_file() if not upload_file or not os.path.isfile(upload_file): self.update_tooltip( 'WebM file cannot be sourced. Uploading the original file.', color='LightYellow') # Try to upload to the last uploaded address first selected_item = database.read_cache('treewidget_selection') # if not selected_item: # database.read_cache('target_review_id') # ToDo rename media_id to item_id item_type = database.read_cache('target_url_type') review_id = database.read_cache('target_review_id') item_id = database.read_cache('target_media_id') item_name = database.read_cache('target_url_item_name') # Upload To current_item = selected_item upload_to_value = str() if item_type == 'playground': upload_to_value = 'Playground(public)' else: upload_to_value = item_name print 'Selected Item: %s' % item_name time.sleep(WAIT_TIME) # Don't need to login if we're uploading to playground. # Treewidget item selection must be review type to upload. # If selection is other item type, warn the user. last_recorded_data = database.read_cache('last_recorded') postData = { "first_frame": last_recorded_data['start_frame'], "last_frame": last_recorded_data['end_frame'], } if item_type == 'playground': playground_email = database.get_playground_email() if not path.validate_email_address(playground_email): user_input = qt_widgets.InputDialog() if not user_input.response: return playground_email = user_input.response_text database.save_playground_email(playground_email) uploaded_item = user.upload_to_playground(upload_file, playground_email) elif item_type == 'review': print 'Uploading {} to {}'.format(upload_file, upload_to_value) uploaded_item = current_user.upload_media_to_review(review_id, upload_file, noConvertFlag=True, itemParentId=False, data=postData) import pprint pprint.pprint(uploaded_item) elif item_type == 'media': print 'Updating item {} with file {}'.format(upload_to_value, upload_file) print "item id %s" % item_id print "filepath %s" % upload_file print "Trying to upload %s to item_id %s, review %s" % ( upload_file, item_id, review_id) uploaded_item = current_user.upload_media_to_review( review_id, upload_file, noConvertFlag=True, itemParentId=item_id, data=postData) import pprint pprint.pprint(uploaded_item) else: uploaded_item = None errorLog = 'You cannot upload to %s "%s" directly.\nPlease select a review in the tree widget to upload to!\n' % ( item_type, item_name) if not uploaded_item: if not errorLog: errorLog = 'No Uploaded Item returned from Syncsketch' print 'ERROR: This Upload failed: %s' % (errorLog) return # try: review_data = current_user.get_review_data_from_id(review_id) review_url = review_data.get('reviewURL') uploaded_media_url = 'https://syncsketchGUI.com/sketch/{}#{}'.format( str(review_data.get('id')).rstrip('/'), uploaded_item['id']) print 'Upload successful. Uploaded item {} to {}'.format( upload_file, uploaded_media_url) # except: # uploaded_media_url = uploaded_item.get('reviewURL') if 'none' in uploaded_media_url.lower(): uploaded_media_url = str() if uploaded_media_url: uploaded_media_url.replace(path.playground_url, path.playground_display_url) uploaded_item['reviewURL'] = uploaded_media_url return uploaded_item