Closed VuzzyM closed 3 years ago
Я в курсе про libtorrent
Я в курсе про libtorrent
Это не libtorrent, это просто анакроликс с авторскими правками
Ок гляну
Ок гляну
Также могу порекомендовать Libtorrent. Не так давно этот проект был запущен, он для всех платформ, это лучший вариант который я бы порекомендовал.
https://github.com/ElementumOrg/lt2http
@YouROK Что вы скажете об этом проекте?
@YouROK http://localhost:65225/swagger/ui Есть api
@YouROK https://github.com/ElementumOrg/lt2http Это не библиотека, а приложение.
@YouROK Я поговорил с разработчиком и насколько я понял, l2http(Libtorrent) возможно реализовать, здесь также используется http api.
l2http был реализован для упрощения кодирования из libtorrent-go - https://github.com/ElementumOrg/libtorrent-go
Слова одного из разработчиков:
резюмируя:
python часть это сам коди аддон plugin.video.elementum - он общается с коди через питоновские библиотеки коди, а с elementum через http api предоставляемое elementum'ом.
elementum это go демон, который общается с коди через http api предоставляемое plugin.video.elementum'ом, а торренты качает использую libtorrent-go.
libtorrent-go это так сказать "манифесты" на языке swig, которые во время сборки генерируют промежуточный go (https://pkg.go.dev/cmd/cgo) и c++ код для связи golang c libtorrent. сгенерированный код который используется в elementum, как в примере выше (https://github.com/elgatito/elementum/tree/master/bittorrent). если хочется посмотреть на этот код (вероятно это будет то, что вы имели ввиду под api) - то вот как можно это сделать: https://github.com/elgatito/plugin.video.elementum/issues/712#issuecomment-815652568
lt2http это отдельный, плагино-независимый демон, написанный на c++, который предоставляет http api, через которое можно давать команды ему на скачивание торрентов, получение их списка, стриминг файла из торрента.
к lt2http есть "запускалка при старте" внутри коди, в виде коди аддона - https://github.com/ElementumOrg/service.lt2http
Слова одного из разработчиков:
И если чисто технически - мне кажется использовать libtorrent-go так себе затея, от него много проблем в коде, паники вылезают много где, сложно писать код, так как он пишется для автосгенерированной прослойки (см ссылку выше). И версия libtorrent-go используемая в elementum работает со старой версией libtorrent (1.1). Та, что вы скинули, использует 1.2 - не плохо, но уже есть и 2.0. И если её автор перестанет её обновлять, то опять же риск остаться со старой версией libtorrent.
В общем, по этим причинам автор elementum'а и написал lt2http(Libtorrent), чтобы попробовать перевести elementum на него.
@YouROK
Я сказал почти все подробности выше :), относящиеся к Libtorrent-go и l2http на c ++. Даже пример реализации Libtorrent-go или l2http через http api.
Выбор за вами, у Anacrolix есть проблемы с частными подключениями, с воспроизведением фильмов назад, и многое другое...
у torrserve есть веб-сайт 10-го уровня, почему бы не иметь сервер 10-го уровня :).
Да, знаю, работа тяжелая, но результат тоже потрясающий.
@YouROK Забыл сказать, самый стабильный и обновляемый libtorrent-go это: https://github.com/i96751414/libtorrent-go
Libtorrent+bep29 vs Anacrolix
Я тебя понял, но пока не очень хочется переходить на либторрент. На днях Цыник попробовал последний движок от Анакролиса, и он показал хорошие результаты, по поводу скорости и спама подключений
Я тебя понял, но пока не очень хочется переходить на либторрент. На днях Цыник попробовал последний движок от Анакролиса, и он показал хорошие результаты, по поводу скорости и спама подключений
@YouROK мне также ответил anacrolix и сказал что решил проблему с kinozal.tv. Вы можете это проверить? https://github.com/anacrolix/torrent/issues/462#issuecomment-882286078
@YouROK Теперь сиды находит с кинозал, тестировал на версию 101.ne.
Вы можете посмотреть здесь https://gitlab.com/axet/libtorrent/-/blob/master/lpd.go? здесь реализовано bep 14 local peers discovery. Это анакроликс, только модифицированный автором, и если это может быть реализовано в torrserver. Bep14 не реализован в Anacrolix.
Я тебя понял, но пока не очень хочется переходить на либторрент. На днях Цыник попробовал последний движок от Анакролиса, и он показал хорошие результаты, по поводу скорости и спама подключений
К сожалению, с новым сервером все еще есть проблемы, насколько я могу судить, проблемы с передачей кеша ...
@YouROK https://github.com/martintrojer/mtorrent-go Я наткнулся на этот проект, он основан на Libtorrent Go, исходник старый, но это тот же Libtorrent-go, по крайней мере здесь Libtorrent-go не имеет отношения к elementum.
@YouROK Прихожу с новой информацией, может это поможет. Спасибо за ваше терпение
Libtorrent-go - это проект, содержащий привязки go (сгенерированные SWIG) для libtorrent (https://github.com/arvidn/libtorrent). Поэтому api можно найти в документации по проекту libtorrent.
@YouROK Привет.
Подскажите пожалуйста, с какими проблемами вы столкнулись при внедрении Libtorrent-go?
Мне нужна как можно более четкая информация
Дошел до того что смог собрать сам https://github.com/i96751414/libtorrent-go и https://github.com/i96751414/torrest Но что там собирается не понял, так как оно все в докерах идет. А что там внутри нужно разбираться
Дошел до того что смог собрать сам https://github.com/i96751414/libtorrent-go и https://github.com/i96751414/torrest Но что там собирается не понял, так как оно все в докерах идет. А что там внутри нужно разбираться
@YouROK Здесь сказано что Libtorrent-go можно запустить без докера. И еще как можно увидеть код c++ во взаимодействии с Go. И как с ним можно работать.
https://github.com/elgatito/plugin.video.elementum/issues/712#issuecomment-815652568
https://github.com/elgatito/plugin.video.elementum/issues/712#issuecomment-791432519
@YouROK libtorrent-go это библиотека, её нельзя запустить. Собрать (скомпилировать) её можно в свою систему напрямую.
В https://github.com/ElementumOrg/libtorrent-go/blob/master/README.md
Есть шаг: (Optionally) Build locally without Docker (for local development, for example) для дополнительной информации
для первых шагов понадобится docker - для подготовки, а уже потом можно собрать golang библиотеку прямо в системе.
Можете конечно попробовать сделать шаги из Makefile как-то сами, без использования docker, если хорошо разбираетесь. Правда сейчас docker есть под все платформы, так что проще его установить, чем пытаться переделать текущий процесс сборки.
Еще раз, я все собрал. Все это в докере. Но как там чего в докере происходит с помощью скриптов, я не разобрался
Еще раз, я все собрал. Все это в докере. Но как там чего в докере происходит с помощью скриптов, я не разобрался
@YouROK Посмотрите исходный код Makefile, плюс репозитории с самими компиляторами могут быть полезны для общего понимания (там же в GitHub). Ну и соберите без докера библиотеку, как описано в шаге, который я написал ранее.
В https://github.com/ElementumOrg/libtorrent-go/blob/master/README.md
Есть шаг: (Optionally) Build locally without Docker (for local development, for example)
Плюс еще поможет эта тема. https://github.com/elgatito/plugin.video.elementum/issues/712#issuecomment-815652568
imho это бесcмысленный тред. VuzzyM - если тебе интересна тема интеграции libtorrent в торрсервер - разбирайся сам и приходи с готовым решением. А учить разработчиков как собирать библиотеки, когда сам слабо понимаешь - не нужно.
imho это бесcмысленный тред. VuzzyM - если тебе интересна тема интеграции libtorrent в торрсервер - разбирайся сам и приходи с готовым решением. А учить разработчиков как собирать библиотеки, когда сам слабо понимаешь - не нужно.
Это ваше собственное мнение, я никого не учу, я предложил идею, вы не поняли. В течение нескольких месяцев я искал здесь идеи, из своего времени, а вы обвиняете меня в том, что я учу кого-то другого, проект с открытым исходным кодом должен поддерживаться идеями, а не критикой.
я лично поддерживаю любой проект , например сколько issue я для anacrolix сделал.
Еще один проект, который вот-вот должен был умереть был elementum, когда появился kodi 19, он был написан на python 3, но elementum на python2 и не был совместим с kodi 19, я вместе с vlmaksime адаптировал elementum с python 3. Теперь оригинальный разработчик elementum продолжает развитие elementum.
Я не хотел этого говорить, но иногда лучше сказать правду.
Я даже пожертвовал деньги другому опытному разработчику Libtorrent, чтобы он объяснил некоторые вещи о libtorrent, чтобы помочь проекту torrserver. @tsynik
Извините что я так много написал, но любой проект с открытым исходным кодом должен поддерживаться, надеюсь вы меня поняли ...
@YouROK У YouROK есть свое мнение, он может закрыть любую issue. Если вы считаете то что сделал бесполезно, можете закрыть тему. Жду ответа.
Еще раз, я все собрал. Все это в докере. Но как там чего в докере происходит с помощью
@YouROK Все что я написал это простое мнение, предложение.
Насколько я понимаю, надо работать без докера, надо работать локально. С помощью swig. Приведение структур C++ в Golang с использованием библиотеки SWIG задокументировано в документации SWIG-Golang http://www.swig.org/Doc2.0/Go.html . И вроде после в докере запустить, протестировать.
например без докера, взято из документации Libtorrent-go: make local-env CROSS_TRIPLE=x86_64-linux-gnu make re TARGET_OS=linux TARGET_ARCH=x64 CROSS_ROOT=local-env
Это все что я должен был сказать, спасибо за понимание.
@YouROK https://gitlab.com/axet/libtorrent Этот источник основан на исходном коде anacrolix и здесь реализованы bep 14 local peers discovery, bep 19, dht без множественных подключений и на стабильной скоростии, bep 27, работающие с частными торрентами. Здесь решены многие проблемы которые есть в анакроликсе.