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

⌈⌋ ⎇ branch:  streamtuner2


History of channels/favicon.py of 2956305120f934f2

History of the file that is called channels/favicon.py at checkin 2956305120f934f2

2020-05-14
23:05
Add binary JPEG detection \xFF\xD8\xFF magic bytes. file: [e380c77c1c] check-in: [a888486bae] user: mario, branch: trunk, size: 14862 [annotate] [blame] [check-ins using] [diff]
2019-02-06
21:16
Switch to XDG_CACHE_HOME/.cache (because that's what the cache files are, not really user data). More consistently use new storage path throughout core and plugins (favicon+cachereset). file: [81d5a0ff38] check-in: [2ee52fe7e8] user: mario, branch: trunk, size: 14849 [annotate] [blame] [check-ins using] [diff]
2016-12-16
16:26
Reverted all `module = __name__` assignments, because that was carrying the module over, not the base classname. Added #extraction-method: meta information to channel plugins. file: [edc53741f5] check-in: [09dec64f41] user: mario, branch: trunk, size: 14845 [annotate] [blame] [check-ins using] [diff]
2016-12-14
15:57
new plugin: theme installer for Gtk2 and Windows; fixed for support of JSON format; gtk_reset_styles -- Oliver file: [ef3ab53102] check-in: [ec7df3c333] user: mario, branch: trunk, size: 14844 [annotate] [blame] [check-ins using] [diff]
2016-12-10
13:55
Use `module = __name__` consistently for all plugins file: [8c7cddb000] check-in: [88aac7840a] user: mario, branch: trunk, size: 14844 [annotate] [blame] [check-ins using] [diff]
2016-12-03
21:23
Removed plugin option background colors. file: [06b56c7d15] check-in: [9520bc51a3] user: mario, branch: trunk, size: 14845 [annotate] [blame] [check-ins using] [diff]
2016-10-22
19:01
Minor text fixes file: [c4ea9b38ed] check-in: [e421c1af60] user: mario, branch: trunk, size: 14863 [annotate] [blame] [check-ins using] [diff]
2016-04-18
23:56
Disable logging for google_homepage file: [09f6bbd70b] check-in: [4f6de091f1] user: mario, branch: trunk, size: 14864 [annotate] [blame] [check-ins using] [diff]
2016-04-17
23:54
Fix google_homepage regex, filter out tunein+streema urls. file: [de8c98b1c8] check-in: [86ef3aaa35] user: mario, branch: trunk, size: 14862 [annotate] [blame] [check-ins using] [diff]
2015-05-24
17:46
Fix unqualified icon_dir reference. file: [0fa0d36699] check-in: [e2c2c405e7] user: mario, branch: trunk, size: 14577 [annotate] [blame] [check-ins using] [diff]
10:02
Lighter highlight color: for plugin options. file: [b858bcec7a] check-in: [160f4dd660] user: mario, branch: trunk, size: 14575 [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: [b3a8f61678] check-in: [867c9f9f94] user: mario, branch: trunk, size: 14572 [annotate] [blame] [check-ins using] [diff]
2015-05-18
22:21
Allow Exif-wrapped JPEGs as well (not just JFIF regexp check). Comment on merging row["favourite"] merge via prepare_filters list. file: [87b5a0fc51] check-in: [6d03cb84d3] user: mario, branch: trunk, size: 13502 [annotate] [blame] [check-ins using] [diff]
00:29
Strip double .png/.jpeg extension from cached `img` icons. file: [9b5655d121] check-in: [77ab1e927e] user: mario, branch: trunk, size: 13495 [annotate] [blame] [check-ins using] [diff]
2015-05-17
19:13
Remove stray `print` statement file: [214b0ad098] check-in: [d10f61093f] user: mario, branch: trunk, size: 13472 [annotate] [blame] [check-ins using] [diff]
2015-05-16
01:47
Use shorter domain names for homepage favicons again. file: [8987f1daae] check-in: [9931f4e0e5] user: mario, branch: trunk, size: 13501 [annotate] [blame] [check-ins using] [diff]
2015-05-14
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. file: [cef590a4be] check-in: [8c7b4f2662] user: mario, branch: trunk, size: 13285 [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: [2be50aefaa] check-in: [56776a4e90] user: mario, branch: trunk, size: 12701 [annotate] [blame] [check-ins using] [diff]
00:00
Move mime_fmt() into regular function. Fix live365 ahttp feedback= bug. Regroup functions and update a few comments in channels/__init__ file: [7782a3f227] check-in: [2335ea7a46] user: mario, branch: trunk, size: 12195 [annotate] [blame] [check-ins using] [diff]
2015-05-12
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). file: [bdefdbfe53] check-in: [8c0b288e66] user: mario, branch: trunk, size: 12147 [annotate] [blame] [check-ins using] [diff]
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). file: [7cf3ceafbb] check-in: [12e7646cbf] user: mario, branch: trunk, size: 11736 [annotate] [blame] [check-ins using] [diff]
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. file: [453360923b] check-in: [4e95040e40] user: mario, branch: trunk, size: 11531 [annotate] [blame] [check-ins using] [diff]
19:45
Work atop Python3 by using io.BytesIO rather than compat2and3 module. file: [608e7fc3f8] check-in: [7ec987b9ba] user: mario, branch: trunk, size: 10997 [annotate] [blame] [check-ins using] [diff]
19:20
Renamed favicon.py → channels/favicon.py. 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: [444cf2c952] check-in: [bd1a9cba05] user: mario, branch: trunk, size: 10833 [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: [9ae90f0624] check-in: [aac4fcacbf] user: mario, branch: trunk, size: 8280 [annotate] [blame] [check-ins using] [diff]
2015-04-30
20:31
Make SSL verify= configurable. file: [684fc768c9] check-in: [f2bac0d310] user: mario, branch: trunk, size: 7581 [annotate] [blame] [check-ins using] [diff]
2015-04-26
15:35
Cover most catched exceptions with log messages. file: [f1c4f8f20a] check-in: [363dce5eb9] user: mario, branch: trunk, size: 7559 [annotate] [blame] [check-ins using] [diff]
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.) file: [0e317dc343] check-in: [743c60ff80] user: mario, branch: trunk, size: 7551 [annotate] [blame] [check-ins using] [diff]
2015-04-17
21:06
Mark PIL workaround as obsolete. file: [c9075572d2] check-in: [ee9da14a46] user: mario, branch: trunk, size: 10313 [annotate] [blame] [check-ins using] [diff]
2015-04-14
16:39
Remove ancient dependency. (Whole favicon module needs refurbishment though. Might be feasible to turn it into a plugin meanwhile.) file: [0407b40e06] check-in: [6569edc420] user: mario, branch: trunk, size: 10230 [annotate] [blame] [check-ins using] [diff]
2014-05-11
01:21
load Jamendo images in favour of favicons file: [bf959d4ee7] check-in: [6d065627b5] user: mario, branch: trunk, size: 10207 [annotate] [blame] [check-ins using] [diff]
2014-04-27
22:48
Fully replace ahttp.ajax with ahttp.get() wrapper file: [b3ed705ebd] check-in: [b9af78503d] user: mario, branch: trunk, size: 9657 [annotate] [blame] [check-ins using] [diff]
2014-04-08
21:50
more Python3 syntax fixes, introduce compat2and3 module file: [983556d34c] check-in: [7911337325] user: mario, branch: py3, size: 9645 [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: [997ecd51ce] check-in: [d3b1418bc6] user: mario, branch: py3, size: 9620 [annotate] [blame] [check-ins using] [diff]
2012-01-09
03:45
Added: 2.0.8.5 file: [f5d4a162a1] check-in: [ea81d1ad5d] user: mario, branch: trunk, size: 9610 [annotate] [blame] [check-ins using]