@@ -2,34 +2,45 @@ # encoding: UTF-8 # api: python # type: application # title: streamtuner2 # description: Directory browser for internet radio / audio streams -# depends: pygtk | pygi, threading, pyquery, kronos, requests -# version: 2.1.3 +# depends: pygtk | pygi, threading, pyquery, python-lxml, requests +# version: 2.1.3-3 # author: mario salzer # license: public domain # url: http://freshcode.club/projects/streamtuner2 # config: # category: multimedia -# +# id: streamtuner2 +# pack: +# gtk*.xml, +# *.py, +# st2.py=/usr/bin/streamtuner2, +# channels/__init__.py, +# bundle, +# streamtuner2.desktop=/usr/share/applications/, +# README=/usr/share/doc/streamtuner2/, +# help/streamtuner2.1=/usr/share/man/man1/, +# help=/usr/share/doc/streamtuner2/, +# streamtuner2.png, +# logo.png=/usr/share/pixmaps/streamtuner2.png, +# epoch: +# architecture: all # # # Streamtuner2 is a GUI browser for internet radio directories. Various # providers can be added, and streaming stations are usually grouped into # music genres or categories. It starts external audio players for stream # playing and streamripper for recording broadcasts. # # It's an independent rewrite of streamtuner1 in a scripting language. So -# it can be more easily extended and fixed. The use of PyQuery for HTML -# parsing makes this simpler and more robust. -# -# Stream lists are stored in JSON cache files. -# -# -# - +# it can be more easily extended and fixed. The mix of JSON APIs, regex +# or PyQuery extraction simplifies processing many sources. +# +# Primarily radio stations are displayed, some channels however are music +# collections. Commercial and sign-up services are not the target purpose. """ project status """ # # The application runs mostly stable. The GUI interfaces are workable. # It's supposed to run on Gtk2 and Gtk3. Python3 support is still WIP. @@ -56,13 +67,11 @@ # - MEDIUM: if system json module is not available, pseudo-json uses eval() # to read the config data -> limited risk, since it's only local files # - HIGH RISK: no verification of downloaded favicon image files (ico/png), # as they are passed to gtk.gdk.Pixbuf (OTOH data pre-filtered by Google) # - MEDIUM: audio players / decoders are easily affected by buffer overflows -# from corrupt mp3/stream data, and streamtuner2 executes them -# - but since that's the purpose -> no workaround -# +# from corrupt mp3/stream data, and streamtuner2 just passes them on # standard modules import sys @@ -94,11 +103,11 @@ import channels from channels import * import favicon -__version__ = "2.1.3" +__version__ = "2.1.3-3" # this represents the main window # and also contains most application behaviour main = None