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

[Transmission] Неразмагниченные торренты #63

Open
YurikaL opened this issue May 27, 2020 · 0 comments
Open

[Transmission] Неразмагниченные торренты #63

YurikaL opened this issue May 27, 2020 · 0 comments

Comments

@YurikaL
Copy link
Contributor

YurikaL commented May 27, 2020

Похоже, что те торренты, к которым ещё не были загружены метаданные, вызывают некоторые затруднения при поптыке их обработать. В частности, спотыкаются команды emfind и emfile. Типичная ошибка выглядит примерно вот так:

# E: Can't process torrent: /var/lib/transmission/.config/transmission-daemon/torrents/<torrent-name>
Traceback (most recent call last):
File "/usr/bin/emfind", line 9, in <module>
main()
File "/usr/lib/python3.8/site-packages/emonoda/apps/__init__.py", line 161, in wrap
method()
File "/usr/lib/python3.8/site-packages/emonoda/apps/emfind.py", line 278, in main
cache=get_cache(False),
File "/usr/lib/python3.8/site-packages/emonoda/apps/emfind.py", line 263, in get_cache
return datacache.get_cache(
File "/usr/lib/python3.8/site-packages/emonoda/helpers/datacache.py", line 57, in get_cache
if _update(cache, client, files_from_client, torrents_dir_path, name_filter, log):
File "/usr/lib/python3.8/site-packages/emonoda/helpers/datacache.py", line 122, in _update
torrents = tcollection.by_hash(tcollection.load_from_dir(path, name_filter, True, log))
File "/usr/lib/python3.8/site-packages/emonoda/helpers/tcollection.py", line 49, in load_from_dir
torrents[name].get_hash()  # type: ignore
File "/usr/lib/python3.8/site-packages/emonoda/tfile.py", line 141, in get_hash
self.__hash = hashlib.sha1(bencoder.bencode(self.__bencode[b"info"])).hexdigest().lower()

Или так (emfile):

Traceback (most recent call last):
File "/usr/bin/emfile", line 9, in <module>
main()
File "/usr/lib/python3.8/site-packages/emonoda/apps/__init__.py", line 161, in wrap
method()
File "/usr/lib/python3.8/site-packages/emonoda/apps/emfile.py", line 243, in main
print_pretty_all(torrent, client, config.emfile.show_customs, log_stdout)
File "/usr/lib/python3.8/site-packages/emonoda/apps/emfile.py", line 156, in print_pretty_all
log.print("{blue}Name:{reset}           %s", (torrent.get_name(),))
File "/usr/lib/python3.8/site-packages/emonoda/tfile.py", line 105, in get_name
return self.__decode(self.__bencode[b"info"][b"name"], surrogate_escape)
KeyError: b'info'

Как воспроизвести: указать в качестве core/torrents_dir тот каталог, в который Transmission складывает .torrent-файлы, добавить в клиент magnet-ссылку и выполнить emfile или emfind до того, как к ней скачаются метаданные.

Workaround: скопировать все размагниченные торренты в отдельный каталог и указать его в качестве torrents_dir. Наппример, с помощью rsync и опции --min-size=300. На глаз неразмагниченные торренты приблизительно укладываются именно в такой лимит.

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

1 participant