Check-in [ff3473b8ec]
Overview
Comment: | (no comment) |
---|---|
Downloads: | Tarball | ZIP archive | SQL archive |
Timelines: | family | ancestors | descendants | both | trunk |
Files: | files | file ages | folders |
SHA1: |
ff3473b8ecc62447622d4276b3e277ab |
User & Date: | mario on 2012-01-12 14:39:07 |
Other Links: | manifest | tags |
Context
2014-01-04
| ||
22:25 | live365 now searches javascript check-in: f0cd5d48f2 user: mario tags: trunk | |
2012-01-12
| ||
14:39 | (no comment) check-in: ff3473b8ec user: mario tags: trunk | |
2012-01-10
| ||
03:54 | shoutcast parsing patch from Vincent check-in: d9e9441d2d user: mario tags: trunk | |
Changes
Modified README from [f33e23cc73] to [7a93008fc3].
︙ | ︙ | |||
100 101 102 103 104 105 106 107 108 109 110 111 112 113 | - sys.path patch (less py module conflicts) from Stefan Talpalaru - fixed main_quit signal slot, so window size saving works - added [new] button in streamedit window - prepared remaining print syntax for python3 (still needs 2to3 though) - fix for https://bugzilla.redhat.com/show_bug.cgi?id=655596 array error - transitioned glade file to gtk.Builder, just a few things broke - made configuration window resizable - 2.0.8 - configuration files use prettified json - fixed double quotation for %pls players and /local/file handling - (unused) channel .shutdown function introduced (late saving) | > > | 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 | - sys.path patch (less py module conflicts) from Stefan Talpalaru - fixed main_quit signal slot, so window size saving works - added [new] button in streamedit window - prepared remaining print syntax for python3 (still needs 2to3 though) - fix for https://bugzilla.redhat.com/show_bug.cgi?id=655596 array error - transitioned glade file to gtk.Builder, just a few things broke - made configuration window resizable - locked station list columns, no longer resortable (associatation mismatch) - applied Vincents fixed for Windows action.run and Shoutcast PQ parsing - 2.0.8 - configuration files use prettified json - fixed double quotation for %pls players and /local/file handling - (unused) channel .shutdown function introduced (late saving) |
︙ | ︙ |
Modified _package.epm from [d93aee70f8] to [bb299e0003].
︙ | ︙ | |||
157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 | #f 644 root root /usr/share/streamtuner2/lxml/html/usedoctest.py /usr/share/pyshared/lxml/html/usedoctest.py #-- windows %system win32 %description Windows version gets no love, nor support. %description It requires manual installation of Python 2.6 and Gtk+ and Pygtk.org libraries first. f 644 root root /usr/share/applications/streamtuner2.lnk ./streamtuner2.lnk %shortcut $desktop$\streamtuner2.lnk|/usr/share/applications/streamtuner2.lnk %homepage http://streamtuner2.sourceforge.net/ #-- distribution specific dependency rules %system all %requires python %format deb %requires python-lxml %requires python-imaging %requires python-pyquery %requires python-keybinder %requires python-gtk2 | > | | 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 | #f 644 root root /usr/share/streamtuner2/lxml/html/usedoctest.py /usr/share/pyshared/lxml/html/usedoctest.py #-- windows %system win32 %description Windows version gets no love, nor support. %description It requires manual installation of Python 2.6 and Gtk+ and Pygtk.org libraries first. f 644 root root /usr/bin/streamtuner2.lnk ./streamtuner2.lnk f 644 root root /usr/share/applications/streamtuner2.lnk ./streamtuner2.lnk %shortcut $desktop$\streamtuner2.lnk|/usr/share/applications/streamtuner2.lnk %homepage http://streamtuner2.sourceforge.net/ #-- distribution specific dependency rules %system all %requires python %format deb %requires python-lxml %requires python-imaging %requires python-pyquery %requires python-keybinder %requires python-gtk2 # %requires python-glade2 # %requires python-httplib2 # %requires python-json # %requires python-xdg # %requires python-xdgapp %format rpm %requires pygtk # %requires pyxdg # RPM package names are weirder, and there's no comprehensive list of them (Suse and Fedora depart anyway) |
Modified channels/shoutcast.py from [f74abd4786] to [20027a66d7].
︙ | ︙ | |||
110 111 112 113 114 115 116 | # downloads stream list from shoutcast for given category def update_streams(self, cat, search=""): if (not cat or cat == self.empty): __print__("nocat") return [] ucat = urllib.quote(cat) | < < < < < < < < < < < < < < > > > > > > > > > > > > > > > > | | | 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 | # downloads stream list from shoutcast for given category def update_streams(self, cat, search=""): if (not cat or cat == self.empty): __print__("nocat") return [] ucat = urllib.quote(cat) # loop entries = [] next = 0 max = int(conf.max_streams) count = max rx_stream = None rx_next = re.compile("""onclick="showMoreGenre""") while (next < max): # page url = "http://www.shoutcast.com/genre-ajax/" + ucat referer = url.replace("/genre-ajax", "/radio") params = { "strIndex":"0", "count":str(count), "ajax":"true", "mode":"listeners", "order":"desc" } html = http.ajax(url, params, referer) #,feedback=self.parent.status) __print__(html) # regular expressions if not conf.get("pyquery") or not pq: # new extraction regex if not rx_stream: rx_stream = re.compile( """ <a\s+class="?playbutton\d?[^>]+id="(\d+)".+? <a\s+class="[\w\s]*title[\w\s]*"[^>]+href="(http://[^">]+)"[^>]*>([^<>]+)</a>.+? (?:Recently\s*played|Coming\s*soon|Now\s*playing):\s*([^<]*).+? ners">(\d*)<.+? bitrate">(\d*)<.+? type">([MP3AAC]*) """, re.S|re.I|re.X ) # extract entries self.parent.status("parsing document...") __print__("loop-rx") for m in rx_stream.findall(html): (id, homepage, title, playing, ls, bit, fmt) = m __print__(uu) entries += [{ "title": self.entity_decode(title), "url": "http://yp.shoutcast.com/sbin/tunein-station.pls?id=" + id, "homepage": http.fix_url(homepage), "playing": self.entity_decode(playing), "genre": cat, #self.strip_tags(uu[4]), |
︙ | ︙ |
Modified st2.py from [cdf275e0b5] to [c1d417a2d9].
︙ | ︙ | |||
204 205 206 207 208 209 210 211 212 213 214 215 216 217 | "update_favicons": self.update_favicons, "app_state": self.app_state, "bookmark": self.bookmark, "save_as": self.save_as, "menu_about": lambda w: AboutStreamtuner2(), "menu_help": action.action.help, "menu_onlineforum": lambda w: action.browser("http://sourceforge.net/projects/streamtuner2/forums/forum/1173108"), # "menu_bugreport": lambda w: BugReport(), "menu_copy": self.menu_copy, "delete_entry": self.delete_entry, "quicksearch_set": search.quicksearch_set, "search_open": search.menu_search, "search_go": search.start, "search_srv": search.start, | > > | 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 | "update_favicons": self.update_favicons, "app_state": self.app_state, "bookmark": self.bookmark, "save_as": self.save_as, "menu_about": lambda w: AboutStreamtuner2(), "menu_help": action.action.help, "menu_onlineforum": lambda w: action.browser("http://sourceforge.net/projects/streamtuner2/forums/forum/1173108"), "menu_fossilwiki": lambda w: action.browser("http://fossil.include-once.org/streamtuner2/"), "menu_projhomepage": lambda w: action.browser("http://milki.include-once.org/streamtuner2/"), # "menu_bugreport": lambda w: BugReport(), "menu_copy": self.menu_copy, "delete_entry": self.delete_entry, "quicksearch_set": search.quicksearch_set, "search_open": search.menu_search, "search_go": search.start, "search_srv": search.start, |
︙ | ︙ |
Modified ui.xml from [17a9e1bc5e] to [39008dd4a6].
︙ | ︙ | |||
670 671 672 673 674 675 676 677 678 679 680 681 682 683 | </child> </object> </child> <action-widgets> <action-widget response="0">timer_cancel</action-widget> <action-widget response="0">timer_ok</action-widget> </action-widgets> </object> <object class="GtkWindow" id="win_config"> <property name="width_request">565</property> <property name="can_focus">False</property> <property name="title" translatable="yes">streamtuner settings</property> <property name="window_position">center</property> <property name="destroy_with_parent">True</property> | > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > | 670 671 672 673 674 675 676 677 678 679 680 681 682 683 684 685 686 687 688 689 690 691 692 693 694 695 696 697 698 699 700 701 702 703 704 705 706 707 708 709 710 711 712 713 714 715 716 717 718 719 720 721 722 723 724 725 726 727 728 | </child> </object> </child> <action-widgets> <action-widget response="0">timer_cancel</action-widget> <action-widget response="0">timer_ok</action-widget> </action-widgets> </object> <object class="GtkWindow" id="url_action_container"> <property name="can_focus">False</property> <child> <object class="GtkVBox" id="url_action_list"> <property name="visible">True</property> <property name="can_focus">False</property> <child> <object class="GtkLabel" id="url_action_1_online_forum"> <property name="visible">True</property> <property name="can_focus">False</property> <property name="label" translatable="yes">http://sourceforge.net/projects/streamtuner2/forums/forum/1173108</property> </object> <packing> <property name="expand">True</property> <property name="fill">True</property> <property name="position">0</property> </packing> </child> <child> <object class="GtkLabel" id="url_action_2_fossil_wiki"> <property name="visible">True</property> <property name="can_focus">False</property> <property name="label" translatable="yes">http://fossil.include-once.org/streamtuner2/</property> </object> <packing> <property name="expand">True</property> <property name="fill">True</property> <property name="position">1</property> </packing> </child> <child> <object class="GtkLabel" id="url_action_3_project_homepage"> <property name="visible">True</property> <property name="can_focus">False</property> <property name="label" translatable="yes">http://milki.include-once.org/streamtuner2/</property> </object> <packing> <property name="expand">True</property> <property name="fill">True</property> <property name="position">2</property> </packing> </child> </object> </child> </object> <object class="GtkWindow" id="win_config"> <property name="width_request">565</property> <property name="can_focus">False</property> <property name="title" translatable="yes">streamtuner settings</property> <property name="window_position">center</property> <property name="destroy_with_parent">True</property> |
︙ | ︙ | |||
1049 1050 1051 1052 1053 1054 1055 | </packing> </child> <child> <object class="GtkLabel" id="label124124_placeholder"> <property name="visible">True</property> <property name="can_focus">False</property> <property name="label" translatable="yes">placeholder | | | 1094 1095 1096 1097 1098 1099 1100 1101 1102 1103 1104 1105 1106 1107 1108 | </packing> </child> <child> <object class="GtkLabel" id="label124124_placeholder"> <property name="visible">True</property> <property name="can_focus">False</property> <property name="label" translatable="yes">placeholder <a href="http://fossil.include-once.org/streamtuner2/wiki?name=player">see help</a></property> <property name="use_markup">True</property> </object> <packing> <property name="top_attach">7</property> <property name="bottom_attach">8</property> </packing> </child> |
︙ | ︙ | |||
2280 2281 2282 2283 2284 2285 2286 | <property name="visible">True</property> <property name="can_focus">False</property> <child> <object class="GtkVBox" id="vbox3"> <property name="visible">True</property> <property name="can_focus">False</property> <child> | | < > < > | | | 2325 2326 2327 2328 2329 2330 2331 2332 2333 2334 2335 2336 2337 2338 2339 2340 2341 2342 2343 2344 2345 2346 2347 2348 2349 2350 2351 2352 2353 2354 2355 2356 2357 2358 2359 2360 2361 2362 2363 2364 2365 2366 2367 2368 2369 2370 2371 2372 2373 2374 2375 2376 2377 2378 2379 2380 2381 2382 2383 2384 2385 2386 2387 2388 | <property name="visible">True</property> <property name="can_focus">False</property> <child> <object class="GtkVBox" id="vbox3"> <property name="visible">True</property> <property name="can_focus">False</property> <child> <object class="GtkMenuBar" id="mainmenu"> <property name="visible">True</property> <property name="can_focus">False</property> <child> <object class="GtkMenuItem" id="streammenu"> <property name="visible">True</property> <property name="can_focus">False</property> <property name="use_action_appearance">False</property> <property name="label" translatable="yes">_Station</property> <property name="use_underline">True</property> <child type="submenu"> <object class="GtkMenu" id="menu1"> <property name="visible">True</property> <property name="can_focus">False</property> <child> <object class="GtkMenuItem" id="menu_bookmark"> <property name="visible">True</property> <property name="can_focus">False</property> <property name="use_action_appearance">False</property> <property name="label" translatable="yes">bookmark</property> <property name="use_underline">True</property> <accelerator key="F8" signal="activate"/> <accelerator key="d" signal="activate" modifiers="GDK_CONTROL_MASK"/> <signal name="activate" handler="bookmark" swapped="no"/> </object> </child> <child> <object class="GtkImageMenuItem" id="imagemenuitem_saveas"> <property name="label">gtk-save-as</property> <property name="visible">True</property> <property name="can_focus">False</property> <property name="use_action_appearance">False</property> <property name="use_underline">True</property> <property name="use_stock">True</property> <accelerator key="s" signal="activate" modifiers="GDK_CONTROL_MASK"/> <accelerator key="F2" signal="activate"/> <signal name="activate" handler="save_as" swapped="no"/> </object> </child> <child> <object class="GtkImageMenuItem" id="gtk-edit"> <property name="label">gtk-edit</property> <property name="visible">True</property> <property name="can_focus">False</property> <property name="use_action_appearance">False</property> <property name="use_underline">True</property> <property name="use_stock">True</property> <accelerator key="Return" signal="activate" modifiers="GDK_MOD1_MASK"/> <accelerator key="space" signal="activate" modifiers="GDK_MOD1_MASK"/> <accelerator key="F3" signal="activate"/> <signal name="activate" handler="streamedit_open" swapped="no"/> </object> </child> <child> <object class="GtkMenuItem" id="extensions0"> <property name="visible">True</property> <property name="can_focus">False</property> |
︙ | ︙ | |||
2407 2408 2409 2410 2411 2412 2413 | <object class="GtkImageMenuItem" id="menuitem_delete"> <property name="label">gtk-delete</property> <property name="visible">True</property> <property name="can_focus">False</property> <property name="use_action_appearance">False</property> <property name="use_underline">True</property> <property name="use_stock">True</property> | < > | 2452 2453 2454 2455 2456 2457 2458 2459 2460 2461 2462 2463 2464 2465 2466 2467 | <object class="GtkImageMenuItem" id="menuitem_delete"> <property name="label">gtk-delete</property> <property name="visible">True</property> <property name="can_focus">False</property> <property name="use_action_appearance">False</property> <property name="use_underline">True</property> <property name="use_stock">True</property> <accelerator key="x" signal="activate" modifiers="GDK_CONTROL_MASK"/> <accelerator key="Delete" signal="activate"/> <signal name="activate" handler="delete_entry" swapped="no"/> </object> </child> <child> <object class="GtkImageMenuItem" id="imagemenuitem8"> <property name="label">gtk-find</property> <property name="visible">True</property> |
︙ | ︙ | |||
2637 2638 2639 2640 2641 2642 2643 2644 2645 2646 2647 2648 2649 2650 | <property name="can_focus">False</property> <property name="use_action_appearance">False</property> <property name="label" translatable="yes">online forum</property> <property name="use_underline">True</property> <signal name="activate" handler="menu_onlineforum" swapped="no"/> </object> </child> <child> <object class="GtkImageMenuItem" id="imagemenuitem10"> <property name="label">gtk-about</property> <property name="visible">True</property> <property name="can_focus">False</property> <property name="use_action_appearance">False</property> <property name="use_underline">True</property> | > > > > > > > > > > | 2682 2683 2684 2685 2686 2687 2688 2689 2690 2691 2692 2693 2694 2695 2696 2697 2698 2699 2700 2701 2702 2703 2704 2705 | <property name="can_focus">False</property> <property name="use_action_appearance">False</property> <property name="label" translatable="yes">online forum</property> <property name="use_underline">True</property> <signal name="activate" handler="menu_onlineforum" swapped="no"/> </object> </child> <child> <object class="GtkMenuItem" id="menufossilwiki"> <property name="visible">True</property> <property name="can_focus">False</property> <property name="use_action_appearance">False</property> <property name="label" translatable="yes">wiki/fossil/bugs</property> <property name="use_underline">True</property> <signal name="activate" handler="menu_fossilwiki" swapped="no"/> </object> </child> <child> <object class="GtkImageMenuItem" id="imagemenuitem10"> <property name="label">gtk-about</property> <property name="visible">True</property> <property name="can_focus">False</property> <property name="use_action_appearance">False</property> <property name="use_underline">True</property> |
︙ | ︙ |