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

⌈⌋ ⎇ branch:  streamtuner2


History of st2.py of f66133e01de2f93b

History of the file that is called st2.py at checkin f66133e01de2f93b

2022-10-26
05:14
adapt to modularized pluginconf file: [2d32af1ac4] check-in: [f66133e01d] user: mario, branch: trunk, size: 22438 [annotate] [blame] [check-ins using] [diff]
2022-02-22
00:31
Release as 2.2.2 file: [3610c51274] check-in: [8b7a75f548] user: mario, branch: trunk, size: 22416 [annotate] [blame] [check-ins using] [diff]
2020-12-12
17:30
Reimplement combobox.parse_options for builtin/unprocessed record_flags, also make quicksearch not expand vertically anymore for Gtk3. file: [f6ea5e77c0] check-in: [d9dcff66f3] user: mario, branch: trunk, size: 22422 [annotate] [blame] [check-ins using] [diff]
2020-05-21
11:55
refine dependency list file: [9760f83ba6] check-in: [8aa9e67d20] user: mario, branch: trunk, size: 22420 [annotate] [blame] [check-ins using] [diff]
2020-05-17
07:44
Snap build option introduced (probably not going to be used for regular distribution, as the resulting package is exorbitantly large) file: [9801108f7e] check-in: [2a43aea838] user: mario, branch: trunk, size: 22313 [annotate] [blame] [check-ins using] [diff]
2018-12-31
11:33
Release as 2.2.1 file: [841128bca6] check-in: [2877d4a4bb] user: mario, branch: trunk, size: 22266 [annotate] [blame] [check-ins using] [diff]
2018-12-18
22:40
Allow for subcategories in bookmarks. file: [0aae622bbd] check-in: [1a034aeac0] user: mario, branch: trunk, size: 22278 [annotate] [blame] [check-ins using] [diff]
2018-08-20
16:04
Disable man page compression, as that left Yelp files inaccessible file: [9e34a20f96] check-in: [32abb5dd8e] user: mario, branch: trunk, size: 22250 [annotate] [blame] [check-ins using] [diff]
2017-02-13
16:47
Add version and -V flags. file: [13a6df97da] check-in: [39b9182c6e] user: mario, branch: trunk, size: 22238 [annotate] [blame] [check-ins using] [diff]
2017-01-05
21:20
Set `no-show-all` for statusbar_img to remain hidden on window init. file: [0e842350c3] check-in: [0698d339c3] user: mario, branch: trunk, size: 22187 [annotate] [blame] [check-ins using] [diff]
2017-01-03
20:11
Introduce statusbar_img and GenericChannel.warn() function; albeit it allows any stock icon to be used. (May introduce a generalized background/foreground color wrapping.) file: [ffaad9d3ab] check-in: [8b13ba0189] user: mario, branch: trunk, size: 22116 [annotate] [blame] [check-ins using] [diff]
2016-12-31
16:19
Release as 2.2.0 (mostly stable) file: [84989b8129] check-in: [43a204cce6] user: mario, branch: trunk, size: 21809 [annotate] [blame] [check-ins using] [diff]
2016-12-27
21:23
Support alternative lists for #depends: fields, allow #alias: names, and supply `python` builtin for pluginconf.dependency() checker. file: [74554eebfe] check-in: [0169107f28] user: mario, branch: trunk, size: 21813 [annotate] [blame] [check-ins using] [diff]
2016-12-23
21:39
Temporary workaround for file browser plugin to avoid reloading. file: [41e5406dc6] check-in: [147d87c1e1] user: Oliver, branch: trunk, size: 21912 [annotate] [blame] [check-ins using] [diff]
2016-12-11
15:11
Document prefstore and cachereset plugins. file: [83bfadb12a] check-in: [de1e8b9558] user: mario, branch: trunk, size: 21794 [annotate] [blame] [check-ins using] [diff]
2016-12-10
17:54
Undo statusbar clearing for .play() action; introduce markup support for status() messages. file: [4be79c7ebc] check-in: [56b89d2861] user: mario, branch: trunk, size: 21794 [annotate] [blame] [check-ins using] [diff]
2016-12-01
13:18
Minor changes to winstaller script and default package content. file: [b518fe984d] check-in: [078495e7da] user: mario, branch: trunk, size: 21724 [annotate] [blame] [check-ins using] [diff]
2016-11-20
16:09
Support .QTL output format file: [05596eca4a] check-in: [08a43fb795] user: mario, branch: trunk, size: 21730 [annotate] [blame] [check-ins using] [diff]
2016-11-19
13:15
-rc1 file: [8350cc9006] check-in: [544aa93056] user: mario, branch: trunk, size: 21726 [annotate] [blame] [check-ins using] [diff]
2016-11-06
18:53
Remove newstation_ok/_cancel signal symbols. file: [3622b6a921] check-in: [045ec7be83] user: mario, branch: trunk, size: 21722 [annotate] [blame] [check-ins using] [diff]
2016-10-28
23:18
bump minor versions file: [29c7034b2f] check-in: [1478740ada] user: mario, branch: trunk, size: 21722 [annotate] [blame] [check-ins using] [diff]
18:13
Update config_play/_record and their TreeViews for the slimmer ListStore without row[2] `editable` bool, and the more generic uikit.liststore_edit callback (still requires lambda handlers for column and liststore as user_data). file: [23371f7a27] check-in: [bca80ec8af] user: mario, branch: trunk, size: 21722 [annotate] [blame] [check-ins using] [diff]
2016-10-22
19:07
new plugin: specbuttons allows to define mini toolbar buttons to control applications (audio settings, mute/volume, start/kill players or other apps). Has been externalized as plugin. The UI features are built into gtk3.xml specbuttons file: [6db22b65ab] check-in: [43b36ed35b] user: mario, branch: trunk, size: 22120 [annotate] [blame] [check-ins using] [diff]
2016-10-18
21:57
Make specbuttons smaller, lookup image names (using `locate` - should be moved to configwin saving callback, as it's slow on startup otherwise) file: [af3c3860ce] check-in: [4767ecba93] user: mario, branch: trunk, size: 23249 [annotate] [blame] [check-ins using] [diff]
21:27
Prepare specbuttons addin (small user-defined application control interface, adds to the main toolbar) file: [0bca1b8083] check-in: [e1d9342408] user: mario, branch: trunk, size: 22739 [annotate] [blame] [check-ins using] [diff]
2016-10-08
14:42
Fix statusbar #257: minor unicode fixes (wasn't showing up due to str/unicode in Py2, imported compat.unicode for Py3 now) file: [44d62e1137] check-in: [04daa96360] user: mario, branch: trunk, size: 21851 [annotate] [blame] [check-ins using] [diff]
2016-08-24
01:21
Minor text fixes file: [e38693d10f] check-in: [ac7e0587e9] user: mario, branch: trunk, size: 21731 [annotate] [blame] [check-ins using] [diff]
2015-11-14
21:47
Fix `self.main` reference file: [5c5d86599f] check-in: [79f29b975a] user: mario, branch: trunk, size: 21736 [annotate] [blame] [check-ins using] [diff]
2015-05-26
00:43
Disable window tilte updating per default again. file: [9a3f8e2477] check-in: [b9a667bbe7] user: mario, branch: trunk, size: 21734 [annotate] [blame] [check-ins using] [diff]
2015-05-23
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. file: [f494cf4f99] check-in: [867c9f9f94] user: mario, branch: trunk, size: 21706 [annotate] [blame] [check-ins using] [diff]
2015-05-21
20:08
Remove config.find_in_dirs(), which is unused now. file: [54146ab945] check-in: [11f270a726] user: mario, branch: trunk, size: 21819 [annotate] [blame] [check-ins using] [diff]
02:25
Make quicksearch icon activatable again (property "secondary-icon-activatable" was required). file: [eca59ce447] check-in: [069f6308de] user: mario, branch: trunk, size: 21782 [annotate] [blame] [check-ins using] [diff]
2015-05-18
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..... file: [90a3b1d53c] check-in: [8a68105eeb] user: mario, branch: trunk, size: 21732 [annotate] [blame] [check-ins using] [diff]

2015-05-17
19:11
Introduce new hooks["switch"] for update_title(). Used by new `Channel homepage link` plugin, which brings back streamtuner1-style service homepage. file: [00795f8f6f] check-in: [f992b0792a] user: mario, branch: trunk, size: 21671 [annotate] [blame] [check-ins using] [diff]
2015-05-14
20:02
Add option to inhibit window title adaption ("Streamtuner2 - Channelname"), mostly just for filling up the "Display" config section again. file: [ec315404d5] check-in: [bfc387c542] user: mario, branch: trunk, size: 21570 [annotate] [blame] [check-ins using] [diff]
00:05
Resize logo together with toolbar buttons. file: [1e001a73a8] check-in: [edc282b52b] user: mario, branch: trunk, size: 21536 [annotate] [blame] [check-ins using] [diff]
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. file: [4c26e084be] check-in: [56776a4e90] user: mario, branch: trunk, size: 21057 [annotate] [blame] [check-ins using] [diff]
2015-05-12
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. file: [507d090792] check-in: [3497339549] user: mario, branch: trunk, size: 21040 [annotate] [blame] [check-ins using] [diff]
2015-05-11
20:29
Break out _on_reload thread callback. file: [63cc7f21fd] check-in: [306eba6f98] user: mario, branch: trunk, size: 20999 [annotate] [blame] [check-ins using] [diff]
2015-05-10
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. file: [35aa375d2a] check-in: [bd1a9cba05] user: mario, branch: trunk, size: 21063 [annotate] [blame] [check-ins using] [diff]
2015-05-09
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.) file: [7768280a8d] check-in: [aac4fcacbf] user: mario, branch: trunk, size: 20962 [annotate] [blame] [check-ins using] [diff]
2015-05-06
17:06
Use fallback title= for mkrow() importing. file: [833ae6e3d8] check-in: [fbb2beedd7] user: mario, branch: trunk, size: 20809 [annotate] [blame] [check-ins using] [diff]
00:08
Release as 2.1.8 file: [f5518a5d34] check-in: [b0a6a50a20] user: mario, branch: trunk, size: 20805 [annotate] [blame] [check-ins using] [diff]
2015-05-04
15:23
Moved dependency() into pluginconf module, which shortens adding new installable modules to the vbox. file: [5d8e044644] check-in: [686c553354] user: mario, branch: trunk, size: 20800 [annotate] [blame] [check-ins using] [diff]
2015-05-03
20:26
Add some version: bumps and add a few versions to depends: references. file: [f3bb2fc332] check-in: [beebec9c76] user: mario, branch: trunk, size: 20809 [annotate] [blame] [check-ins using] [diff]
2015-05-01
22:41
Separate statusbar timer-reset from text/progressbar setter. file: [49404ca98a] check-in: [3b7a4ff895] user: mario, branch: trunk, size: 20811 [annotate] [blame] [check-ins using] [diff]
2015-04-30
06:21
Statusbar timeout and reset still not as planned. file: [a4ef7a55bf] check-in: [049b945a64] user: mario, branch: trunk, size: 20867 [annotate] [blame] [check-ins using] [diff]
2015-04-28
20:55
Removed export_format config option for exportcat plugin (as that's selectable now in the file dialog anyway). Recategorized dnd plugin to appear earlier in the [features] config tab. file: [64a9872a0a] check-in: [276ae3ef5f] user: mario, branch: trunk, size: 20784 [annotate] [blame] [check-ins using] [diff]
17:35
Move `state.json` and .current restoration into GenericChannel.gui(). Current category is reselected by TreeView traversal on instantion now. Previous state now load through config.state() for channels/__init__, not in main/init_app_state anymore (just row:expand / winsizes now). Disable .currentcat() overwriting, redundant now in display_categories(). Still need to avoid second .select_current() call in first_show(). file: [f820dd49d8] check-in: [ffaf262c43] user: mario, branch: trunk, size: 21059 [annotate] [blame] [check-ins using] [diff]
2015-04-27
21:22
Updated category:/type: file: [717429f33f] check-in: [823b3a3fff] user: mario, branch: trunk, size: 21016 [annotate] [blame] [check-ins using] [diff]
2015-04-26
15:35
Cover most catched exceptions with log messages. file: [a5bfd28a13] check-in: [363dce5eb9] user: mario, branch: trunk, size: 21012 [annotate] [blame] [check-ins using] [diff]
2015-04-25
00:39
Replace statusbar with plain gtk.Label, use glib.timeout_add for clearing it up implicitly. file: [3eb72c0f83] check-in: [805dbd5181] user: mario, branch: trunk, size: 21014 [annotate] [blame] [check-ins using] [diff]
2015-04-24
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.) file: [d0ecae043d] check-in: [ce0e9149db] user: mario, branch: trunk, size: 20892 [annotate] [blame] [check-ins using] [diff]
2015-04-23
18:58
Statusbar updates via uikit.do, immediate=True. file: [9776e658be] check-in: [7aa0ce2a25] user: mario, branch: trunk, size: 20832 [annotate] [blame] [check-ins using] [diff]
01:08
Add TreePath() abstractions for app_state/restore. file: [8c09094d97] check-in: [655dd9f19c] user: mario, branch: trunk, size: 20768 [annotate] [blame] [check-ins using] [diff]
2015-04-21
06:05
Replace old __print__/dbg.XYZ references with new log.XYZ() wrapper. file: [0608c8f1cb] check-in: [ebae9e51ac] user: mario, branch: trunk, size: 20678 [annotate] [blame] [check-ins using] [diff]
2015-04-18
20:37
Guard appstate_init channels.current setting for absent plugins. file: [5611c8c9c5] check-in: [24fb9b895e] user: mario, branch: trunk, size: 20766 [annotate] [blame] [check-ins using] [diff]
2015-04-17
21:09
Simplify appliation state restore. Don't override old .shown status / liststore position should be handled by GenericChannel. Suppress TreeView errors when clicking on empty station list area. file: [828857aa59] check-in: [2687258c8c] user: mario, branch: trunk, size: 20732 [annotate] [blame] [check-ins using] [diff]
2015-04-15
20:58
Run channel.first_show() on tab switches in a separate thread. This makes ST2 *look* snappy after initialization, and for the very first startup in particular. (Seems to work stable after all, even uncovers the HTTP statusbar updates now.) file: [b68d9a3628] check-in: [56c215a897] user: mario, branch: trunk, size: 20895 [annotate] [blame] [check-ins using] [diff]
2015-04-14
15:47
Move NEWS->changelog.gz conversion into xpm Packfile. file: [7d3640475f] check-in: [b1eb48cafd] user: mario, branch: trunk, size: 20815 [annotate] [blame] [check-ins using] [diff]
2015-04-11
19:14
Cleanup exportcat file extension mapping, and fix docs. file: [4efb5a505d] check-in: [2b729c9433] user: mario, branch: trunk, size: 20830 [annotate] [blame] [check-ins using] [diff]
14:10
Slim down first_show() in main.channel_switch(). file: [90b6a5f946] check-in: [97a832d8f2] user: mario, branch: trunk, size: 20854 [annotate] [blame] [check-ins using] [diff]
2015-04-10
17:36
Move appstate restoration into init function. Implemented "quit" hook for action.cleanup_tmp_files, fixed app_restore `w.set_current_page` bug. file: [cd5179ec1f] check-in: [8622bed197] user: mario, branch: trunk, size: 21044 [annotate] [blame] [check-ins using] [diff]
13:50
Implement filename update in SaveAs dialog on changing FileFilter (.m3u, .pls, .xspf) extension. file: [b17ac06878] check-in: [0a9cb60b3a] user: mario, branch: action-mapfmts, size: 20908 [annotate] [blame] [check-ins using] [diff]
10:54
Sync with trunk changes. file: [c18d3ab85b] check-in: [801ad7fd98] user: mario, branch: action-mapfmts, size: 20908 [annotate] [blame] [check-ins using] [diff]
10:49
Move concrete row(), rowno(), selected(), model_iter() and play(), record() implementations from main into channels.GenericModule. file: [4120fbf826] check-in: [65a0b18268] user: mario, branch: trunk, size: 20890 [annotate] [blame] [check-ins using] [diff]
02:36
Fixed ASX and SMIL playlist exporting, allowed new placeholders %xspf, %jspf, %asx, %smil for application configuration. Documented in help/ pages. file: [707c0d6df4] check-in: [1937c5766b] user: mario, branch: action-mapfmts, size: 21575 [annotate] [blame] [check-ins using] [diff]
2015-04-09
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. file: [ad8ec4ecd9] check-in: [b784d408c1] user: mario, branch: action-mapfmts, size: 21540 [annotate] [blame] [check-ins using] [diff]
2015-04-08
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. file: [eacd2e641f] check-in: [ea628d6426] user: mario, branch: trunk, size: 21325 [annotate] [blame] [check-ins using] [diff]
2015-04-07
05:51
Move argv initialization to conf.apply_args(). Document config: format for argparse conversion. Enable file=sys.stderr for __print__/debug messages. file: [cbc6a632be] check-in: [1eea3140f8] user: mario, branch: trunk, size: 21459 [annotate] [blame] [check-ins using] [diff]
2015-04-06
18:55
Add workaround for ArgumentParser, which tries to map config: descriptors onto AP.add_argument(*yikes) params. file: [2915a6cb3f] check-in: [24a5fe69a1] user: mario, branch: trunk, size: 21701 [annotate] [blame] [check-ins using] [diff]
2015-04-05
22:04
Provide a `-D` debugging flag and a `-d shoutcast` option to disable plugins prior startup. file: [a62db5a28b] check-in: [08b1306823] user: mario, branch: trunk, size: 21787 [annotate] [blame] [check-ins using] [diff]
14:09
Update window title for currently selected category tab. file: [df69d27d62] check-in: [a6f5f66365] user: mario, branch: trunk, size: 21459 [annotate] [blame] [check-ins using] [diff]
2015-04-04
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). file: [d4a3f5a23c] check-in: [8178f6832b] user: mario, branch: trunk, size: 21279 [annotate] [blame] [check-ins using] [diff]
06:06
Compress gtkBuilder file with zlib for distribution. (gzip not usable without workarounds in Python2) file: [a24c95cdd7] check-in: [780f0ca590] user: mario, branch: trunk, size: 21189 [annotate] [blame] [check-ins using] [diff]
01:44
Removed remains of [stop] button handling. Fixed url param in homepage channel callback. file: [fe8224f3c5] check-in: [5692e6ae5d] user: mario, branch: trunk, size: 21031 [annotate] [blame] [check-ins using] [diff]
2015-04-03
20:46
Removed Gtk `theme` configuration options. (Didn't work anymore.) -- Addendum: If anyone has been using this, please drop me a line; it could become a plugin now.. file: [f58549c2df] check-in: [ad852f14fe] user: mario, branch: trunk, size: 21403 [annotate] [blame] [check-ins using] [diff]
20:43
Made channel tabs reorderable. Now kept in config/window.json as `tab_order` and current page saved as `tab_current` instead of pageno. Disabled progressbar changes for ahttp, made search_server search run in a thread so status can be shown. file: [5fd894f832] check-in: [6fab0e7170] user: mario, branch: trunk, size: 21468 [annotate] [blame] [check-ins using] [diff]
17:35
Got rid of static main.channel_names[] list. Instead now querying Gtk notebook_channels widget for current page name ordering. More plugin defaults added to ConfigDict.defaults(), as workaround for not preparsing inactive plugins on startup. file: [1e504cb8ac] check-in: [18b4da567f] user: mario, branch: trunk, size: 21385 [annotate] [blame] [check-ins using] [diff]
2015-04-02
15:28
Changed plugin config: options default registration to use full .meta[] now instead of just config[] list. Thus plugins can be enabled/disabled right away based on priority: field. (On first startup all channels will show up however.) file: [f737d4ecc1] check-in: [a05da9d33d] user: mario, branch: trunk, size: 21443 [annotate] [blame] [check-ins using] [diff]
2015-04-01
17:39
Add conf.get_data() alias, which automatically fetches resource relative to config module (that is, works on the global path, or within pyzip archive). Move module_list() from channels. into config, as it combines plugins and config management anyway. file: [098afe2087] check-in: [07d2a291cd] user: mario, branch: trunk, size: 21295 [annotate] [blame] [check-ins using] [diff]
15:47
Moved add_plugin_defaults from main into GenericChannel constructor. Check for percentage>=0 in progress indicator of statusbar. file: [e68343b5e8] check-in: [9a4aa0b793] user: mario, branch: trunk, size: 21304 [annotate] [blame] [check-ins using] [diff]
11:16
Slim down initialization (wrapper script for /usr/bin and pyzip will be used). Move module coupling into ST2 window constructor. file: [15304419e8] check-in: [b973f0e385] user: mario, branch: trunk, size: 21663 [annotate] [blame] [check-ins using] [diff]
2015-03-31
19:24
Moved load_theme() into uikit. file: [df1a1ff19b] check-in: [964bb06ce1] user: mario, branch: trunk, size: 21493 [annotate] [blame] [check-ins using] [diff]
16:19
Use `ui_xml` instead of local filename. (Read via pkgutil.get_data, so should work independently of installation path.) Add logo/banner from `logo.py` → `logo.png`. file: [1a108a0e92] check-in: [9057171155] user: mario, branch: trunk, size: 21801 [annotate] [blame] [check-ins using] [diff]
2015-03-30
17:40
Load main module meta data. file: [a25ff9d0d3] check-in: [a678391248] user: mario, branch: trunk, size: 21810 [annotate] [blame] [check-ins using] [diff]
2015-03-29
14:47
Renamed `uikit` module. Auxiliary dialogs `streamedit` and `search` moved into plugins. Less indentation. Compacter import statements. Core plugins initialized into .features, and grayed out in configuration dialog. And `station_context_menu` moved into method. file: [02a852d95e] check-in: [f5f0ae18c1] user: mario, branch: trunk, size: 21734 [annotate] [blame] [check-ins using] [diff]
03:08
Use .meta[title] instead of literal property. Channel list in config_dialog completed again with disabled plugins. New tooltop for comment doc section. file: [d6067edad1] check-in: [ead195d25c] user: mario, branch: trunk, size: 37730 [annotate] [blame] [check-ins using] [diff]
2015-03-28
07:41
Moved project status notes into Fossil wiki. file: [05a9ab14f0] check-in: [21947be529] user: mario, branch: trunk, size: 37310 [annotate] [blame] [check-ins using] [diff]
07:32
Moved `bookmarks` channel into plugin. Implemented plugin .meta data consumption to replace .config = [] builtins. (Still need to rescan disabled channel/feature plugins later..) file: [083dc8256e] check-in: [9de894c13c] user: mario, branch: trunk, size: 38770 [annotate] [blame] [check-ins using] [diff]
2015-03-25
01:16
Package NEWS.gz as changelog.gz file: [5bccd0fbcd] check-in: [3aadac7b99] user: mario, branch: trunk, size: 46648 [annotate] [blame] [check-ins using] [diff]
2015-03-24
21:11
Omit help/html/* pages from distribution. file: [a0aa4da65f] check-in: [e6d2486ae3] user: mario, branch: trunk, size: 46594 [annotate] [blame] [check-ins using] [diff]
2015-02-06
18:10
Change main fpm/xpm pack: line to select channel modules individually, use default prefix path /usr/share/streamtuner2 and absolute paths alternatively. Remove dirble module from default channels/__init__: packaging list. file: [099fb4d0ad] check-in: [088a836b02] user: mario, branch: trunk, size: 46525 [annotate] [blame] [check-ins using] [diff]
2014-08-15
01:05
Release 2.1.3 packaged up. file: [5d4406f73d] check-in: [ebe3fc98c0] user: mario, branch: trunk, size: 46060 [annotate] [blame] [check-ins using] [diff]
00:46
Make channel tab positions configurable. file: [7066e84c89] check-in: [395935d038] user: mario, branch: trunk, size: 46060 [annotate] [blame] [check-ins using] [diff]
2014-08-12
16:41
Use r"" string for literal ANSI escapes file: [80f1b4d75a] check-in: [0cb24d59af] user: mario, branch: trunk, size: 45370 [annotate] [blame] [check-ins using] [diff]
2014-07-31
17:22
Adapted Live365 channel plugin for /cgi-bin/play.pls?stationid=123457&direct=1 stream URLs instead of extraction, works again file: [3d89c6ea6f] check-in: [8b3cd06ff7] user: mario, branch: trunk, size: 45313 [annotate] [blame] [check-ins using] [diff]
2014-06-30
17:39
Copy() cache search rows (else channel entries got modified) file: [a922a58f51] check-in: [a3fd4f7154] user: mario, branch: trunk, size: 45313 [annotate] [blame] [check-ins using] [diff]
2014-06-16
15:06
Keep last searched channel for search dialog (but avoid bookmarks) file: [5dbf6dbb13] check-in: [a7ee09dc9a] user: mario, branch: trunk, size: 45183 [annotate] [blame] [check-ins using] [diff]
2014-06-03
00:29
Search dialog offers (x) all channels or (x) just current for server+cache scan again. Removed search="" parameter from channels that don't implement it. (To remove extraneous .has_search channel attribute again somewhen..)

External: Xiph IO cache ?search= should be changed to work on station titles instead of genres. file: [31aa4c2365] check-in: [ac8632bc29] user: mario, branch: trunk, size: 44946 [annotate] [blame] [check-ins using] [diff]

2014-06-02
01:43
Add server-search, slim down search dialog. file: [f68e153942] check-in: [bd29eb4ee9] user: mario, branch: trunk, size: 45048 [annotate] [blame] [check-ins using] [diff]
2014-05-31
23:31
more hooks: init, config_load, config_save file: [02ec24050c] check-in: [60a80d0570] user: mario, branch: trunk, size: 44621 [annotate] [blame] [check-ins using] [diff]
2014-05-28
15:53
Set default win_config size (for Gtk3) file: [9bfb28d3f0] check-in: [c3c0ce1553] user: mario, branch: trunk, size: 44229 [annotate] [blame] [check-ins using] [diff]
01:32
Reenable update_categories. file: [b5a74c8063] check-in: [edd34bf837] user: mario, branch: trunk, size: 44354 [annotate] [blame] [check-ins using] [diff]
2014-05-27
12:37
ListStore row editing callback unified via lambda-funcs as signal handlers. Recording hook adapted to pass actual MIME type. Python3 try/except for json file writing (still breaks due to gzip handler being optional). file: [7f404124e6] check-in: [af5ae3f5be] user: mario, branch: trunk, size: 44281 [annotate] [blame] [check-ins using] [diff]
00:44
conf.record{} array is back, settings dialog now shows a separate editable table; default options prepared for `youtube-dl` video downloading. Action module now more orderly tries alternative media/* placeholders. file: [6c5e20937c] check-in: [199c0ad425] user: mario, branch: trunk, size: 44423 [annotate] [blame] [check-ins using] [diff]
2014-05-26
15:32
Move status.progressbar init and cleanup into GenericChannel.load() file: [131924495a] check-in: [8c1da4e0f7] user: mario, branch: trunk, size: 43988 [annotate] [blame] [check-ins using] [diff]
14:05
Fix ProgressBar for Py2, don't use default steps in HTTP retrieval. file: [9efbd2b2e3] check-in: [c5251618b3] user: mario, branch: trunk, size: 44227 [annotate] [blame] [check-ins using] [diff]
2014-05-25
17:23
Simplify streamedit_ by reusing config_dialog.load_config() (Also allows to use a liststore table later..) file: [647f8af5c1] check-in: [927dc82086] user: mario, branch: trunk, size: 43986 [annotate] [blame] [check-ins using] [diff]
16:36
Allow to supply ordered (key,value) list[] to mygtk.ComboBoxText. Config specifiers can use ID=abc|XY=xyz|... now. file: [3e127b9d62] check-in: [7b5b2a40e8] user: mario, branch: trunk, size: 44389 [annotate] [blame] [check-ins using] [diff]
11:57
Use mygtk.ComboBoxText also for theme switcher button. Moved .vbox and .label creating into mygtk, ComboBoxText.set_default() now automatically adds non-predeclated/custom value at end of liststore. file: [d9136b2e9d] check-in: [9ad64ad53a] user: mario, branch: trunk, size: 44779 [annotate] [blame] [check-ins using] [diff]
00:41
Add custom ComboBoxText for [select] list plugin config options. file: [0f49083876] check-in: [bcbd6a4624] user: mario, branch: trunk, size: 45801 [annotate] [blame] [check-ins using] [diff]
2014-05-19
19:26
add hooks{} support file: [ed4fb66de3] check-in: [d34fb69dda] user: mario, branch: trunk, size: 45188 [annotate] [blame] [check-ins using] [diff]
2014-05-14
23:44
New mime/app configuration screen in an editable ListStore. Players, recording hook and browser are now mixed up in conf.play{} file: [95ed169041] check-in: [0edaf9402f] user: mario, branch: trunk, size: 45092 [annotate] [blame] [check-ins using] [diff]
2014-05-13
23:55
narrower options in settings dialog file: [a65b5708f4] check-in: [d6fb6f5d65] user: mario, branch: trunk, size: 43783 [annotate] [blame] [check-ins using] [diff]
21:00
Exchange audio/mp3 for standard audio/mpeg MIME type. file: [22d6d5d44f] check-in: [220ee1286a] user: mario, branch: trunk, size: 43783 [annotate] [blame] [check-ins using] [diff]
16:23
Completer plugin meta data blocks, now utilized in channel settings dialog for nicer descriptions. file: [6bfb3a77f9] check-in: [fff3b62827] user: mario, branch: trunk, size: 43779 [annotate] [blame] [check-ins using] [diff]
2014-04-28
02:05
Disable xiph plugin per default, introduce requests.Session() support for implicit cookies file: [7776cafb92] check-in: [539c433d31] user: mario, branch: trunk, size: 44093 [annotate] [blame] [check-ins using] [diff]
2014-04-27
22:19
Python3 support back into trunk file: [bd7fd6c62b] check-in: [9ecea4fb26] user: mario, branch: trunk, size: 44068 [annotate] [blame] [check-ins using] [diff]
19:23
create bundle/ subdirectory for included python libs file: [1db7abd798] check-in: [3c5ead99ef] user: mario, branch: py3, size: 44070 [annotate] [blame] [check-ins using] [diff]
2014-04-11
02:54
Open json/config files in text mode file: [767c1a69b3] check-in: [8e8ad5dfeb] user: mario, branch: py3, size: 44005 [annotate] [blame] [check-ins using] [diff]
2014-04-10
04:31
* Fixed gtk_list_store_get_value: assertion `column < list_store->n_columns' by removing {width:20} reference from treeview datamap. * row.setdefault() for absent search_col/set and deleted state * More __print__/dbg colorization * Disabled pson.filter_data in favour of str casting in mygtk.columns() * Removed streamactions.popup PY2/PY3 workaround with named args * More .iteritems() removal file: [858158ce9f] check-in: [1beab0563e] user: mario, branch: py3, size: 44569 [annotate] [blame] [check-ins using] [diff]
2014-04-09
00:23
Temporary fix for Gtk undefined color warnings, workaround for changed GtkMenu.popup() signature in Gtk3. Debug colors for mygtk.columns() creation. file: [a8efefcc40] check-in: [489da08a74] user: mario, branch: py3, size: 44638 [annotate] [blame] [check-ins using] [diff]
2014-04-08
21:53
fix dict + dict back into list join file: [3e5e378842] check-in: [d09e020ecf] user: mario, branch: py3, size: 44480 [annotate] [blame] [check-ins using] [diff]
21:50
more Python3 syntax fixes, introduce compat2and3 module file: [9090947823] check-in: [7911337325] user: mario, branch: py3, size: 44465 [annotate] [blame] [check-ins using] [diff]
21:16
rename http to ahttp to avoid conflict with Python3 modules, change .iteritems and xrange, remove same remaining plain print statements file: [1b132a9fda] check-in: [d3b1418bc6] user: mario, branch: py3, size: 44423 [annotate] [blame] [check-ins using] [diff]
2014-04-07
00:33
Move __print__ into config, add unified dbg.COLOR codes file: [0b9e0b6b81] check-in: [7ef1553f61] user: mario, branch: trunk, size: 44305 [annotate] [blame] [check-ins using] [diff]
2014-04-06
00:31
initalize module path before loading custom (mygtk) modules file: [4696fba60c] check-in: [6c30f68652] user: mario, branch: trunk, size: 43784 [annotate] [blame] [check-ins using] [diff]
2014-04-05
23:33
Use fractions instead of floats, to reduce ambiguity for version:_raw_ meta update file: [3646b64fc8] check-in: [c71701ad73] user: mario, branch: trunk, size: 43765 [annotate] [blame] [check-ins using] [diff]
2014-01-06
22:45
prepare for gtk3 file: [0743e4b8fe] check-in: [c0702405f8] user: mario, branch: trunk, size: 43734 [annotate] [blame] [check-ins using] [diff]
2014-01-05
03:30
fixed channels/timer gtk signal_connect handling, st2main now provides an amendable slot dict file: [26d82d3fb9] check-in: [41405a6488] user: mario, branch: trunk, size: 43760 [annotate] [blame] [check-ins using] [diff]
2014-01-04
22:25
live365 now searches javascript file: [2dd481062a] check-in: [f0cd5d48f2] user: mario, branch: trunk, size: 43596 [annotate] [blame] [check-ins using] [diff]
2012-01-12
14:39
(no comment) file: [c1d417a2d9] check-in: [ff3473b8ec] user: mario, branch: trunk, size: 43661 [annotate] [blame] [check-ins using] [diff]
2012-01-10
03:49
minor gui tweaks file: [cdf275e0b5] check-in: [f2592fc1e4] user: mario, branch: trunk, size: 43442 [annotate] [blame] [check-ins using] [diff]
00:09
Updated win_config dialog, made it resizable. mini-help is disabled (tooltip became tooltip_text in preparation for Gtk3), glade-3.10 killed the "theme" dropdown. file: [62f6e7006d] check-in: [d5904985a0] user: mario, branch: trunk, size: 43438 [annotate] [blame] [check-ins using] [diff]
2012-01-09
21:13
transition from libglade to gtk.Builder, ui file might be still borked (gtk-builder-convert drops menu, glade-gtk2 3.8.0 is the last to work, but gives massive warnings) file: [548fb7e362] check-in: [0a107286ea] user: mario, branch: trunk, size: 43405 [annotate] [blame] [check-ins using] [diff]
03:45
Added: 2.0.8.5 file: [70adb4776e] check-in: [ea81d1ad5d] user: mario, branch: trunk, size: 43345 [annotate] [blame] [check-ins using]