Internet radio browser GUI for music/video streams from various directory services.

⌈⌋ ⎇ branch:  streamtuner2


Timeline

93 check-ins using file contrib/delicast.py version 78844d8df5

2015-05-24
14:19
Introduce action.handler{} callbacks to convert custom streaming URL types such as "audio/soundcloud". Unify backend code for .play/record/browser() calls. Reddit module just splits out domain name now, then checks for walledgarden links (filter option renamed). Introduce url_soundcloud plugin in favour of `soundcli` cmdline client setting. check-in: 23bbd97989 user: mario tags: trunk
10:02
Move channel.save() after column updating. check-in: 3072c80d83 user: mario tags: trunk
10:02
Lighter highlight color: for plugin options. check-in: 160f4dd660 user: mario tags: trunk
08:52
Introduce channel.fixed_size=[24,24] to constrain favicon CellRendererPixbuf. Works in conjunction to .img_resize= attribute for favicon/img converter. Set expand:False in default datamap[] for favicon cell. check-in: 39304eb90b user: mario tags: trunk
08:49
Check for string length (.q) before starting cache/server search. Wrap channel+cat switching in ukit.do(). check-in: 708ecda3e9 user: mario tags: trunk
2015-05-23
15:46
Add a "keep all" web links option. check-in: 9f8cacb1dd user: mario tags: trunk
15:45
Fix swapped boolean and integer options in set_plugin_defaults() check-in: 5020c93825 user: mario tags: trunk
15:29
Support custom audio handlers for soundcloud etc. Example plugin to register them (only `soundcli` so far). check-in: 20f1c3edda user: mario tags: trunk
15:28
Simplify favicon callbacks, use channel= instead of artifical pixstore= tuple. update_rows() itself extracts liststore and indicies now. Introduce `img_resize` channel option for `img` banner rescaling in favicon module. check-in: 867c9f9f94 user: mario tags: trunk
15:26
Fix `id` reference in dependency resolver. check-in: 8289ad11b4 user: mario tags: trunk
01:08
Add more subreddits to category list. Placeholder groups with "→" decorator. Allow web-only links per config option (start web browser for sptfy/sndcl etc.) check-in: 3746af529b user: mario tags: trunk
2015-05-22
22:01
Catch http/json result errors earlier. Break on absent "after" id. check-in: 8dfd60898f user: mario tags: trunk
22:00
Support config option boolean aliases (1, true, yes, on). check-in: effbfc31f1 user: mario tags: trunk
22:00
Use gtk-info/-error/-no for placeholder entries. check-in: 55408c97f8 user: mario tags: trunk
01:49
Channel plugin for reddit /r/*music* categories. Just filters out Youtube or direct MP3/Ogg links at the moment. check-in: d840371943 user: mario tags: trunk
2015-05-21
20:08
Remove config.find_in_dirs(), which is unused now. check-in: 11f270a726 user: mario tags: trunk
02:25
Make quicksearch icon activatable again (property "secondary-icon-activatable" was required). check-in: 069f6308de user: mario tags: trunk
2015-05-19
22:37
Minor help page updates. check-in: 9b6aa021cd user: mario tags: trunk
22:37
Fetch all 5 available pages from Xiph directory. Rewrite to use more directed regex extraction mode. Minor help page updates. check-in: 2590478319 user: mario tags: trunk
2015-05-18
22:21
A bit more PEP8, without undoing all readability. check-in: 492cb2aacf user: mario tags: trunk
22:21
Allow Exif-wrapped JPEGs as well (not just JFIF regexp check). Comment on merging row["favourite"] merge via prepare_filters list. check-in: 6d03cb84d3 user: mario tags: trunk
22:19
Delay window title updating logic and ui_cht callback via uikit.do() wrapper.

Seems to fix both: - Gdk:ERROR:/build/buildd/gtk+2.0-2.24.23/gdk/gdkregion-generic.c:1114:miUnionNonO: assertion failed: (r->x1 < r->x2) - Error in `python': double free or corruption (fasttop): 0x0..... check-in: 8a68105eeb user: mario tags: trunk

00:30
Typecast str() for bookmarks.is_in() url lookups → redundant. (Prepare for merging columns-update hook.) check-in: 0977371de1 user: mario tags: trunk
00:29
Strip double .png/.jpeg extension from cached `img` icons. check-in: 77ab1e927e user: mario tags: trunk
00:28
Remove _=time from streaminfo json urls. check-in: b23180bba7 user: mario tags: trunk
00:28
Minor simplifications in manual, remove iCast page. check-in: 54d59ae47f user: mario tags: trunk
2015-05-17
19:13
Adapt config options (color, and type: int) check-in: eb460acb8f user: mario tags: trunk
19:13
Remove stray `print` statement check-in: d10f61093f user: mario tags: trunk
19:12
Typecast plugin options on initialization. Use SpinButton for `int` options instead of text label. check-in: cdafbe23ce user: mario tags: trunk
19:11
Introduce new hooks["switch"] for update_title(). Used by new `Channel homepage link` plugin, which brings back streamtuner1-style service homepage. check-in: f992b0792a user: mario tags: trunk
19:10
Add toolbar placeholder for channel-link. Change conf.max_streams to SpinButton. check-in: 5b2f021e96 user: mario tags: trunk
03:04
Minor comment updates, version bumps. check-in: a9cf073956 user: mario tags: trunk
03:04
Remove ahttp aliases, print warning for "raw" extractor fallback, add some comment headlines for better overview. check-in: 5d05601f03 user: mario tags: trunk
03:03
Get rid of StringIO wrapper for json loading. check-in: d1a36e5bde user: mario tags: trunk
03:03
Add WinAmp user agent. check-in: d4f8ceee3f user: mario tags: trunk
03:02
Fix python dependency, and embed PYTHONPATH in 0-requests feed. check-in: da2cff9cbb user: mario tags: trunk
2015-05-16
20:33
New channel plugin for radio.net station directory. check-in: 0f528e97d5 user: mario tags: trunk
16:36
Remove channel_itunes manual page. check-in: 8c76ed789d user: mario tags: trunk
16:36
Use new autosave flag for DND. check-in: 275d481bea user: mario tags: trunk
16:36
Simplify windowsmedia regexp. Omit bitrate=32, because `filter_bitrate` makes it appear empty per default then. check-in: 19ad85d18d user: mario tags: trunk
01:47
Use shorter domain names for homepage favicons again. check-in: 9931f4e0e5 user: mario tags: trunk
2015-05-15
22:48
Update Dirble comments. check-in: a906512c8d user: mario tags: trunk
21:52
Weighted selection of available stream urls from Dirble API. check-in: fe19fd3202 user: mario tags: trunk
17:58
Add ahttp.fix_url() for dirble `website` addresses. check-in: 96d86cc203 user: mario tags: trunk
17:55
`timedout` and `description` are seemingly gone from the API responses. check-in: cbd84b656f user: mario tags: trunk
17:49
Add `filter_bitrate` to default pack: list. check-in: 9a5cee5ac7 user: mario tags: trunk
16:51
Add 0install requests dependency. check-in: 46e06de24a user: mario tags: trunk
14:19
Add 2.1.8-dev as 0install option; depend on Py 2.7 for now. check-in: c19b7669f4 user: mario tags: trunk
00:54
Update 0install descriptor to use command/runner with virtual python package. check-in: ed37ec798a user: mario tags: trunk
00:31
Update manual regarding new favicon plugin and its options. check-in: fb837c37db user: mario tags: trunk
2015-05-14
23:26
Set dest= and main= check-in: 395901fa20 user: mario tags: trunk
22:43
Try <file> instead of <archive> check-in: b84dba9f2c user: mario tags: trunk
20:26
./. check-in: c4467509e6 user: mario tags: trunk
20:15
Update with signature check-in: f371159ed3 user: mario tags: trunk
20:02
Add option to inhibit window title adaption ("Streamtuner2 - Channelname"), mostly just for filling up the "Display" config section again. check-in: bfc387c542 user: mario tags: trunk
20:01
Add 0install pkg description wrapper for testing. check-in: 68786b48a4 user: mario tags: trunk
18:41
Remove a few options from configuration dialog; now available in [feature] plugin tabs for favicon module. Favicon module exposes google_station_homepage, and retrieval methods, but no longer `conf.show_favicons` (which is decided on just by having the plugin enabled - or not.) Introduce conf.auto_save_stations for favicon/DND plugin. check-in: 8c7b4f2662 user: mario tags: trunk
18:39
Default to encoding=utf-8 for jamendo API. check-in: 0a7528326f user: mario tags: trunk
18:39
Add feature plugin icon. check-in: 1c2efe11f1 user: mario tags: trunk
00:05
Resize logo together with toolbar buttons. check-in: edc282b52b user: mario tags: trunk
2015-05-13
19:00
Make favicon redisplay work after google_find_homepage() and existing icons in cache. Shorter timeout/display for status label for google search. check-in: 56776a4e90 user: mario tags: trunk
00:00
Move mime_fmt() into regular function. Fix live365 ahttp feedback= bug. Regroup functions and update a few comments in channels/__init__ check-in: 2335ea7a46 user: mario tags: trunk
2015-05-12
22:18
Add default filters only once in GenericChannel.__init__ Allow preprocess_filter callbacks access to current channel object. (Used by filter_bitrate to recognize .audioformat if row[format] is absent.) check-in: ae2f48310a user: mario tags: trunk
22:17
Add plugin defaults (for newly added options, but previously active modules) in any case when starting with -D flag. Save settings.json in json.dumps(sort_keys=True) mode. check-in: 3497339549 user: mario tags: trunk
20:05
Add generic bitrate filter plugin, move functionality out of xiph channel. check-in: 7ef8a2b827 user: mario tags: trunk
20:03
Remove plugin #color: check-in: b4558a4599 user: mario tags: trunk
20:03
Use GenericChannel.prepare_filters hook to update "favicon" filenames in rows. Precompile row_to_fn regexps. Fix google_find_homepage params (just a function, not a method). check-in: 8c0b288e66 user: mario tags: trunk
20:01
Split up post-proccessing filters (run after load/update_streams), use filter callback list now. Separate prepare display filters as well (so to hook dedicated favicon callback into). Move conf.show_favicons option into uikit.columns() signature. check-in: 475f736d5d user: mario tags: trunk
2015-05-11
20:29
Break out _on_reload thread callback. check-in: 306eba6f98 user: mario tags: trunk
20:29
Remove _ prefix from ls, rowmap, pix_entry, as features/search was already depending on literal rowmap. check-in: 6d1bd944fb user: mario tags: trunk
12:21
Change pluginconf lookups. Use only pkg basenames for configuration, but override channels.__path__ directly in module. Thus pluginconf can convert `plugin_base` into path list for module_list() scanning. check-in: 494088b7d1 user: mario tags: trunk
11:18
Switch dirble plugin to predeclare encoding="utf-8" for speed. check-in: 05806261b3 user: mario tags: trunk
11:17
Disable iTunes plugin, no alternative resource. check-in: 901ee2c6b2 user: mario tags: trunk
2015-05-10
22:34
Fix URL patching (after actually testing it). And provide fallback for image resizing (.thumbnail in PIL 2.3.0 is broken). check-in: 12e7646cbf user: mario tags: trunk
22:11
Move internal commentary out of plugin description block. Try/Catch processing failures in update_rows() loop. Use quieter=1 option for image downloads. Reimplement custom base_url+href favicon patching. check-in: 4e95040e40 user: mario tags: trunk
22:08
Add ahttp.get( quieter= ) option for less log.HTTP notices. check-in: 529222eb9b user: mario tags: trunk
19:45
Work atop Python3 by using io.BytesIO rather than compat2and3 module. check-in: 7ec987b9ba user: mario tags: trunk
19:20
Move `favicon` module into extension/feature plugin. Simplify row["favicon"] cache filename pregeneration; separate from favicon module (but basically duplicated code there). Refactor most internal favicon+banner processing, rename methods for clarity. Plugin registers itself as .hooks["play"] callback. Uses main.thread() now instead of custom variant. Create icon cache dir on initialiation rather. Use combined row_to_fn() for cache filename generation instead of domain(), url(), file(), etc. Previous banner downloads are ignored, because the filename normalization is more in line with domain favicons now. Only update pixstore on successful downloads. Pre-check the content type per binary regex now, before saving image files. Combine resizing into store_image() function as well. Even PNG files will be piped through PIL (for sanitization). Completely got rid of urllib usage. Homepage/HTML extraction got rewritten, simpler, still inexact; but works now for most webpages. Favicon homepage downloading checks both returned MIME type and actual file content prior saving. Shorten timeouts to 2-3 seconds for Google and custom favicon retrieval. check-in: bd1a9cba05 user: mario tags: trunk
19:12
Create stub plugins/__init__.py in any case. check-in: a6b4b00c41 user: mario tags: trunk
19:12
Make AHTTP timeout= configurable. check-in: 4b035870ec user: mario tags: trunk
2015-05-09
21:41
Fix super slow requests download for Xiph YP.XML, due to automatic charset detected in requests.text access. Override encoding= now and manually .decode() known "utf-8" charset. check-in: 06fe0ef3db user: mario tags: trunk
21:40
Implement favicon live updating. Play event and download_all now pass the treestore, with row index, and pix_entry number (column index in liststore). Favicon module checks for downloaded images twice now, and updates PixBuf in ListStore. (Works for both single station view, and download_all.) check-in: aac4fcacbf user: mario tags: trunk
21:38
Prepare for more complex hooks["play"] invocation (ignore args, kwargs). check-in: 5fbe0ccd0c user: mario tags: trunk
21:37
Use custom GenericChannel.columns() wrapper to simplify passing TreeView widget and keeping returned liststore/rowmap/pix_entry. check-in: 5d8d7fd191 user: mario tags: trunk
21:36
Minor typo fixes. check-in: d1befc2a99 user: mario tags: trunk
21:36
Return ListStore, rowmap and pix_entry from uikit.columns() check-in: 8b187d699a user: mario tags: trunk
2015-05-08
11:05
Crash in search module again. Seemingly fixed it for threaded mode by preupdating the bookmarks.streams{search} result store before switching tabs. check-in: e6dd4c5376 user: mario tags: trunk
09:50
Fix srver url extraction prior sending to myoggradio API. check-in: 46648a2d42 user: mario tags: trunk
2015-05-07
19:21
Lock WindowsMediaGuide plugin against >2.1.8 check-in: 55b6ad457a user: mario tags: trunk
19:21
Step-tutorial for bookmarking a station. check-in: c159673973 user: mario tags: trunk
17:12
Explain in detail how to enable pluginmanager2 extension. check-in: b0ca9793cb user: mario tags: trunk
17:11
Additional project+help links for manual. check-in: 76cf990460 user: mario tags: trunk
17:10
Make static category lists more readable. check-in: f94731a05b user: mario tags: trunk