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

⌈⌋ ⎇ branch:  streamtuner2


Artifact [e5f01882c5]

Artifact e5f01882c5a1c5da5e705078fa9b15915b3790a8:

Wiki page [api-channels] by mario on 2017-02-20 15:11:53.
D 2017-02-20T15:11:53.082
L api-channels
N text/html
U mario
W 36975
<html><head><title>Python: package channels</title>

<table width="100%" cellspacing=0 cellpadding=2 border=0 summary="heading">
<tr bgcolor="#7799ee">
<td valign=bottom>&nbsp;<br>
<font color="#ffffff" face="helvetica, arial">&nbsp;<br><big><big><strong>channels</strong></big></big></font></td
><td align=right valign=bottom
><font color="#ffffff" face="helvetica, arial"><a href=".">index</a><br><a href="streamtuner2/channels/__init__.py">/home/mario/projects/streamtuner2/channels/__init__.py</a></font></td></tr></table>
    <p><tt>#&nbsp;encoding:&nbsp;UTF-8<br>
#&nbsp;api:&nbsp;streamtuner2<br>
#&nbsp;type:&nbsp;class<br>
#&nbsp;category:&nbsp;ui<br>
#&nbsp;title:&nbsp;Channel&nbsp;plugins<br>
#&nbsp;description:&nbsp;Base&nbsp;implementation&nbsp;for&nbsp;channels&nbsp;and&nbsp;feature&nbsp;plugins<br>
#&nbsp;version:&nbsp;1.7<br>
#&nbsp;license:&nbsp;public&nbsp;domain<br>
#&nbsp;author:&nbsp;mario<br>
#&nbsp;url:&nbsp;<a href="http://fossil.include-once.org/streamtuner2/">http://fossil.include-once.org/streamtuner2/</a><br>
#&nbsp;pack:<br>
#&nbsp;&nbsp;&nbsp;&nbsp;*.py<br>
#&nbsp;config:&nbsp;-<br>
#&nbsp;priority:&nbsp;core<br>
#<br>
#&nbsp;<a href="#GenericChannel">GenericChannel</a>&nbsp;implements&nbsp;the&nbsp;basic&nbsp;GUI&nbsp;functions&nbsp;and&nbsp;defines<br>
#&nbsp;the&nbsp;default&nbsp;channel&nbsp;data&nbsp;structure.&nbsp;It&nbsp;implements&nbsp;fallback&nbsp;logic<br>
#&nbsp;for&nbsp;all&nbsp;other&nbsp;channel&nbsp;implementations.&nbsp;Only&nbsp;`bookmarks`&nbsp;uses&nbsp;it<br>
#&nbsp;directly.<br>
#<br>
#&nbsp;All&nbsp;other&nbsp;plugins&nbsp;don't&nbsp;have&nbsp;a&nbsp;pre-defined&nbsp;Notebook&nbsp;tab&nbsp;in&nbsp;the<br>
#&nbsp;GtkBuilder&nbsp;description.&nbsp;They&nbsp;derive&nbsp;from&nbsp;ChannelPlugins&nbsp;therefore,<br>
#&nbsp;which&nbsp;constructs&nbsp;and&nbsp;registers&nbsp;the&nbsp;required&nbsp;gtk&nbsp;widgets&nbsp;manually.</tt></p>
<p>
<table width="100%" cellspacing=0 cellpadding=2 border=0 summary="section">
<tr bgcolor="#aa55cc">
<td colspan=3 valign=bottom>&nbsp;<br>
<font color="#ffffff" face="helvetica, arial"><big><strong>Package Contents</strong></big></font></td></tr>
    
<tr><td bgcolor="#aa55cc"><tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</tt></td><td>&nbsp;</td>
<td width="100%"><table width="100%" summary="list"><tr><td width="25%" valign=top><a
href="api-channels.bookmarks">bookmarks</a><br>
<a href="channels.cachereset.html">cachereset</a><br>
<a href="channels.configwin.html">configwin</a><br>
<a href="channels.continuous_record.html">continuous_record</a><br>
<a href="channels.delicast.html">delicast</a><br>
<a href="channels.dirble.html">dirble</a><br>
<a href="channels.dnd.html">dnd</a><br>
<a href="channels.exportcat.html">exportcat</a><br>
<a href="channels.favicon.html">favicon</a><br>
<a href="channels.file.html">file</a><br>
<a href="channels.filter_bitrate.html">filter_bitrate</a><br>
<a href="channels.filtermusic.html">filtermusic</a><br>
<a href="channels.global_key.html">global_key</a><br>
<a href="channels.gtk_theme.html">gtk_theme</a><br>
<a href="channels.history.html">history</a><br>
</td><td width="25%" valign=top><a href="channels.housemixes.html">housemixes</a><br>
<a href="channels.internet_radio.html">internet_radio</a><br>
<a href="channels.jamendo.html">jamendo</a><br>
<a href="channels.links.html">links</a><br>
<a href="channels.listenlive.html">listenlive</a><br>
<a href="channels.liveradio.html">liveradio</a><br>
<a href="channels.magnatune.html">magnatune</a><br>
<a href="channels.modarchive.html">modarchive</a><br>
<a href="channels.myoggradio.html">myoggradio</a><br>
<a href="channels.oggicon.html">oggicon</a><br>
<a href="channels.pluginmanager2.html">pluginmanager2</a><br>
<a href="channels.prefstore.html">prefstore</a><br>
<a href="channels.publicradiofan.html">publicradiofan</a><br>
<a href="channels.radiobrowser.html">radiobrowser</a><br>
<a href="channels.radiolist.html">radiolist</a><br>
</td><td width="25%" valign=top><a href="channels.radionet.html">radionet</a><br>
<a href="channels.radionomy.html">radionomy</a><br>
<a href="channels.radiosure.html">radiosure</a><br>
<a href="channels.radiotray.html">radiotray</a><br>
<a href="channels.rcast.html">rcast</a><br>
<a href="channels.reciva.html">reciva</a><br>
<a href="channels.record_stop.html">record_stop</a><br>
<a href="channels.recordflags.html">recordflags</a><br>
<a href="channels.reddit.html">reddit</a><br>
<a href="channels.scripts.html">scripts</a><br>
<a href="channels.search.html">search</a><br>
<a href="channels.shoutcast.html">shoutcast</a><br>
<a href="channels.somafm.html">somafm</a><br>
<a href="channels.specbuttons.html">specbuttons</a><br>
<a href="channels.streamedit.html">streamedit</a><br>
</td><td width="25%" valign=top><a href="channels.streamlicensing.html">streamlicensing</a><br>
<a href="channels.streema.html">streema</a><br>
<a href="channels.surfmusik.html">surfmusik</a><br>
<a href="channels.theme_installer.html">theme_installer</a><br>
<a href="channels.timer.html">timer</a><br>
<a href="channels.tunein.html">tunein</a><br>
<a href="channels.tuner2.html">tuner2</a><br>
<a href="channels.ubuntuusers.html">ubuntuusers</a><br>
<a href="channels.ui_cht.html">ui_cht</a><br>
<a href="channels.useragentswitcher.html">useragentswitcher</a><br>
<a href="channels.version_check.html">version_check</a><br>
<a href="channels.xiph.html">xiph</a><br>
<a href="channels.youtube.html">youtube</a><br>
</td></tr></table></td></tr></table><p>
<table width="100%" cellspacing=0 cellpadding=2 border=0 summary="section">
<tr bgcolor="#ee77aa">
<td colspan=3 valign=bottom>&nbsp;<br>
<font color="#ffffff" face="helvetica, arial"><big><strong>Classes</strong></big></font></td></tr>
    
<tr><td bgcolor="#ee77aa"><tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</tt></td><td>&nbsp;</td>
<td width="100%"><dl>
<dt><font face="helvetica, arial"><a href="__builtin__.html#object">__builtin__.object</a>
</font></dt><dd>
<dl>
<dt><font face="helvetica, arial"><a href="#FeaturePlugin">FeaturePlugin</a>
</font></dt><dd>
<dl>
<dt><font face="helvetica, arial"><a href="#GenericChannel">GenericChannel</a>
</font></dt><dd>
<dl>
<dt><font face="helvetica, arial"><a href="#ChannelPlugin">ChannelPlugin</a>
</font></dt></dl>
</dd>
</dl>
</dd>
</dl>
</dd>
</dl>
 <p>
<table width="100%" cellspacing=0 cellpadding=2 border=0 summary="section">
<tr bgcolor="#ffc8d8">
<td colspan=3 valign=bottom>&nbsp;<br>
<font color="#000000" face="helvetica, arial"><a name="ChannelPlugin">class <strong>ChannelPlugin</strong></a>(<a href="#GenericChannel">GenericChannel</a>)</font></td></tr>
    
<tr bgcolor="#ffc8d8"><td rowspan=2><tt>&nbsp;&nbsp;&nbsp;</tt></td>
<td colspan=2><tt>#&nbsp;channel&nbsp;plugin&nbsp;without&nbsp;glade-pre-defined&nbsp;notebook&nbsp;tab<br>&nbsp;</tt></td></tr>
<tr><td>&nbsp;</td>
<td width="100%"><dl><dt>Method resolution order:</dt>
<dd><a href="#ChannelPlugin">ChannelPlugin</a></dd>
<dd><a href="#GenericChannel">GenericChannel</a></dd>
<dd><a href="#FeaturePlugin">FeaturePlugin</a></dd>
<dd><a href="__builtin__.html#object">__builtin__.object</a></dd>
</dl>
<hr>
Methods defined here:<br>
<dl><dt><a name="ChannelPlugin-gui"><strong>gui</strong></a>(self, parent)</dt></dl>

<hr>
Data and other attributes defined here:<br>
<dl><dt><strong>module</strong> = 'abstract'</dl>

<hr>
Methods inherited from <a href="#GenericChannel">GenericChannel</a>:<br>
<dl><dt><a name="ChannelPlugin-__init__"><strong>__init__</strong></a>(self, parent<font color="#909090">=None</font>)</dt><dd><tt>#&nbsp;constructor</tt></dd></dl>

<dl><dt><a name="ChannelPlugin-cache"><strong>cache</strong></a>(self)</dt><dd><tt>#&nbsp;Read&nbsp;previous&nbsp;channel/stream&nbsp;data,&nbsp;if&nbsp;there's&nbsp;any</tt></dd></dl>

<dl><dt><a name="ChannelPlugin-columns"><strong>columns</strong></a>(self, entries<font color="#909090">=None</font>)</dt><dd><tt>#&nbsp;Just&nbsp;wraps&nbsp;uikit.<a href="#ChannelPlugin-columns">columns</a>()&nbsp;to&nbsp;retain&nbsp;liststore,&nbsp;rowmap&nbsp;and&nbsp;pix_entry</tt></dd></dl>

<dl><dt><a name="ChannelPlugin-currentcat"><strong>currentcat</strong></a>(self)</dt><dd><tt>#&nbsp;Selected&nbsp;category&nbsp;(current&nbsp;state&nbsp;from&nbsp;Gtk&nbsp;TreeModel)</tt></dd></dl>

<dl><dt><a name="ChannelPlugin-deleted_streams"><strong>deleted_streams</strong></a>(self, new, old)</dt><dd><tt>#&nbsp;Finds&nbsp;differences&nbsp;in&nbsp;new/old&nbsp;streamlist,&nbsp;marks&nbsp;deleted&nbsp;with&nbsp;flag</tt></dd></dl>

<dl><dt><a name="ChannelPlugin-display_categories"><strong>display_categories</strong></a>(self)</dt><dd><tt>#&nbsp;Refresh&nbsp;category&nbsp;treeview</tt></dd></dl>

<dl><dt><a name="ChannelPlugin-first_show"><strong>first_show</strong></a>(self)</dt><dd><tt>#&nbsp;Display&nbsp;.current&nbsp;category,&nbsp;once&nbsp;notebook/channel&nbsp;tab&nbsp;is&nbsp;first&nbsp;opened</tt></dd></dl>

<dl><dt><a name="ChannelPlugin-insert_rows"><strong>insert_rows</strong></a>(self, rows, y<font color="#909090">=None</font>)</dt><dd><tt>#&nbsp;Insert/append&nbsp;new&nbsp;station&nbsp;rows&nbsp;-&nbsp;used&nbsp;by&nbsp;importing/drag'n'drop&nbsp;plugins</tt></dd></dl>

<dl><dt><a name="ChannelPlugin-iter_cats"><strong>iter_cats</strong></a>(self, name, model, iter)</dt><dd><tt>#&nbsp;Iterate&nbsp;over&nbsp;children&nbsp;to&nbsp;find&nbsp;current&nbsp;category</tt></dd></dl>

<dl><dt><a name="ChannelPlugin-load"><strong>load</strong></a>(self, category, force<font color="#909090">=False</font>, y<font color="#909090">=None</font>)</dt><dd><tt>#&nbsp;Called&nbsp;on&nbsp;switching&nbsp;genre/category,&nbsp;or&nbsp;loading&nbsp;a&nbsp;genre&nbsp;for&nbsp;the&nbsp;first&nbsp;time.<br>
#&nbsp;Either&nbsp;fetches&nbsp;new&nbsp;stream&nbsp;data,&nbsp;or&nbsp;displays&nbsp;list&nbsp;from&nbsp;cache.</tt></dd></dl>

<dl><dt><a name="ChannelPlugin-model_iter"><strong>model_iter</strong></a>(self)</dt><dd><tt>#&nbsp;Return&nbsp;ListStore&nbsp;<a href="__builtin__.html#object">object</a>&nbsp;and&nbsp;Iterator&nbsp;for&nbsp;currently&nbsp;selected&nbsp;row&nbsp;in&nbsp;gtk.TreeView&nbsp;station&nbsp;list</tt></dd></dl>

<dl><dt><a name="ChannelPlugin-play"><strong>play</strong></a>(self)</dt><dd><tt>#&nbsp;Invoke&nbsp;action.<a href="#ChannelPlugin-play">play</a>()&nbsp;for&nbsp;current&nbsp;station.<br>
#&nbsp;Can&nbsp;be&nbsp;overridden&nbsp;to&nbsp;provide&nbsp;channel-specific&nbsp;"play"&nbsp;alternative</tt></dd></dl>

<dl><dt><a name="ChannelPlugin-postprocess"><strong>postprocess</strong></a>(self, streams)</dt><dd><tt>#&nbsp;Stream&nbsp;list&nbsp;cleanup&nbsp;-&nbsp;invoked&nbsp;directly&nbsp;after&nbsp;<a href="#ChannelPlugin-reload">reload</a>(),<br>
#&nbsp;callbacks&nbsp;can&nbsp;remove&nbsp;entries,&nbsp;or&nbsp;just&nbsp;update&nbsp;fields.</tt></dd></dl>

<dl><dt><a name="ChannelPlugin-postprocess_filter_homepage"><strong>postprocess_filter_homepage</strong></a>(self, row, channel)</dt><dd><tt>#&nbsp;Deduce&nbsp;homepage&nbsp;URLs&nbsp;from&nbsp;title<br>
#&nbsp;by&nbsp;looking&nbsp;for&nbsp;www.xyz.com&nbsp;domain&nbsp;names</tt></dd></dl>

<dl><dt><a name="ChannelPlugin-postprocess_filter_required_fields"><strong>postprocess_filter_required_fields</strong></a>(self, row, channel)</dt><dd><tt>#&nbsp;Filter&nbsp;entries&nbsp;without&nbsp;title&nbsp;or&nbsp;url</tt></dd></dl>

<dl><dt><a name="ChannelPlugin-prepare"><strong>prepare</strong></a>(self, streams)</dt><dd><tt>#&nbsp;Prepare&nbsp;stream&nbsp;list&nbsp;for&nbsp;display&nbsp;(called&nbsp;immediataly&nbsp;before&nbsp;.<a href="#ChannelPlugin-columns">columns</a>()&nbsp;refreshing)</tt></dd></dl>

<dl><dt><a name="ChannelPlugin-prepare_filter_icons"><strong>prepare_filter_icons</strong></a>(self, row)</dt><dd><tt>#&nbsp;state&nbsp;icon:&nbsp;bookmark&nbsp;star,&nbsp;or&nbsp;deleted&nbsp;mark</tt></dd></dl>

<dl><dt><a name="ChannelPlugin-progress"><strong>progress</strong></a>(self, max, i<font color="#909090">=None</font>)</dt><dd><tt>#&nbsp;sets&nbsp;updating&nbsp;progress&nbsp;bar&nbsp;for&nbsp;.update_streams&nbsp;or&nbsp;.reload_categores</tt></dd></dl>

<dl><dt><a name="ChannelPlugin-record"><strong>record</strong></a>(self)</dt><dd><tt>#&nbsp;Start&nbsp;streamripper/youtube-dl/etc</tt></dd></dl>

<dl><dt><a name="ChannelPlugin-reload"><strong>reload</strong></a>(self)</dt><dd><tt>#&nbsp;Reload&nbsp;current&nbsp;station&nbsp;list</tt></dd></dl>

<dl><dt><a name="ChannelPlugin-reload_categories"><strong>reload_categories</strong></a>(self)</dt><dd><tt>#&nbsp;Update&nbsp;categories,&nbsp;save,&nbsp;and&nbsp;display</tt></dd></dl>

<dl><dt><a name="ChannelPlugin-reload_if_current"><strong>reload_if_current</strong></a>(self, category)</dt><dd><tt>#&nbsp;Update&nbsp;streams&nbsp;pane&nbsp;if&nbsp;currently&nbsp;selected&nbsp;(used&nbsp;by&nbsp;bookmarks.links&nbsp;channel)</tt></dd></dl>

<dl><dt><a name="ChannelPlugin-row"><strong>row</strong></a>(self)</dt><dd><tt>#&nbsp;Currently&nbsp;selected&nbsp;entry&nbsp;in&nbsp;stations&nbsp;list,&nbsp;return&nbsp;complete&nbsp;data&nbsp;dict</tt></dd></dl>

<dl><dt><a name="ChannelPlugin-row_icon"><strong>row_icon</strong></a>(self, gtkIcon<font color="#909090">='gtk-about'</font>)</dt><dd><tt>#&nbsp;Inject&nbsp;status&nbsp;icon&nbsp;into&nbsp;currently&nbsp;selected&nbsp;row&nbsp;(used&nbsp;by&nbsp;main.bookmark()&nbsp;call)</tt></dd></dl>

<dl><dt><a name="ChannelPlugin-rowno"><strong>rowno</strong></a>(self)</dt><dd><tt>#&nbsp;Convert&nbsp;ListStore&nbsp;iter&nbsp;to&nbsp;row&nbsp;number</tt></dd></dl>

<dl><dt><a name="ChannelPlugin-save"><strong>save</strong></a>(self)</dt><dd><tt>#&nbsp;Store&nbsp;current&nbsp;streams&nbsp;data</tt></dd></dl>

<dl><dt><a name="ChannelPlugin-select_current"><strong>select_current</strong></a>(self, name)</dt><dd><tt>#&nbsp;Traverse&nbsp;category&nbsp;TreeModel&nbsp;to&nbsp;set&nbsp;current,&nbsp;expand&nbsp;parent&nbsp;nodes</tt></dd></dl>

<dl><dt><a name="ChannelPlugin-selected"><strong>selected</strong></a>(self, name<font color="#909090">='url'</font>)</dt><dd><tt>#&nbsp;Fetches&nbsp;a&nbsp;single&nbsp;varname&nbsp;from&nbsp;currently&nbsp;selected&nbsp;station&nbsp;entry</tt></dd></dl>

<dl><dt><a name="ChannelPlugin-stations"><strong>stations</strong></a>(self)</dt><dd><tt>#&nbsp;Get&nbsp;list&nbsp;of&nbsp;stations&nbsp;in&nbsp;current&nbsp;category</tt></dd></dl>

<dl><dt><a name="ChannelPlugin-str_from_struct"><strong>str_from_struct</strong></a>(self, d)</dt><dd><tt>#&nbsp;Retrieve&nbsp;first&nbsp;list&nbsp;value,&nbsp;or&nbsp;key&nbsp;from&nbsp;dict&nbsp;(--&nbsp;used&nbsp;to&nbsp;get&nbsp;first&nbsp;category&nbsp;on&nbsp;init)</tt></dd></dl>

<dl><dt><a name="ChannelPlugin-switch"><strong>switch</strong></a>(self)</dt></dl>

<dl><dt><a name="ChannelPlugin-update_datamap"><strong>update_datamap</strong></a>(self, search<font color="#909090">='name'</font>, title<font color="#909090">=None</font>)</dt><dd><tt>#&nbsp;Create&nbsp;private&nbsp;copy&nbsp;of&nbsp;.datamap&nbsp;and&nbsp;modify&nbsp;entries&nbsp;(title=&nbsp;rewrites)</tt></dd></dl>

<dl><dt><a name="ChannelPlugin-update_streams_partially_done"><strong>update_streams_partially_done</strong></a>(self, entries)</dt><dd><tt>#&nbsp;Called&nbsp;occasionally&nbsp;(by&nbsp;some&nbsp;plugins)&nbsp;while&nbsp;updating&nbsp;station&nbsp;list</tt></dd></dl>

<hr>
Data descriptors inherited from <a href="#GenericChannel">GenericChannel</a>:<br>
<dl><dt><strong>current</strong></dt>
</dl>
<hr>
Data and other attributes inherited from <a href="#GenericChannel">GenericChannel</a>:<br>
<dl><dt><strong>audioformat</strong> = 'audio/mpeg'</dl>

<dl><dt><strong>base_url</strong> = ''</dl>

<dl><dt><strong>categories</strong> = []</dl>

<dl><dt><strong>catmap</strong> = {}</dl>

<dl><dt><strong>datamap</strong> = [['', 20, ['state', &lt;type 'str'&gt;, 'pixbuf', {}]], ['Genre', 65, ['genre', &lt;type 'str'&gt;, 't', {}]], ['Station Title', 275, ['title', &lt;type 'str'&gt;, 'text', {'cell-background': 12, 'cell-background-set': 13, 'strikethrough': 11}], ['favicon', &lt;type 'gtk.gdk.Pixbuf'&gt;, 'pixbuf', {}]], ['Now Playing', 185, ['playing', &lt;type 'str'&gt;, 'text', {'strikethrough': 11}]], ['Listeners', 45, ['listeners', &lt;type 'int'&gt;, 't', {'strikethrough': 11}]], ['Bitrate', 35, ['bitrate', &lt;type 'int'&gt;, 't', {}]], ['Homepage', 160, ['homepage', &lt;type 'str'&gt;, 't', {'underline': 10}]], [False, 25, ['url', &lt;type 'str'&gt;, 't', {'strikethrough': 11}]], [False, 20, ['format', &lt;type 'str'&gt;, None, {}]], [False, 0, ['favourite', &lt;type 'bool'&gt;, None, {}]], [False, 0, ['deleted', &lt;type 'bool'&gt;, None, {}]], [False, 0, ['search_col', &lt;type 'str'&gt;, None, {}]], [False, 0, ['search_set', &lt;type 'bool'&gt;, None, {}]]]</dl>

<dl><dt><strong>empty_stub</strong> = [{'bitrate': 0, 'genre': './.', 'homepage': '', 'listeners': 0, 'playing': 'Try Channel<font color="#c040c0">\xe2\x86\x92</font>Reload Categories later..', 'state': 'gtk-dialog-error', 'title': 'No categories found (website error)', 'url': 'none:'}]</dl>

<dl><dt><strong>fixed_size</strong> = [24, 24]</dl>

<dl><dt><strong>gtk_cat</strong> = None</dl>

<dl><dt><strong>gtk_list</strong> = None</dl>

<dl><dt><strong>has_search</strong> = False</dl>

<dl><dt><strong>img_resize</strong> = None</dl>

<dl><dt><strong>listformat</strong> = 'pls'</dl>

<dl><dt><strong>ls</strong> = None</dl>

<dl><dt><strong>meta</strong> = {'config': []}</dl>

<dl><dt><strong>nothing_found</strong> = [{'bitrate': 0, 'genre': './.', 'listeners': 0, 'playing': 'Notice', 'state': 'gtk-no', 'title': 'No contents found on directory server'}]</dl>

<dl><dt><strong>pix_entry</strong> = None</dl>

<dl><dt><strong>placeholder</strong> = [{'bitrate': 0, 'genre': './.', 'homepage': '', 'listeners': 0, 'playing': './.', 'state': 'gtk-info', 'title': 'Subcategory placeholder', 'url': 'none:'}]</dl>

<dl><dt><strong>postprocess_filters</strong> = []</dl>

<dl><dt><strong>prepare_filters</strong> = []</dl>

<dl><dt><strong>progress_state</strong> = 1</dl>

<dl><dt><strong>rowmap</strong> = []</dl>

<dl><dt><strong>rx_www_url</strong> = &lt;_sre.SRE_Pattern object&gt;</dl>

<dl><dt><strong>shown</strong> = None</dl>

<dl><dt><strong>streams</strong> = {}</dl>

<dl><dt><strong>titles</strong> = {}</dl>

<hr>
Methods inherited from <a href="#FeaturePlugin">FeaturePlugin</a>:<br>
<dl><dt><a name="ChannelPlugin-init2"><strong>init2</strong></a>(self, parent, *k, **kw)</dt><dd><tt>#&nbsp;optionally&nbsp;to&nbsp;be&nbsp;overriden&nbsp;by&nbsp;plugins&nbsp;(run&nbsp;after&nbsp;base&nbsp;__init__)</tt></dd></dl>

<dl><dt><a name="ChannelPlugin-status"><strong>status</strong></a>(self, *args, **kw)</dt><dd><tt>#&nbsp;Statusbar&nbsp;stub&nbsp;(defers&nbsp;to&nbsp;parent/main&nbsp;window,&nbsp;if&nbsp;in&nbsp;GUI&nbsp;mode)</tt></dd></dl>

<dl><dt><a name="ChannelPlugin-warn"><strong>warn</strong></a>(self, text, *args, **kw)</dt><dd><tt>#&nbsp;Statusbar&nbsp;with&nbsp;highlighting&nbsp;and&nbsp;default&nbsp;icon</tt></dd></dl>

<hr>
Data descriptors inherited from <a href="#FeaturePlugin">FeaturePlugin</a>:<br>
<dl><dt><strong>__dict__</strong></dt>
<dd><tt>dictionary&nbsp;for&nbsp;instance&nbsp;variables&nbsp;(if&nbsp;defined)</tt></dd>
</dl>
<dl><dt><strong>__weakref__</strong></dt>
<dd><tt>list&nbsp;of&nbsp;weak&nbsp;references&nbsp;to&nbsp;the&nbsp;object&nbsp;(if&nbsp;defined)</tt></dd>
</dl>
<hr>
Data and other attributes inherited from <a href="#FeaturePlugin">FeaturePlugin</a>:<br>
<dl><dt><strong>parent</strong> = None</dl>

</td></tr></table> <p>
<table width="100%" cellspacing=0 cellpadding=2 border=0 summary="section">
<tr bgcolor="#ffc8d8">
<td colspan=3 valign=bottom>&nbsp;<br>
<font color="#000000" face="helvetica, arial"><a name="FeaturePlugin">class <strong>FeaturePlugin</strong></a>(<a
href="#object">__builtin__.object</a>)</font></td></tr>
    
<tr bgcolor="#ffc8d8"><td rowspan=2><tt>&nbsp;&nbsp;&nbsp;</tt></td>
<td colspan=2><tt>#&nbsp;Base&nbsp;class&nbsp;for&nbsp;plugins&nbsp;(features&nbsp;or&nbsp;channels)<br>&nbsp;</tt></td></tr>
<tr><td>&nbsp;</td>
<td width="100%">Methods defined here:<br>
<dl><dt><a name="FeaturePlugin-__init__"><strong>__init__</strong></a>(self, parent, *k, **kw)</dt><dd><tt>#&nbsp;minimum&nbsp;setup&nbsp;for&nbsp;ChannelPlugins&nbsp;and&nbsp;feature&nbsp;hooks</tt></dd></dl>

<dl><dt><a name="FeaturePlugin-init2"><strong>init2</strong></a>(self, parent, *k, **kw)</dt><dd><tt>#&nbsp;optionally&nbsp;to&nbsp;be&nbsp;overriden&nbsp;by&nbsp;plugins&nbsp;(run&nbsp;after&nbsp;base&nbsp;__init__)</tt></dd></dl>

<dl><dt><a name="FeaturePlugin-status"><strong>status</strong></a>(self, *args, **kw)</dt><dd><tt>#&nbsp;Statusbar&nbsp;stub&nbsp;(defers&nbsp;to&nbsp;parent/main&nbsp;window,&nbsp;if&nbsp;in&nbsp;GUI&nbsp;mode)</tt></dd></dl>

<dl><dt><a name="FeaturePlugin-warn"><strong>warn</strong></a>(self, text, *args, **kw)</dt><dd><tt>#&nbsp;Statusbar&nbsp;with&nbsp;highlighting&nbsp;and&nbsp;default&nbsp;icon</tt></dd></dl>

<hr>
Data descriptors defined here:<br>
<dl><dt><strong>__dict__</strong></dt>
<dd><tt>dictionary&nbsp;for&nbsp;instance&nbsp;variables&nbsp;(if&nbsp;defined)</tt></dd>
</dl>
<dl><dt><strong>__weakref__</strong></dt>
<dd><tt>list&nbsp;of&nbsp;weak&nbsp;references&nbsp;to&nbsp;the&nbsp;object&nbsp;(if&nbsp;defined)</tt></dd>
</dl>
<hr>
Data and other attributes defined here:<br>
<dl><dt><strong>meta</strong> = {'config': []}</dl>

<dl><dt><strong>module</strong> = ''</dl>

<dl><dt><strong>parent</strong> = None</dl>

</td></tr></table> <p>
<table width="100%" cellspacing=0 cellpadding=2 border=0 summary="section">
<tr bgcolor="#ffc8d8">
<td colspan=3 valign=bottom>&nbsp;<br>
<font color="#000000" face="helvetica, arial"><a name="GenericChannel">class <strong>GenericChannel</strong></a>(<a href="#FeaturePlugin">FeaturePlugin</a>)</font></td></tr>
    
<tr bgcolor="#ffc8d8"><td rowspan=2><tt>&nbsp;&nbsp;&nbsp;</tt></td>
<td colspan=2><tt>#&nbsp;Generic&nbsp;channel&nbsp;module<br>&nbsp;</tt></td></tr>
<tr><td>&nbsp;</td>
<td width="100%"><dl><dt>Method resolution order:</dt>
<dd><a href="#GenericChannel">GenericChannel</a></dd>
<dd><a href="#FeaturePlugin">FeaturePlugin</a></dd>
<dd><a href="__builtin__.html#object">__builtin__.object</a></dd>
</dl>
<hr>
Methods defined here:<br>
<dl><dt><a name="GenericChannel-__init__"><strong>__init__</strong></a>(self, parent<font color="#909090">=None</font>)</dt><dd><tt>#&nbsp;constructor</tt></dd></dl>

<dl><dt><a name="GenericChannel-cache"><strong>cache</strong></a>(self)</dt><dd><tt>#&nbsp;Read&nbsp;previous&nbsp;channel/stream&nbsp;data,&nbsp;if&nbsp;there's&nbsp;any</tt></dd></dl>

<dl><dt><a name="GenericChannel-columns"><strong>columns</strong></a>(self, entries<font color="#909090">=None</font>)</dt><dd><tt>#&nbsp;Just&nbsp;wraps&nbsp;uikit.<a href="#GenericChannel-columns">columns</a>()&nbsp;to&nbsp;retain&nbsp;liststore,&nbsp;rowmap&nbsp;and&nbsp;pix_entry</tt></dd></dl>

<dl><dt><a name="GenericChannel-currentcat"><strong>currentcat</strong></a>(self)</dt><dd><tt>#&nbsp;Selected&nbsp;category&nbsp;(current&nbsp;state&nbsp;from&nbsp;Gtk&nbsp;TreeModel)</tt></dd></dl>

<dl><dt><a name="GenericChannel-deleted_streams"><strong>deleted_streams</strong></a>(self, new, old)</dt><dd><tt>#&nbsp;Finds&nbsp;differences&nbsp;in&nbsp;new/old&nbsp;streamlist,&nbsp;marks&nbsp;deleted&nbsp;with&nbsp;flag</tt></dd></dl>

<dl><dt><a name="GenericChannel-display_categories"><strong>display_categories</strong></a>(self)</dt><dd><tt>#&nbsp;Refresh&nbsp;category&nbsp;treeview</tt></dd></dl>

<dl><dt><a name="GenericChannel-first_show"><strong>first_show</strong></a>(self)</dt><dd><tt>#&nbsp;Display&nbsp;.current&nbsp;category,&nbsp;once&nbsp;notebook/channel&nbsp;tab&nbsp;is&nbsp;first&nbsp;opened</tt></dd></dl>

<dl><dt><a name="GenericChannel-gui"><strong>gui</strong></a>(self, parent)</dt><dd><tt>#&nbsp;initialize&nbsp;Gtk&nbsp;widgets&nbsp;/&nbsp;data&nbsp;objects</tt></dd></dl>

<dl><dt><a name="GenericChannel-insert_rows"><strong>insert_rows</strong></a>(self, rows, y<font color="#909090">=None</font>)</dt><dd><tt>#&nbsp;Insert/append&nbsp;new&nbsp;station&nbsp;rows&nbsp;-&nbsp;used&nbsp;by&nbsp;importing/drag'n'drop&nbsp;plugins</tt></dd></dl>

<dl><dt><a name="GenericChannel-iter_cats"><strong>iter_cats</strong></a>(self, name, model, iter)</dt><dd><tt>#&nbsp;Iterate&nbsp;over&nbsp;children&nbsp;to&nbsp;find&nbsp;current&nbsp;category</tt></dd></dl>

<dl><dt><a name="GenericChannel-load"><strong>load</strong></a>(self, category, force<font color="#909090">=False</font>, y<font color="#909090">=None</font>)</dt><dd><tt>#&nbsp;Called&nbsp;on&nbsp;switching&nbsp;genre/category,&nbsp;or&nbsp;loading&nbsp;a&nbsp;genre&nbsp;for&nbsp;the&nbsp;first&nbsp;time.<br>
#&nbsp;Either&nbsp;fetches&nbsp;new&nbsp;stream&nbsp;data,&nbsp;or&nbsp;displays&nbsp;list&nbsp;from&nbsp;cache.</tt></dd></dl>

<dl><dt><a name="GenericChannel-model_iter"><strong>model_iter</strong></a>(self)</dt><dd><tt>#&nbsp;Return&nbsp;ListStore&nbsp;<a href="__builtin__.html#object">object</a>&nbsp;and&nbsp;Iterator&nbsp;for&nbsp;currently&nbsp;selected&nbsp;row&nbsp;in&nbsp;gtk.TreeView&nbsp;station&nbsp;list</tt></dd></dl>

<dl><dt><a name="GenericChannel-play"><strong>play</strong></a>(self)</dt><dd><tt>#&nbsp;Invoke&nbsp;action.<a href="#GenericChannel-play">play</a>()&nbsp;for&nbsp;current&nbsp;station.<br>
#&nbsp;Can&nbsp;be&nbsp;overridden&nbsp;to&nbsp;provide&nbsp;channel-specific&nbsp;"play"&nbsp;alternative</tt></dd></dl>

<dl><dt><a name="GenericChannel-postprocess"><strong>postprocess</strong></a>(self, streams)</dt><dd><tt>#&nbsp;Stream&nbsp;list&nbsp;cleanup&nbsp;-&nbsp;invoked&nbsp;directly&nbsp;after&nbsp;<a href="#GenericChannel-reload">reload</a>(),<br>
#&nbsp;callbacks&nbsp;can&nbsp;remove&nbsp;entries,&nbsp;or&nbsp;just&nbsp;update&nbsp;fields.</tt></dd></dl>

<dl><dt><a name="GenericChannel-postprocess_filter_homepage"><strong>postprocess_filter_homepage</strong></a>(self, row, channel)</dt><dd><tt>#&nbsp;Deduce&nbsp;homepage&nbsp;URLs&nbsp;from&nbsp;title<br>
#&nbsp;by&nbsp;looking&nbsp;for&nbsp;www.xyz.com&nbsp;domain&nbsp;names</tt></dd></dl>

<dl><dt><a name="GenericChannel-postprocess_filter_required_fields"><strong>postprocess_filter_required_fields</strong></a>(self, row, channel)</dt><dd><tt>#&nbsp;Filter&nbsp;entries&nbsp;without&nbsp;title&nbsp;or&nbsp;url</tt></dd></dl>

<dl><dt><a name="GenericChannel-prepare"><strong>prepare</strong></a>(self, streams)</dt><dd><tt>#&nbsp;Prepare&nbsp;stream&nbsp;list&nbsp;for&nbsp;display&nbsp;(called&nbsp;immediataly&nbsp;before&nbsp;.<a href="#GenericChannel-columns">columns</a>()&nbsp;refreshing)</tt></dd></dl>

<dl><dt><a name="GenericChannel-prepare_filter_icons"><strong>prepare_filter_icons</strong></a>(self, row)</dt><dd><tt>#&nbsp;state&nbsp;icon:&nbsp;bookmark&nbsp;star,&nbsp;or&nbsp;deleted&nbsp;mark</tt></dd></dl>

<dl><dt><a name="GenericChannel-progress"><strong>progress</strong></a>(self, max, i<font color="#909090">=None</font>)</dt><dd><tt>#&nbsp;sets&nbsp;updating&nbsp;progress&nbsp;bar&nbsp;for&nbsp;.update_streams&nbsp;or&nbsp;.reload_categores</tt></dd></dl>

<dl><dt><a name="GenericChannel-record"><strong>record</strong></a>(self)</dt><dd><tt>#&nbsp;Start&nbsp;streamripper/youtube-dl/etc</tt></dd></dl>

<dl><dt><a name="GenericChannel-reload"><strong>reload</strong></a>(self)</dt><dd><tt>#&nbsp;Reload&nbsp;current&nbsp;station&nbsp;list</tt></dd></dl>

<dl><dt><a name="GenericChannel-reload_categories"><strong>reload_categories</strong></a>(self)</dt><dd><tt>#&nbsp;Update&nbsp;categories,&nbsp;save,&nbsp;and&nbsp;display</tt></dd></dl>

<dl><dt><a name="GenericChannel-reload_if_current"><strong>reload_if_current</strong></a>(self, category)</dt><dd><tt>#&nbsp;Update&nbsp;streams&nbsp;pane&nbsp;if&nbsp;currently&nbsp;selected&nbsp;(used&nbsp;by&nbsp;bookmarks.links&nbsp;channel)</tt></dd></dl>

<dl><dt><a name="GenericChannel-row"><strong>row</strong></a>(self)</dt><dd><tt>#&nbsp;Currently&nbsp;selected&nbsp;entry&nbsp;in&nbsp;stations&nbsp;list,&nbsp;return&nbsp;complete&nbsp;data&nbsp;dict</tt></dd></dl>

<dl><dt><a name="GenericChannel-row_icon"><strong>row_icon</strong></a>(self, gtkIcon<font color="#909090">='gtk-about'</font>)</dt><dd><tt>#&nbsp;Inject&nbsp;status&nbsp;icon&nbsp;into&nbsp;currently&nbsp;selected&nbsp;row&nbsp;(used&nbsp;by&nbsp;main.bookmark()&nbsp;call)</tt></dd></dl>

<dl><dt><a name="GenericChannel-rowno"><strong>rowno</strong></a>(self)</dt><dd><tt>#&nbsp;Convert&nbsp;ListStore&nbsp;iter&nbsp;to&nbsp;row&nbsp;number</tt></dd></dl>

<dl><dt><a name="GenericChannel-save"><strong>save</strong></a>(self)</dt><dd><tt>#&nbsp;Store&nbsp;current&nbsp;streams&nbsp;data</tt></dd></dl>

<dl><dt><a name="GenericChannel-select_current"><strong>select_current</strong></a>(self, name)</dt><dd><tt>#&nbsp;Traverse&nbsp;category&nbsp;TreeModel&nbsp;to&nbsp;set&nbsp;current,&nbsp;expand&nbsp;parent&nbsp;nodes</tt></dd></dl>

<dl><dt><a name="GenericChannel-selected"><strong>selected</strong></a>(self, name<font color="#909090">='url'</font>)</dt><dd><tt>#&nbsp;Fetches&nbsp;a&nbsp;single&nbsp;varname&nbsp;from&nbsp;currently&nbsp;selected&nbsp;station&nbsp;entry</tt></dd></dl>

<dl><dt><a name="GenericChannel-stations"><strong>stations</strong></a>(self)</dt><dd><tt>#&nbsp;Get&nbsp;list&nbsp;of&nbsp;stations&nbsp;in&nbsp;current&nbsp;category</tt></dd></dl>

<dl><dt><a name="GenericChannel-str_from_struct"><strong>str_from_struct</strong></a>(self, d)</dt><dd><tt>#&nbsp;Retrieve&nbsp;first&nbsp;list&nbsp;value,&nbsp;or&nbsp;key&nbsp;from&nbsp;dict&nbsp;(--&nbsp;used&nbsp;to&nbsp;get&nbsp;first&nbsp;category&nbsp;on&nbsp;init)</tt></dd></dl>

<dl><dt><a name="GenericChannel-switch"><strong>switch</strong></a>(self)</dt></dl>

<dl><dt><a name="GenericChannel-update_datamap"><strong>update_datamap</strong></a>(self, search<font color="#909090">='name'</font>, title<font color="#909090">=None</font>)</dt><dd><tt>#&nbsp;Create&nbsp;private&nbsp;copy&nbsp;of&nbsp;.datamap&nbsp;and&nbsp;modify&nbsp;entries&nbsp;(title=&nbsp;rewrites)</tt></dd></dl>

<dl><dt><a name="GenericChannel-update_streams_partially_done"><strong>update_streams_partially_done</strong></a>(self, entries)</dt><dd><tt>#&nbsp;Called&nbsp;occasionally&nbsp;(by&nbsp;some&nbsp;plugins)&nbsp;while&nbsp;updating&nbsp;station&nbsp;list</tt></dd></dl>

<hr>
Data descriptors defined here:<br>
<dl><dt><strong>current</strong></dt>
</dl>
<hr>
Data and other attributes defined here:<br>
<dl><dt><strong>audioformat</strong> = 'audio/mpeg'</dl>

<dl><dt><strong>base_url</strong> = ''</dl>

<dl><dt><strong>categories</strong> = []</dl>

<dl><dt><strong>catmap</strong> = {}</dl>

<dl><dt><strong>datamap</strong> = [['', 20, ['state', &lt;type 'str'&gt;, 'pixbuf', {}]], ['Genre', 65, ['genre', &lt;type 'str'&gt;, 't', {}]], ['Station Title', 275, ['title', &lt;type 'str'&gt;, 'text', {'cell-background': 12, 'cell-background-set': 13, 'strikethrough': 11}], ['favicon', &lt;type 'gtk.gdk.Pixbuf'&gt;, 'pixbuf', {}]], ['Now Playing', 185, ['playing', &lt;type 'str'&gt;, 'text', {'strikethrough': 11}]], ['Listeners', 45, ['listeners', &lt;type 'int'&gt;, 't', {'strikethrough': 11}]], ['Bitrate', 35, ['bitrate', &lt;type 'int'&gt;, 't', {}]], ['Homepage', 160, ['homepage', &lt;type 'str'&gt;, 't', {'underline': 10}]], [False, 25, ['url', &lt;type 'str'&gt;, 't', {'strikethrough': 11}]], [False, 20, ['format', &lt;type 'str'&gt;, None, {}]], [False, 0, ['favourite', &lt;type 'bool'&gt;, None, {}]], [False, 0, ['deleted', &lt;type 'bool'&gt;, None, {}]], [False, 0, ['search_col', &lt;type 'str'&gt;, None, {}]], [False, 0, ['search_set', &lt;type 'bool'&gt;, None, {}]]]</dl>

<dl><dt><strong>empty_stub</strong> = [{'bitrate': 0, 'genre': './.', 'homepage': '', 'listeners': 0, 'playing': 'Try Channel<font color="#c040c0">\xe2\x86\x92</font>Reload Categories later..', 'state': 'gtk-dialog-error', 'title': 'No categories found (website error)', 'url': 'none:'}]</dl>

<dl><dt><strong>fixed_size</strong> = [24, 24]</dl>

<dl><dt><strong>gtk_cat</strong> = None</dl>

<dl><dt><strong>gtk_list</strong> = None</dl>

<dl><dt><strong>has_search</strong> = False</dl>

<dl><dt><strong>img_resize</strong> = None</dl>

<dl><dt><strong>listformat</strong> = 'pls'</dl>

<dl><dt><strong>ls</strong> = None</dl>

<dl><dt><strong>meta</strong> = {'config': []}</dl>

<dl><dt><strong>nothing_found</strong> = [{'bitrate': 0, 'genre': './.', 'listeners': 0, 'playing': 'Notice', 'state': 'gtk-no', 'title': 'No contents found on directory server'}]</dl>

<dl><dt><strong>pix_entry</strong> = None</dl>

<dl><dt><strong>placeholder</strong> = [{'bitrate': 0, 'genre': './.', 'homepage': '', 'listeners': 0, 'playing': './.', 'state': 'gtk-info', 'title': 'Subcategory placeholder', 'url': 'none:'}]</dl>

<dl><dt><strong>postprocess_filters</strong> = []</dl>

<dl><dt><strong>prepare_filters</strong> = []</dl>

<dl><dt><strong>progress_state</strong> = 1</dl>

<dl><dt><strong>rowmap</strong> = []</dl>

<dl><dt><strong>rx_www_url</strong> = &lt;_sre.SRE_Pattern object&gt;</dl>

<dl><dt><strong>shown</strong> = None</dl>

<dl><dt><strong>streams</strong> = {}</dl>

<dl><dt><strong>titles</strong> = {}</dl>

<hr>
Methods inherited from <a href="#FeaturePlugin">FeaturePlugin</a>:<br>
<dl><dt><a name="GenericChannel-init2"><strong>init2</strong></a>(self, parent, *k, **kw)</dt><dd><tt>#&nbsp;optionally&nbsp;to&nbsp;be&nbsp;overriden&nbsp;by&nbsp;plugins&nbsp;(run&nbsp;after&nbsp;base&nbsp;__init__)</tt></dd></dl>

<dl><dt><a name="GenericChannel-status"><strong>status</strong></a>(self, *args, **kw)</dt><dd><tt>#&nbsp;Statusbar&nbsp;stub&nbsp;(defers&nbsp;to&nbsp;parent/main&nbsp;window,&nbsp;if&nbsp;in&nbsp;GUI&nbsp;mode)</tt></dd></dl>

<dl><dt><a name="GenericChannel-warn"><strong>warn</strong></a>(self, text, *args, **kw)</dt><dd><tt>#&nbsp;Statusbar&nbsp;with&nbsp;highlighting&nbsp;and&nbsp;default&nbsp;icon</tt></dd></dl>

<hr>
Data descriptors inherited from <a href="#FeaturePlugin">FeaturePlugin</a>:<br>
<dl><dt><strong>__dict__</strong></dt>
<dd><tt>dictionary&nbsp;for&nbsp;instance&nbsp;variables&nbsp;(if&nbsp;defined)</tt></dd>
</dl>
<dl><dt><strong>__weakref__</strong></dt>
<dd><tt>list&nbsp;of&nbsp;weak&nbsp;references&nbsp;to&nbsp;the&nbsp;object&nbsp;(if&nbsp;defined)</tt></dd>
</dl>
<hr>
Data and other attributes inherited from <a href="#FeaturePlugin">FeaturePlugin</a>:<br>
<dl><dt><strong>module</strong> = ''</dl>

<dl><dt><strong>parent</strong> = None</dl>

</td></tr></table></td></tr></table><p>
<table width="100%" cellspacing=0 cellpadding=2 border=0 summary="section">
<tr bgcolor="#eeaa77">
<td colspan=3 valign=bottom>&nbsp;<br>
<font color="#ffffff" face="helvetica, arial"><big><strong>Functions</strong></big></font></td></tr>
    
<tr><td bgcolor="#eeaa77"><tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</tt></td><td>&nbsp;</td>
<td width="100%"><dl><dt><a name="-entity_decode"><strong>entity_decode</strong></a>(str)</dt><dd><tt>#&nbsp;remove&nbsp;SGML/XML&nbsp;entities</tt></dd></dl>
 <dl><dt><a name="-mime_fmt"><strong>mime_fmt</strong></a>(s)</dt><dd><tt>#&nbsp;Convert&nbsp;audio&nbsp;format&nbsp;nick/shortnames&nbsp;to&nbsp;mime&nbsp;types,&nbsp;e.g.&nbsp;"OGG"&nbsp;to&nbsp;"audio/ogg"<br>
#&nbsp;(only&nbsp;used&nbsp;by&nbsp;few&nbsp;plugin&nbsp;meanwhile,&nbsp;could&nbsp;be&nbsp;merged&nbsp;with&nbsp;action.&nbsp;module&nbsp;now)</tt></dd></dl>
 <dl><dt><a name="-nl"><strong>nl</strong></a>(str)</dt></dl>
 <dl><dt><a name="-strip_tags"><strong>strip_tags</strong></a>(s)</dt><dd><tt>#&nbsp;Strip&nbsp;html&nbsp;&lt;tags&gt;&nbsp;from&nbsp;string</tt></dd></dl>
 <dl><dt><a name="-stub_parent"><strong>stub_parent</strong></a>(object)</dt><dd><tt>#&nbsp;WORKAROUND&nbsp;for&nbsp;direct&nbsp;channel&nbsp;module&nbsp;imports,<br>
#&nbsp;eases&nbsp;instantiations&nbsp;without&nbsp;GUI&nbsp;a&nbsp;little,<br>
#&nbsp;reducing&nbsp;module&nbsp;dependencies&nbsp;(conf.&nbsp;/&nbsp;ahttp.&nbsp;/&nbsp;channels.&nbsp;/&nbsp;parent.)&nbsp;would&nbsp;be&nbsp;better</tt></dd></dl>
 <dl><dt><a name="-to_int"><strong>to_int</strong></a>(s)</dt><dd><tt>#&nbsp;Extracts&nbsp;integer&nbsp;from&nbsp;string</tt></dd></dl>
 <dl><dt><a name="-unhtml"><strong>unhtml</strong></a>(str)</dt><dd><tt>#&nbsp;Combine&nbsp;html&nbsp;tag,&nbsp;escapes&nbsp;and&nbsp;whitespace&nbsp;cleanup</tt></dd></dl>
 <dl><dt><a name="-use_rx"><strong>use_rx</strong></a>(func)</dt><dd><tt>#&nbsp;Decorator</tt></dd></dl>
</td></tr></table><p>
<table width="100%" cellspacing=0 cellpadding=2 border=0 summary="section">
<tr bgcolor="#55aa55">
<td colspan=3 valign=bottom>&nbsp;<br>
<font color="#ffffff" face="helvetica, arial"><big><strong>Data</strong></big></font></td></tr>
    
<tr><td bgcolor="#55aa55"><tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</tt></td><td>&nbsp;</td>
<td width="100%"><strong>__all__</strong> = ['FeaturePlugin', 'GenericChannel', 'ChannelPlugin', 'use_rx', 'mime_fmt', 'stub_parent', 'entity_decode', 'strip_tags', 'nl', 'unhtml', 'to_int']</td></tr></table>

Z 0a60e6461c34962183dd5eadae12ca79