Giter Site home page Giter Site logo

jcemerson / protonvpn-cli-gui Goto Github PK

View Code? Open in Web Editor NEW
12.0 12.0 0.0 2.77 MB

Kivy-based ProtonVPN GUI for protonvpn-cli-ng on Linux (Unofficial)

License: GNU General Public License v3.0

Python 100.00%
kivy linux protonvpn protonvpn-cli-ng python3

protonvpn-cli-gui's People

Contributors

jcemerson avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar

protonvpn-cli-gui's Issues

ImportError: cannot import name 'country_codes' from 'protonvpn_cli'

Hi, I recently installed your ProtonVPN GUI application on a fully upgraded Ubuntu 20.04 install with kernel version 5.5.4. I am trying to start the application using the command:

protonvpn-cli-gui

And when I run it, everything seems to be working fine and the GUI very briefly shows up, but then it immediately crashes and gives me an import error when it tries to import country_codes from protonvpn_cli. I verified that protonvpn_cli is installed on my system and fully updated. This is the terminal output I get when I try to run the application:

[WARNING] [Config      ] Older configuration version detected (0 instead of 21)
[WARNING] [Config      ] Upgrading configuration in progress.
[INFO   ] [Logger      ] Record log in /home/user/.kivy/logs/kivy_20-12-31_0.txt
[INFO   ] [Kivy        ] v2.0.0
[INFO   ] [Kivy        ] Installed at "/usr/local/lib/python3.8/dist-packages/kivy/__init__.py"
[INFO   ] [Python      ] v3.8.5 (default, Jul 28 2020, 12:59:40) 
[GCC 9.3.0]
[INFO   ] [Python      ] Interpreter at "/usr/bin/python3"
[INFO   ] [Factory     ] 186 symbols loaded
[INFO   ] [Image       ] Providers: img_tex, img_dds, img_sdl2, img_pil (img_ffpyplayer ignored)
[INFO   ] [Window      ] Provider: sdl2
[INFO   ] [GL          ] Using the "OpenGL" graphics system
[INFO   ] [GL          ] Backend used <sdl2>
[INFO   ] [GL          ] OpenGL version <b'4.6 (Compatibility Profile) Mesa 21.0.0-devel (git-28a202f 2020-12-31 focal-oibaf-ppa)'>
[INFO   ] [GL          ] OpenGL vendor <b'AMD'>
[INFO   ] [GL          ] OpenGL renderer <b'AMD Radeon RX 5700 XT (NAVI10, DRM 3.36.0, 5.5.4-050504-generic, LLVM 11.0.0)'>
[INFO   ] [GL          ] OpenGL parsed version: 4, 6
[INFO   ] [GL          ] Shading version <b'4.60'>
[INFO   ] [GL          ] Texture max size <16384>
[INFO   ] [GL          ] Texture max units <32>
[INFO   ] [Window      ] auto add sdl2 input provider
[INFO   ] [Window      ] virtual keyboard not allowed, single mode, not docked
[INFO   ] [Text        ] Provider: sdl2
 Traceback (most recent call last):
   File "/usr/local/bin/protonvpn-cli-gui", line 5, in <module>
     from protonvpn_cli_gui.protonvpnguiapp import pvpn_gui
   File "/usr/local/lib/python3.8/dist-packages/protonvpn_cli_gui/protonvpnguiapp.py", line 69, in <module>
     from protonvpn_cli import country_codes as pvpncli_country_codes  # noqa
 ImportError: cannot import name 'country_codes' from 'protonvpn_cli' (/usr/lib/python3/dist-packages/protonvpn_cli/__init__.py)

Do you have any idea on how I can fix this issue?
`

Appears that pygame should be a required dependency

Hey, thanks for sharing this project! As an FYI I needed to install pygame to bypass the app from crashing during launch.

  • OS: Pop!_OS 19.10 x86_64
  • App Version: v0.1.9-beta

Log prior to installing pygame:

$ sudo protonvpn-cli-gui
[INFO   ] [Logger      ] Record log in /root/.kivy/logs/kivy_20-03-28_1.txt
[INFO   ] [Kivy        ] v1.11.1
[INFO   ] [Kivy        ] Installed at "/usr/local/lib/python3.7/dist-packages/kivy/__init__.py"
[INFO   ] [Python      ] v3.7.5 (default, Nov 20 2019, 09:21:52) 
[GCC 9.2.1 20191008]
[INFO   ] [Python      ] Interpreter at "/usr/bin/python3"
[INFO   ] [Factory     ] 184 symbols loaded
[INFO   ] [Image       ] Providers: img_tex, img_dds, img_gif (img_pygame, img_pil, img_ffpyplayer ignored)
[CRITICAL] [Window      ] Unable to find any valuable Window provider. Please enable debug logging (e.g. add -d if running from the command line, or change the log level in the config) and re-run your app to identify potential causes
egl_rpi - ImportError: cannot import name 'bcm' from 'kivy.lib.vidcore_lite' (/usr/local/lib/python3.7/dist-packages/kivy/lib/vidcore_lite/__init__.py)
  File "/usr/local/lib/python3.7/dist-packages/kivy/core/__init__.py", line 63, in core_select_lib
    fromlist=[modulename], level=0)
  File "/usr/local/lib/python3.7/dist-packages/kivy/core/window/window_egl_rpi.py", line 12, in <module>
    from kivy.lib.vidcore_lite import bcm, egl

pygame - ModuleNotFoundError: No module named 'pygame'
  File "/usr/local/lib/python3.7/dist-packages/kivy/core/__init__.py", line 63, in core_select_lib
    fromlist=[modulename], level=0)
  File "/usr/local/lib/python3.7/dist-packages/kivy/core/window/window_pygame.py", line 13, in <module>
    import pygame

x11 - ModuleNotFoundError: No module named 'kivy.core.window.window_x11'
  File "/usr/local/lib/python3.7/dist-packages/kivy/core/__init__.py", line 63, in core_select_lib
    fromlist=[modulename], level=0)

[CRITICAL] [Text        ] Unable to find any valuable Text provider. Please enable debug logging (e.g. add -d if running from the command line, or change the log level in the config) and re-run your app to identify potential causes
pygame - ModuleNotFoundError: No module named 'pygame'
  File "/usr/local/lib/python3.7/dist-packages/kivy/core/__init__.py", line 63, in core_select_lib
    fromlist=[modulename], level=0)
  File "/usr/local/lib/python3.7/dist-packages/kivy/core/text/text_pygame.py", line 18, in <module>
    import pygame

pil - ModuleNotFoundError: No module named 'PIL'
  File "/usr/local/lib/python3.7/dist-packages/kivy/core/__init__.py", line 63, in core_select_lib
    fromlist=[modulename], level=0)
  File "/usr/local/lib/python3.7/dist-packages/kivy/core/text/text_pil.py", line 7, in <module>
    from PIL import Image, ImageFont, ImageDraw

[CRITICAL] [App         ] Unable to get a Text provider, abort.

Resolution:

sudo pip3 install pygame

I'm thinking pygame should probably be added as an installed dependency in the setup.py.

Hover Behvaior - Cursor/Widgets Interact When Underneath Another Widget

Issue:

When a popup is open or a widget (e.g. a button) is nested inside of another widget (e.g. treeview node), the "lower" widget and cursor are interacting, despite another layer being over top of it.

Expected Behavior:
The widget on top needs to terminate the cursors interaction with widgets layered below it.

Improve Error Handling when ProtonVPN-CLI Returns a Non-Zero Exit Code

protonvpn-cli can have issues connecting with the API for a variety of reasons. However, when this happens, sometimes the GUI responds by crashing.

Fortunately simply restarting the GUI (and reconnecting if necessary) gets everything going again.

Ultimately, the GUI should more gracefully handle these instances.

Option to Connect to Fastest Plus Server

The determination of which server is the "fastest" server is more complex than just the server's load; it involves other factors such as distance of the user from the server, etc. The ProtonVPN API provides data to indicate the fastest server for a particular user (using their own algorithmic magic) and ProtonVPN-CLI just connects to that fastest server.

However, for Plus and Visionary customers, it's not uncommon to find that the fastest server you've connected to is a Basic-tier server, which don't offer all the features of those higher-tier plans.

An option should be added (likely as a Profile and could be assigned to the Quick Connect button) to allow Plus and Visionary users to specifically connect to the fastest Plus server, either out of all server or for a specific country.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.