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 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 #3
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 #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,))