GoodbyeDPI icon indicating copy to clipboard operation
GoodbyeDPI copied to clipboard

Minimize GoodbyeDPI to Tray | Минимизация GoodbyeDPI в трей

Open Yoniqueeml opened this issue 1 year ago • 12 comments

I created a Python wrapper for GoodbyeDPI that allows you to minimize the application to the system tray. After launching main.exe, the application will appear in the tray, where you can choose how to launch the program - for example, with ru_blacklist, ru_blacklist_redir, etc. The application status is displayed as an icon in the tray: green - if the application is running, red - if it is turned off. The config.json file is used to configure parameters.


Обертка для GoodbyeDPI, которая позволяет сворачивать приложение в системный трей. После запуска main.exe приложение окажется в трее, где вы можете выбрать способ запуска программы - например, с ru_blacklist, ru_blacklist_redir и т. д. Статус приложения отображается в виде значка в трее: зеленый - если приложение запущено, красный - если выключено. Файл config.json используется для настройки параметров.

UPD: Tray icons can be found in the README.md. I also plan to add the ability to have the application start automatically with the system.

Yoniqueeml avatar Aug 01 '24 19:08 Yoniqueeml

При запуске ругается на отсутсвие модуля: изображение

Через venv запускается

(venv) c:\DPI_Tray>python main.py
Starting the application...
Executing command: x86_64\goodbyedpi.exe -9 --dns-addr 77.88.8.8 --dns-port 1253 --dnsv6-addr 2a02:6b8::feed:0ff --dnsv6-port 1253 --blacklist russia-blacklist.txt --blacklist russia-youtube.txt
Executed: x86_64\goodbyedpi.exe -9 --dns-addr 77.88.8.8 --dns-port 1253 --dnsv6-addr 2a02:6b8::feed:0ff --dnsv6-port 1253 --blacklist russia-blacklist.txt --blacklist russia-youtube.txt
Process terminated on exit.
Application has stopped.

igorok107 avatar Aug 02 '24 12:08 igorok107

При запуске ругается на отсутсвие модуля: изображение

Через venv запускается

(venv) c:\DPI_Tray>python main.py
Starting the application...
Executing command: x86_64\goodbyedpi.exe -9 --dns-addr 77.88.8.8 --dns-port 1253 --dnsv6-addr 2a02:6b8::feed:0ff --dnsv6-port 1253 --blacklist russia-blacklist.txt --blacklist russia-youtube.txt
Executed: x86_64\goodbyedpi.exe -9 --dns-addr 77.88.8.8 --dns-port 1253 --dnsv6-addr 2a02:6b8::feed:0ff --dnsv6-port 1253 --blacklist russia-blacklist.txt --blacklist russia-youtube.txt
Process terminated on exit.
Application has stopped.

Исправил Спрасибо что заметил, случайно закинул .pyd в игнор, но на написанных тестах все проходило

Yoniqueeml avatar Aug 02 '24 12:08 Yoniqueeml

а смысл, если он в сервисе все равно не виден?

yungd1plomat avatar Aug 03 '24 13:08 yungd1plomat

а смысл, если он в сервисе все равно не виден?

Изначальная задумка предполагала добавление функционала сворачивания в трей работающего окна

Yoniqueeml avatar Aug 03 '24 15:08 Yoniqueeml

Добавляем

apchistuo avatar Aug 04 '24 13:08 apchistuo

Добавляем

Ты сервис в трей просишь добавить? Не очень понял сути комментария

Yoniqueeml avatar Aug 04 '24 14:08 Yoniqueeml

Спасибо автору PR за старания, но не очень понял задумки автора. Данное приложение является консольной утилитой.

У него есть два состояния:

  1. Режим окна
  2. Режим сервиса

Режим окна служит для быстрого подбора необходимых ключей, потом можно отредактировать cmd файл запуска сервиса с необходимым количеством ключей и запустить как сервис.

Данный PR:

  1. вводит лишнюю зависимость на 140к строк в виде Python.
  2. Неизвестная зависимость ресурса https://p.thenewone.lol/domains-export.txt
  3. Поправьте меня, разве можно бинарники вставлять в репу на С? Вроде как оформляется зависимость отдельная.
  4. Тесты на разных версиях Windows отсутствуют.
  5. Дублирование сценариев(cmd)
  6. app.log???
  7. config.json???

В общем, считаю данный PR не состоятельным.

askolt avatar Aug 04 '24 23:08 askolt

Спасибо автору PR за старания, но не очень понял задумки автора. Данное приложение является консольной утилитой.

У него есть два состояния:

  1. Режим окна
  2. Режим сервиса

Режим окна служит для быстрого подбора необходимых ключей, потом можно отредактировать cmd файл запуска сервиса с необходимым количеством ключей и запустить как сервис.

Данный PR:

  1. вводит лишнюю зависимость на 140к строк в виде Python.
  2. Неизвестная зависимость ресурса https://p.thenewone.lol/domains-export.txt
  3. Поправьте меня, разве можно бинарники вставлять в репу на С? Вроде как оформляется зависимость отдельная.
  4. Тесты на разных версиях Windows отсутствуют.
  5. Дублирование сценариев(cmd)
  6. app.log???
  7. config.json???

В общем, считаю данный PR не состоятельным.

Спасибо за комментарий и за потраченное время на PR. Отвечу на некоторые поинты.

  1. Да, данное приложение является консольной утилитой, но держать отдельное окно или сервис мне неудобно
  2. 140к строк, бинарники - согласен
  3. App.log нужен чтобы посмотреть - правильно ли запускается приложение
  4. Config.json - я не запускаю каждый из cmd по отдельности, я запускаю goodbyedpi.exe с нужными флагами, которые были в файлах cmd, поэтому для изменения каких-либо параметров запуска можно просто поменять json

Yoniqueeml avatar Aug 05 '24 07:08 Yoniqueeml

https://github.com/Virenbar/GDPIControl уже все это умеет.

AndyShade avatar Aug 07 '24 15:08 AndyShade

Соглашусь с тем, что данный PR, при всем уважении к автору за старания, конкретно в данном проекте будет лишним. Подобную утилиту лучше иметь отдельно от основного проекта, чтобы разделять зоны ответственности (как приведенная выше @AndyShade GDPIControl).

Amegatron avatar Aug 07 '24 15:08 Amegatron

Не понимаю смысл данного пулл реквеста, когда автор пытается костылями сделать обертку трея на пайтоне, когда GoodbyeDPI в абсолютном опен сурсе и написан на C, и можно сохранить очень много места и ускорить работу, если переписать все на C где все уже есть. (используй WndProc) для справки - trayframework. GDPIControl упомянутый выше тоже является оберткой но написан уже на C#, использовать я бы тоже не стал.

pidjan avatar Aug 08 '24 01:08 pidjan

Идея хорошая, но это

image

не приемлимо большое количество кода, просто чтобы свернуть в трей. Наверняка возможно не добавлять лишних зависимостей и сделать это всё в намного меньшее количенство строк кода.

Я считаю, что если можно сделать официальную версию лучше (добавив эту фичу), то это стоит того, чем для одной такой фичи делать отдельный репо.

И хоть я и люблю python, но в данном случае удобнее использовать тот же си, чтобы весь код был в одном приложении и на одном языке.

0dminnimda avatar Aug 08 '24 10:08 0dminnimda

Развивайте программу отдельно, я не смогу её поддерживать в своём репозитории.

ValdikSS avatar Aug 09 '24 14:08 ValdikSS