예제 #1
0
 def format_list_store_line_from_status(self, gid):
     s = self.aria2.tellStatus(gid)
     
     status = utils.convert_status_to_stock_id(s.get("status"))
     f = s.get("files")[0]
     name = os.path.basename(f.get("path")) if f.get("path") else "未知"
     length = float(f.get("length"))
     completedLength = float(f.get("completedLength"))
     progress = completedLength/length*100.0 if length!=0 else 0
     precent = "%.1f" % progress
     precent += "%"
     down_status = "%s/%s" % ("已完成" if length!=0 and completedLength==length else utils.bytes_to_human(completedLength),
         utils.bytes_to_human(length))
     down_speed = utils.bytes_to_human(s.get("downloadSpeed"))
     down_speed += "/s"
     return [status, name, progress, precent, down_status, down_speed]
예제 #2
0
    def initialize_upload(self, youtube, args, upfile):
        '''
        Begin a resumable video upload.
        '''
        tags = None

        if self.settings['keywords']:
            tags = self.settings['keywords'].split(',')

        # If we need to generate a dynamic title, do so now.
        if self.settings['dynamic_title']:
            title_vars = self.settings['title_vars'].split(',')
            items = [
                self.settings['metadata'][n] for n in title_vars
                if n in self.settings['metadata']
            ]
            title = self.settings['title_sep'].join(items)
        else:
            title = self.settings['title']

        if title == '':
            title = '(no title)'

        # Add the metadata tags to the description if needed.
        description = self.settings['description'].strip()
        if self.settings['add_metadata']:
            if description is not '':
                description += '\n'
            # Sort the list of metadata, so that items with linebreaks go last.
            metalist = [{
                key: self.settings['metadata'][key]
            } for key in self.settings['metadata']]
            metalist = sorted(metalist,
                              key=lambda x: '\n' in list(x.values())[0])
            for tag in metalist:
                for key in tag:
                    # Prevent pictures from being added to the description.
                    if 'APIC' in key:
                        continue
                    value = tag[key]
                    nice_key = self.tunetags.tag_lookup(key, True)
                    if '\n' in value:
                        description += '\n----\n%s: %s\n' % (nice_key, value)
                    else:
                        description += '\n%s: %s' % (nice_key, value)

        body = {
            'snippet': {
                'title': title,
                'description': description,
                'tags': tags,
                'categoryId': self.settings['category']
            },
            'status': {
                'privacyStatus': self.settings['privacy']
            }
        }

        # Call the API's videos.insert method to create and upload the video.
        insert_request = youtube.videos().insert(part=','.join(body.keys()),
                                                 body=body,
                                                 media_body=MediaFileUpload(
                                                     upfile,
                                                     chunksize=-1,
                                                     resumable=True))

        filesize = os.path.getsize(upfile)
        print('Uploading file... (filesize: %s)' % bytes_to_human(filesize))
        self.resumable_upload(insert_request)
예제 #3
0
 def __unicode__(self):
     return u'Quota(warning=%s, soft=%s, hard=%s)' % (_utils.bytes_to_human(
         self.warning_limit), _utils.bytes_to_human(
             self.soft_limit), _utils.bytes_to_human(self.hard_limit))
예제 #4
0
    def initialize_upload(self, youtube, args, upfile):
        '''
        Begin a resumable video upload.
        '''
        tags = None

        if self.settings['keywords']:
            tags = self.settings['keywords'].split(',')

        # If we need to generate a dynamic title, do so now.
        if self.settings['dynamic_title']:
            title_vars = self.settings['title_vars'].split(',')
            items = [self.settings['metadata'][n] for n in title_vars
                     if n in self.settings['metadata']]
            title = self.settings['title_sep'].join(items)
        else:
            title = self.settings['title']

        if title == '':
            title = '(no title)'

        # Add the metadata tags to the description if needed.
        description = self.settings['description'].strip()
        if self.settings['add_metadata']:
            if description is not '':
                description += '\n'
            # Sort the list of metadata, so that items with linebreaks go last.
            metalist = [{
                key: self.settings['metadata'][key]
            } for key in self.settings['metadata']]
            metalist = sorted(metalist, key=lambda x: '\n'
                              in list(x.values())[0])
            for tag in metalist:
                for key in tag:
                    value = tag[key]
                    nice_key = self.tunetags.tag_lookup(key, True)
                    if '\n' in value:
                        description += '\n----\n%s: %s\n' % (nice_key, value)
                    else:
                        description += '\n%s: %s' % (nice_key, value)

        body = {
            'snippet': {
                'title': title,
                'description': description,
                'tags': tags,
                'categoryId': self.settings['category']
            },
            'status': {
                'privacyStatus': self.settings['privacy']
            }
        }

        # Call the API's videos.insert method to create and upload the video.
        insert_request = youtube.videos().insert(
            part=','.join(body.keys()),
            body=body,
            media_body=MediaFileUpload(upfile, chunksize=-1, resumable=True)
        )

        filesize = os.path.getsize(upfile)
        print('Uploading file... (filesize: %s)' % bytes_to_human(filesize))
        self.resumable_upload(insert_request)
예제 #5
0
 def get_mem_header(self, config, data):
     return "%s:%s/%s" % (config.name, bytes_to_human(data[config.measure][-1]), bytes_to_human(self.total))