[GH-ISSUE #239] rutracker ошибка авторизации #182

Closed
opened 2026-10-13 19:50:53 +00:00 by bsakaguchi · 2 comments
Owner

Originally created by @lawdt on GitHub (Dec 5, 2017).
Original GitHub issue: https://github.com/werwolfby/monitorrent/issues/239

не работает авторизация для rutracker. убрал из пароля все спецсимволы, все равно не работает.

Originally created by @lawdt on GitHub (Dec 5, 2017). Original GitHub issue: https://github.com/werwolfby/monitorrent/issues/239 не работает авторизация для rutracker. убрал из пароля все спецсимволы, все равно не работает.
Author
Owner

@werwolfby commented on GitHub (Oct 16, 2018):

@lawdt а на 1.1.8 воспроизводится?

<!-- gh-comment-id:430354767 --> @werwolfby commented on GitHub (Oct 16, 2018): @lawdt а на 1.1.8 воспроизводится?
Author
Owner

@oniksfly commented on GitHub (Mar 30, 2019):

@werwolfby воспроизводится, причём не только для рутрекера. Там есть логическая проблема проверки реквизитов авторизации, которая актуальна для нескольких трекеров при использовании прокси.

Если зайти на экран ввода реквизитов трекера и запустить проверку указанных реквизитов, то будет вызван login метод и в этом контексте инстанс класса RutrackerTracker всегда содержит атрибут tracker_settings = None и настройки прокси не будут применены.

Я совершенно не разбираюсь в питоне, но вот такой костыль решает проблему:

diff --git a/monitorrent/plugins/trackers/rutracker.py b/monitorrent/plugins/trackers/rutracker.py
index 0101a73..ee0e4db 100644
--- a/monitorrent/plugins/trackers/rutracker.py
+++ b/monitorrent/plugins/trackers/rutracker.py
@@ -4,6 +4,8 @@ import re
 import six
 from requests import Session
 import requests
+from monitorrent.settings_manager import SettingsManager
+settings_manager = SettingsManager()
 from sqlalchemy import Column, Integer, String, ForeignKey
 from monitorrent.db import Base, DBSession
 from monitorrent.plugins import Topic
@@ -41,7 +43,7 @@ class RutrackerLoginFailedException(Exception):
 
 
 class RutrackerTracker(object):
-    tracker_settings = None
+    tracker_settings = settings_manager.tracker_settings
     login_url = "https://rutracker.org/forum/login.php"
     profile_page = "https://rutracker.org/forum/privmsg.php?folder=inbox"
     _regex = re.compile(six.text_type(r'^https?://w*\.*rutracker.org/forum/viewtopic.php\?t=(\d+)(/.*)?$'))

Остаётся ещё вопрос с капчей рутрекера, но это уже отдельная история. Можно попробовать поднять VPN на хосте, где запущен сервис, сохранить настройки для трекеров и отключить VPN.

В рамках этой проблемы хотелось бы узнать, есть смысл дожидаться фикса или лучше форкнуть? И ещё был бы признателен автору, если бы в репозиторий добавился Dockerfile.

<!-- gh-comment-id:478291677 --> @oniksfly commented on GitHub (Mar 30, 2019): @werwolfby воспроизводится, причём не только для рутрекера. Там есть логическая проблема проверки реквизитов авторизации, которая актуальна для нескольких трекеров при использовании прокси. Если зайти на экран ввода реквизитов трекера и запустить проверку указанных реквизитов, то будет вызван `login` метод и в этом контексте инстанс класса `RutrackerTracker` всегда содержит атрибут `tracker_settings = None` и настройки прокси не будут применены. Я совершенно не разбираюсь в питоне, но вот такой костыль решает проблему: ``` diff --git a/monitorrent/plugins/trackers/rutracker.py b/monitorrent/plugins/trackers/rutracker.py index 0101a73..ee0e4db 100644 --- a/monitorrent/plugins/trackers/rutracker.py +++ b/monitorrent/plugins/trackers/rutracker.py @@ -4,6 +4,8 @@ import re import six from requests import Session import requests +from monitorrent.settings_manager import SettingsManager +settings_manager = SettingsManager() from sqlalchemy import Column, Integer, String, ForeignKey from monitorrent.db import Base, DBSession from monitorrent.plugins import Topic @@ -41,7 +43,7 @@ class RutrackerLoginFailedException(Exception): class RutrackerTracker(object): - tracker_settings = None + tracker_settings = settings_manager.tracker_settings login_url = "https://rutracker.org/forum/login.php" profile_page = "https://rutracker.org/forum/privmsg.php?folder=inbox" _regex = re.compile(six.text_type(r'^https?://w*\.*rutracker.org/forum/viewtopic.php\?t=(\d+)(/.*)?$')) ``` Остаётся ещё вопрос с капчей рутрекера, но это уже отдельная история. Можно попробовать поднять VPN на хосте, где запущен сервис, сохранить настройки для трекеров и отключить VPN. В рамках этой проблемы хотелось бы узнать, есть смысл дожидаться фикса или лучше форкнуть? И ещё был бы признателен автору, если бы в репозиторий добавился `Dockerfile`.
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
werwolfby/monitorrent#182
No description provided.