Example #1
0
 def magnetToTorrent(self, magnet):
     session = libtorrent.session()
     session.start_dht()
     session.add_dht_router("router.bittorrent.com", 6881)
     session.add_dht_router("router.utorrent.com", 6881)
     session.add_dht_router("router.bitcomet.com", 6881)
     session.listen_on(6881, 6891)
     session.set_alert_mask(
         libtorrent.alert.category_t.storage_notification)
     handle = libtorrent.add_magnet_uri(
         session, magnet, {
             'save_path': self.storageDirectory,
             'storage_mode': libtorrent.storage_mode_t(2)
         })
     iterator = 0
     progressBar = xbmcgui.DialogProgress()
     progressBar.create('Подождите', 'Идёт преобразование magnet-ссылки.')
     while not handle.has_metadata():
         time.sleep(0.1)
         progressBar.update(iterator)
         iterator += 1
         if iterator == 100:
             iterator = 0
         if progressBar.iscanceled():
             progressBar.update(0)
             progressBar.close()
             return
     progressBar.update(0)
     progressBar.close()
     torrent = libtorrent.create_torrent(handle.get_torrent_info())
     torentFile = open(self.torrentFile, "wb")
     torentFile.write(libtorrent.bencode(torrent.generate()))
     torentFile.close()
     session.remove_torrent(handle)
Example #2
0
 def magnetToTorrent(self, magnet):
     session = libtorrent.session()
     session.start_dht()
     session.add_dht_router("router.bittorrent.com", 6881)
     session.add_dht_router("router.utorrent.com", 6881)
     session.add_dht_router("router.bitcomet.com", 6881)
     session.listen_on(6881, 6891)
     session.set_alert_mask(libtorrent.alert.category_t.storage_notification)
     handle = libtorrent.add_magnet_uri(
         session, magnet, {"save_path": self.storageDirectory, "storage_mode": libtorrent.storage_mode_t(2)}
     )
     iterator = 0
     progressBar = xbmcgui.DialogProgress()
     progressBar.create("Подождите", "Идёт преобразование magnet-ссылки.")
     while not handle.has_metadata():
         time.sleep(0.1)
         progressBar.update(iterator)
         iterator += 1
         if iterator == 100:
             iterator = 0
         if progressBar.iscanceled():
             progressBar.update(0)
             progressBar.close()
             return
     progressBar.update(0)
     progressBar.close()
     torrent = libtorrent.create_torrent(handle.get_torrent_info())
     torentFile = open(self.torrentFile, "wb")
     torentFile.write(libtorrent.bencode(torrent.generate()))
     torentFile.close()
     session.remove_torrent(handle)
Example #3
0
    def startSession(self, contentId=0):
        selectedFileInfo = self.getContentList()[contentId]
        self.startPart = selectedFileInfo.offset / self.torrentFileInfo.piece_length(
        )
        self.endPart = (selectedFileInfo.offset + selectedFileInfo.size
                        ) / self.torrentFileInfo.piece_length()

        self.session = libtorrent.session()
        self.session.start_dht()
        self.session.add_dht_router("router.bittorrent.com", 6881)
        self.session.add_dht_router("router.utorrent.com", 6881)
        self.session.add_dht_router("router.bitcomet.com", 6881)
        self.session.listen_on(6881, 6891)
        self.session.set_alert_mask(
            libtorrent.alert.category_t.storage_notification)
        self.torrentHandle = self.session.add_torrent({
            'ti':
            self.torrentFileInfo,
            'save_path':
            self.storageDirectory,
            'storage_mode':
            libtorrent.storage_mode_t(2)
        })
        for i in range(self.torrentFileInfo.num_pieces()):
            self.torrentHandle.piece_priority(i, 0)
        for i in range(self.startPart, self.startPart + self.partOffset):
            if i <= self.endPart:
                self.torrentHandle.piece_priority(i, 7)
        self.torrentHandle.set_sequential_download(True)
        thread.start_new_thread(self.downloadProcess, (contentId, ))
Example #4
0
    def startSession(self, contentId=0):
        selectedFileInfo = self.getContentList()[contentId]
        self.startPart = selectedFileInfo.offset / self.torrentFileInfo.piece_length()
        self.endPart = (selectedFileInfo.offset + selectedFileInfo.size) / self.torrentFileInfo.piece_length()

        self.session = libtorrent.session()
        self.session.start_dht()
        self.session.add_dht_router("router.bittorrent.com", 6881)
        self.session.add_dht_router("router.utorrent.com", 6881)
        self.session.add_dht_router("router.bitcomet.com", 6881)
        self.session.listen_on(6881, 6891)
        self.session.set_alert_mask(libtorrent.alert.category_t.storage_notification)
        self.torrentHandle = self.session.add_torrent(
            {
                "ti": self.torrentFileInfo,
                "save_path": self.storageDirectory,
                "storage_mode": libtorrent.storage_mode_t(2),
            }
        )
        for i in range(self.torrentFileInfo.num_pieces()):
            self.torrentHandle.piece_priority(i, 0)
        for i in range(self.startPart, self.startPart + self.partOffset):
            if i <= self.endPart:
                self.torrentHandle.piece_priority(i, 7)
        self.torrentHandle.set_sequential_download(True)
        thread.start_new_thread(self.downloadProcess, (contentId,))