Esempio n. 1
0
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)
Esempio n. 2
0
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)
Esempio n. 3
0
    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'])
Esempio n. 4
0
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)
Esempio n. 5
0
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")
Esempio n. 6
0
    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()
Esempio n. 7
0
    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)
Esempio n. 8
0
 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()
Esempio n. 9
0
 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()
Esempio n. 10
0
    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))
Esempio n. 11
0
    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)
Esempio n. 12
0
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
Esempio n. 13
0
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