Timeline
315 check-ins using file help/exportcat.page version c87fe2cfa8
2015-05-27
| ||
10:49 | Minor formulation fix. check-in: 80da39f2ec user: mario tags: trunk | |
2015-05-26
| ||
08:38 | Don't keep converter Soundcloud streaming URLs (access token time out after an hour or something). check-in: 915e4b09da user: mario tags: trunk | |
02:09 | Move broken plugins into disabled/ folder. check-in: 75f6084791 user: mario tags: trunk | |
02:07 | Stub debugging plugin. check-in: dcedb5981a user: mario tags: trunk | |
01:07 | Update sha1whateverchecksum for 0install. check-in: 90c4647665 user: mario tags: trunk | |
01:00 | Release as 2.1.9 (semi-stable). check-in: 873e301b9b user: mario tags: trunk, 2.1.9 | |
00:52 | Update html manual. check-in: 217587b590 user: mario tags: trunk | |
00:43 | Allow api: to be "python" or "streamtuner2" check-in: 294a2672d2 user: mario tags: trunk | |
00:43 | Disable window tilte updating per default again. check-in: b9a667bbe7 user: mario tags: trunk | |
00:42 | Fix row[`url`] reference. check-in: 388ef679b7 user: mario tags: trunk | |
00:41 | Update for new action.play() signature, scale down banner images. check-in: 3717a70b32 user: mario tags: trunk | |
00:40 | Fix action.browser() to use only row{}, not pass url= argument. Native JAMJSON extractor now tests for ["tracks"] or uses plain ["results"] list. check-in: 84114ae636 user: mario tags: trunk | |
2015-05-24
| ||
17:46 | Fix simplified regex to stop before }}} for URL extraction. check-in: b728f45203 user: mario tags: trunk | |
17:46 | Fix unqualified icon_dir reference. check-in: e2c2c405e7 user: mario tags: trunk | |
16:59 | Add missing quotes for streamripper default option. check-in: 4a3b5153d8 user: mario tags: trunk | |
16:58 | Remove url= attribute in main entry points in favour of row{} check-in: a73f762152 user: mario tags: trunk | |
16:58 | Undo {expand:False} attribute for CellRendererPixbuf check-in: a4d0e74658 user: mario tags: trunk | |
16:57 | Overwrite row["format"] after updating entry. check-in: d32669293c user: mario tags: trunk | |
16:57 | Fix audioformat to audio/mpeg. check-in: fa5df72f08 user: mario tags: trunk | |
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 | |
17:09 | Remove unsupported view-source: URL prefix, rewrite links from /cat/ to /doc/tip/ for downloading/plain view instead of text/html browsing. check-in: 8e4f191706 user: mario tags: trunk | |
01:22 | Fix UTF-8 text decoding for CSV after downloading as binary. check-in: 27b9174109 user: mario tags: trunk | |
01:20 | Add description: line. check-in: 749946913c user: mario tags: trunk | |
01:17 | Add windows media guide radio lists (ASX). Fixed action module to extract with case-insensitve matches for that playlist format. (It's not really XML after all.) check-in: 7c085d54f9 user: mario tags: trunk | |
01:16 | Another radio station directory: listenlive.eu check-in: b0e9e031d9 user: mario tags: trunk | |
01:15 | Compressed GLRP csv playlist. check-in: 48e681e054 user: mario tags: trunk | |
2015-05-06
| ||
21:05 | Add preliminary Magnatune contrib plugin. (Radio playlists are currently broken. Only small album list is fetched.) check-in: f0fcfbd3ba user: mario tags: trunk | |
19:35 | Add yelp <note> icons. check-in: 761b87fed4 user: mario tags: trunk | |
19:34 | Update config option references for channel pages. check-in: 2b2993e6e1 user: mario tags: trunk | |
17:36 | Converted help images to more grayscale/indexed variants to reduce filesize. check-in: 178fe1e006 user: mario tags: trunk | |
17:06 | Use fallback title= for mkrow() importing. check-in: fbb2beedd7 user: mario tags: trunk | |
17:06 | Fix urlencode references to urllib.quote. check-in: 334e951b04 user: mario tags: trunk | |
17:05 | Add favicon and description. check-in: f2dbd33512 user: mario tags: trunk | |
04:27 | Fix JSON serialization. check-in: b2d517502d user: mario tags: trunk | |
04:02 | Add trivial di.fm/sky.fm radio list fetcher. check-in: 644d1b3532 user: mario tags: trunk | |
00:22 | Enable glrp.csv download from repo. check-in: f42cec687d user: mario tags: trunk | |
00:21 | Remove default ["empty",] category. check-in: d958ddb71e user: mario tags: trunk | |
00:08 | Release as 2.1.8 check-in: b0a6a50a20 user: mario tags: trunk, 2.1.8 | |
00:07 | Fix some print and log statements. check-in: d0a9fca2bd user: mario tags: trunk | |
00:07 | Use Gtk3/gdk.Color.parse() as fallback to .get_colormap(), get rid of style copying (was only necessary with the previous theming support IIRC). check-in: ae1d856e69 user: mario tags: trunk | |
00:05 | Inline copy&paste HTML entity definitions, because they seemingly were also sacrificed at the Python 3 altar. check-in: 6cb923861a user: mario tags: trunk | |
2015-05-05
| ||
20:08 | Fix region_id default to enable v3 mostPopular query (YT stumbled over "UK"). check-in: 5a0c618e03 user: mario tags: trunk | |
19:47 | Filter `None` from extracted URLs. Fix save_playlist.export; copy.copy each row before overwriting/filling url. Implement specific `jamj` extractor (regex stumbled over playlist title). check-in: c9509eb384 user: mario tags: trunk | |
17:25 | Add .save() after reading in CSV list. check-in: 930e5fd7a5 user: mario tags: trunk | |
17:22 | Add playlist importer channel for GLRP. check-in: 44f08cdd69 user: mario tags: trunk | |
14:52 | Updated channel documentation with links. check-in: 333e0400bc user: mario tags: trunk | |
14:27 | Moved `file` and `punkcast` into contrib/ group. check-in: d91ab221b3 user: mario tags: trunk | |
14:12 | ./. check-in: a80fa6becf user: mario tags: trunk | |
14:11 | Add -B and -3 options to `make run` check-in: e8c3b8b495 user: mario tags: trunk | |
14:11 | Add icon for file browser. check-in: 5f1b889ce6 user: mario tags: trunk | |
11:24 | Fix some typos. check-in: 8f1be0548d user: mario tags: trunk | |
10:58 | Add omitted HTML pages. (*.html is in the fossil `ignore-glob`, so they get skipped for github-skin statistics bar.) check-in: 8a854e0f4c user: mario tags: trunk | |
10:56 | Update documentation and notes for new channel/feature plugins. check-in: 222113231f user: mario tags: trunk | |
10:45 | Readd plugin_base paths in addition to module basenames, otherwise pluginconf.get_data won't find plugins/* either in the module_list() or per get_data() - one uses paths, the other pkg names. check-in: 68107d7f9a user: mario tags: trunk | |
10:44 | Simplify core plugin dependency lookups. check-in: 120249ab54 user: mario tags: trunk | |
10:43 | Support direct URLs in DND import (only used as literal url=, brings up streamedit window afterwards). check-in: 5fe8de1fd7 user: mario tags: trunk | |
10:42 | Fix missing channel key error. Add icon. check-in: f4dfbc1e53 user: mario tags: trunk | |
2015-05-04
| ||
22:29 | Stub placeholder version: as `0` check-in: 9f252677fa user: mario tags: trunk | |
17:47 | Rewrite some comments. check-in: d08461a712 user: mario tags: trunk | |
17:45 | Fix http reference, unneeded. check-in: 718fb64e78 user: mario tags: trunk | |
17:45 | No more API. check-in: 5cd371d6e5 user: mario tags: trunk | |
15:23 | Moved dependency() into pluginconf module, which shortens adding new installable modules to the vbox. check-in: 686c553354 user: mario tags: trunk | |
15:22 | Make configwin construction slightly more readable, use new pluginconf functions. check-in: 5f8afee363 user: mario tags: trunk | |
15:21 | Split pluginconf from config module. check-in: 0d6acc5aef user: mario tags: trunk | |
15:21 | Use file:// prefix for storing local paths. (Did break DND without "srv" export.) check-in: 3c7e820654 user: mario tags: trunk | |
15:20 | Shorter format option descriptions. check-in: f4887cae4e user: mario tags: trunk | |
15:20 | Hopefully fix Gtk3 error by wrapping second set_current() call in uikit.do check-in: b5a787d470 user: mario tags: trunk | |
2015-05-03
| ||
20:26 | Add some version: bumps and add a few versions to depends: references. check-in: beebec9c76 user: mario tags: trunk | |
20:24 | Perform basic version dependency checks before displaying downloadable plugins. check-in: c83b236a5a user: mario tags: trunk | |
20:23 | Disable iCast plugin for now. check-in: 9d1b6cc7f5 user: mario tags: trunk | |
17:36 | Make plugin list prettier. Implement vbox redrawing on [save]. Activation seems to work okay for channel plugins, and main already had enough safeguards to make st2.load_plugin_channels() work as is. check-in: 0479db10f9 user: mario tags: trunk | |
17:35 | Make short help notices for player/recording configuration smaller. check-in: 55a1d1e516 user: mario tags: trunk | |
14:29 | Catch invalid image files when creating pixbuf in uikit.columns() check-in: 61c264fdcb user: mario tags: trunk | |
14:13 | Add user plugin manager / download tool. Not very well integrated nor pretty. Still requires a restart, needs more hooks into config dialog. (Clean up previous plugin vboxes after installation. Auto-activation required to reimplement init loader. And channels.__path__ setup isn't yet injectable, because no plugin `order:` is honored by main/init, and pluginmanager2 would run too late for overrides.) check-in: 8e8a9dd020 user: mario tags: trunk | |
14:10 | Detect all command names in player config, so that both `xterm` and `streamripper` are probed for existence. Use dict comprehension for plugin_meta lookup. Remove wrap_entry in favour of generic uikit.wrap(). check-in: 91f8502978 user: mario tags: trunk | |
14:09 | Allow to override encoding= for .text results (requests can't detect it automatically for binary/json responses). check-in: 00ff8bac09 user: mario tags: trunk | |
14:08 | Support multiple `plugin_base` references (namely "channels" and "plugins"). check-in: 12d3b19c1d user: mario tags: trunk | |
14:08 | Add .wrap() from configdialog for general use. check-in: 1ad0b9e76b user: mario tags: trunk | |
14:07 | Remove print statement. check-in: cf6b582c7e user: mario tags: trunk | |
09:35 | Implement "buffy" mode for just keeping Xiphs YP.XML in memory once traversed. check-in: 0afbbc5c26 user: mario tags: trunk | |
09:25 | Consolidate bitrate filter in main update_streams() method. Fix conjoined category strings. check-in: 2793a3e6f8 user: mario tags: trunk | |
09:16 | Fix server search var reference. check-in: b09ca3e24f user: mario tags: trunk | |
09:15 | Move parole behind vlc in setup alternatives. check-in: 7e68e1b770 user: mario tags: trunk | |
09:15 | Support literal references in text/uri-list per "srv" setting. check-in: 63798f88a3 user: mario tags: trunk | |
2015-05-02
| ||
23:44 | Better plugin comments for user interface. check-in: 85c2fd4f56 user: mario tags: trunk | |
23:44 | Fix xiph search URL and by_format mapping. check-in: 026af5c9fb user: mario tags: trunk | |
20:03 | Add combined unhtml() utility function for raw page extractors. check-in: 6f314952b9 user: mario tags: trunk | |
20:03 | Clean out unneeded xml module references. check-in: 4797dcce8e user: mario tags: trunk | |
19:56 | Xiph module: reintroduce YP.XML extraction (still exceedingly slow), simplify JSON cache API usage (may get retired, incurs a delay of its own), and add raw dir.xiph.org website scraping (fastest, and most features). check-in: e11d6b2207 user: mario tags: trunk | |
19:54 | Added default icons to dialog windows, and st2 logo to main window. Introduce more keyboard shortcuts (F6 favicons, Alt-F5 category reload, etc..) check-in: f18582ae4d user: mario tags: trunk | |
19:53 | Use shorter entity_decode() call. Strip example content. check-in: 405eaaa660 user: mario tags: trunk | |
19:53 | Allow to add custom statusmsg for lengthier HTTP requests. check-in: 4f285c3b31 user: mario tags: trunk | |
19:52 | Move strip_tags(), entity_decode(), and nl() out of class into normal functions. check-in: 41c3273da9 user: mario tags: trunk | |
19:52 | Move strip_tags(), entity_decode(), and nl() out of class into normal functions. check-in: d275a3e6e7 user: mario tags: trunk | |
05:45 | New channel plugin for Radionomy. check-in: c734771f92 user: mario tags: trunk | |
05:44 | Fix `audioformat` property name. check-in: 3f1b3bd882 user: mario tags: trunk | |
05:44 | Stub category tree building main[] in case of wrapped primary group. Add uikit.bg on STATE_ACTIVE, skip existing EventBox widgets. check-in: 6bf4c5e61e user: mario tags: trunk | |
05:42 | Remove redundant pq and compat2and3 imports. check-in: 8783b94a0a user: mario tags: trunk | |
05:42 | Use new @use_rx decorator to switch and fall back between regex/pyquery modes. check-in: f269792f36 user: mario tags: trunk | |
05:41 |
Implement custom HTML .entitiy_decode, because SAX didn't honor any HTML;
and HTMLParser would require customized/compat2and3 imports.
Colorize channel labels if #color: is specified in any plugins. And provide @use_rx decorator to alternate between regex/pyquery extractors. check-in: 5588baf6dd user: mario tags: trunk | |
05:39 | More specific log.HTTP messages (GET vs POST) check-in: 8ede46a0a1 user: mario tags: trunk | |
2015-05-01
| ||
23:30 | Prepare row() and play() wrappers. No genre requests yet. (Still just a planned channel pugin.) check-in: 34f8a3d27b user: mario tags: trunk | |
23:10 | Rename 8tracks module to have a legal Python identifier (rather than the globals()/module rename workaround). check-in: 8cd49580a4 user: mario tags: trunk | |
22:53 | Tag with priority:never, as it's not meant to be bundled really. check-in: 7df4f3284f user: mario tags: trunk | |
22:52 | Remove contrib/bieber joke example. check-in: c854934751 user: mario tags: trunk | |
22:41 | Separate statusbar timer-reset from text/progressbar setter. check-in: 3b7a4ff895 user: mario tags: trunk | |
02:16 | Use empty stub {} dict in place of state.json contents on fresh init. check-in: 3d6205d2d3 user: mario tags: trunk | |
02:16 | Add python2-requests dependency. check-in: dedcc5a434 user: mario tags: trunk | |
2015-04-30
| ||
23:57 | Test build -t arch Linux package as well. check-in: adb15be7f8 user: mario tags: trunk | |
21:21 | A little more comments on playlist_export usage. check-in: bf7e0f1bf3 user: mario tags: trunk | |
20:54 | Implement state: mapping (though no idea what 0-2 mean), and make default API key internally predefined again. check-in: cf32efcb61 user: mario tags: trunk | |
20:37 | Add delicast favicon. check-in: 046dd8a5da user: mario tags: trunk | |
20:33 | Temporarily remove iCast plugin from packaging, but add dirble and filtermusic. check-in: 9b4d29f9f7 user: mario tags: trunk | |
20:32 | Basic channel plugin for delicast.com check-in: c1b74b649f user: mario tags: trunk | |
20:31 | Manually replace `nbsp;` in entity_decode check-in: 82e9e14f3b user: mario tags: trunk | |
20:31 | Make SSL verify= configurable. check-in: f2bac0d310 user: mario tags: trunk | |
20:30 | Fix typos in myoggradio help page. check-in: 8e6178d3e3 user: mario tags: trunk | |
20:29 | Bring back dirble channel. check-in: 57af601fa7 user: mario tags: trunk | |
06:24 | Update HTML manual with current page set. check-in: 40900d9702 user: mario tags: trunk | |
06:22 | Add new channel plugin for filtermusic.net, which works both per website extraction and from XML map traversal. (Again, the HTML→regex grepping seems more reliable.) check-in: 4b395e5d70 user: mario tags: trunk | |
06:21 | Statusbar timeout and reset still not as planned. check-in: 049b945a64 user: mario tags: trunk | |
06:21 | Add new config dialog group for "Playlists". Conf setting `playlist_asis` completely skips action.convert_playlist(). Works for any real m3u/pls/srv server and flexible audio players. But obviously breaks Jamendo albums or other JSON playlist sources. check-in: 470e3fac2b user: mario tags: trunk | |
06:19 | No has_search for PRF channel. check-in: dc28b4f35a user: mario tags: trunk | |
00:46 | Applied listformat= testing via action.extract_playlist.probe_ext(). check-in: 7dc72d064e user: mario tags: trunk | |
00:45 | iCast currently(?) down. Added JSON/HTTP log.ERR message. check-in: 56320c8678 user: mario tags: trunk | |
00:44 | Moved artwork (logo/icon) into dev/ folder. check-in: cff3740941 user: mario tags: trunk | |
2015-04-29
| ||
22:59 | Undo itertools.chain(), use plain list appending. check-in: 051366205f user: mario tags: trunk | |
22:55 | Exchanged all "import ahttp as http" for plain `ahttp` module usage. check-in: 493be36226 user: mario tags: trunk | |
22:54 | PublicRadioFan directory plugin. (Works ok, but fetching is somewhat slow.) check-in: 747be98229 user: mario tags: trunk | |
05:39 | Fix `st2.py` name/location in comment. check-in: 1f5a45d79b user: mario tags: trunk | |
05:38 | Support "TV" channel for UbuntuUsers. (Albeit few are still working.) check-in: 8939760832 user: mario tags: trunk | |
05:37 | Also scroll to last category after .select_current (didn't automatically happen for current notebook.) check-in: 53bfeeff06 user: mario tags: trunk | |
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. check-in: 276ae3ef5f user: mario tags: trunk | |
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(). check-in: ffaf262c43 user: mario tags: trunk | |
2015-04-27
| ||
23:45 | Document command line flags in manual. check-in: 6135c7ecac user: mario tags: trunk | |
23:45 | Reorder target types, to prefer XSPF over PLS and M3U. Support .URL exports, keep distinct literal url/direct. check-in: af47020e49 user: mario tags: trunk | |
21:22 | Updated category:/type: check-in: 823b3a3fff user: mario tags: trunk | |
21:20 | PodSpider.xml database reader. Untested. check-in: fd17dafe58 user: mario tags: trunk | |
16:33 | TreePath restoration +1 for drag and drop. check-in: 9185cd29e6 user: mario tags: trunk | |
16:32 | Readd `default`, and fix forgotten `favicon` import. check-in: fe2dfd27e1 user: mario tags: trunk | |
16:32 | Fix uikit.do spool appending with len(idle_tasks) instead of -1. Unpack window state treepath tuple conversion into 1:2:3 strings. check-in: 9930020237 user: mario tags: trunk | |
2015-04-26
| ||
23:49 | Document changes, fixes, new features in 2.1.7 check-in: 3cc9821dbb user: mario tags: trunk, 2.1.7 | |
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 | |
16:31 | Bring back .base_url instead of .homepage property for HTTP requests. check-in: c6416a18df user: mario tags: trunk | |
16:31 | Simplify uikit.do() callback for GUI updates from within threads. Search plugin led to a memory corruption due to not using it for updates. check-in: aa264c28e2 user: mario tags: trunk | |
2015-04-18
| ||
20:41 | Add [feeds] support for Jamendo. (Pretty much only albums, so track lookup works.) Better support for configured audio format/mime. Ogg Vorbis now works in albums and playlists. check-in: 90b1672010 user: mario tags: trunk | |
20:39 | Fix homepage url issue / quote() checks for list first now. Restructure playlist extraction into ordered dict; use in conver_playlist as probe formats. Make xml/json url decoding explicit, prepare for custom extractors (e.g. real json or xml traversal, full row/title extraction). check-in: 58d2981ca9 user: mario tags: trunk | |
20:37 | Guard appstate_init channels.current setting for absent plugins. check-in: 24fb9b895e user: mario tags: trunk | |
17:19 | Updated Jamendo plugin audioformat and listformat descriptors. Attempted to use v3.0 API for playlist tracks. Still no playlist API endpoint. So using a separate track requests now. Implemented a new action/playlist_convert URL extractor, which shall henceforth be known as "jamj" (JamJibberish). Fixed XML url extraction in regex mode, trivial backslash deescaping for JSON formats; and fixed multiply URL bug by copying row{} dict during conversion. check-in: 7149d92fe1 user: mario tags: trunk | |
17:16 | Removed dnd code snippets. check-in: 1e268b6422 user: mario tags: trunk | |
17:15 | Experimental drag and drop code snippets. (Not going to work well with other apps, only VLC tested, everything else depends on text/uri-list temp file:// URLs. Internal row dragging not implemented / no bookmarks subcats yet.) check-in: 185e42f185 user: mario tags: trunk | |
2015-04-17
| ||
22:15 | Move PYZ shebang prefixing into `xpm` codebase. Simplifies local Makefile. Renamed PKG_PYZ into PKG_ZIP, and added extra target rules to Packfile. check-in: 9b93393d5e user: mario tags: trunk | |
21:14 | Remove remnant module .title/etc attributes, and .current category overwriting. check-in: a7b0cd39a2 user: mario tags: trunk | |
21:13 | Make .current a dynamic property for debugging. Skip load() update for category==None calls (doesn't happen with previous appstate). Undo default category setting. Now main.appstate_init values are used again. Don't position category liststore selection to #0. Enable "Format" station column. check-in: 99ee6c4ef4 user: mario tags: trunk | |
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. check-in: 2687258c8c user: mario tags: trunk | |
21:07 | Tested fixed-width for pixbuf cellrenderer in stream lists; little effect. Set .module attribute for auxiliary windows (unused). check-in: b434d63e4e user: mario tags: trunk | |
21:06 | Mark PIL workaround as obsolete. check-in: ee9da14a46 user: mario tags: trunk | |
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.) check-in: 56c215a897 user: mario tags: trunk | |
18:31 | Move preprocessing from Makefile to Packfile, just runs on channels/search.py instead of all *.py files now. check-in: 9e4b52a0f5 user: mario tags: trunk | |
2015-04-14
| ||
17:03 | Not implemented: `8tracks` (plugin name suffers from identifier mismatch, and it's not quite doable in ST2, because 8tracks requires feedback shortly after playback has begun; yet streamtuner can't inspect any configured audio player for actually doing so.) check-in: 327d2ed94c user: mario tags: trunk | |
16:57 | Add old Compound★ example plugin, slightly updated for current meta data scheme. check-in: a4cb6da4ac user: mario tags: trunk | |
16:43 | Old helper script to make streamripper add genre. Though there are `-D` pattern options that often work better. And KStreamripper or fIcy/fPls might be more modern. check-in: 39e61e9915 user: mario tags: trunk | |
16:39 | Remove ancient dependency. (Whole favicon module needs refurbishment though. Might be feasible to turn it into a plugin meanwhile.) check-in: 6569edc420 user: mario tags: trunk | |
16:36 | Last tagged release (2.1.6) check-in: baed88d243 user: mario tags: trunk | |
15:47 | Move NEWS->changelog.gz conversion into xpm Packfile. check-in: b1eb48cafd user: mario tags: trunk | |
2015-04-13
| ||
00:32 | Remove default %m3u placeholders. (Now defaulting to PLS, as supported by pretty much all players.) check-in: 3dd41a0668 user: mario tags: trunk, 2.1.6 | |
2015-04-12
| ||
18:02 | Optional plugin, retrieves raw Wiki content from Wiki.UbuntuUsers.de with country-grouped radio stations. (Will be bundled in another release.) check-in: 0f7bc40c16 user: mario tags: trunk | |
16:40 | Prepare next beta release 2.1.6 check-in: ace13f842d user: mario tags: trunk | |
16:39 | Fix NoneType concatenation (empty genre: entries) in cache search. check-in: 0116b55e34 user: mario tags: trunk | |
15:35 | Add easter egg in search_dialog only for PYZ package. (Now Makefile targets require preprocess.py though). Resize GtkBuilder definition for search_dialog. check-in: 5ab206cedc user: mario tags: trunk | |
15:32 | Fix default bitrates in static SomaFM stream list. check-in: c41b729685 user: mario tags: trunk | |
00:48 | SomaFM.com channel plugin, with entirely static station list. check-in: 6a5133781f user: mario tags: trunk | |
2015-04-11
| ||
19:14 | Cleanup exportcat file extension mapping, and fix docs. check-in: 2b729c9433 user: mario tags: trunk | |