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

⌈⌋ ⎇ branch:  streamtuner2


Timeline

50 descendants of 9ed03bc901cc43b8

2015-04-10
16:40
Finalize allowed filename extensions for exporting. Normalize Python3 string decoding (errors='ignore' per default). Update XSPF and SMIL export. Use row={} template now, instead of just carrying over title= to rewritten playlists. check-in: e136a78c73 user: mario tags: action-mapfmts
13:50
Implement filename update in SaveAs dialog on changing FileFilter (.m3u, .pls, .xspf) extension. check-in: 0a9cb60b3a user: mario tags: action-mapfmts
11:56
Apply proper file extension to temp files (they're never cleaned up, are they?) Fix MIME type probing, strip attributes. Support Apple M3U minor type, detect GVP playlists. check-in: 59075dcc1b user: mario tags: action-mapfmts
11:55
SurfMusik actually holds .m3u playlists. check-in: 46062ce00f user: mario tags: action-mapfmts
10:54
Sync with trunk changes. check-in: 801ad7fd98 user: mario tags: action-mapfmts
10:51
Fix parent window references. check-in: a61a746c31 user: mario tags: trunk
10:50
Removed custom pls conversion code, now uses action. playlist conversion tools. check-in: c683b52003 user: mario tags: trunk
10:49
Move concrete row(), rowno(), selected(), model_iter() and play(), record() implementations from main into channels.GenericModule. check-in: 65a0b18268 user: mario tags: trunk
10:45
Update comment on rewritten action module. Add alternative MIME types for m3u and asx, spport asf detection and extraction. Fix listformat→source arg. Move save() and filename handling out of save_playlist. Fix mediafmt_t lookup and print warning when there's an audio-response on playlist fetching (and it does happen). Change myoggradio plugin "format" population, and set listformat to "mixed(..)" for automatic probing. check-in: 223368ebbf user: mario tags: action-mapfmts
02:36
Fixed ASX and SMIL playlist exporting, allowed new placeholders %xspf, %jspf, %asx, %smil for application configuration. Documented in help/ pages. check-in: 1937c5766b user: mario tags: action-mapfmts
2015-04-09
21:58
Python3 doesn't like `if [x = ...]` inline assignment trickery (kwargs out of scope). check-in: 82cf514e49 user: mario tags: action-mapfmts
21:57
Figured out how to use standard confirm-overwrite dialog (buttons were defined, but no actions associated). Removed custom msg box. check-in: 5539fcccc2 user: mario tags: action-mapfmts
14:52
Update notes on python-requests >= 2.0.0 required now (streams=True). And fix reference to `icon.png` now. check-in: 45c45d5755 user: mario tags: trunk
14:50
Still some parameter renaming in action module to do. Optional support for row={} parameter in play/record calls, in case .pls/.m3u needs to be constructed (to retain title=). Adapt action playlist exporting to wrapper object, which preconverts plain URL lists or [rows] list, can itself call convert_playlist(), and optionalized file writing. Rewrite main save() and exportcat.save() to utilize new save_playlist(). Implement overwrite confirmation for Save-as dialog. check-in: b784d408c1 user: mario tags: action-mapfmts
02:51
Use ordered list for playlist content probing. Fix listfmt() mime to abbr conversion. Allow non-http URLs for raw() extraction. check-in: babd818a96 user: mario tags: action-mapfmts
2015-04-08
23:32
Consolidate listformat types to just "pls", "m3u" and "srv". Probe for direct ICY server contact in action.playlist_convert(), unify extraction methods. check-in: 85313637a3 user: mario tags: action-mapfmts
17:59
Remove extraneous class wrapper action.action. Start to regroup listformat mapping (pls-url → m3u-fn rewrites). Will need some heuristics, as depending just on the channel.listformat assumption won't work in practice (some .pls servers actually host direct server links, or occasionally .m3u references even). Currently does nothing, just returns the pls/etc URL. check-in: ea628d6426 user: mario tags: trunk
17:57
Create new branch named "action-mapfmts" check-in: 320e271864 user: mario tags: action-mapfmts
2015-04-07
22:19
Added some notes about "Export all" plugin. List streams#actions as topic in index.page check-in: 97bb4bbfe9 user: mario tags: trunk
19:49
Split up Extensions› submenus. Register major plugins (timer, myoggradio, radiotray) as direct menu entries, but complex extensions (exportcat) as subentry still. check-in: a872fb7d36 user: mario tags: trunk
19:48
Fix main. references from bookmarks callback. check-in: 5a772b3c64 user: mario tags: trunk
19:48
Got rid of switchy() expression, use plain `cond and val or ...` chain. check-in: 30dd0c5b1f user: mario tags: trunk
05:55
Temporary export mechanism (saves whole category into .pls file). check-in: 8b7b270591 user: mario tags: trunk
05:54
Less indentation, starting to overhaul action.save() at least. (Whole `action` module is overdue.) check-in: 7726e18571 user: mario tags: trunk
05:53
Fix a few CLI bugs (doesn't work yet with dynamic module list), stub_parent() implementations for non-GUI mode should be merged. check-in: a7c3f7336a user: mario tags: trunk
05:51
Move argv initialization to conf.apply_args(). Document config: format for argparse conversion. Enable file=sys.stderr for __print__/debug messages. check-in: 1eea3140f8 user: mario tags: trunk
2015-04-06
18:55
Add workaround for ArgumentParser, which tries to map config: descriptors onto AP.add_argument(*yikes) params. check-in: 24a5fe69a1 user: mario tags: trunk
18:53
Add UserAgentSwitcher plugin. (Just for experimenting really, not required.) check-in: e8c162f72a user: mario tags: trunk
2015-04-05
22:06
Fix manual Makefile `install` rules. Update -D debug notes in README. Release as 2.1.5 (beta). check-in: b6b64a45f6 user: mario tags: trunk, 2.1.5
22:04
Provide a `-D` debugging flag and a `-d shoutcast` option to disable plugins prior startup. check-in: 08b1306823 user: mario tags: trunk
20:27
Recategorized some dbg.ERR messages, but make them displayed now regardless of conf.debug setting. check-in: 2b63a42675 user: mario tags: trunk
18:24
Make Youtube channel also default. check-in: 333ed92349 user: mario tags: trunk
18:24
Switch .meta.title attribute after UI initialization. check-in: 86cac0312e user: mario tags: trunk
18:23
Fix `local` category base url, again. Make priority: default. check-in: 76b83cd1e1 user: mario tags: trunk
18:23
Change version number in plugin settings from orange to gray. check-in: 0a4c981f66 user: mario tags: trunk
18:22
File reading in plugin_meta(): convert Py3 bytes to string. check-in: bb7e73cafb user: mario tags: trunk
16:15
Fixed some help page typos, added streamedit description, and some screenshots for the configuration window. check-in: ec3a49e365 user: mario tags: trunk
16:15
Changed pyz base path determination method (no more rx.zipfn guessing). check-in: ed1c185f7c user: mario tags: trunk
14:12
Capitalize remaining menu entries, update PNG icon to 64x64, remove examples from logo/banner template, default to size of 315·115 px. check-in: ce13199e0f user: mario tags: trunk
14:09
Update window title for currently selected category tab. check-in: a6f5f66365 user: mario tags: trunk
14:09
Wrap `gzip_decode` as fallback for Python 2. check-in: d88aab3981 user: mario tags: trunk
14:08
Manually register addon widget signals. Otherwise main keeps bugging with GtkWarnings when timer plugin is disabled. check-in: 33e106bce5 user: mario tags: trunk
14:07
Use os.path.expand* for env vars and `~` homedir placeholder. check-in: 7aafeff157 user: mario tags: trunk
14:06
Mention `make glade`, as gtk3.xml is now compressed per gzip after all. check-in: 57e4b7c323 user: mario tags: trunk
14:04
Document Makefile requirements (version, xpm/fpm), prepare manual `install` target. check-in: ff249e30f0 user: mario tags: trunk
2015-04-04
10:01
Spread out #pack: specifiers into doc files. check-in: 31995cd149 user: mario tags: trunk
10:00
Add plugin defaults now really on initialization. Safeguard in configwin. Always use gtk.STOCK_NEW for empty app fields in config_dialog (not just for new lines). check-in: 8178f6832b user: mario tags: trunk
06:06
Compress gtkBuilder file with zlib for distribution. (gzip not usable without workarounds in Python2) check-in: 780f0ca590 user: mario tags: trunk
06:03
Convert shell _pack script into sectioned Makefile. check-in: b2a6fd9de3 user: mario tags: trunk
01:50
Document fossil repo specific URLs (changelog/, cat/, trunk, version, zip/, tar/). check-in: c39a33b3da user: mario tags: trunk
01:50
Use plain module_list() for config_dialog.add_plugins() instead of traversing main.channels and main.features separately. Uses module= lookup with hardwired "channels." and ".py" retrieval. check-in: 9ed03bc901 user: mario tags: trunk