Index: channels/surfmusik.py ================================================================== --- channels/surfmusik.py +++ channels/surfmusik.py @@ -17,10 +17,12 @@ # streamtuner2 to support it on other plattforms. # # TV stations don't seem to work mostly. And loading the webtv/ pages would # be somewhat slow (for querying the actual mms:// streams). # +# * There's also an English version //surfmusic.com/ +# So it might make sense to duplicate it with alternative category titles. # import re import ahttp as http from config import conf @@ -35,14 +37,15 @@ title = "SurfMusik" module = "surfmusik" homepage = "http://www.surfmusik.de/" base = "http://www.surfmusik.de/" + base2 = "http://www.surfmusic.de/" listformat = "audio/x-scpls" categories = [ - "Genres", ["50ger 50s", "Dubstep", "Latin Jazz", "Schlager", "60get 60s", "Electronic", "Latino", "Sega", "70ger 70s", "Eurodance ", "Lounge", "Soft", "80ger 80s", "Filmmusik", "Metal", "Sport", "90ger 90s", "Flamenco", "Merengue", "Swing", "Acid", "Gay", "Mix", "Tamil", "Ambient", "Gospel", "New Age", "Tango", "Arabische Musik", "Gothic", "News", "Techno", "Afrikanische Musik", "Groove", "Nostalgie", "Gabber", "Artist Radio ", "Halloween", "Hardstyle", "Bachata", "Hip Hop", "Oldies", "Jumpstyle", "Bhangra", "Hoerspiel Radio", "Minimal", "Balladen", "House", "Pop", "Schranz", "Big Band", "Indian", "Punk", "Top 40", "Blues", "Indisch", "Radioversprecher", "Trance", "Bollywood", "Instrumentalmusik", "Reggae", "Trip Hop", "Campusradio", "Information", "RnB", "Tropical", "Celtic", "Italo Disco ", "Rochester", "Urban", "Chillout", "Jazz", "Rock", "Variety", "Country", "Karnevalsmusik", "Rock n Roll", "Volksmusik", "Dance", "Kinderradio", "Rumba/Salsa", "Zumba", "Discofox", "Kirchlich", "Russische Chansons", "Drum n Bass", "Klassik", "Salsa"], + "Genres", ["50ger 50s", "Dubstep", "Latin Jazz", "Schlager", "60ger 60s", "Electronic", "Latino", "Sega", "70ger 70s", "Eurodance ", "Lounge", "Soft", "80ger 80s", "Filmmusik", "Metal", "Sport", "90ger 90s", "Flamenco", "Merengue", "Swing", "Acid", "Gay", "Mix", "Tamil", "Ambient", "Gospel", "New Age", "Tango", "Arabische Musik", "Gothic", "News", "Techno", "Afrikanische Musik", "Groove", "Nostalgie", "Gabber", "Artist Radio ", "Halloween", "Hardstyle", "Bachata", "Hip Hop", "Oldies", "Jumpstyle", "Bhangra", "Hoerspiel Radio", "Minimal", "Balladen", "House", "Pop", "Schranz", "Big Band", "Indian", "Punk", "Top 40", "Blues", "Indisch", "Radioversprecher", "Trance", "Bollywood", "Instrumentalmusik", "Reggae", "Trip Hop", "Campusradio", "Information", "RnB", "Tropical", "Celtic", "Italo Disco ", "Rochester", "Urban", "Chillout", "Jazz", "Rock", "Variety", "Country", "Karnevalsmusik", "Rock n Roll", "Volksmusik", "Dance", "Kinderradio", "Rumba/Salsa", "Zumba", "Discofox", "Kirchlich", "Russische Chansons", "Drum n Bass", "Klassik", "Salsa"], "Deutschland", ["Baden Wuerttemberg", "Niedersachsen", "Bayern", "Nordrhein-Westfalen", "Berlin", "Rheinland-Pfalz", "Brandenburg", "Saarland", "Bremen", "Sachsen", "Hamburg", "Sachsen-Anhalt", "Hessen", "Schleswig-Holstein", "Mecklenburg-Vorpommern", "Thueringen"], "Europa", ["Albanien", "Griechenland", "Mallorca", "Slowakei", "Andorra", "Irland", "Malta", "Slovenien", "Armenien", "Island", "Niederlande", "Spanien", "Aserbaidschan", "Italien", "Norwegen", "Tschech. Republ", "Belgien", "Kasachstan", "Oesterreich", "Tuerkei", "Bosnien", "Kanarische Inseln", "Polen", "Ungarn", "Bulgarien", "Kirgistan", "Portugal", "Ukraine", "Daenemark", "Kroatien", "Rumaenien", "Wales", "Deutschland", "Lettland", "Russland", "Weissrussland", "England", "Liechtenstein", "Schottland", "Zypern", "Estland", "Litauen", "Schweden", "Finnland", "Luxemburg", "Schweiz", "Frankreich", "Mazedonien", "Serbien"], "Afrika", ["Angola", "Malawi", "Aethiopien", "Mauritius", "Aegypten", "Marokko", "Algerien", "Namibia", "Benin", "Nigeria", "Burundi", "Reunion", "Elfenbeinkueste", "Senegal", "Gabun", "Simbabwe", "Ghana", "Somalia", "Kamerun", "Sudan", "Kap Verde", "Suedafrika", "Kenia", "Tansania", "Kongo", "Togo", "Libyen", "Tunesien", "Madagaskar", "Uganda", "Mali"], "USA", ["Alabama", "Illinois", "Montana", "Rhode Island", "Alaska", "Indiana", "Nebraska", "South Carolina", "Arizona", "Iowa", "Nevada", "South Dakota", "Arkansas", "Kansas", "New Hampshire", "Tennessee", "Californien", "Kentucky", "New Jersey", "Texas", "Colorado", "Louisiana", "New Mexico", "Utah", "Connecticut", "Maine", "New York", "Vermont", "Delaware", "Maryland", "North Carolina", "Virginia", "Distr.Columbia", "Massachusetts", "North Dakota", "Washington", "Florida", "Michigan", "Ohio", "West Virginia", "Georgia", "Minnesota", "Oklahoma", "Wisconsin", "Hawaii", "Mississippi", "Oregon", "Wyoming", "Idaho", "Missouri", "Pennsylvania", "NOAA Wetter Radio"], "Kanada", ["Alberta", "Ontario", "British Columbia", "Prince Edward Island", "Manitoba", "Québec", "Neufundland", "Saskatchewan", "New Brunswick", "Nordwest-Territorien", "Nova Scotia", "Yukon", "Nunavut",], @@ -54,10 +57,11 @@ "Poli", "Flug", ] titles = dict( genre="Genre", title="Station", playing="Location", bitrate=False, listeners=False ) config = [ + #{"name": "surfmusik_lang", "type": "select", "select":"DE=SurfMusik.de|EN=SurfMusic.de", "description": "You can alternatively use the German or English category titles.", "category": "language"} ] # just a static list for now def update_categories(self): Index: help/channel_internetradioorguk.page ================================================================== --- help/channel_internetradioorguk.page +++ help/channel_internetradioorguk.page @@ -7,14 +7,14 @@ Large radio directory from the UK. - Internet-Radio.org.uk + Internet-Radio.com -

I-R.org.uk is a good alternative to Shoutcast. It also lacks a channel homepage in most +

I-R.com is a good alternative to Shoutcast. It also lacks a channel homepage in most cases, but is a likewise encyclopedical directory. Genres are similiar to Shoutcast.

Note that this plugin uses its own setting for how many links to retrieve. Instead - of stream numbers, it only counts pages. This is a lazyness related bug.

+ of stream numbers, it only counts pages (which however speeds up processing now).

Index: help/channel_jamendo.page ================================================================== --- help/channel_jamendo.page +++ help/channel_jamendo.page @@ -12,10 +12,13 @@

Jamendo is a Creative Comments licensing oriented music distributor. It hosts audio files for individual musicians and artists. Tracks and albums can thus be downloaded free of charge. Yeah, imagine that.

-

The streamtuner2 plugin for Jamendo is pretty limited at the moment. It just provides - a quick overview over top artists and most listened albums from each genre. To browse - the whole collections, better go to the Jamendo homepage or use Rhythmbox.

+

The new Jamendo v3.0 is now utilized. It allows to list albums, playlists, and + individual tracks by genre. Radios are a static list.

+ +

Instead of favicons, streamtuner2 can fetch album or track covers. Thus the images + are a bit larger, and retrieving them all via Channel > Load favicons... takes a while + longer.

ADDED help/channel_surfmusik.page Index: help/channel_surfmusik.page ================================================================== --- help/channel_surfmusik.page +++ help/channel_surfmusik.page @@ -0,0 +1,34 @@ + + + + + + + International radio listings. + + + SurfMusic + +

SurfMusic is a user-collection of + internet radios. It's grouped by genres, or locations / countries.

+ +

It's both pretty large and rather quick to extract listings from. And it mostly + includes station homepage links.

+ + +

The MusicTV and NewsTV sections also return results, but those are mostly + web-based video stations. Some of them are outdated links even.

+ + + + Channel options. + + <code>Language</code> +

The current version is German-only. The English genre titles will be added + later.

+
+
+ +
ADDED help/channel_youtube.page Index: help/channel_youtube.page ================================================================== --- help/channel_youtube.page +++ help/channel_youtube.page @@ -0,0 +1,38 @@ + + + + + + + Youtube music/video listings. + + + Youtube + +

Googles Youtube provides a quirky + JSON API that makes browsing channels and genres feasible. This beta plugin + provides a little overview, and usually retrieves recent video uploads.

+ +

VLC can directly play Youtube URLs. For other players the default application + setting wraps youtube-dl, which is also + used for recording.

+ + + + Channel options. + + <code>Region</code> +

With the country dropdown you can predefine which mostPopular listins are returned.

+
+ + <code>My Channels</code> +

You can edit the list of YT channel names to fetch some of your favourite artists/uploaders. + To apply this setting, and have new categories show up in the genre pane, use + Channel Update category tree first. +

+
+
+ +
Index: help/channels.page ================================================================== --- help/channels.page +++ help/channels.page @@ -2,11 +2,11 @@ type="guide" id="channels"> - Switching through the channel tabs, different radio directoriy services. + Switching through the channel tabs, different radio directory services. Channels

The tabs in the main window represent the music directory channels. Each lists @@ -22,12 +22,12 @@

Choose Channel Reload categories...

Pick a category/genre from the overview, left.

Individual channels provide different music/radio information. The table - views are however identical in each tab. You could modify the datamap[] - in the plugin files, if you want to adapt this.

+ views are mostly identical in each tab. (You could modify the datamap[] + in the plugin files if you wanted to adapt this.)

Available channels
Index: help/config_apps.page ================================================================== --- help/config_apps.page +++ help/config_apps.page @@ -25,15 +25,17 @@ Totemtotem %uvideo/* Media Playermplayer2.exe %plsWin32

Some audio players open a second instance when you actually want to switch radios. - In this case it's a common workaround to write pkill vlc ; vlc %u instead. - This ends the previous player and starts it anew.

+ In this case it's a common workaround to write pkill vlc ; vlc %u instead, + which ends the previous player process and starts it anew. + For VLC there's however also the option --one-instance, which sometimes + works better.

-

Some applications, like Rhythmbox or Banshee, are pure GUI applications and cannot - be invoked with a play URL by other apps. This makes them unsuitable for use with +

Some applications, like Rhythmbox or Banshee, are primarily audio browsers, not players, + and cannot be invoked with a play URL by other apps. This makes them less suitable for use with streamtuner2.

URL placeholders

Any listed application can be invoked with a different kind of URL or filename.be invoked with a play URL by other apps. Index: help/configuration.page ================================================================== --- help/configuration.page +++ help/configuration.page @@ -7,50 +7,51 @@ F12 brings up the options window with the Player, Display, System and Plugin sections. Settings dialog -

There are many options in streamtuner2. You can find the settings dialog in the edit menu, - preferences (last entry).

- - - It is separated into four main areas. - - Player -

Lists audio formats and the applications which shall be used for playing.

-
- - Display -

Influences the display of all stream/station lists.

-
- - System -

Filesystem and environment settings. Boring.

+

There are multiple behaviour options in streamtuner2. + You can find the settings dialog in the edit menu as "Preferences" (last entry). +

+ + + It is separated into three main areas. + + Player +

Lists audio formats and the audio player applications, or recording tools below.

+
+ + Options +

Influences the display of all stream/station lists, and contains some system settings.

Channel Plugins -

Every channel tab can have specific options. These are configured here. Also you can disable channels you don't need.

+

Every channel tab can have specific options. These are configured here. + Also you can disable channels you don't need.

Player application settings -

MIME types are elaborate identifiers for file types. audio/mp3 for example represents MP3 files, and audio/ogg +

MIME types are elaborate identifiers for file types; audio/mp3 for example represents MP3 files, and audio/ogg means just OGG.

The text entry fields can hold the application name of an audio player. Often the application name - is just a lower case version of the program title, but you might have to look it up.

-

Behind the application program name is a placeholder. If the audio player is invoked, this placeholder - gets replaces with an URL (a http://..-Link) of the selected radio stream.

-

It's introduced by percent sign, and followed by letters. %m3u for example generates a .m3u file. Most - audio players understand that. Otherwise try %pls, which might even be faster because streamtuner2 doesn't - have to download and preprocess it. %srv instead gives a direct stream link.

-

The entry for */* is a catch-all. If the audio format of a radio station isn't know, this application - gets called.

+ is just a lower case version of the program title.

+

Behind application names a placeholder can be used. On invocation such placeholders + get replaced with an URL (a http://..-Link) or filename for the selected radio stream.

+

It's introduced by a percent sign, and followed by letters. %m3u for example generates a .m3u file, + which most audio players understand. Otherwise try %pls, which might even be faster because streamtuner2 doesn't + have to download and preprocess it. Alternatively %srv instead gives a direct stream link.

+

Catch-all entries like */* or a generic audio/* entry allow to configure a default player. +

Recording

-

The last entry in the 'Apps' section specifies streamripper. It is used for recording stations. You - might want to add some commandline -arguments here.

+

The second block of entries in the 'Apps' section specifies recording applications. + Here streamripper is preconfigured for audio streams, and youtube-dl for Youtube videos for instance. + To define a target directory, you can add commandline arguments to each. Also it's typically + helpful to leave the xterm prefix on, so you can follow the processing state. (Alternatively to + xterm there is x-terminal-emulator, or rxvt, gnome-terminal, xfce4-terminal, etc.)

Display/GUI options @@ -66,29 +67,23 @@

It's possible to select a Gtk+ theme. But not all themes work with all Gtk display engines, and not all themes work with streamtuner2. You just have to try it.

Remembering window states makes streamtuner2 not forget which channel and category was last selected. You can however disable this option, and instead manually save the window states/layout in the edit menu, if you want.

-
- - -
- System info -

There are just a few options here, and some are hard-wired. Usually you don't want to change them.

Setting another temporary directory might be useful, if you want to keep the temporary .m3u cache files. They are created whenever you hit play. For archival or speed-up porposes you might want to keep them elsewhere. They don't take a lot of space.

Plugin and Channel settings

Each channel plugin can bring its own list of configuration settings. These are collected here.

-

The heading for each plugin is actually a button, which allows disabling the plugin. Alas the state - cannot be easily discerned with all themes.

+

The heading for each plugin allows to enable or disable it. To apply changed states you need to restart + streamtuner2 however.

If you want to find out more about the short option descriptions (most settings are checkboxes), please have a look into the channels directory /usr/share/streamtuner2/channels/ and corresponding *.py files. These are readable, and sometimes contain more information.

Index: help/search.page ================================================================== --- help/search.page +++ help/search.page @@ -8,16 +8,22 @@ Quicksearch field and Ctrl+F compound search window. Searching -

There are two search functions. The quick search field is in the toolbar, and allows - to highlight search terms in the current station list. The cache search is available - through the Edit Search menu instead and provides more details.

+

There are two search functions.

+ + +
+ Quick search +

Just enter text into the quick search box atop. Streamtuner2 will instantly highlight + any matches in the current stations view. If you switch tabs, just click the glass icon + to reapply the highlighting.

+
- Dialog options + Search window

You can get to the search dialog via Edit Find or Ctrl+F. Centrally to this dialog is the text field, where you can specify the phrase to scan for.

Above you can check which channel plugins to inspect for the search term. Using this allows to limit the search to specific radio station directories, but usually you want @@ -25,26 +31,19 @@

Below the search phrase text box, you can specifiy which station fields to look into. Often you just want to search the titles of radio stations. But you can also have the search occour in the description/playing fields. Alternatively you could just search the homepage links.

-
-
- Search methods

Lastly, there are three search methods. You mostly want to use the cache search, which just scans through the station lists streamtuner2 has downloaded. Since you are mostly looking for something you had already seen, this will give you the desired results.

+

The server search would try to do a live search on the directory servers, providing you with the most recent data. However, it's not implemented for all channel plugins, and therefore brings limited output.

-

Use the button google it as last resort, if streamtuner2 didn't find anything.

-
- -
- Quick search -

Just enter text into the quick search box. Streamtuner2 will instantly highlight - any matches in the current stations view. If you switch tabs, just click the glass icon - to reapply the highlighting.

+ +

Use the button google it as last resort, if streamtuner2 didn't find anything.

+
Index: streamtuner2.png ================================================================== --- streamtuner2.png +++ streamtuner2.png cannot compute difference between binary files