Показать сообщение отдельно
Старый 06.02.2018, 23:44   #162
Dorik1972
Junior Member
 
Регистрация: 02.02.2018
Сообщений: 6
По умолчанию

Цитата:
Сообщение от TdS Посмотреть сообщение
У меня нет RPi , сие подкреплено пользователями openelec с этого форума.
Если вы написали бинарную версию которая работает без глюков на RPi - с радостью уберу цитату из первого сообщения.
Радостно убираем ибо "подкреплено рассказами" БЕЗ соответствующих логов движка - это ББС (баба бабе сказала). На самом деле я "перешерстил" не один десяток логов - там НОЛЬ проблем ... И не только на RPi...
Глянул Вашу наработку ... В исходниках ... Все "нарядно" но есть одно но ... Я столкнулся с тем что START TORRENT не всегда корректно отрабатывает . Иногда попадаются торренты которые API движка , по неизвестным мне причинам, не может стартануть из-за того что не вычисляется infohash. Я "выкрутился" из этой ситуации вычислением infohash "на стороне" и после этого LOADASYNC - получаем список файлов , если LOADАSYNC возвращает ошибку , то просто START INFOHASH infohash 0 0 0 0 , если LOADASYNC возвращает список файлов и индексов то соответственно START INFOHASH infohash idx 0 0 0
Как я заметил, выдача ссылки на поток движком по START INFOHASH, значительно быстрее чем по START TORRENT + всегда получаем ссылку на поток при наличии раздающих
Вычислить infohash можно как-то так
Код:
import bencode, hashlib, requests
url = url_to_needed_torrent_file
r = requsets.get(url, stream=True).raw.read()
metainfo = bencode.bdecode(r)
infohash = hashlib.sha1(bencode.bencode(metainfo['info'])).hexdigest()
Можно не использовать библиотеку requests , а сделать через классический urllib2 .
Рекомендую

Последний раз редактировалось Dorik1972; 07.02.2018 в 00:02.
Dorik1972 вне форума   Ответить с цитированием