1. Prerequisites and Overall Design Philosophy¶
To get started, I assume you have your own Plex server. In order to get started with Plex, start at the Plex website and put your media into it. Next, follow the Installation instructions. Join or identify the music, television, and movie based services described in Section 2.1, and server settings described in Section 2.2. Use
howdy_config_gui to save your services and settings information, and then you will be good to go in using the ~25 or so command line and graphical user interface (GUI) tools to manage your Plex server.
sudo apt install python3-pyqt5 python3-pyqt5.qtwebengine sshpass
Equivalent commands to install PyQt5 and sshpass exist on Red Hat based systems, such as Fedora or CentOS. An even easier way to install the latest version of PyQt5 on your user account is with this command,
pip3 install --user pyqt5
The installation of PyQtWebEngine is relatively difficult. On my Ubuntu 20.04 machine, I had to run
sudo apt install python3-pyqt5.qtwebengine to get this to work. More portable and universal commands, such as
pip3 install --user pyqtwebengine, will install PyQtWebEngine, but imports may not work.
Since this package has been setup-ified, installation is very easy. Just
cd into the
howdy directory, and run,
python3 setup.py install --user
Or you can run pip from that directory. This installation process is especially suited for active development; you make changes to your code, and interactive tests of the API or of the executables are immediately reflected.
pip3 install --user -e .
Or, if you feel ridiculously brave, you can install from the GitHub URL.
pip3 install --user git+https://github.com/tanimislam/howdy.git#egg=howdy
1.3. Common Design Philosophies and Features for Command Line and GUIs¶
Since I am forced to use the tools I developed to manage my Plex server, my command line interfaces (CLIs) and GUIs share common features that I hope make these tools discoverable and more easily debuggable.
The CLIs are programmed with
argparse's ArgumentParser( ) and have a comprehensive help that can be accessed via
<cli_tool> -h, where
<cli_tool> refers to the the specific Python CLI.
The GUI tools all share common features. One can take a PNG screenshot of each widget and sub-widget with the
Shift+Command+P on Mac OS X computers) key combination. This helps to debug issues that may appear in the GUI, and helps to create useful documentation. I always try to put help screens into my GUIs, although not all the GUIs have working help dialogs.
Many of the GUIs and CLIs can be run with a
--noverify option to access SSL protected URLs and services without verification, which is needed when running in more restricted environments.
In fact, here is a summary of the 25 CLI’s and GUI’s currently in Howdy. The ☑ after the name (or name and icon) means that I have completed the documentation for that CLI or GUI.