예제 #1
0
    def cargar_lista(self, widget, indice):
        _dict = {
            0: os.path.join(get_data_directory(), 'JAMediaRadio.JAMedia'),
            1: os.path.join(get_data_directory(), 'JAMediaTV.JAMedia'),
            2: os.path.join(get_data_directory(), 'MisRadios.JAMedia'),
            3: os.path.join(get_data_directory(), 'MisTvs.JAMedia'),
            4: os.path.join(get_data_directory(), 'JAMediaWebCams.JAMedia'),
            5: get_my_files_directory(),
            6: get_tube_directory(),
            7: get_audio_directory(),
            8: get_video_directory(),
        }

        ocultar(self.toolbar.boton_agregar)
        if indice == 0:
            self.__seleccionar_lista_de_stream(_dict[0], "JAM-Radio")

        elif indice == 1:
            self.__seleccionar_lista_de_stream(_dict[1], "JAM-TV")

        elif indice == 2:
            self.__seleccionar_lista_de_stream(_dict[2], "Radios")
            mostrar(self.toolbar.boton_agregar)

        elif indice == 3:
            self.__seleccionar_lista_de_stream(_dict[3], "TVs")
            mostrar(self.toolbar.boton_agregar)

        elif indice == 4:
            self.__seleccionar_lista_de_stream(_dict[4], "WebCams")

        elif indice == 5:
            self.__seleccionar_lista_de_archivos(_dict[indice], "Archivos")

        elif indice == 6:
            self.__seleccionar_lista_de_archivos(_dict[indice], "JAM-Tube")

        elif indice == 7:
            self.__seleccionar_lista_de_archivos(_dict[indice], "JAM-Audio")

        elif indice == 8:
            self.__seleccionar_lista_de_archivos(_dict[indice], "JAM-Video")

        elif indice == 9:
            selector = My_FileChooser(parent=self.get_toplevel(),
                                      filter_type=[],
                                      action=gtk.FILE_CHOOSER_ACTION_OPEN,
                                      mime=self.mime,
                                      title="Abrir Archivos",
                                      path=self.directorio)

            selector.connect('load-files', self.__load_files, "Archivos")
            selector.run()

            if selector:
                selector.destroy()
예제 #2
0
    def __eliminar_video(self, widget):

        from Globales import get_data_directory
        import shelve

        dict_tube = shelve.open(
            os.path.join(get_data_directory(),
            "List.tube"))

        if len(dict_tube[self.listas.valor_select].keys()) == 1:
            modelo, iter = self.listas.treeselection.get_selected()
            path = modelo.get_path(iter)
            self.__eliminar(self.listas, path)

        else:
            videos = {}
            for id in dict_tube[self.listas.valor_select].keys():
                if id != widget.videodict["id"]:
                    videos[id] = dict_tube[self.listas.valor_select][id]

            dict_tube[self.listas.valor_select] = videos

            widget.destroy()
            self.label.set_text("%s Videos Listados." % len(
                self.videos.get_children()[0].get_children()))

        dict_tube.close()
예제 #3
0
    def __select_list(self, widget, valor):
        """
        Cuando se selecciona una lista, se cargan
        los videos que contiene en self.videos.
        """

        self.actualizando = True

        self.panel.set_sensitive(False)

        for child in self.videos.get_children():
            self.videos.remove(child)
            child.destroy()

        new_box = Gtk.Box(orientation=Gtk.Orientation.VERTICAL)
        new_box.show_all()
        self.videos.pack_start(
            new_box,
            True, True, 0)

        from Globales import get_data_directory
        import shelve

        dict_tube = shelve.open(
            os.path.join(get_data_directory(),
            "List.tube"))

        videos = []
        for item in dict_tube[valor].keys():
            videos.append(dict_tube[valor][item])

        dict_tube.close()

        GLib.idle_add(self.__add_videos, videos)
예제 #4
0
 def __get_menu(self, widget):
     """
     El menu con las listas de videos almacenadas en archivos shelve.
     """
     dict_tube = shelve.open(os.path.join(get_data_directory(),
         "List.tube"))
     keys = dict_tube.keys()
     dict_tube.close()
     if keys:
         self.emit("menu_activo")
         menu = gtk.Menu()
         administrar = gtk.MenuItem('Administrar')
         administrar.connect_object("activate", self.__administrar, None)
         cargar = gtk.MenuItem('Cargar')
         menu.append(administrar)
         menu.append(cargar)
         menu_listas = gtk.Menu()
         cargar.set_submenu(menu_listas)
         for key in keys:
             item = gtk.MenuItem(key)
             menu_listas.append(item)
             item.connect_object("activate", self.__emit_abrir, key)
         menu.show_all()
         menu.attach_to_widget(widget, self.__null)
         gtk.Menu.popup(menu, None, None, None, 1, 0)
예제 #5
0
    def __eliminar(self, widget, path):
        """
        Elimina una lista del archivo shelve.
        """

        if self.actualizando:
            return

        for child in self.videos.get_children():
            self.videos.remove(child)
            child.destroy()

        new_box = gtk.VBox()
        new_box.show_all()
        self.videos.pack_start(
            new_box,
            True, True, 0)

        iter = widget.get_model().get_iter(path)
        key = widget.get_model().get_value(iter, 2)

        from Globales import get_data_directory
        import shelve

        dict_tube = shelve.open(
            os.path.join(get_data_directory(),
            "List.tube"))

        del(dict_tube[key])

        keys = dict_tube.keys()

        dict_tube.close()

        widget.get_model().remove(iter)

        if not keys:
            dialog = gtk.Dialog(
                parent=self.get_toplevel(),
                #flags=gtk.DialogFlags.MODAL,
                title="",
                buttons=("OK", gtk.RESPONSE_ACCEPT))

            dialog.set_border_width(15)
            dialog.set_decorated(False)
            dialog.modify_bg(gtk.STATE_NORMAL, get_colors("window"))

            label = gtk.Label("Todas las Listas han sido Eliminadas.")
            dialog.vbox.pack_start(label, True, True, 0)
            dialog.vbox.show_all()

            dialog.run()

            dialog.destroy()

            self.destroy()
예제 #6
0
    def __eliminar(self, widget, path):
        """
        Elimina una lista del archivo shelve.
        """

        if self.actualizando:
            return

        for child in self.videos.get_children():
            self.videos.remove(child)
            child.destroy()

        new_box = Gtk.Box(orientation=Gtk.Orientation.VERTICAL)
        new_box.show_all()
        self.videos.pack_start(
            new_box,
            True, True, 0)

        iter = widget.get_model().get_iter(path)
        key = widget.get_model().get_value(iter, 2)

        from Globales import get_data_directory
        import shelve

        dict_tube = shelve.open(
            os.path.join(get_data_directory(),
            "List.tube"))

        del(dict_tube[key])

        keys = dict_tube.keys()

        dict_tube.close()

        widget.get_model().remove(iter)

        if not keys:
            dialog = Gtk.Dialog(
                parent=self.get_toplevel(),
                flags=Gtk.DialogFlags.MODAL,
                buttons=["OK", Gtk.ResponseType.ACCEPT])

            dialog.set_border_width(15)

            label = Gtk.Label("Todas las Listas han sido Eliminadas.")
            dialog.vbox.pack_start(label, True, True, 0)
            dialog.vbox.show_all()

            dialog.run()

            dialog.destroy()

            self.destroy()
예제 #7
0
 def __do_realize(self, widget):
     """
     Carga la lista de Albums de Descargas en self.listas.
     """
     dict_tube = shelve.open(os.path.join(get_data_directory(),
         "List.tube"))
     keys = dict_tube.keys()
     dict_tube.close()
     lista = []
     for key in keys:
         lista.append([key, key])
     self.listas.agregar_items(lista)
예제 #8
0
 def __abrir_lista_shelve(self, widget, key):
     """
     Agrega a la lista, los videos almacenados en un archivo shelve.
     """
     dict_tube = shelve.open(os.path.join(get_data_directory(),
         "List.tube"))
     _dict = dict_tube.get(key, [])
     dict_tube.close()
     videos = []
     for item in _dict.keys():
         videos.append(_dict[item])
     self.emit('open_shelve_list', videos, widget)
예제 #9
0
 def __abrir_lista_shelve(self, widget, key):
     """
     Agrega a la lista, los videos almacenados en un archivo shelve.
     """
     dict_tube = shelve.open(os.path.join(get_data_directory(),
                                          "List.tube"))
     _dict = dict_tube.get(key, [])
     dict_tube.close()
     videos = []
     for item in _dict.keys():
         videos.append(_dict[item])
     self.emit('open_shelve_list', videos, widget)
예제 #10
0
    def __load_lista(self, widget=None):
        """
        Carga La Lista de Radios.
        """

        from Globales import set_listas_default
        from Globales import get_data_directory
        from Globales import get_streamings

        set_listas_default()

        archivo = os.path.join(get_data_directory(), 'JAMediaRadio.JAMedia')

        items = get_streamings(archivo)
        self.lista.limpiar()
        self.lista.agregar_items(items)
예제 #11
0
    def __eliminar(self, widget, path):
        """
        Elimina una lista del archivo shelve.
        """

        if self.actualizando:
            return

        for child in self.videos.get_children():
            self.videos.remove(child)
            child.destroy()

        new_box = gtk.VBox()
        new_box.show_all()
        self.videos.pack_start(new_box, True, True, 0)

        _iter = widget.get_model().get_iter(path)
        key = widget.get_model().get_value(_iter, 2)

        from Globales import get_data_directory
        import shelve

        dict_tube = shelve.open(os.path.join(get_data_directory(),
                                             "List.tube"))
        del (dict_tube[key])
        keys = dict_tube.keys()
        dict_tube.close()
        widget.get_model().remove(_iter)

        if not keys:
            dialog = gtk.Dialog(parent=self.get_toplevel(),
                                title="",
                                buttons=("OK", gtk.RESPONSE_ACCEPT))

            dialog.set_border_width(15)
            dialog.set_decorated(False)
            dialog.modify_bg(gtk.STATE_NORMAL, get_colors("window"))

            label = gtk.Label("Todas las Listas han sido Eliminadas.")
            dialog.vbox.pack_start(label, True, True, 0)
            dialog.vbox.show_all()

            dialog.run()
            dialog.destroy()
            self.destroy()
예제 #12
0
    def __load_lista(self, widget=None):
        """
        Carga La Lista de Radios.
        """

        from Globales import set_listas_default
        from Globales import get_data_directory
        from Globales import get_streamings

        set_listas_default()

        archivo = os.path.join(
            get_data_directory(),
            'JAMediaRadio.JAMedia')

        items = get_streamings(archivo)
        self.lista.limpiar()
        self.lista.agregar_items(items)
예제 #13
0
 def cargar_lista(self, widget, indice):
     data = get_data_directory()
     _dict = {
         0: os.path.join(data, 'JAMediaRadio.JAMedia'),
         1: os.path.join(data, 'JAMediaTV.JAMedia'),
         2: os.path.join(data, 'MisRadios.JAMedia'),
         3: os.path.join(data, 'MisTvs.JAMedia'),
         4: os.path.join(data, 'JAMediaWebCams.JAMedia'),
         5: get_my_files_directory(),
         6: get_tube_directory(),
         7: get_audio_directory(),
         8: get_video_directory(),
         }
     ocultar(self.toolbar.boton_agregar)
     if indice == 0:
         self.__seleccionar_lista_de_stream(_dict[0], "JAM-Radio")
     elif indice == 1:
         self.__seleccionar_lista_de_stream(_dict[1], "JAM-TV")
     elif indice == 2:
         self.__seleccionar_lista_de_stream(_dict[2], "Radios")
         mostrar(self.toolbar.boton_agregar)
     elif indice == 3:
         self.__seleccionar_lista_de_stream(_dict[3], "TVs")
         mostrar(self.toolbar.boton_agregar)
     elif indice == 4:
         self.__seleccionar_lista_de_stream(_dict[4], "WebCams")
     elif indice == 5:
         self.__seleccionar_lista_de_archivos(_dict[indice], "Archivos")
     elif indice == 6:
         self.__seleccionar_lista_de_archivos(_dict[indice], "JAM-Tube")
     elif indice == 7:
         self.__seleccionar_lista_de_archivos(_dict[indice], "JAM-Audio")
     elif indice == 8:
         self.__seleccionar_lista_de_archivos(_dict[indice], "JAM-Video")
     elif indice == 9:
         selector = My_FileChooser(parent=self.get_toplevel(),
             filter_type=[], action=gtk.FILE_CHOOSER_ACTION_OPEN,
             mime=self.mime, title="Abrir Archivos", path=self.directorio)
         selector.connect('load-files', self.__load_files, "Archivos")
         selector.run()
         if selector:
             selector.destroy()
예제 #14
0
    def __get_menu(self, widget):
        """
        El menu con las listas de videos
        almacenadas en archivos shelve.
        """

        from Globales import get_data_directory
        import shelve

        dict_tube = shelve.open(
            os.path.join(get_data_directory(),
            "List.tube"))

        keys = dict_tube.keys()

        dict_tube.close()

        if keys:
            self.emit("menu_activo")

            menu = Gtk.Menu()

            administrar = Gtk.MenuItem('Administrar')
            administrar.connect_object("activate", self.__administrar, None)
            cargar = Gtk.MenuItem('Cargar')

            menu.append(administrar)
            menu.append(cargar)

            menu_listas = Gtk.Menu()

            cargar.set_submenu(menu_listas)

            for key in keys:
                item = Gtk.MenuItem(key)
                menu_listas.append(item)
                item.connect_object("activate", self.__emit_abrir, key)

            menu.show_all()
            menu.attach_to_widget(widget, self.__null)
            menu.popup(None, None, None, None, 1, 0)
예제 #15
0
    def __guardar_lista_shelve(self, widget, key_name):
        """
        Guarda todos los videos de la lista bajo la key según key_name.
        """

        origen = False

        if widget == self.toolbar_guardar_encontrados:
            origen = self.encontrados

        elif widget == self.toolbar_guardar_descargar:
            origen = self.descargar

        videos = []
        if origen:
            video_items = origen.get_children()

            if video_items:
                for video in video_items:
                    videos.append(video.videodict)

        if videos:
            from Globales import get_data_directory
            import shelve

            dict_tube = shelve.open(
                os.path.join(get_data_directory(), "List.tube"))

            dict = {}
            for elemento in videos:
                dict[elemento["id"]] = elemento

            ### Alerta de Sobre Escritura.
            if key_name in dict_tube.keys():
                dialog = Gtk.Dialog(parent=self.get_toplevel(),
                                    flags=Gtk.DialogFlags.MODAL,
                                    buttons=[
                                        "Suplantar", Gtk.ResponseType.ACCEPT,
                                        "Cancelar", Gtk.ResponseType.CANCEL
                                    ])

                dialog.set_border_width(15)

                text = "Ya Existe un Album de Búsquedas con Este Nombre.\n"
                text = "%s%s" % (text, "¿Deseas Suplantarlo?")
                label = Gtk.Label(text)
                dialog.vbox.pack_start(label, True, True, 0)
                dialog.vbox.show_all()

                response = dialog.run()

                dialog.destroy()

                if response == Gtk.ResponseType.CANCEL:
                    dict_tube.close()
                    return

            dict_tube[key_name] = dict

            dict_tube.close()

            dialog = Gtk.Dialog(parent=self.get_toplevel(),
                                flags=Gtk.DialogFlags.MODAL,
                                buttons=["OK", Gtk.ResponseType.ACCEPT])

            dialog.set_border_width(15)

            label = Gtk.Label("Videos Almacenados.")
            dialog.vbox.pack_start(label, True, True, 0)
            dialog.vbox.show_all()

            dialog.run()

            dialog.destroy()
예제 #16
0
    def __init__(self, widget, boton, pos, tiempo, path, modelo):

        Gtk.Menu.__init__(self)

        iter = modelo.get_iter(path)
        uri = modelo.get_value(iter, 2)

        quitar = Gtk.MenuItem("Quitar de la Lista")
        self.append(quitar)
        quitar.connect_object("activate", self.__set_accion,
            widget, path, "Quitar")

        from Globales import describe_acceso_uri
        from Globales import get_my_files_directory
        from Globales import get_data_directory
        from Globales import stream_en_archivo

        if describe_acceso_uri(uri):
            lectura, escritura, ejecucion = describe_acceso_uri(uri)

            if lectura and os.path.dirname(uri) != get_my_files_directory():
                copiar = Gtk.MenuItem("Copiar a JAMedia")
                self.append(copiar)
                copiar.connect_object("activate", self.__set_accion,
                    widget, path, "Copiar")

            if escritura and os.path.dirname(uri) != get_my_files_directory():
                mover = Gtk.MenuItem("Mover a JAMedia")
                self.append(mover)
                mover.connect_object("activate", self.__set_accion,
                    widget, path, "Mover")

            if escritura:
                borrar = Gtk.MenuItem("Borrar el Archivo")
                self.append(borrar)
                borrar.connect_object("activate", self.__set_accion,
                    widget, path, "Borrar")

        else:
            borrar = Gtk.MenuItem("Borrar Streaming")
            self.append(borrar)
            borrar.connect_object("activate", self.__set_accion,
                widget, path, "Borrar")

            listas = [
                os.path.join(get_data_directory(), "JAMediaTV.JAMedia"),
                os.path.join(get_data_directory(), "JAMediaRadio.JAMedia"),
                os.path.join(get_data_directory(), "MisRadios.JAMedia"),
                os.path.join(get_data_directory(), "MisTvs.JAMedia")
                ]

            if (stream_en_archivo(uri, listas[0]) and \
                not stream_en_archivo(uri, listas[3])) or \
                (stream_en_archivo(uri, listas[1]) and \
                not stream_en_archivo(uri, listas[2])):

                copiar = Gtk.MenuItem("Copiar a JAMedia")
                self.append(copiar)
                copiar.connect_object("activate", self.__set_accion,
                    widget, path, "Copiar")

                mover = Gtk.MenuItem("Mover a JAMedia")
                self.append(mover)
                mover.connect_object("activate", self.__set_accion,
                    widget, path, "Mover")

            grabar = Gtk.MenuItem("Grabar")
            self.append(grabar)
            grabar.connect_object("activate", self.__set_accion,
                widget, path, "Grabar")

        self.show_all()
        self.attach_to_widget(widget, self.__null)
예제 #17
0
    def __cargar_lista(self, widget, indice):
        """
        Recibe el indice seleccionado en el menu de toolbarlist y
        carga la lista correspondiente.

        Esto es solo para JAMedia no embebido ya que cuando JAMedia
        esta embebida, no posee la toolbarlist.
        """

        model, iter = self.lista_de_reproduccion.get_selection().get_selected()
        ultimopath = False

        if model and iter:
            valor = model.get_value(iter, 2)

            if valor:
                from Globales import describe_uri

                descripcion = describe_uri(valor)

                if descripcion:
                    if descripcion[2]:
                        ultimopath = valor

        map(self.__ocultar, [
            self.toolbar_accion,
            self.toolbaraddstream])

        self.toolbar_list.boton_agregar.hide()

        from Globales import get_data_directory
        from Globales import get_my_files_directory
        from Globales import get_tube_directory
        from Globales import get_audio_directory
        from Globales import get_video_directory

        if indice == 0:
            archivo = os.path.join(
                get_data_directory(),
                'JAMediaRadio.JAMedia')

            self.__seleccionar_lista_de_stream(archivo, "JAM-Radio")

        elif indice == 1:
            # HACK: Tv no funciona con JAMediaReproductor.
            #if self.player == self.jamediareproductor:
            #    self.switch_reproductor(None, "MplayerReproductor")

            archivo = os.path.join(
                get_data_directory(),
                'JAMediaTV.JAMedia')

            self.__seleccionar_lista_de_stream(archivo, "JAM-TV")

        elif indice == 2:
            archivo = os.path.join(
                get_data_directory(),
                'MisRadios.JAMedia')

            self.__seleccionar_lista_de_stream(archivo, "Radios")
            self.toolbar_list.boton_agregar.show()

        elif indice == 3:
            # HACK: Tv no funciona con JAMediaReproductor.
            #if self.player == self.jamediareproductor:
            #    self.switch_reproductor(None, "MplayerReproductor")

            archivo = os.path.join(
                get_data_directory(),
                'MisTvs.JAMedia')

            self.__seleccionar_lista_de_stream(archivo, "TVs")
            self.toolbar_list.boton_agregar.show()

        elif indice == 4:
            # HACK: Tv no funciona con JAMediaReproductor.
            #if self.player == self.jamediareproductor:
            #    self.switch_reproductor(None, "MplayerReproductor")

            archivo = os.path.join(
                get_data_directory(),
                'JAMediaWebCams.JAMedia')

            self.__seleccionar_lista_de_stream(archivo, "WebCams")
            #self.toolbar_list.boton_agregar.show()

        elif indice == 5:
            self.__seleccionar_lista_de_archivos(
                get_my_files_directory(),
                "Archivos")

        elif indice == 6:
            self.__seleccionar_lista_de_archivos(
                get_tube_directory(),
                "JAM-Tube")

        elif indice == 7:
            self.__seleccionar_lista_de_archivos(
                get_audio_directory(),
                "JAM-Audio")

        elif indice == 8:
            self.__seleccionar_lista_de_archivos(
                get_video_directory(),
                "JAM-Video")

        elif indice == 9:
            from Widgets import My_FileChooser

            directorio = None

            if ultimopath:
                directorio = "file://%s" % os.path.dirname(ultimopath)

            selector = My_FileChooser(
                parent=self.get_toplevel(),
                action=Gtk.FileChooserAction.OPEN,
                mime=["audio/*", "video/*"],
                title="Abrir Archivos.",
                path=directorio,
                filter=[])

            selector.connect(
                'archivos-seleccionados', self.__cargar_directorio)

            selector.run()

            if selector:
                selector.destroy()
예제 #18
0
    def __init__(self, widget, boton, pos, tiempo, path, modelo):

        gtk.Menu.__init__(self)

        _iter = modelo.get_iter(path)
        uri = modelo.get_value(_iter, 2)

        quitar = gtk.MenuItem("Quitar de la Lista")
        self.append(quitar)
        quitar.connect_object("activate", self.__emit_accion,
            widget, path, "Quitar")

        my_files_directory = get_my_files_directory()

        if describe_acceso_uri(uri):
            lectura, escritura, ejecucion = describe_acceso_uri(uri)
            if lectura and os.path.dirname(uri) != my_files_directory:
                copiar = gtk.MenuItem("Copiar a JAMedia")
                self.append(copiar)
                copiar.connect_object("activate", self.__emit_accion,
                    widget, path, "Copiar")
            if escritura and os.path.dirname(uri) != my_files_directory:
                mover = gtk.MenuItem("Mover a JAMedia")
                self.append(mover)
                mover.connect_object("activate", self.__emit_accion,
                    widget, path, "Mover")
            if escritura:
                borrar = gtk.MenuItem("Borrar el Archivo")
                self.append(borrar)
                borrar.connect_object("activate", self.__emit_accion,
                    widget, path, "Borrar")
            #tipo = describe_archivo(uri)
            #if "audio" in tipo or "video" in tipo or
            # "application/ogg" in tipo:
            #    editar = gtk.MenuItem("Editar o Convertir Archivo")
            #    self.append(editar)
            #    editar.connect_object("activate", self.__emit_accion,
            #        widget, path, "Editar")
        else:
            borrar = gtk.MenuItem("Borrar Streaming")
            self.append(borrar)
            borrar.connect_object("activate", self.__emit_accion,
                widget, path, "Borrar")
            listas = [
                os.path.join(get_data_directory(), "JAMediaTV.JAMedia"),
                os.path.join(get_data_directory(), "JAMediaRadio.JAMedia"),
                os.path.join(get_data_directory(), "MisRadios.JAMedia"),
                os.path.join(get_data_directory(), "MisTvs.JAMedia"),
                os.path.join(get_data_directory(), "JAMediaWebCams.JAMedia"),
                ]
            jtv = stream_en_archivo(uri, listas[0])
            jr = stream_en_archivo(uri, listas[1])
            r = stream_en_archivo(uri, listas[2])
            tv = stream_en_archivo(uri, listas[3])
            #webcam = stream_en_archivo(uri, listas[4])

            if (jtv and not tv) or (jr and not r):
                copiar = gtk.MenuItem("Copiar a JAMedia")
                self.append(copiar)
                copiar.connect_object("activate", self.__emit_accion,
                    widget, path, "Copiar")
                mover = gtk.MenuItem("Mover a JAMedia")
                self.append(mover)
                mover.connect_object("activate", self.__emit_accion,
                    widget, path, "Mover")

            grabar = gtk.MenuItem("Grabar")
            self.append(grabar)
            grabar.connect_object("activate", self.__emit_accion,
                widget, path, "Grabar")

        self.show_all()
        self.attach_to_widget(widget, self.__null)
예제 #19
0
    def __init__(self, widget, boton, pos, tiempo, path, modelo):

        gtk.Menu.__init__(self)

        _iter = modelo.get_iter(path)
        uri = modelo.get_value(_iter, 2)

        quitar = gtk.MenuItem("Quitar de la Lista")
        self.append(quitar)
        quitar.connect_object("activate", self.__emit_accion, widget, path,
                              "Quitar")

        my_files_directory = get_my_files_directory()

        if describe_acceso_uri(uri):
            lectura, escritura, ejecucion = describe_acceso_uri(uri)

            if lectura and os.path.dirname(uri) != my_files_directory:
                copiar = gtk.MenuItem("Copiar a JAMedia")
                self.append(copiar)
                copiar.connect_object("activate", self.__emit_accion, widget,
                                      path, "Copiar")

            if escritura and os.path.dirname(uri) != my_files_directory:
                mover = gtk.MenuItem("Mover a JAMedia")
                self.append(mover)
                mover.connect_object("activate", self.__emit_accion, widget,
                                     path, "Mover")

            if escritura:
                borrar = gtk.MenuItem("Borrar el Archivo")
                self.append(borrar)
                borrar.connect_object("activate", self.__emit_accion, widget,
                                      path, "Borrar")

            #tipo = describe_archivo(uri)
            #if "audio" in tipo or "video" in tipo or "application/ogg" in tipo:
            #    editar = gtk.MenuItem("Editar o Convertir Archivo")
            #    self.append(editar)
            #    editar.connect_object("activate", self.__emit_accion,
            #        widget, path, "Editar")

        else:
            borrar = gtk.MenuItem("Borrar Streaming")
            self.append(borrar)
            borrar.connect_object("activate", self.__emit_accion, widget, path,
                                  "Borrar")

            listas = [
                os.path.join(get_data_directory(), "JAMediaTV.JAMedia"),
                os.path.join(get_data_directory(), "JAMediaRadio.JAMedia"),
                os.path.join(get_data_directory(), "MisRadios.JAMedia"),
                os.path.join(get_data_directory(), "MisTvs.JAMedia"),
                os.path.join(get_data_directory(), "JAMediaWebCams.JAMedia"),
            ]

            jtv = stream_en_archivo(uri, listas[0])
            jr = stream_en_archivo(uri, listas[1])
            r = stream_en_archivo(uri, listas[2])
            tv = stream_en_archivo(uri, listas[3])
            webcam = stream_en_archivo(uri, listas[4])

            if (jtv and not tv) or (jr and not r):
                copiar = gtk.MenuItem("Copiar a JAMedia")
                self.append(copiar)
                copiar.connect_object("activate", self.__emit_accion, widget,
                                      path, "Copiar")

                mover = gtk.MenuItem("Mover a JAMedia")
                self.append(mover)
                mover.connect_object("activate", self.__emit_accion, widget,
                                     path, "Mover")

            grabar = gtk.MenuItem("Grabar")
            self.append(grabar)
            grabar.connect_object("activate", self.__emit_accion, widget, path,
                                  "Grabar")

        self.show_all()
        self.attach_to_widget(widget, self.__null)
예제 #20
0
    def __cargar_lista(self, widget, indice):
        """
        Recibe el indice seleccionado en el menu de toolbarlist y
        carga la lista correspondiente.

        Esto es solo para JAMedia no embebido ya que cuando JAMedia
        esta embebida, no posee la toolbarlist.
        """

        model, iter = self.lista_de_reproduccion.get_selection().get_selected()
        ultimopath = False

        if model and iter:
            valor = model.get_value(iter, 2)

            if valor:
                from Globales import describe_uri

                descripcion = describe_uri(valor)

                if descripcion:
                    if descripcion[2]:
                        ultimopath = valor

        map(self.__ocultar, [self.toolbar_accion, self.toolbaraddstream])

        self.toolbar_list.boton_agregar.hide()

        from Globales import get_data_directory
        from Globales import get_my_files_directory
        from Globales import get_tube_directory
        from Globales import get_audio_directory
        from Globales import get_video_directory

        if indice == 0:
            archivo = os.path.join(get_data_directory(),
                                   'JAMediaRadio.JAMedia')

            self.__seleccionar_lista_de_stream(archivo, "JAM-Radio")

        elif indice == 1:
            # HACK: Tv no funciona con JAMediaReproductor.
            #if self.player == self.jamediareproductor:
            #    self.switch_reproductor(None, "MplayerReproductor")

            archivo = os.path.join(get_data_directory(), 'JAMediaTV.JAMedia')

            self.__seleccionar_lista_de_stream(archivo, "JAM-TV")

        elif indice == 2:
            archivo = os.path.join(get_data_directory(), 'MisRadios.JAMedia')

            self.__seleccionar_lista_de_stream(archivo, "Radios")
            self.toolbar_list.boton_agregar.show()

        elif indice == 3:
            # HACK: Tv no funciona con JAMediaReproductor.
            #if self.player == self.jamediareproductor:
            #    self.switch_reproductor(None, "MplayerReproductor")

            archivo = os.path.join(get_data_directory(), 'MisTvs.JAMedia')

            self.__seleccionar_lista_de_stream(archivo, "TVs")
            self.toolbar_list.boton_agregar.show()

        elif indice == 4:
            # HACK: Tv no funciona con JAMediaReproductor.
            #if self.player == self.jamediareproductor:
            #    self.switch_reproductor(None, "MplayerReproductor")

            archivo = os.path.join(get_data_directory(),
                                   'JAMediaWebCams.JAMedia')

            self.__seleccionar_lista_de_stream(archivo, "WebCams")
            #self.toolbar_list.boton_agregar.show()

        elif indice == 5:
            self.__seleccionar_lista_de_archivos(get_my_files_directory(),
                                                 "Archivos")

        elif indice == 6:
            self.__seleccionar_lista_de_archivos(get_tube_directory(),
                                                 "JAM-Tube")

        elif indice == 7:
            self.__seleccionar_lista_de_archivos(get_audio_directory(),
                                                 "JAM-Audio")

        elif indice == 8:
            self.__seleccionar_lista_de_archivos(get_video_directory(),
                                                 "JAM-Video")

        elif indice == 9:
            from Widgets import My_FileChooser

            directorio = None

            if ultimopath:
                directorio = "file://%s" % os.path.dirname(ultimopath)

            selector = My_FileChooser(parent=self.get_toplevel(),
                                      action=Gtk.FileChooserAction.OPEN,
                                      mime=["audio/*", "video/*"],
                                      title="Abrir Archivos.",
                                      path=directorio,
                                      filter=[])

            selector.connect('archivos-seleccionados',
                             self.__cargar_directorio)

            selector.run()

            if selector:
                selector.destroy()
예제 #21
0
    def __guardar_lista_shelve(self, widget, key_name):
        """
        Guarda todos los videos de la lista bajo la key según key_name.
        """

        origen = False

        if widget == self.toolbar_guardar_encontrados:
            origen = self.encontrados

        elif widget == self.toolbar_guardar_descargar:
            origen = self.descargar

        videos = []
        if origen:
            video_items = origen.get_children()

            if video_items:
                for video in video_items:
                    videos.append(video.videodict)

        if videos:
            from Globales import get_data_directory
            import shelve

            dict_tube = shelve.open(
                os.path.join(get_data_directory(),
                "List.tube"))

            dict = {}
            for elemento in videos:
                dict[elemento["id"]] = elemento

            ### Alerta de Sobre Escritura.
            if key_name in dict_tube.keys():
                dialog = Gtk.Dialog(
                parent=self.get_toplevel(),
                flags=Gtk.DialogFlags.MODAL,
                buttons=[
                    "Suplantar", Gtk.ResponseType.ACCEPT,
                    "Cancelar", Gtk.ResponseType.CANCEL])

                dialog.set_border_width(15)

                text = "Ya Existe un Album de Búsquedas con Este Nombre.\n"
                text = "%s%s" % (text, "¿Deseas Suplantarlo?")
                label = Gtk.Label(text)
                dialog.vbox.pack_start(label, True, True, 0)
                dialog.vbox.show_all()

                response = dialog.run()

                dialog.destroy()

                if response == Gtk.ResponseType.CANCEL:
                    dict_tube.close()
                    return

            dict_tube[key_name] = dict

            dict_tube.close()

            dialog = Gtk.Dialog(
                parent=self.get_toplevel(),
                flags=Gtk.DialogFlags.MODAL,
                buttons=["OK", Gtk.ResponseType.ACCEPT])

            dialog.set_border_width(15)

            label = Gtk.Label("Videos Almacenados.")
            dialog.vbox.pack_start(label, True, True, 0)
            dialog.vbox.show_all()

            dialog.run()

            dialog.destroy()
예제 #22
0
    def __guardar_lista_shelve(self, widget, key_name):
        """
        Guarda todos los videos de la lista bajo la key según key_name.
        """
        origen = False
        if widget == self.toolbar_guardar_encontrados:
            origen = self.encontrados
        elif widget == self.toolbar_guardar_descargar:
            origen = self.descargar

        videos = []
        if origen:
            video_items = origen.get_children()
            if video_items:
                for video in video_items:
                    videos.append(video.videodict)

        if videos:
            dict_tube = shelve.open(
                os.path.join(get_data_directory(), "List.tube"))

            _dict = {}
            for elemento in videos:
                _dict[elemento["id"]] = elemento

            # Alerta de Sobre Escritura.
            if key_name in dict_tube.keys():
                dialog = gtk.Dialog(parent=self.get_toplevel(),
                                    title="",
                                    buttons=("Suplantar", gtk.RESPONSE_ACCEPT,
                                             "Cancelar", gtk.RESPONSE_CANCEL))

                dialog.set_border_width(15)
                dialog.set_decorated(False)
                dialog.modify_bg(gtk.STATE_NORMAL, get_colors("window"))

                text = "Ya Existe un Album de Búsquedas con Este Nombre.\n"
                text = "%s%s" % (text, "¿Deseas Suplantarlo?")
                label = gtk.Label(text)
                dialog.vbox.pack_start(label, True, True, 0)
                dialog.vbox.show_all()

                response = dialog.run()
                dialog.destroy()

                if response == gtk.RESPONSE_CANCEL:
                    dict_tube.close()
                    return

            dict_tube[key_name] = _dict
            dict_tube.close()

            dialog = gtk.Dialog(parent=self.get_toplevel(),
                                title="",
                                buttons=("OK", gtk.RESPONSE_CANCEL))

            dialog.set_border_width(15)
            dialog.set_decorated(False)
            dialog.modify_bg(gtk.STATE_NORMAL, get_colors("window"))

            label = gtk.Label("Videos Almacenados.")
            dialog.vbox.pack_start(label, True, True, 0)
            dialog.vbox.show_all()

            dialog.run()
            dialog.destroy()
예제 #23
0
    def __guardar_lista_shelve(self, widget, key_name):
        """
        Guarda todos los videos de la lista bajo la key según key_name.
        """
        origen = False
        if widget == self.toolbar_guardar_encontrados:
            origen = self.encontrados
        elif widget == self.toolbar_guardar_descargar:
            origen = self.descargar

        videos = []
        if origen:
            video_items = origen.get_children()
            if video_items:
                for video in video_items:
                    videos.append(video.videodict)

        if videos:
            dict_tube = shelve.open(os.path.join(get_data_directory(),
                "List.tube"))

            _dict = {}
            for elemento in videos:
                _dict[elemento["id"]] = elemento

            # Alerta de Sobre Escritura.
            if key_name in dict_tube.keys():
                dialog = gtk.Dialog(parent=self.get_toplevel(), title="",
                buttons=(
                    "Suplantar", gtk.RESPONSE_ACCEPT,
                    "Cancelar", gtk.RESPONSE_CANCEL))

                dialog.set_border_width(15)
                dialog.set_decorated(False)
                dialog.modify_bg(gtk.STATE_NORMAL, get_colors("window"))

                text = "Ya Existe un Album de Búsquedas con Este Nombre.\n"
                text = "%s%s" % (text, "¿Deseas Suplantarlo?")
                label = gtk.Label(text)
                dialog.vbox.pack_start(label, True, True, 0)
                dialog.vbox.show_all()

                response = dialog.run()
                dialog.destroy()

                if response == gtk.RESPONSE_CANCEL:
                    dict_tube.close()
                    return

            dict_tube[key_name] = _dict
            dict_tube.close()

            dialog = gtk.Dialog(parent=self.get_toplevel(), title="",
                buttons=("OK", gtk.RESPONSE_CANCEL))

            dialog.set_border_width(15)
            dialog.set_decorated(False)
            dialog.modify_bg(gtk.STATE_NORMAL, get_colors("window"))

            label = gtk.Label("Videos Almacenados.")
            dialog.vbox.pack_start(label, True, True, 0)
            dialog.vbox.show_all()

            dialog.run()
            dialog.destroy()
예제 #24
0
    def __init__(self, widget, boton, pos, tiempo, path, modelo):

        Gtk.Menu.__init__(self)

        iter = modelo.get_iter(path)
        uri = modelo.get_value(iter, 2)

        quitar = Gtk.MenuItem("Quitar de la Lista")
        self.append(quitar)
        quitar.connect_object("activate", self.__set_accion, widget, path,
                              "Quitar")

        from Globales import describe_acceso_uri
        from Globales import get_my_files_directory
        from Globales import get_data_directory
        from Globales import stream_en_archivo

        if describe_acceso_uri(uri):
            lectura, escritura, ejecucion = describe_acceso_uri(uri)

            if lectura and os.path.dirname(uri) != get_my_files_directory():
                copiar = Gtk.MenuItem("Copiar a JAMedia")
                self.append(copiar)
                copiar.connect_object("activate", self.__set_accion, widget,
                                      path, "Copiar")

            if escritura and os.path.dirname(uri) != get_my_files_directory():
                mover = Gtk.MenuItem("Mover a JAMedia")
                self.append(mover)
                mover.connect_object("activate", self.__set_accion, widget,
                                     path, "Mover")

            if escritura:
                borrar = Gtk.MenuItem("Borrar el Archivo")
                self.append(borrar)
                borrar.connect_object("activate", self.__set_accion, widget,
                                      path, "Borrar")

        else:
            borrar = Gtk.MenuItem("Borrar Streaming")
            self.append(borrar)
            borrar.connect_object("activate", self.__set_accion, widget, path,
                                  "Borrar")

            listas = [
                os.path.join(get_data_directory(), "JAMediaTV.JAMedia"),
                os.path.join(get_data_directory(), "JAMediaRadio.JAMedia"),
                os.path.join(get_data_directory(), "MisRadios.JAMedia"),
                os.path.join(get_data_directory(), "MisTvs.JAMedia")
            ]

            if (stream_en_archivo(uri, listas[0]) and \
                not stream_en_archivo(uri, listas[3])) or \
                (stream_en_archivo(uri, listas[1]) and \
                not stream_en_archivo(uri, listas[2])):

                copiar = Gtk.MenuItem("Copiar a JAMedia")
                self.append(copiar)
                copiar.connect_object("activate", self.__set_accion, widget,
                                      path, "Copiar")

                mover = Gtk.MenuItem("Mover a JAMedia")
                self.append(mover)
                mover.connect_object("activate", self.__set_accion, widget,
                                     path, "Mover")

            grabar = Gtk.MenuItem("Grabar")
            self.append(grabar)
            grabar.connect_object("activate", self.__set_accion, widget, path,
                                  "Grabar")

        self.show_all()
        self.attach_to_widget(widget, self.__null)