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

⌈⌋ ⎇ branch:  streamtuner2


Timeline

50 ancestors of 2116c28445ebb68a

2015-04-26
22:24
Extended generic JSON extractor, to understand a few common field aliases. Add fallbacks for mime_app lookup in case */* is absent. Simplified %rowfield injection, which is commonly unused anyway. check-in: 2116c28445 user: mario tags: trunk
22:22
Uneeded windows desktop shortcut. check-in: 90605cbddc user: mario tags: trunk
22:22
Disable "Format" column again. check-in: 781f57ecdc user: mario tags: trunk
22:21
Embed base_url for extraction. check-in: c4d0f73dea user: mario tags: trunk
22:21
Missing Exception capture for error log. check-in: f69b9ce181 user: mario tags: trunk
22:21
Fixed gtk.main_iteration() extraneous parameter in gui_startup. check-in: 748d2aaed8 user: mario tags: trunk
15:35
Cover most catched exceptions with log messages. check-in: 363dce5eb9 user: mario tags: trunk
15:34
More customized log categories/colorization. check-in: 0943cca27e user: mario tags: trunk
15:34
Add custom pls extractor (for unordered playlist entries), keep regex method as fallback. More logging. check-in: 0725d3fbc8 user: mario tags: trunk
2015-04-25
00:39
Replace statusbar with plain gtk.Label, use glib.timeout_add for clearing it up implicitly. check-in: 805dbd5181 user: mario tags: trunk
2015-04-24
22:55
More examples for recording/streamripper configuration. check-in: e8560b51b5 user: mario tags: trunk
21:54
Add spacing for config dialog options (indented per plugin). Narrower labels, icons now show up. Undo newline-removal for Gtk3 tooltips (work with preformatted text instead). check-in: c02e9a3ec0 user: mario tags: trunk
21:53
Fallback for Gtk3 using set_text() now. Fix "href" vs "raw" format probing. check-in: 9f0bce8535 user: mario tags: trunk
19:22
Add .url exporting (shallow Windows variant of .desktop files). check-in: fd963a3d9b user: mario tags: trunk
19:21
Use generic `audio/mod-zip` for all MOD Archive urls. check-in: fed23f23f7 user: mario tags: trunk
19:21
Document current reuse_m3u and nothreads config behaviour. Rewrite placeholder and application help pages to be more understandable. Mention GUI alternatives to streamripper. check-in: 497073df0d user: mario tags: trunk
19:20
Prepare bookmarks-category DND as target (for internal stream moving). Fix FILE_NAME being passed as text not uris XSelection type. Use underscores in place of spaces to avoid urlencoding file:// references. Move log.DND colorization to config. check-in: 1569b57c42 user: mario tags: trunk
05:01
Add .desktop and .url to export format file extensions probing and SaveAs dialog. check-in: a35c889740 user: mario tags: trunk
05:00
Split plugin configuration into channels and [features] tabs. check-in: bd411967bc user: mario tags: trunk
04:59
Disable update_streams_partially_done() for Gtk3, as that's the main cause of memory corruption (despite being run in idle loop). check-in: 1edde401ce user: mario tags: trunk
00:00
Add conf.nothreads flag and --nt cmdline flag, to prevent Gtk3 idle update race conditions if need be. (Still flaky for initial startups.) check-in: ce0e9149db user: mario tags: trunk
2015-04-23
19:31
Use distinct /tmp/streamtuner2/ directory for temporary pls/m3u/xspf files (also for DND). And have action. module reuse them, based on numeric row{} hash. check-in: 7411543862 user: mario tags: trunk
19:04
Some more comments and log messages. check-in: 79ef6e5f2a user: mario tags: trunk
19:04
Add uikit.tree() instantiation for bookmarks tab. check-in: dbfe218f76 user: mario tags: trunk
19:03
Draw gtk_cat columns on initialiation in .gui() call. Use more literal uikit.do() invocations without lambda: wrapping. Let display_categories only run in uikit.do/idle, whereas .load() is run directly from there now. check-in: f1a357a60d user: mario tags: trunk
18:58
Statusbar updates via uikit.do, immediate=True. check-in: 7aa0ce2a25 user: mario tags: trunk
18:57
Make uikit.do() manage a task spool itself. Run new tasks immediately if invoked already within gtk_idle callback. Move uikit.tree column creation into separate function, for immediate use through GenericChannel.gui() - instead of destroying+repopulating it on category-list reloads. check-in: 7f51022370 user: mario tags: trunk
01:09
Remove some print statements, and switch to log.FUNC where necessary. check-in: ecc88e5d3e user: mario tags: trunk
01:08
Add TreePath() abstractions for app_state/restore. check-in: 655dd9f19c user: mario tags: trunk
2015-04-22
21:17
Update online manual to current help page set. check-in: 2b95379373 user: mario tags: trunk
21:16
Add some notes about DND to the manual. check-in: faacd9c284 user: mario tags: trunk
20:52
Fix .desktop file exporting. Add mime_guess() for streaming url. Move insert_rows() implementation out of DND module. check-in: 749715cb39 user: mario tags: trunk
20:50
Move DND insert_rows() into GenericChannel. Add load(y=) parameter to scroll back to previous position after insert_rows(). Reenable select_path("0") after reloading category list. (Fixes initial startup.) check-in: a5893e591c user: mario tags: trunk
20:49
Let bookmarks channel use generic.load() to reapply scroll position y= after inserts. check-in: a6ba97bce0 user: mario tags: trunk
2015-04-21
22:07
Remove old .ico workaround, as PIL2(Pillow) now integrates support. Leave the remaining code in shambles, and with excessive logging. Still needs a huge rewrite to optionalize Google reliance again. (The manual favicon fetching never worked, because the regexp is too crude for most sites; and URL joining is off too.) check-in: 743c60ff80 user: mario tags: trunk
22:05
Playlist DND import and conversion has been greatly simplified. (To the detriment of the action module now becoming more complex.) check-in: 705c7d16c2 user: mario tags: trunk
22:04
Major rewrite of playlist_extract handler. Now retains url and titles for playlist types that contain it. Still provides simpler urls() wrapper for old action.play/convert/interpol usage. Move probe_* functions into playlist_extract class as well. Introduce basic playlist_fmt_prio list for supported formats. (Too many regexps to probe for allowed file extensions, etc.) Add support for .url and .desktop files (import only.) check-in: f18b5c461f user: mario tags: trunk
22:01
Alias urllib*.unquote as urldecode() check-in: bd2ee4de96 user: mario tags: trunk
22:00
Fix missing .module property for add_plugin_defaults. check-in: 266321da13 user: mario tags: trunk
06:05
Replace old __print__/dbg.XYZ references with new log.XYZ() wrapper. check-in: ebae9e51ac user: mario tags: trunk
2015-04-20
23:19
Fix explanation on why iCast fetching takes a little while for some categories. check-in: de5d9ad092 user: mario tags: trunk
23:18
Shorten "Ogg Vorbis 112kbit/s" option name (was expanding the general settings dialog too much). check-in: 8759215e26 user: mario tags: trunk
23:18
Add overly crude playlist_convert.title() extraction (for M3U/PLS/XSPF/ASX and the custom STRING/TEXT format used by DND module). Insert imported rows at the right position. Scrolling won't work, because it's done in a separate thread. check-in: 6dfe1fdeb5 user: mario tags: trunk
16:24
Move playlist extension and context probing into separate functions. Introduce some rather crude import functionality for a few playlist file formats. (Still requires proper importer with title= reading, and entirely rows[] based function signatures in action module.) check-in: 8e3b1e4d5b user: mario tags: trunk
16:22
Introduce log.ERR() etc. instead of __print__(dbg.XY...) workaround (was meant for Py3 only). check-in: 256b1e5833 user: mario tags: trunk
16:21
Remove some obsolete comments/code snippets. check-in: dd605f1352 user: mario tags: trunk
2015-04-19
22:17
Implement in-application row copying per JSON (info=51, mime=json/vnd.streamtuner2.station). Fixed set_text() bug by using set("STRING",..) atom instead. check-in: 38812e4bbf user: mario tags: trunk
19:35
Experiment with a few more target types. Works with a few text editors on STRING. Most just want a uri-list, but can't handle it. check-in: e0e28edba2 user: mario tags: trunk
19:35
Add plugin defaults. check-in: 6a17061df0 user: mario tags: trunk
16:36
Implement basic exporting and conversion for drag-and-drop. Needs to buffer implicit playlist file, because data_get() gets called excessively. Still support direct M3U/PLS/XSPF transfers (should any other application ever understand it), and direct URL transmission. No import functionality yet, but internal JSON format prepared as target type. check-in: 8c7de37e5e user: mario tags: trunk
16:33
Semi-fix for brand-new initialization. Set default category from existing categories[] list. Setting the displayed path as well doesn't work yet. (It's just half-way selected after the next restart.) check-in: 1cfacd1296 user: mario tags: trunk