示例#1
0
 def size_readable(self,column,cell,model,iterador,user_data):
     """Generates human readable string for a number.
     Returns: A string form of the number using size abbreviations (KB, MB, etc.) """
     value = model.get_value(iterador, 4)
     resultado = readable.size(value)
     cell.set_property('text',resultado)
     return resultado
示例#2
0
    def get_mp_info(self, key):
        """ Retrieves a dictionary with the information of the MP
        with the given key

        Args:
            key (str): the MP identifier

        Returns:
            Dict {}: with the label of the info.glade dialog as key
                    and the content of the label as values.
        """
        mp = self.repository.get(key)

        data = set_manifest_json(mp)

        # General
        data['title_mp'] = data['title']
        del data['title']

        data['duration'] = readable.time((data['duration']) / 1000)
        data['size'] = readable.size(data['size'])
        data['created'] = readable.date(mp.getStartDateAsString(),
                                        "%B %d, %Y - %H:%M").replace(
                                            ' 0', ' ')

        if data.has_key('seriestitle'):
            data['isPartOf'] = data['seriestitle']

        # Operations
        for op, status in data['operations'].iteritems():
            data[op] = mediapackage.op_status[status]
        del data['operations']

        # Tracks
        tracks = []
        for track in data['media']['track']:
            t = {}
            t[_('Name:')] = track['id']
            t[_('Type:')] = track['mimetype']
            t[_('Flavor:')] = track['type']
            t[_('File:')] = path.split(track['url'])[1]
            tracks.append(t)
        if tracks:
            data['tracks'] = tracks
            del data['media']

        # Catalogs
        catalogs = []
        for catalog in data['metadata']['catalog']:
            c = {}
            c[_('Name:')] = catalog['id']
            c[_('Flavor:')] = catalog['type']
            c[_('Type:')] = catalog['mimetype']
            catalogs.append(c)
        if catalogs:
            data['catalogs'] = catalogs
            del data['metadata']

        return data
    def get_mp_info(self,key):
        """ Retrieves a dictionary with the information of the MP
        with the given key

        Args:
            key (str): the MP identifier

        Returns:
            Dict {}: with the label of the info.glade dialog as key
                    and the content of the label as values.
        """
        mp = self.repository.get(key)

        data = set_manifest_json(mp)

        # General
        data['title_mp'] = data['title']
        del data['title']

        data['duration'] = readable.time((data['duration'])/1000)
        data['size'] = readable.size(data['size'])
        data['created'] = readable.date(mp.getStartDateAsString(),
                                   "%B %d, %Y - %H:%M").replace(' 0',' ')

        if data.has_key('seriestitle'):
            data['isPartOf'] = data['seriestitle']

        # Operations
        for op,status in data['operations'].iteritems():
            data[op] = mediapackage.op_status[status]
        del data['operations']

        # Tracks
        tracks = []
        for track in data['media']['track']:
            t = {}
            t[_('Name:')] = track['id']
            t[_('Type:')] = track['mimetype']
            t[_('Flavor:')] = track['type']
            t[_('File:')] = path.split(track['url'])[1]
            tracks.append(t)
        if tracks:
            data['tracks'] = tracks
            del data['media']

        # Catalogs
        catalogs = []
        for catalog in data['metadata']['catalog']:
            c = {}
            c[_('Name:')] = catalog['id']
            c[_('Flavor:')] = catalog['type']
            c[_('Type:')] = catalog['mimetype']
            catalogs.append(c)
        if catalogs:
            data['catalogs'] = catalogs
            del data['metadata']

        return data
示例#4
0
    def check_status_area(self, origin, signal=None, other=None):
        """Updates the values on the recording tab"""
        s1 = self.gui.get_object("status1")
        s2 = self.gui.get_object("status2")
        s4 = self.gui.get_object("status4")

        freespace = self.repo.get_free_space()
        text_space = readable.size(freespace)

        s1.set_text(text_space)
        four_gb = 4000000000.0
        hours = int(freespace / four_gb)
        s2.set_text(_("{0} hours left").format(str(hours)))
        agent = self.conf.get_hostname()  # TODO just consult it once
        s4.set_text(agent)
示例#5
0
    def check_status_area(self, origin, signal=None, other=None):
        """Updates the values on the recording tab"""
        s1 = self.gui.get_object("status1")
        s2 = self.gui.get_object("status2")
        s4 = self.gui.get_object("status4")

        freespace = self.repo.get_free_space()
        text_space = readable.size(freespace)

        four_gb = 4000000000.0
        hours = int(freespace/four_gb)
        s1.set_text(_("{0} ({1} hours left)").format(text_space, str(hours)))
        s2.set_text(_("Idle"))
        agent = self.conf.get_hostname() # TODO just consult it once
        s4.set_text(agent)
示例#6
0
    def __init__(self, key, parent=None):
        if not parent:
            parent = context.get_mainwindow()
        size = context.get_mainwindow().get_size()
        self.wprop = size[0] / 1920.0
        self.hprop = size[1] / 1080.0
        width = int(size[0] / 3)
        height = int(size[1] / 2.5)

        gtk.Window.__init__(self)
        self.set_title("Mediapackage Info ")
        self.set_position(gtk.WIN_POS_CENTER_ALWAYS)
        self.set_default_size(width, height)
        self.set_modal(True)
        if parent:
            self.set_type_hint(gtk.gdk.WINDOW_TYPE_HINT_DIALOG)
            self.set_transient_for(parent)
            self.set_destroy_with_parent(True)

        # INFO
        mp = context.get_repository().get(key)

        # Basic info
        basic, basic_table = self.add_framed_table("Basic")
        self.add_data(basic_table, "Title:", mp.title)
        self.add_data(basic_table, "Identifier:", mp.identifier)
        self.add_data(basic_table, "Folder:", mp.getURI())
        self.add_data(basic_table, "Duration:",
                      readable.time(int(mp.getDuration()) / 1000))
        self.add_data(basic_table, "Size:", readable.size(mp.getSize()))
        self.add_data(
            basic_table, "Recorded on:",
            readable.date(mp.getStartDateAsString(),
                          "%B %d, %Y - %H:%M").replace(' 0', ' '))
        for parameter in mp.metadata_episode:
            if mp.metadata_episode[parameter] and parameter != 'title':
                self.add_data(basic_table, parameter.capitalize(),
                              mp.metadata_episode[parameter])

        # Operations info
        ops, ops_table = self.add_framed_table("Operations")
        self.add_data(ops_table, "Ingest:",
                      mediapackage.op_status[mp.getOpStatus("ingest")])
        self.add_data(ops_table, "Zipping:",
                      mediapackage.op_status[mp.getOpStatus("exporttozip")])
        self.add_data(ops_table, "Side by Side:",
                      mediapackage.op_status[mp.getOpStatus("sidebyside")])

        # Series info
        if mp.getSeries():
            series, series_table = self.add_framed_table("Series")
            for parameter in mp.metadata_series:
                self.add_data(series_table, parameter.capitalize(),
                              mp.metadata_series[parameter])

        # Track info
        tracks, track_table = self.add_framed_table("Tracks", True)
        first = True
        for track in mp.getTracks():
            if not first:
                self.add_data(track_table, "", "")
            first = False
            self.add_data(track_table, "Name:", track.getIdentifier())
            self.add_data(track_table, "Flavor:", track.getFlavor())
            self.add_data(track_table, "Type:", track.getMimeType())
            filename = str(path.split(track.getURI())[1])
            self.add_data(track_table, "File:", filename)

        # Catalog info
        cats, cat_table = self.add_framed_table("Catalogs", True)
        first = True
        for cat in mp.getCatalogs():
            if not first:
                self.add_data(cat_table, "", "")
            first = False
            self.add_data(cat_table, "Name:", cat.getIdentifier())
            self.add_data(cat_table, "Flavor:", cat.getFlavor())
            self.add_data(cat_table, "Type:", cat.getMimeType())
            filename = str(path.split(cat.getURI())[1])
            self.add_data(cat_table, "File:", filename)

        #PACKING
        box = gtk.VBox()
        box.pack_start(basic, False, True, int(self.hprop * 10))
        box.pack_start(ops, False, True, int(self.hprop * 10))
        if mp.getSeries():
            box.pack_start(series, False, True, int(self.hprop * 10))
        box.pack_start(tracks, False, True, int(self.hprop * 10))
        box.pack_start(cats, False, True, int(self.hprop * 10))
        external_align = gtk.Alignment(0.5, 0, 0.8, 0.8)
        external_align.add(box)

        self.add(external_align)

        #BUTTONS
        self.buttons = gtk.HButtonBox()
        self.buttons.set_layout(gtk.BUTTONBOX_SPREAD)

        self.add_button("Close", self.close)
        self.add_button("Open Folder", self.openfolder, mp.getURI())
        box.pack_end(self.buttons, False, False, int(self.hprop * 10))
        self.show_all()
示例#7
0
    def __init__(self, key, parent = None):
        if not parent:
            parent = context.get_mainwindow()
        size = context.get_mainwindow().get_size()
        self.wprop = size[0]/1920.0
        self.hprop = size[1]/1080.0
        width = int(size[0]/3)
        height = int(size[1]/2.5)
        
        gtk.Window.__init__(self)
        self.set_title(_("Mediapackage Info "))
        self.set_position(gtk.WIN_POS_CENTER_ALWAYS)
        self.set_default_size(width,height)
        self.set_modal(True)
        if parent:
            self.set_type_hint(gtk.gdk.WINDOW_TYPE_HINT_DIALOG)
            self.set_transient_for(parent)
            self.set_destroy_with_parent(True)

        # INFO       
	mp = context.get_repository().get(key)

        

        # Metadata info
        data = {}
        data['title'] = mp.title
        data['identifier'] = mp.identifier
        data['folder'] = mp.getURI()
        data['duration'] = readable.time(int(mp.getDuration())/1000)
        data['size'] = readable.size(mp.getSize())
        data['created'] = readable.date(mp.getStartDateAsString(),
                                   "%B %d, %Y - %H:%M").replace(' 0',' ')

        basic, basic_table = self.add_framed_table(_("Basic"))    
        for item in ORDER_EPISODES:
            if item in data:
                self.add_data(basic_table,EPISODE_NAMES[item], data[item])
            elif item in mp.metadata_episode:
                self.add_data(basic_table,EPISODE_NAMES[item], mp.metadata_episode[item])                

        # Operations info
        ops, ops_table = self.add_framed_table(_("Operations"))
        self.add_data(ops_table,_("Ingest:"),
                      mediapackage.op_status[mp.getOpStatus("ingest")])
        self.add_data(ops_table,_("Zipping:"),
                      mediapackage.op_status[mp.getOpStatus("exporttozip")])
        self.add_data(ops_table,_("Side by Side:"),
                      mediapackage.op_status[mp.getOpStatus("sidebyside")])

        
        # Series info
        if mp.getSeries():
            series, series_table = self.add_framed_table(_("Series"))
            for item in ORDER_SERIES:
                if item in mp.metadata_series:
                    self.add_data(series_table,SERIES_NAMES[item], mp.metadata_series[item])

        # Track info
        tracks, track_table = self.add_framed_table(_("Tracks"), True)
        first = True
        for track in mp.getTracks():
            if not first:
                self.add_data(track_table,"","")
            first = False
            self.add_data(track_table,_("Name:"),track.getIdentifier())
            self.add_data(track_table,_("Flavor:"),track.getFlavor())
            self.add_data(track_table,_("Type:"),track.getMimeType())
            filename = str(path.split(track.getURI())[1])
            self.add_data(track_table,_("File:"),filename)

        # Catalog info
        cats, cat_table = self.add_framed_table(_("Catalogs"), True)
        first = True
        for cat in mp.getCatalogs():
            if not first:
                self.add_data(cat_table,"","")
            first = False
            self.add_data(cat_table,_("Name:"),cat.getIdentifier())
            self.add_data(cat_table,_("Flavor:"),cat.getFlavor())
            self.add_data(cat_table,_("Type:"),cat.getMimeType())
            filename = str(path.split(cat.getURI())[1])
            self.add_data(cat_table,_("File:"),filename)

        #PACKING
        box = gtk.VBox()
        box.pack_start(basic,False,True,int(self.hprop*10))
        box.pack_start(ops,False,True,int(self.hprop*10))
        if mp.getSeries():
            box.pack_start(series,False,True,int(self.hprop*10))
        box.pack_start(tracks,False,True,int(self.hprop*10))
        box.pack_start(cats,False,True,int(self.hprop*10))
        external_align=gtk.Alignment(0.5,0,0.8,0.8)
        external_align.add(box)

        self.add(external_align)

        #BUTTONS
        self.buttons = gtk.HButtonBox()
        self.buttons.set_layout(gtk.BUTTONBOX_SPREAD)

        self.add_button(_("Close"), self.close)
        self.add_button(_("Open Folder"), self.openfolder, mp.getURI())
        box.pack_end(self.buttons, False, False, int(self.hprop*10))
        self.show_all()
示例#8
0
 def size_readable(self, column, cell, model, iterador, user_data):
     """Generates human readable string for a number.
     Returns: A string form of the number using size abbreviations (KB, MB, etc.) """
     resultado = readable.size(cell.get_property('text'))
     cell.set_property('text', resultado)
     return resultado
示例#9
0
 def size_readable(self, column, cell, model, iterator, index):
     """Generates human readable string for a number.
     Returns: A string form of the number using size abbreviations (KB, MB, etc.) """
     value = readable.size(model.get_value(iterator, index))
     cell.set_property('text', value)
示例#10
0
 def test_size(self):
     self.assertEqual(readable.size(1099511627776), '1.0 TB')
     self.assertEqual(readable.size(1073741824), '1.0 GB')
     self.assertEqual(readable.size(1048576), '1.0 MB')
     self.assertEqual(readable.size(2048), '2.0 KB')
     self.assertEqual(readable.size(1000000), '976.56 KB')
示例#11
0
 def size_readable(self, column, cell, model, iterator, index):
     """Generates human readable string for a number.
     Returns: A string form of the number using size abbreviations (KB, MB, etc.) """
     value = readable.size(model.get_value(iterator, index))
     cell.set_property('text', value)
 def test_size(self):
     self.assertEqual(readable.size(1099511627776), '1.0 TB')
     self.assertEqual(readable.size(1073741824), '1.0 GB')
     self.assertEqual(readable.size(1048576), '1.0 MB')
     self.assertEqual(readable.size(2048), '2.0 KB')
     self.assertEqual(readable.size(1000000), '976.56 KB')