def onPlayBackStarted(self):
     try: tagname = xbmc.Player().getPlayingFile()[xbmc.Player().getPlayingFile().index('%5C')+3:-4]
     except: tagname = xbmc.Player().getPlayingFile()[xbmc.Player().getPlayingFile().index('/files/')+7:-4]
     if getSetting("subtitles") == 'true':
         if not xbmc.Player().getSubtitles(): self.subtitle = subtitles.getsubtitles(self.display_name,tagname, '', '',getSetting("sublang1"),getSetting("sublang2"))			
     xbmc.Player().setSubtitles(self.subtitle)	
     for f in self.on_playback_started:
         f()
     track_event("video", "play", self.display_name)
Ejemplo n.º 2
0
    def loop(self):
        from stream.utils import SafeDialogProgress

        has_resolved = False

        plugin.log.info("Starting torrent2http...")
        with closing(torrent2http.start(
                **self.torrent2http_options)) as t2h_instance:
            t2h = lambda cmd: url_get_json("http://%s/%s" %
                                           (t2h_instance.bind_address, cmd),
                                           with_immunicity=False)

            if not self._wait_t2h_startup(t2h):
                return

            plugin.log.info("Opening download dialog...")
            with closing(SafeDialogProgress(delay_create=0)) as dialog:
                dialog.create(plugin.name)

                plugin.log.info("Waiting for file resolution...")
                while not has_resolved:
                    if xbmc.abortRequested or dialog.iscanceled():
                        return

                    status = t2h("status")
                    self.display_name = status["name"]

                    if status["state"] >= 0:
                        dialog.update(int(status["progress"] * 100),
                                      *self._get_status_lines(status))

                    if status[
                            "state"] >= 3 and not has_resolved:  # Downloading?
                        files = t2h("ls")["files"]
                        biggest_file = sorted(files,
                                              key=lambda x: x["size"])[-1]
                        biggest_file["name"] = biggest_file["name"].encode(
                            "utf-8")
                        percent_complete = float(
                            biggest_file["complete_pieces"]) / float(
                                biggest_file["total_pieces"]) * 100.0

                        if percent_complete >= MIN_COMPLETED_PIECES:
                            plugin.log.info("Resolving to http://%s/files/%s" %
                                            (t2h_instance.bind_address,
                                             biggest_file["name"]))
                            has_resolved = True
                            item = {
                                "path":
                                "http://%s/files/%s" %
                                (t2h_instance.bind_address,
                                 urllib.quote(biggest_file["name"])),
                            }
                            if not xbmc.getInfoLabel("ListItem.Title"):
                                item["label"] = self.display_name
                            plugin.set_resolved_url(item)
                            break

                    xbmc.sleep(TORRENT2HTTP_POLL)

            # We are now playing
            plugin.log.info("Now playing torrent...")
            last_playing_event = 0
            with closing(
                    OverlayText(w=OVERLAY_WIDTH,
                                h=OVERLAY_HEIGHT,
                                alignment=XBFONT_CENTER_X
                                | XBFONT_CENTER_Y)) as overlay:
                with nested(
                        self.attach(overlay.show, self.on_playback_paused),
                        self.attach(overlay.hide, self.on_playback_resumed,
                                    self.on_playback_stopped)):
                    while not xbmc.abortRequested and self.isPlaying():
                        overlay.text = "\n".join(
                            self._get_status_lines(t2h("status")))
                        now = time.time()
                        if (now - last_playing_event) > PLAYING_EVENT_INTERVAL:
                            track_event("video", "playing", self.display_name)
                            last_playing_event = now
                        xbmc.sleep(TORRENT2HTTP_POLL)

        plugin.log.info("Closing Torrent player.")
Ejemplo n.º 3
0
 def onPlayBackStopped(self):
     for f in self.on_playback_stopped:
         f()
     track_event("video", "stop", self.display_name)
Ejemplo n.º 4
0
 def onPlayBackPaused(self):
     for f in self.on_playback_paused:
         f()
     track_event("video", "pause", self.display_name)
Ejemplo n.º 5
0
 def onPlayBackStarted(self):
     for f in self.on_playback_started:
         f()
     track_event("video", "play", self.display_name)
Ejemplo n.º 6
0
    def loop(self):
        from stream.utils import SafeDialogProgress

        has_resolved = False

        plugin.log.info("Starting torrent2http...")
        with closing(torrent2http.start(**self.torrent2http_options)) as t2h_instance:
            t2h = lambda cmd: url_get_json("http://%s/%s" % (t2h_instance.bind_address, cmd), with_immunicity=False)

            if not self._wait_t2h_startup(t2h):
                return

            plugin.log.info("Opening download dialog...")
            with closing(SafeDialogProgress(delay_create=0)) as dialog:
                dialog.create(plugin.name)

                plugin.log.info("Waiting for file resolution...")
                while not has_resolved:
                    if xbmc.abortRequested or dialog.iscanceled():
                        return

                    status = t2h("status")
                    self.display_name = status["name"]

                    if status["state"] >= 0:
                        dialog.update(int(status["progress"] * 100), *self._get_status_lines(status))

                    if status["state"] >= 3 and not has_resolved:  # Downloading?
                        files = t2h("ls")["files"]
                        biggest_file = sorted(files, key=lambda x: x["size"])[-1]
                        biggest_file["name"] = biggest_file["name"].encode("utf-8")
                        percent_complete = (
                            float(biggest_file["complete_pieces"]) / float(biggest_file["total_pieces"]) * 100.0
                        )

                        if percent_complete >= MIN_COMPLETED_PIECES:
                            plugin.log.info(
                                "Resolving to http://%s/files/%s" % (t2h_instance.bind_address, biggest_file["name"])
                            )
                            has_resolved = True
                            item = {
                                "path": "http://%s/files/%s"
                                % (t2h_instance.bind_address, urllib.quote(biggest_file["name"]))
                            }
                            if not xbmc.getInfoLabel("ListItem.Title"):
                                item["label"] = self.display_name
                            plugin.set_resolved_url(item)
                            break

                    xbmc.sleep(TORRENT2HTTP_POLL)

            # We are now playing
            plugin.log.info("Now playing torrent...")
            last_playing_event = 0
            with closing(
                OverlayText(w=OVERLAY_WIDTH, h=OVERLAY_HEIGHT, alignment=XBFONT_CENTER_X | XBFONT_CENTER_Y)
            ) as overlay:
                with nested(
                    self.attach(overlay.show, self.on_playback_paused),
                    self.attach(overlay.hide, self.on_playback_resumed, self.on_playback_stopped),
                ):
                    while not xbmc.abortRequested and self.isPlaying():
                        overlay.text = "\n".join(self._get_status_lines(t2h("status")))
                        now = time.time()
                        if (now - last_playing_event) > PLAYING_EVENT_INTERVAL:
                            track_event("video", "playing", self.display_name)
                            last_playing_event = now
                        xbmc.sleep(TORRENT2HTTP_POLL)

        plugin.log.info("Closing Torrent player.")
Ejemplo n.º 7
0
 def onPlayBackStopped(self):
     for f in self.on_playback_stopped:
         f()
     track_event("video", "stop", self.display_name)
Ejemplo n.º 8
0
 def onPlayBackPaused(self):
     for f in self.on_playback_paused:
         f()
     track_event("video", "pause", self.display_name)
Ejemplo n.º 9
0
 def onPlayBackStarted(self):
     for f in self.on_playback_started:
         f()
     track_event("video", "play", self.display_name)