Настройка socks в telegram оповещении
Прошу реализовать в настройках способах оповещения через Telegram возможность использовать socks в связи с блокировкой данного месенджера в России
да, было бы очень круто. Я пока обошелся тем что поднял локальный polipo прокси через тор (все равно крутился для чека лостфильма) и дописал в плагине жестко прокси, в файле monitorrent/plugins/notifiers/telegram.py перед вызовом request = requests.post(api_url, data=parameters... добавляем массив с прокси и его передаем в запрос, в итоге он превращается в такую конструкцию - http_proxy = "http://127.0.0.1:8123" https_proxy = "https://127.0.0.1:8123" proxyArr = { "http" : http_proxy, "https" : https_proxy } request = requests.post(api_url, data=parameters, proxies=proxyArr)
Сорян за быдлокод если что.
Решил проблему арендовав VPS на GDCcloud. Поднял там докер, разместил контейнер. Аналогично моей инструкцией в решении проблемы #247 (Я использую докер-контейнер monitorrent) исправил файл monitorrent/plugins/notifiers/telegram.py как описал @korableff выше (Если кому лень искать - в районе 119 строки). После перезапуска работа уведомлений восстановилась.
@werwolfby @korableff а можно попросить заимплеменить фичу? Думаю что можно те же прокси из настроек юзать для нотификейшнов. А то каждый раз патчить докер-контейнер после выключения электричества грустновато
Вообще идея, думаю в ближайшие 2 недели будет время, я постараюсь глянуть
Кому интересно моё решение без поддержки Socks в самом мониторренте - можно легко включить поддержку, используя внешние Environment variables, например запуская monitorrent следующим образом:
https_proxy=socks5://127.0.0.1:8123 http_proxy=socks5://127.0.0.1:8123 /path/to/python server.py
Далее для систем с SystemD коих сейчас большинство, можно использовать их же в юнит файле:
# /etc/systemd/system/monitorrent.service
[Unit]
Description=monitorrent
After=multi-user.target
[Service]
User=danila
Environment=https_proxy=socks5://127.0.0.1:8123
Environment=http_proxy=socks5://127.0.0.1:8123
Type=simple
WorkingDirectory=/home/danila/Apps/monitorrent
ExecStart=/home/danila/Apps/monitorrent/bin/python server.py
StandardInput=tty-force
[Install]
WantedBy=multi-user.target
P.S. у меня monitorrent работает в virtualenv, а socks сервер стоит 127.0.0.1 на порту 8123 через autossh к удалённому серверу.
Времени так и не появилось, так что не смотрел :(