Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Помощь - libtorrent #813

Closed
VuzzyM opened this issue Jul 15, 2021 · 21 comments
Closed

Помощь - libtorrent #813

VuzzyM opened this issue Jul 15, 2021 · 21 comments

Comments

@VuzzyM
Copy link

VuzzyM commented Jul 15, 2021

@elgatito
Привет.

Когда-то вместе с vl maksime я помог реализовать elementum с kodi 19 (python 3). Насколько мне известно, вы владеете языком программирования Go.

Извините за беспокойство, прошу помощи в реализации libtorrent для торрсервера Matrix, движок libtorrent лучше, чем движок anacrolix.

Исходный код Torrserver Matrix http server:
https://github.com/YouROK/TorrServer

Исходный код для реализации libtorrent-go в android: https://gitlab.com/axet/libtorrent
Думаю поможет легче реализовать libtorrent для торрсервера. Он основан на движке anacrolix, но также основан на libtorrent. Торрсервер основан на движок anacrolix.

проект объясняется здесь https://telegra.ph/Torrserve-01-21

Я знаю что elementum основан на libtorrent, и нам нужен кто-то кто имел дело с libtorrent и его реализацией.

Спасибо вам за помощь!

@elgatito
Copy link
Owner

@VuzzyM

Исходный код для реализации libtorrent-go в android: https://gitlab.com/axet/libtorrent
Думаю поможет легче реализовать libtorrent для торрсервера. Он основан на движке anacrolix, но также основан на libtorrent.

axet/libtorrent не имеет отношения к arvidn/libtorrent. Это тот же anacrolix/torrent с модификациями от автора.

Извините за беспокойство, прошу помощи в реализации libtorrent для торрсервера Matrix, движок libtorrent лучше, чем движок anacrolix.

Elementum уже не первый год использует arvidn/libtorrent через ElementumOrg/libtorrent-go обвязку.

Я точно ничего не помогу. Весь код в открытом виде.

@VuzzyM
Copy link
Author

VuzzyM commented Jul 15, 2021

@VuzzyM

Исходный код для реализации libtorrent-go в android: https://gitlab.com/axet/libtorrent
Думаю поможет легче реализовать libtorrent для торрсервера. Он основан на движке anacrolix, но также основан на libtorrent.

axet/libtorrent не имеет отношения к arvidn/libtorrent. Это тот же anacrolix/torrent с модификациями от автора.

Извините за беспокойство, прошу помощи в реализации libtorrent для торрсервера Matrix, движок libtorrent лучше, чем движок anacrolix.

Elementum уже не первый год использует arvidn/libtorrent через ElementumOrg/libtorrent-go обвязку.

Я точно ничего не помогу. Весь код в открытом виде.

Спасибо за информацию

@VuzzyM VuzzyM closed this as completed Jul 15, 2021
@VuzzyM
Copy link
Author

VuzzyM commented Jul 16, 2021

@elgatito https://github.com/ElementumOrg/lt2http

Можно ли это использовать для клиентского приложения Android?

@elgatito
Copy link
Owner

@VuzzyM Не знаю. Это Go модуль для работы с libtorrent. Для андроида у libtorrent есть библиотеки клиентские на Java.

@VuzzyM
Copy link
Author

VuzzyM commented Jul 16, 2021

@VuzzyM Не знаю. Это Go модуль для работы с libtorrent. Для андроида у libtorrent есть библиотеки клиентские на Java.

https://github.com/ElementumOrg/lt2http Ну из того что я вижу, l2http написан на c ++. Не на языке Go

@elgatito
Copy link
Owner

@VuzzyM А, я думал это об libtorrent-go. lt2http это не библиотека, это самостоятельное приложение, которое успользует libtorrent напрямую.

@VuzzyM
Copy link
Author

VuzzyM commented Jul 16, 2021

@VuzzyM А, я думал это об libtorrent-go. lt2http это не библиотека, это самостоятельное приложение, которое успользует libtorrent напрямую.

@elgatito и это приложение не будет работать в приложении для Android?

@elgatito
Copy link
Owner

@VuzzyM Не знаю, я приложений на андроид не разрабатывал. Это обычное приложение для командной строки.

@VuzzyM
Copy link
Author

VuzzyM commented Jul 16, 2021

@VuzzyM Не знаю, я приложений на андроид не разрабатывал. Это обычное приложение для командной строки.

@elgatito Но где находятся вызовы libtorrent-go, чтобы я мог сосредоточиться на том для чего используется?

@elgatito
Copy link
Owner

@VuzzyM libtorrent-go это код Go который может вызывать С++ из libtorrent. lt2http написан на С++, поэтому напрямую вызывает libtorrent, так же, как и qbittorrent, например.

@VuzzyM
Copy link
Author

VuzzyM commented Jul 16, 2021

@VuzzyM libtorrent-go это код Go который может вызывать С++ из libtorrent. lt2http написан на С++, поэтому напрямую вызывает libtorrent, так же, как и qbittorrent, например.

Да, я понимаю, но где api для libtorrent-go? Torrserver основан на языке go.

@VuzzyM
Copy link
Author

VuzzyM commented Jul 16, 2021

@VuzzyM libtorrent-go это код Go который может вызывать С++ из libtorrent. lt2http написан на С++, поэтому напрямую вызывает libtorrent, так же, как и qbittorrent, например.

@elgatito Да, я понимаю, но где api для libtorrent-go? Torrserver основан на языке go.

@elgatito
Copy link
Owner

@VuzzyM libtorrent-go используется только в elementum. Из Go lt2http нельзя использовать. Это разные проекты никак не связанные между собой.

Elementum (Go) -> libtorrent-go (Go->C++) -> Libtorrent (C++)

lt2http (C++) -> Libtorrent (C++)

@VuzzyM
Copy link
Author

VuzzyM commented Jul 16, 2021

@VuzzyM libtorrent-go используется только в elementum. Из Go lt2http нельзя использовать. Это разные проекты никак не связанные между собой.
Elementum (Go) -> libtorrent-go (Go->C++) -> Libtorrent (C++)
lt2http (C++) -> Libtorrent (C++)

@elgatito
Я понимаю, но теперь меня интересуют api из проекта libtorrent-go, который используется для elementum.

в проекте libtorrent-go я их не нашел

@elgatito
Copy link
Owner

@VuzzyM
libtorrent-go это swig bindings между C++ и Go. Там нету списка готовых функций, которые можно вызывать.

@VuzzyM
Copy link
Author

VuzzyM commented Jul 16, 2021

@VuzzyM
libtorrent-go это swig bindings между C++ и Go. Там нету списка готовых функций, которые можно вызывать.

@elgatito
Ну а как вы реализовали например код libtorrent-go для elementum? Какие функции вы использовали, приведите пример

@elgatito
Copy link
Owner

@VuzzyM https://github.com/elgatito/elementum/tree/master/bittorrent Весь код в открытом виде. Это не то что можно скопипастить за 5 минут.

@VuzzyM
Copy link
Author

VuzzyM commented Jul 16, 2021

@VuzzyM https://github.com/elgatito/elementum/tree/master/bittorrent Весь код в открытом виде. Это не то что можно скопипастить за 5 минут.

@elgatito
Вы использовали эту формулу Python -> libtorrent-go?

@elgatito
Copy link
Owner

@VuzzyM Elementum написан на Go. Python только делает запросы к Elementum через http.

@VuzzyM
Copy link
Author

VuzzyM commented Jul 16, 2021

@VuzzyM Elementum написан на Go. Python только делает запросы к Elementum через http.

Спасибо

@antonsoroko
Copy link

@VuzzyM

резюмируя:

  1. python часть это сам коди аддон plugin.video.elementum - он общается с коди через питоновские библиотеки коди, а с elementum через http api предоставляемое elementum'ом.
  2. elementum это go демон, который общается с коди через http api предоставляемое plugin.video.elementum'ом, а торренты качает использую libtorrent-go.
  3. libtorrent-go это так сказать "манифесты" на языке swig, которые во время сборки генерируют промежуточный go (https://pkg.go.dev/cmd/cgo) и c++ код для связи golang c libtorrent. сгенерированный код который используется в elementum, как в примере выше (https://github.com/elgatito/elementum/tree/master/bittorrent).
    если хочется посмотреть на этот код (вероятно это будет то, что вы имели ввиду под api) - то вот как можно это сделать: How to build elementum binaries properly? #712 (comment)
  4. lt2http это отдельный, плагино-независимый демон, написанный на c++, который предоставляет http api, через которое можно давать команды ему на скачивание торрентов, получение их списка, стриминг файла из торрента.
  5. к lt2http есть "запускалка при старте" внутри коди, в виде коди аддона - https://github.com/ElementumOrg/service.lt2http

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants