
Kc           @   s-  d  Z  d d d d !d Z d Z d Z d d	 d
 d d d d g Z d Z d e Z d Z d g Z d Z	 d d g Z
 d Z d Z d d l Z d d l Z d d l Z d d l Z d d l Z d d l Z d d l Z d d l Z d d l Z d d l Z d d l Z y d d l m Z Wn d d l m Z n Xy d d l Z Wn e Z n Xy d d l Z Wn e Z n Xy6 d d l Z e j  j! e  d d l" m# Z$ d Z% Wn d Z% i  d  Z$ n Xy d d l& Z& d d l' Z' Wn e Z& Z' n Xy d d l( Z) Wn n Xy d d l* Z* Wn n Xy1 d d l+ Z+ e rWd d l, Z+ d e+ j- _ n  Wn e Z+ n Xy d d l. m/ Z/ m0 Z0 Wn d d l. Z. i  Z/ i  Z0 xh e. j1 j2   D]W \ Z3 Z4 e4 j5 d  re6 e7 e4 d d !  Z4 n  e8 e4  e/ e3 <e3 e0 e8 e4  <qWn Xy d d l9 Z9 Wn e Z9 n Xd e: f d     YZ; d  e; f d!     YZ< d" e; f d#     YZ= d$ e; f d%     YZ> d& e: f d'     YZ? e j@ d(  e _A e j@ d)  e _B e j@ d*  e _C e jD jE d+  jF d  rd, f  d-     YZG eG   e _D n  i d. d/ 6d0 d1 6d2 d3 6d4 d5 6d6 d7 6d8 d9 6d: d; 6d< d= 6d> d? 6d@ dA 6dB dC 6dD dE 6dF dG 6dH dI 6dJ dK 6dL dM 6dN dO 6ZH y
 eI ZJ Wn* eK k
 rd dP lJ mJ ZJ dQ   ZI n XdR eJ f dS     YaL dT   ZM e aN dU   ZO i e6 dV  e6 dW  6e6 dX  e6 dY  6e6 dZ  e6 d[  6e6 d\  e6 d]  6e6 d^  e6 d_  6e6 d`  e6 da  6e6 db  e6 dc  6e6 dd  e6 de  6e6 df  e6 dg  6e6 dh  e6 di  6e6 dj  e6 dk  6e6 dl  e6 dm  6e6 dn  e6 do  6e6 dp  e6 dq  6e6 dr  e6 ds  6e6 dt  e6 du  6e6 dv  e6 dw  6e6 dx  e6 dy  6e6 dz  e6 d{  6e6 d|  e6 d}  6e6 d~  e6 d  6e6 d  e6 d  6e6 d  e6 d  6e6 d  e6 d  6e6 d  e6 d  6e6 d  e6 d  6e6 d  e6 d  6ZP e j@ d  ZQ d   ZR d f  d     YZS e% rOd eS e j  jT jU f d     YZV n  d e jW f d     YZX d eS eX f d     YZY d f  d     YZZ d   Z[ d eX f d     YZ\ d   Z] d eX f d     YZ^ d   Z_ d e j` e ja e jb f d     YZc d   Zd g  Ze d   Zf d d d d d d d d d d d d d d d/ g Zg g  eg D]d Zh eh ji d d  ji d d  ji d d  ji d d  ji d d  ji d d  d d d d ^ qRZj [h g  ej D] Zk e j@ ek  jl ^ qZm [k d   Zn ef en  d Zo d Zp d Zq d Zr d Zs e j@ d eo ep eq f  Zt e j@ d er es f  Zu d   Zv ef ev  d   Zw ef ew  e j@ d  Zx d   Zy ef ey  i d d 6d d 6d d 6d d 6d d 6d d 6d d 6d d 6d d 6d d 6d d 6d d 6d d 6d d 6d d 6d d 6d d 6d d 6d d 6Zz i d d 6d d 6d d 6d d 6d d 6d d 6d d 6Z{ e j@ d  Z| d   Z} ef e}  i d d 6d d 6d d 6d d6dd6dd6dd6dd	6d
d6dd6dd6dd6Z~ e j@ d Z d  Z ef e  d  Z ef e  d  Z i dd6dd6dd6dd6dd6Z e j j e  ef e  d   Z ef e  d!  Z d"  Z d#  Z d$  Z e e e e g  d% Z d&f  d'    YZ d(e f d)    YZ d*e f d+    YZ e d,k r)y d d-l m Z Wn e Z n Xe rZe d.e d/d0 Z e j d1d2 e j d3d4d5d6d7d8d9d:e j d;d<d=d5d>d7d?d9d@e j dAdBd5dCd7dDd9dEe j dFdGd5dHd7dId9dJe j dKdLd5d1d7dMd9dNe j dOdPdQdRd5dSdTe d9dUe j   \ Z Z e j r6d Z n  e rWe j   e j d  n  nL e j d r}e  GHe j d  n  dVf  dW    YZ e   Z e j d Z eM   e   j e j j   d&e  Z xT e D]L Z e e dCe j dHe j d6e j d>e j Z e e  j e j  qWn  d S(X  sU  Universal feed parser

Handles RSS 0.9x, RSS 1.0, RSS 2.0, CDF, Atom 0.3, and Atom 1.0 feeds

Visit http://feedparser.org/ for the latest version
Visit http://feedparser.org/docs/ for the latest documentation

Required: Python 2.1 or later
Recommended: Python 2.3 or later
Recommended: CJKCodecs and iconv_codec <http://cjkpython.i18n.org/>
s   4.2-pre-s   $Revision: 308 $i   i   s   -svns  Copyright (c) 2002-2008, Mark Pilgrim, All rights reserved.

Redistribution and use in source and binary forms, with or without modification,
are permitted provided that the following conditions are met:

* Redistributions of source code must retain the above copyright notice,
  this list of conditions and the following disclaimer.
* Redistributions in binary form must reproduce the above copyright notice,
  this list of conditions and the following disclaimer in the documentation
  and/or other materials provided with the distribution.

THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS 'AS IS'
AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
POSSIBILITY OF SUCH DAMAGE.s'   Mark Pilgrim <http://diveintomark.org/>s%   Jason Diamond <http://injektilo.org/>s'   John Beimler <http://john.beimler.org/>s1   Fazal Majid <http://www.majid.info/mylos/weblog/>s"   Aaron Swartz <http://aaronsw.com/>s(   Kevin Marks <http://epeus.blogspot.com/>s#   Sam Ruby <http://intertwingly.net/>s(   Ade Oshineye <http://blog.oshineye.com/>i    s.   UniversalFeedParser/%s +http://feedparser.org/s   application/atom+xml,application/rdf+xml,application/rss+xml,application/x-netcdf,application/xml;q=0.9,text/xml;q=0.2,*/*;q=0.1t   drv_libxml2t   uTidyt   mxTidyi   iN(   t   StringIO(   t   escapec         C   sc   |  j  d d  }  |  j  d d  }  |  j  d d  }  x& | D] \ } } |  j  | |  }  q= W|  S(   Nt   &s   &amp;t   >s   &gt;t   <s   &lt;(   t   replace(   t   datat   entitiest   chart   entity(    (    sI   /home/sa3ruby/intertwingly.net/code/venus-bzr/planet/vendor/feedparser.pyt
   _xmlescapel   s    (   t   name2codepointt   codepoint2names   &#i   t   ThingsNobodyCaresAboutButMec           B   s   e  Z RS(    (   t   __name__t
   __module__(    (    (    sI   /home/sa3ruby/intertwingly.net/code/venus-bzr/planet/vendor/feedparser.pyR      s    t   CharacterEncodingOverridec           B   s   e  Z RS(    (   R   R   (    (    (    sI   /home/sa3ruby/intertwingly.net/code/venus-bzr/planet/vendor/feedparser.pyR      s    t   CharacterEncodingUnknownc           B   s   e  Z RS(    (   R   R   (    (    (    sI   /home/sa3ruby/intertwingly.net/code/venus-bzr/planet/vendor/feedparser.pyR      s    t   NonXMLContentTypec           B   s   e  Z RS(    (   R   R   (    (    (    sI   /home/sa3ruby/intertwingly.net/code/venus-bzr/planet/vendor/feedparser.pyR      s    t   UndeclaredNamespacec           B   s   e  Z RS(    (   R   R   (    (    (    sI   /home/sa3ruby/intertwingly.net/code/venus-bzr/planet/vendor/feedparser.pyR      s    s   [a-zA-Z][-_.:a-zA-Z0-9]*s   <!s   &#(\d+|x[0-9a-fA-F]+);s    <t   EndBracketMatchc           B   s,   e  Z e j d   Z d d  Z d   Z RS(   sL   ([^'"<>]|"[^"]*"(?=>|/|\s|\w+=)|'[^']*'(?=>|/|\s|\w+=))*(?=[<>])|.*?(?=[<>])i    c         C   s)   |  j  j | |  |  _ |  j r% |  Sd  S(   N(   t
   endbrackett   match(   t   selft   stringt   index(    (    sI   /home/sa3ruby/intertwingly.net/code/venus-bzr/planet/vendor/feedparser.pyt   search   s    	 c         C   s   |  j  j |  S(   N(   R   t   end(   R   t   n(    (    sI   /home/sa3ruby/intertwingly.net/code/venus-bzr/planet/vendor/feedparser.pyt   start   s    (   R   R   t   ret   compileR   R   R    (    (    (    sI   /home/sa3ruby/intertwingly.net/code/venus-bzr/planet/vendor/feedparser.pyR      s   t   unknownt    s   RSS 0.90t   rss090s   RSS 0.91 (Netscape)t   rss091ns   RSS 0.91 (Userland)t   rss091us   RSS 0.92t   rss092s   RSS 0.93t   rss093s   RSS 0.94t   rss094s   RSS 2.0t   rss20s   RSS 1.0t   rss10s   RSS (unknown version)t   rsss   Atom 0.1t   atom01s   Atom 0.2t   atom02s   Atom 0.3t   atom03s   Atom 1.0t   atom10s   Atom (unknown version)t   atomt   CDFt   cdfs   Hot RSSt   hotrss(   t   UserDictc         C   s+   i  } x |  D] \ } } | | | <q W| S(   N(    (   t   aListt   rct   kt   v(    (    sI   /home/sa3ruby/intertwingly.net/code/venus-bzr/planet/vendor/feedparser.pyt   dict   s    t   FeedParserDictc           B   s   e  Z i d  d 6d d 6d d 6d d 6d d	 6d
 d g d 6d g d 6d d 6d d 6d d 6d d 6d d 6d d 6d
 d 6d d 6Z d   Z d   Z d$ d  Z d   Z d    Z d!   Z	 d"   Z
 d#   Z RS(%   t   feedt   channelt   entriest   itemst   idt   guidt   updatedt   datet   updated_parsedt   date_parsedt   subtitlet   summaryt   descriptiont   hreft   urlt   modifiedt   modified_parsedt	   publishedt   issuedt   published_parsedt   issued_parsedt   rightst	   copyrightt   rights_detailt   copyright_detailt   taglinet   subtitle_detailt   tagline_detailc         C   s  | d k r$ t  j |  d  d d S| d k rr d   } g  t  j |  d  D]" } | d d	 k rL | |  ^ qL S| d
 k r xD t  j |  d  D]- } | d d
 k r | j d  r | d Sq Wn  | d k rg  t  j |  d  D] } | d | d f ^ q S|  j j | |  } t |  t j k rbx3 | D]( } t  j |  |  r3t  j |  |  Sq3Wn  t  j |  |  rt  j |  |  St  j |  |  S(   Nt   categoryt   tagsi    t   termt
   enclosuresc         S   s;   t  g  |  j   D]$ \ } } | d k r | | f ^ q  S(   Nt   rel(   R<   R@   (   t   linkt   namet   value(    (    sI   /home/sa3ruby/intertwingly.net/code/venus-bzr/planet/vendor/feedparser.pyt   <lambda>   s    t   linksR]   t	   enclosuret   licenseRJ   t
   categoriest   scheme(   R6   t   __getitem__t   has_keyt   keymapt   gett   typet   typest   ListType(   R   t   keyt   norelR^   t   tagt   realkeyR9   (    (    sI   /home/sa3ruby/intertwingly.net/code/venus-bzr/planet/vendor/feedparser.pyRg      s&    	91c         C   sk   xU |  j  j   D]D } | | k r |  j  | } t |  t j k rT | d } qT q q Wt j |  | |  S(   Ni    (   Ri   t   keysRk   Rl   Rm   R6   t   __setitem__(   R   Rn   R`   R9   (    (    sI   /home/sa3ruby/intertwingly.net/code/venus-bzr/planet/vendor/feedparser.pyRs      s    c         C   s   |  j  |  r |  | S| Sd  S(   N(   Rh   (   R   Rn   t   default(    (    sI   /home/sa3ruby/intertwingly.net/code/venus-bzr/planet/vendor/feedparser.pyRj     s    c         C   s$   |  j  |  s | |  | <n  |  | S(   N(   Rh   (   R   Rn   R`   (    (    sI   /home/sa3ruby/intertwingly.net/code/venus-bzr/planet/vendor/feedparser.pyt
   setdefault  s    c         C   s<   y# t  |  |  p! t j |  |  SWn t k
 r7 t SXd  S(   N(   t   hasattrR6   Rh   t   AttributeErrort   False(   R   Rn   (    (    sI   /home/sa3ruby/intertwingly.net/code/venus-bzr/planet/vendor/feedparser.pyRh     s    #c         C   se   y |  j  | SWn t k
 r" n Xy' | j d  s< t  |  j |  SWn t d |  n Xd  S(   Nt   _s   object has no attribute '%s'(   t   __dict__t   KeyErrort
   startswitht   AssertionErrorRg   Rw   (   R   Rn   (    (    sI   /home/sa3ruby/intertwingly.net/code/venus-bzr/planet/vendor/feedparser.pyt   __getattr__  s    c         C   s?   | j  d  s | d k r+ | |  j | <n |  j | |  Sd  S(   NRy   R	   (   R|   Rz   Rs   (   R   Rn   R`   (    (    sI   /home/sa3ruby/intertwingly.net/code/venus-bzr/planet/vendor/feedparser.pyt   __setattr__!  s    c         C   s   |  j  |  S(   N(   Rh   (   R   Rn   (    (    sI   /home/sa3ruby/intertwingly.net/code/venus-bzr/planet/vendor/feedparser.pyt   __contains__'  s    N(   R   R   Ri   Rg   Rs   t   NoneRj   Ru   Rh   R~   R   R   (    (    (    sI   /home/sa3ruby/intertwingly.net/code/venus-bzr/planet/vendor/feedparser.pyR<      s.   


						c           C   s   b  d  d  a  d  S(   Nc         S   s    i  } |  r | j  |   n  | S(   N(   t   update(   t   aDictR8   (    (    sI   /home/sa3ruby/intertwingly.net/code/venus-bzr/planet/vendor/feedparser.pyR<   -  s    (   R<   R   (    (    (    sI   /home/sa3ruby/intertwingly.net/code/venus-bzr/planet/vendor/feedparser.pyt   zopeCompatibilityHack*  s    c         C   sd   t  sW d} dd  l } | j dj t t t d   dj t t |    a  n  |  j t   S(  Ni    i   i   i   i   i	   i   i   i   i   i   i   i   i   i   i   i   i   i   i   i   i   i   i   i   i   i   i   i   i   i   i   i   i   i   i   i   i
   i   i   i   i   i   i   i   i   i   i   i   i   i   i   i   i   i   i   i   i   i   i   i   i   i   i   i    i   i   i   i   i   i   i   i   i   i[   i.   i<   i(   i+   i!   i&   i   i   i   i   i   i   i   i   i   i]   i$   i*   i)   i;   i^   i-   i/   i   i   i   i   i   i   i   i   i|   i,   i%   i_   i>   i?   i   i   i   i   i   i   i   i   i   i`   i:   i#   i@   i'   i=   i"   i   ia   ib   ic   id   ie   if   ig   ih   ii   i   i   i   i   i   i   i   ij   ik   il   im   in   io   ip   iq   ir   i   i   i   i   i   i   i   i~   is   it   iu   iv   iw   ix   iy   iz   i   i   i   i   i   i   i   i   i   i   i   i   i   i   i   i   i   i   i   i   i   i   i{   iA   iB   iC   iD   iE   iF   iG   iH   iI   i   i   i   i   i   i   i}   iJ   iK   iL   iM   iN   iO   iP   iQ   iR   i   i   i   i   i   i   i\   i   iS   iT   iU   iV   iW   iX   iY   iZ   i   i   i   i   i   i   i0   i1   i2   i3   i4   i5   i6   i7   i8   i9   i   i   i   i   i   i   iR$   i   (   i    i   i   i   i   i	   i   i   i   i   i   i   i   i   i   i   i   i   i   i   i   i   i   i   i   i   i   i   i   i   i   i   i   i   i   i   i   i
   i   i   i   i   i   i   i   i   i   i   i   i   i   i   i   i   i   i   i   i   i   i   i   i   i   i   i    i   i   i   i   i   i   i   i   i   i[   i.   i<   i(   i+   i!   i&   i   i   i   i   i   i   i   i   i   i]   i$   i*   i)   i;   i^   i-   i/   i   i   i   i   i   i   i   i   i|   i,   i%   i_   i>   i?   i   i   i   i   i   i   i   i   i   i`   i:   i#   i@   i'   i=   i"   i   ia   ib   ic   id   ie   if   ig   ih   ii   i   i   i   i   i   i   i   ij   ik   il   im   in   io   ip   iq   ir   i   i   i   i   i   i   i   i~   is   it   iu   iv   iw   ix   iy   iz   i   i   i   i   i   i   i   i   i   i   i   i   i   i   i   i   i   i   i   i   i   i   i{   iA   iB   iC   iD   iE   iF   iG   iH   iI   i   i   i   i   i   i   i}   iJ   iK   iL   iM   iN   iO   iP   iQ   iR   i   i   i   i   i   i   i\   i   iS   iT   iU   iV   iW   iX   iY   iZ   i   i   i   i   i   i   i0   i1   i2   i3   i4   i5   i6   i7   i8   i9   i   i   i   i   i   i   (   t   _ebcdic_to_ascii_mapR   t	   maketranst   joint   mapt   chrt   ranget	   translate(   t   st   emapR   (    (    sI   /home/sa3ruby/intertwingly.net/code/venus-bzr/planet/vendor/feedparser.pyt   _ebcdic_to_ascii4  s*                   9i   i   i   i   i  i   i   i   i&   i   i    i   i!   i   i  i   i0   i   i`  i   i9   i   iR  i   i}  i   i   i   i   i   i   i   i   i   i"   i   i   i   i   i   i  i   i"!  i   ia  i   i:   i   iS  i   i~  i   ix  i   s&   ^([A-Za-z][A-Za-z0-9+-.]*://)(/*)(.*?)c         C   su   t  j d |  } y t j |  |  SWnH t j g  t j |  D] } t j |  ^ qB  } t j |  |  SXd  S(   Ns   \1\3(   t	   _urifixert   subt   urlparset   urljoint
   urlunparset   urllibt   quote(   t   baset   urit   part(    (    sI   /home/sa3ruby/intertwingly.net/code/venus-bzr/planet/vendor/feedparser.pyt   _urljoinl  s    4t   _FeedParserMixinc        
   B   s=  e  Z i= d  d  6d  d 6d  d 6d  d 6d  d 6d  d 6d  d 6d  d 6d  d 6d  d	 6d  d
 6d  d 6d  d 6d d 6d d 6d d 6d d 6d d 6d d 6d d 6d d 6d d 6d d  6d! d" 6d# d$ 6d% d& 6d' d( 6d) d* 6d+ d, 6d- d. 6d/ d0 6d1 d2 6d3 d4 6d5 d6 6d5 d7 6d8 d9 6d: d; 6d: d< 6d= d> 6d? d@ 6dA dB 6dC dD 6dE dF 6dG dH 6dI dJ 6dK dL 6dM dN 6dO dP 6dQ dR 6dS dT 6dU dV 6dW dX 6dY dZ 6d[ d\ 6d] d^ 6d_ d` 6da db 6dc dd 6de df 6dg dh 6di dj 6Z i  Z dk dl dm dn do dp dq dr ds dt g
 Z d du dv dw dx dy dz d{ d| g	 Z d du dv dw dx dy dz d{ d| g	 Z d} d~ g Z d d d d  Z	 d   Z
 d   Z d   Z d   Z d d  Z d   Z d   Z d   Z d   Z d   Z d   Z d   Z d   Z d   Z d   Z d d  Z d   Z d   Z d   Z d   Z d   Z d   Z d   Z  d   Z! d   Z" d   Z# d   Z$ e$ Z% d   Z& d   Z' d   Z( e( Z) d   Z* d   Z+ d   Z, e, Z- d   Z. e. Z/ d   Z0 e0 Z1 e0 Z2 e0 Z3 e0 Z4 d   Z5 e5 Z6 e5 Z7 e5 Z8 e5 Z9 d   Z: d   Z; d   Z< d   Z= d   Z> d   Z? d   Z@ e@ ZA d   ZB eB ZC d   ZD d   ZE d   ZF d   ZG d   ZH eH ZI eH ZJ d   ZK eK ZL eK ZM d   ZN eN ZO d   ZP eP ZQ d   ZR d d  ZS d   ZT d d  ZU d   ZV eV ZW eV ZX d   ZY eY ZZ eY Z[ d   Z\ e\ Z] e\ Z^ d   Z_ e_ Z` e_ Za d   Zb eb Zc eb Zd d   Ze ee Zf d   Zg eg Zh d   Zi ei Zj d   Zk ek Zl d   Zm em Zn d   Zo eo Zp eo Zq d   Zr er Zs er Zt d   Zu eu Zv eu Zw eu Zx eu Zy d   Zz ez Z{ ez Z| ez Z} ez Z~ d   Z e Z d   Z e Z d   Z d   Z d   Z d   Z e Z d   Z e Z d   Z d   Z d   Z e Z e Z d   Z d   Z d   Z e Z e Z e Z d   Z d   Z e Z d   Z e Z d   Z d   Z d   Z e Z e Z d   Z e Z d   Z d   Z e Z d   Z d   Z e Z e Z d   Z e Z d   Z e Z d   Z d   Z d   Z d   Z d   Z e Z d   Z e Z d   Z d   Z d   Z d   Z d   Z d   Z e Z d   Z e Z d   Z e Z e Z e Z e Z e Z d   Z e Z d   Z d   Z d   Z d   Z d   Z d   Z d   Z RS(   R$   s   http://backend.userland.com/rsss%   http://blogs.law.harvard.edu/tech/rsss   http://purl.org/rss/1.0/s&   http://my.netscape.com/rdf/simple/0.9/s   http://example.com/newformat#s   http://example.com/nechos   http://purl.org/echo/s   uri/of/echo/namespace#s   http://purl.org/pie/s   http://purl.org/atom/ns#s   http://www.w3.org/2005/Atoms'   http://purl.org/rss/1.0/modules/rss091#t   admins   http://webns.net/mvcb/t   ags,   http://purl.org/rss/1.0/modules/aggregation/t   annotates)   http://purl.org/rss/1.0/modules/annotate/t   audios!   http://media.tangent.org/rss/1.0/t   blogChannels-   http://backend.userland.com/blogChannelModulet   ccs   http://web.resource.org/cc/t   creativeCommonss4   http://backend.userland.com/creativeCommonsRssModulet   cos'   http://purl.org/rss/1.0/modules/companyt   contents(   http://purl.org/rss/1.0/modules/content/t   cps&   http://my.theinfo.org/changed/1.0/rss/t   dcs    http://purl.org/dc/elements/1.1/t   dctermss   http://purl.org/dc/terms/t   emails&   http://purl.org/rss/1.0/modules/email/t   evs&   http://purl.org/rss/1.0/modules/event/t
   feedburners*   http://rssnamespace.org/feedburner/ext/1.0t   fms   http://freshmeat.net/rss/fm/t   foafs   http://xmlns.com/foaf/0.1/t   geos(   http://www.w3.org/2003/01/geo/wgs84_pos#t   icbms   http://postneo.com/icbm/t   images&   http://purl.org/rss/1.0/modules/image/t   ituness*   http://www.itunes.com/DTDs/PodCast-1.0.dtds'   http://example.com/DTDs/PodCast-1.0.dtdt   ls%   http://purl.org/rss/1.0/modules/link/t   medias   http://search.yahoo.com/mrsss   http://search.yahoo.com/mrss/t   pingbacks4   http://madskills.com/public/xml/rss/module/pingback/t   prisms.   http://prismstandard.org/namespaces/1.2/basic/t   rdfs+   http://www.w3.org/1999/02/22-rdf-syntax-ns#t   rdfss%   http://www.w3.org/2000/01/rdf-schema#t   refs*   http://purl.org/rss/1.0/modules/reference/t   reqvs*   http://purl.org/rss/1.0/modules/richequiv/R   s'   http://purl.org/rss/1.0/modules/search/t   slashs&   http://purl.org/rss/1.0/modules/slash/t   soaps)   http://schemas.xmlsoap.org/soap/envelope/t   sss.   http://purl.org/rss/1.0/modules/servicestatus/t   strs-   http://hacks.benhammersley.com/rss/streaming/R   s-   http://purl.org/rss/1.0/modules/subscription/t   sys,   http://purl.org/rss/1.0/modules/syndication/t   szfs/   http://schemas.pocketsoap.com/rss/myDescModule/t   taxos)   http://purl.org/rss/1.0/modules/taxonomy/t   thrs*   http://purl.org/rss/1.0/modules/threading/t   tis*   http://purl.org/rss/1.0/modules/textinput/t	   trackbacks5   http://madskills.com/public/xml/rss/module/trackback/t   wfws$   http://wellformedweb.org/commentAPI/t   wikis%   http://purl.org/rss/1.0/modules/wiki/t   xhtmls   http://www.w3.org/1999/xhtmlt   xlinks   http://www.w3.org/1999/xlinkt   xmls$   http://www.w3.org/XML/1998/namespaceR^   RA   t   wfw_commentt   wfw_commentrsst   docsRK   RJ   t   commentst   icont   logot   titleRH   t   infoRV   RG   RS   RR   RI   s	   text/htmls   application/xhtml+xmls   utf-8c         C   st  t  r t j j d  n  |  j sX x3 |  j j   D] \ } } | |  j | j   <q2 Wn  t   |  _	 | |  _
 g  |  _ d |  _ i  |  _ d |  _ d |  _ d |  _ d |  _ d |  _ d |  _ d |  _ d |  _ d |  _ t   |  _ t   |  _ d  |  _ i  |  _ g  |  _ g  |  _ g  |  _ | p'd |  _ | p6d  |  _  d |  _! d |  _" | rp| j# d d  |  j	 d <n  d  S(   Ns   initializing FeedParser
R$   i    Ry   t   -t   language($   t   _debugt   syst   stderrt   writet   _matchnamespacest
   namespacesR@   t   lowerR<   t   feeddatat   encodingR?   t   versiont   namespacesInUset   infeedt   inentryt	   incontentt   intextinputt   inimaget   inauthort   incontributort   inpublishert   insourcet
   sourcedatat   contentparamsR   t   _summaryKeyt   namespacemapt   elementstackt	   basestackt	   langstackt   baseurit   langt   svgOKt   hasTitleR   (   R   R   t   baselangR   R9   R:   (    (    sI   /home/sa3ruby/intertwingly.net/code/venus-bzr/planet/vendor/feedparser.pyt   __init__  s@     																					c         C   s  t  r# t j j d | | f  n  g  | D] \ } } | j   | f ^ q* } g  | D]0 \ } } | | d+ k r| | j   p | f ^ qU } t |  } | j d | j d   p |  j } t |  t d  k ry t	 | |  j
  } Wqt	 | d  } qXn  t |  j |  |  _ | j d | j d	   } | d
 k rJd  } n | d  k rb|  j } n  | r| d, k r| j d d  |  j d <qn  | |  _ |  j j |  j  |  j j |  xY | D]Q \ } }	 | j d  r|  j | d |	  q| d k r|  j d  |	  qqW|  j ru|  j j d  ru|  j j d d  j d  ru| d- k red  Sd |  j d <n  |  j r{|  j j d  d k r{| j d  d k r7| j d d  \ } } |  j j | d
  }
 | d k r|
 d k r| j d |
 f  n  | d k r7|
 d k r7| j d |
 f  q7n  | d k rU|  j d 7_ n  |  j d | |  j |  f d  d! S| j d  d k r| j d d  \ } } n d
 | } } |  j j | |  } | r| d } n  | r| d. k rd! |  _  n  | r| d/ k rd! |  _! n  d* | | } y t" |  |  } | |  SWnS t# k
 r| | } t$ |  d! k r|  j% | d  S|  j&   } | | | <n Xd  S(0   Ns   start %s with %s
R]   Rk   s   xml:baseR   u    s
   iso-8859-1s   xml:langR   R$   R=   R-   s   rdf:RDFRy   R   R   s   xmlns:i   t   xmlnsR   s	   xhtml:divt   divs   application/xhtml+xmlt   :ii   t   maths"   http://www.w3.org/1998/Math/MathMLt   svgs   http://www.w3.org/2000/svgs   <%s%s>R   i    R   R^   RI   R_   RK   RJ   t   widtht   heightt   _start_(   s   rels   type(   s   feeds   rsss   rdf:RDF(   s	   xhtml:divs   div(   s   titles   links   descriptions   name(   s   titles   links   descriptions   urls   hrefs   widthR   ('   R   R   R   R   R   R;   Rj   R   Rk   t   unicodeR   R   R   R   R   R   R   t   appendR   R|   t   trackNamespaceR   R   Rh   t   endswitht   findt   splitR   R   t   handle_datat   strattrsR   R   R   t   getattrRw   t   lent   pusht   _getContext(   R   Rp   t   attrsR9   R:   t   attrsDR   R   t   prefixR   t	   namespacet   suffixt
   methodnamet   methodt   unknown_tagt   context(    (    sI   /home/sa3ruby/intertwingly.net/code/venus-bzr/planet/vendor/feedparser.pyt   unknown_starttag  s~     +=$		: ! &
c         C   s.  t  r t j j d |  n  | j d  d k rM | j d d  \ } } n d | } } |  j j | |  } | r | d } n  | d k r |  j r |  j d 8_ n  d | | } y/ |  j r t	    n  t
 |  |  } |   Wn" t	 k
 r
|  j | |  n X|  j re|  j j d	  re|  j j d	 d
  j d
  re| d k rUd  Sd |  j d	 <n  |  j r|  j j d	  d k r| j d  d } |  j d | d d n  |  j r|  j j   |  j r|  j d r|  j d |  _ qn  |  j r*|  j j   |  j r*|  j d |  _ q*n  d  S(   Ns   end %s
R   ii   R$   Ry   R   t   _end_Rk   R   s	   xhtml:divR   s   application/xhtml+xmls   </%s>R   i    (   s	   xhtml:divs   div(   R   R   R   R   R   R   R   Rj   R   Rw   R  t   popR   R   Rh   R   R   R   R   R   R   (   R   Rp   R  R
  R  R  (    (    sI   /home/sa3ruby/intertwingly.net/code/venus-bzr/planet/vendor/feedparser.pyt   unknown_endtag3  sB      	 : !			c         C   s   |  j  s d  S| j   } | d k r2 d | } nG | d d k rX t | d d  } n t |  } t |  j d  } |  j  d d j |  d  S(   Nt   34t   38t   39t   60t   62t   x22t   x26t   x27t   x3ct   x3es   &#%s;i    t   xi   i   s   utf-8ii   (
   R  R  R  R  R  R  R  R  R  R  (   R   R   t   intt   unichrt   encodeR   (   R   R   t   textt   c(    (    sI   /home/sa3ruby/intertwingly.net/code/venus-bzr/planet/vendor/feedparser.pyt   handle_charref[  s    	 c         C   s   |  j  s d  St r* t j j d |  n  | d k rC d | } n | |  j j   k r |  j | } | j d  r | j d	  r |  j	 |  SnC y t
 | Wn t k
 r d | } n Xt t
 |  j d
  } |  j  d d j |  d  S(   Ns"   entering handle_entityref with %s
t   ltt   gtt   quott   ampt   aposs   &%s;s   &#t   ;s   utf-8ii   (   s   lts   gtR&  R'  R(  (   R   R   R   R   R   R
   Rr   R|   R   t   handle_entityrefR   R{   R  R   R   (   R   R   R!  (    (    sI   /home/sa3ruby/intertwingly.net/code/venus-bzr/planet/vendor/feedparser.pyR*  i  s     	    i   c         C   sV   |  j  s d  S| r: |  j j d  d k r: t |  } n  |  j  d d j |  d  S(   NRk   s   application/xhtml+xmlii   (   R   R   Rj   R   R   (   R   R!  R   (    (    sI   /home/sa3ruby/intertwingly.net/code/venus-bzr/planet/vendor/feedparser.pyR   y  s
    	 c         C   s   d  S(   N(    (   R   R!  (    (    sI   /home/sa3ruby/intertwingly.net/code/venus-bzr/planet/vendor/feedparser.pyt   handle_comment  s    c         C   s   d  S(   N(    (   R   R!  (    (    sI   /home/sa3ruby/intertwingly.net/code/venus-bzr/planet/vendor/feedparser.pyt	   handle_pi  s    c         C   s   d  S(   N(    (   R   R!  (    (    sI   /home/sa3ruby/intertwingly.net/code/venus-bzr/planet/vendor/feedparser.pyt   handle_decl  s    c         C   s   t  r t j j d  n  |  j | | d !d k r |  j j d |  } | d k rg t |  j  } | S|  j t |  j | d | ! d  | d S|  j j d |  } | d k r | d	 S| Sd  S(
   Ns   entering parse_declaration
i	   s	   <![CDATA[s   ]]>ii    i   R   i   (	   R   R   R   R   t   rawdataR   R  R   R   (   R   t   iR9   (    (    sI   /home/sa3ruby/intertwingly.net/code/venus-bzr/planet/vendor/feedparser.pyt   parse_declaration  s     $c         C   sO   | j    } | d k r! d } n* | d k r6 d } n | d k rK d } n  | S(   NR!  s
   text/plaint   htmls	   text/htmlR   s   application/xhtml+xml(   R   (   R   t   contentType(    (    sI   /home/sa3ruby/intertwingly.net/code/venus-bzr/planet/vendor/feedparser.pyt   mapContentType  s    			c         C   s   | j    } | | f d k r4 |  j r4 d |  _ n  | d k rV |  j rV d |  _ n  | d k rx |  j rx d |  _ n  | j d  d k r d	 } | } n  |  j j |  r |  j | |  j | <| |  j |  j | <n | |  j | p d
 <d  S(   Ns&   http://my.netscape.com/rdf/simple/0.9/R%   s   http://purl.org/rss/1.0/R,   s   http://www.w3.org/2005/atomR1   s   backend.userland.com/rssis   http://backend.userland.com/rssR$   (   Ns&   http://my.netscape.com/rdf/simple/0.9/(   R   R   R   R   R   Rh   R   R   (   R   R  R   t   loweruri(    (    sI   /home/sa3ruby/intertwingly.net/code/venus-bzr/planet/vendor/feedparser.pyR     s    	c         C   s   t  |  j p d |  S(   NR$   (   R   R   (   R   R   (    (    sI   /home/sa3ruby/intertwingly.net/code/venus-bzr/planet/vendor/feedparser.pyt
   resolveURI  s    c         C   s   | S(   N(    (   R   t   elementR	   (    (    sI   /home/sa3ruby/intertwingly.net/code/venus-bzr/planet/vendor/feedparser.pyt   decodeEntities  s    c      
   C   sB   d j  g  | D]. } d | d t | d i d d 6 f ^ q  S(   NR$   s    %s="%s"i    i   s   &quot;t   "(   R   R   (   R   R  t   t(    (    sI   /home/sa3ruby/intertwingly.net/code/venus-bzr/planet/vendor/feedparser.pyR    s    c         C   s   |  j  j | | g  g  d  S(   N(   R   R   (   R   R6  t   expectingText(    (    sI   /home/sa3ruby/intertwingly.net/code/venus-bzr/planet/vendor/feedparser.pyR    s    c         C   sQ  |  j  s d  S|  j  d d | k r( d  S|  j  j   \ } } } |  j d k r|  j j d d  d k rx4 | r t |  d k r | d j   r | d =qm Wx4 | r t |  d k r | d j   r | d =q W| r| d d k s| d j d	  r| d d
 k rd } xz | d  D]^ } | j d  rT| d 8} | d k rPqq"| j d  r"| j d  r"| d 7} q"q"W| d d !} qn  d j	 |  } | r| j   } n  | s| St
 r |  j j d d  r y t
 j |  } Wq t j k
 r	q t j k
 rq Xn  | |  j k rG| rG|  j |  } n  |  j j d d  sq|  j | |  } n  |  j |  rd |  j d <n  y |  j d =Wn t k
 rn Xy |  j d =Wn t k
 rn X|  j |  j j d d   |  j k } | rFt rF| |  j k rFt | |  j |  j |  j j d d   } qFn  | rF| d) k rFt | |  j |  j  }	 |	 rFx9 |	 j d g   D]% }
 |  j |
 d |
 d |
 d  qWx' |	 j d g   D] } |  j |  qWx9 |	 j d g   D]% } |  j | d | d | d  qW|	 j d  } | rC| |  j   d <qCqFn  | rt  r| |  j! k rt" | |  j |  j j d d   } qn  |  j rt# |  t# d  k ry t$ | |  j  } WqqXn  |  j d  k rt# |  t# d  k ry t$ | j% d!  d   } WqqXn  t# |  t# d  k rxd j	 g  | D]( } | t& j'   k rft& | pi| ^ qD } n  | d" k r| S| d# k r|  j( r| S|  j) r|  j* r| d k r|  j+ d j, | g   t- j. |  j  } | | d$ <|  j+ d | j/ |  qM| d% k rP| |  j+ d | <| r| |  j+ d d& d d <qqM| d k red } n  | |  j+ d | <|  j0 rMt- j. |  j  } | | d$ <| |  j+ d | d' <qMn |  j1 s|  j* rM|  j   } | d k rd( } n  | | | <| d% k r| | d& d d <qM|  j0 rMt- j. |  j  } | | d$ <| | | d' <qMn  | S(*   Nii    R1   Rk   R!  s   application/xhtml+xmli   s   <div>s   <div s   </div>s   </R   s   />R$   t   base64s	   text/htmlt   modeR   RI   RH   RZ   R[   Rf   t   labelR\   t   xfnt   relationshipsRJ   R_   t   vcardu    s   utf-8s
   iso-8859-1RY   R   R`   R^   Rb   t   _detailRG   (   s   contents   descriptions   summary(2   R   R  R   R   Rj   R  t   stripR|   R   R   R;  t   decodestringt   binasciit   Errort
   Incompletet   can_be_relative_uriR5  R7  t   lookslikehtmlR{   R3  t
   html_typest   RESOLVE_RELATIVE_URISt   can_contain_relative_urist   _resolveRelativeURIsR   R   t   _parseMicroformatst   _addTagt   _start_enclosuret   _addXFNR  t   SANITIZE_HTMLt   can_contain_dangerous_markupt   _sanitizeHTMLRk   R   R   t   _cp1252Rr   R   R   R   R?   Ru   t   copyt   deepcopyR   R   R   (   R   R6  t   stripWhitespaceR:  t   piecest   deptht   piecet   outputt
   is_htmlisht	   mfresultsRp   Rc   R>  R@  R"  R   R  (    (    sI   /home/sa3ruby/intertwingly.net/code/venus-bzr/planet/vendor/feedparser.pyR    s    	  *,,9
  '0##*!'A
		
	
	
c         C   s   |  j  d 7_  |  j r3 |  j j d d  |  _ n  t i |  j | j d |   d 6|  j d 6|  j d 6 |  _ |  j | |  j  |  j d <|  j	 | |  d  S(   Ni   Ry   R   Rk   R   R   R;  (
   R   R   R   R<   R3  Rj   R   R   t	   _isBase64R  (   R   Rp   R  t   defaultContentTypeR:  (    (    sI   /home/sa3ruby/intertwingly.net/code/venus-bzr/planet/vendor/feedparser.pyt   pushContentX  s    	 
c         C   s/   |  j  |  } |  j d 8_ |  j j   | S(   Ni   (   R  R   R   t   clear(   R   Rp   R`   (    (    sI   /home/sa3ruby/intertwingly.net/code/venus-bzr/planet/vendor/feedparser.pyt
   popContentb  s    c            s   |  j  j d  r d  S|  j j d d  d k r5 d  St j d |  pV t j d |  s] d  St d   t j d |   r d  Sd	 d
 l m	   t   f d   t j d |   r d  Sd S(   NR2   Rk   s	   text/htmls
   text/plains   </(\w+)>s   &#?\w+;c         S   s   |  j    t j k S(   N(   R   t   _HTMLSanitizert   acceptable_elements(   R9  (    (    sI   /home/sa3ruby/intertwingly.net/code/venus-bzr/planet/vendor/feedparser.pyRa   t  s    s   </?(\w+)i(   t
   entitydefsc            s   |    j    k S(   N(   Rr   (   t   e(   Re  (    sI   /home/sa3ruby/intertwingly.net/code/venus-bzr/planet/vendor/feedparser.pyRa   y  s    s   &(\w+);i   (
   R   R|   R   Rj   R!   R   t   filtert   findallt   htmlentitydefsRe  (   R   R   (    (   Re  sI   /home/sa3ruby/intertwingly.net/code/venus-bzr/planet/vendor/feedparser.pyRH  l  s      $ 	  c         C   s]   | j  d  } | d k rY | |  } | | d } |  j j | |  } | d | } n  | S(   NR   ii   (   R   R   Rj   (   R   R_   t   colonposR  R
  (    (    sI   /home/sa3ruby/intertwingly.net/code/venus-bzr/planet/vendor/feedparser.pyt   _mapToStandardPrefix~  s    
c         C   s   | j  |  j |   S(   N(   Rj   Rk  (   R   R  R_   (    (    sI   /home/sa3ruby/intertwingly.net/code/venus-bzr/planet/vendor/feedparser.pyt   _getAttribute  s    c         C   sn   | j  d d  d k r d S|  j d j d  r6 d S|  j d j d  rP d S|  j d j d	  rj d Sd S(
   NR<  R$   R;  i   Rk   s   text/i    s   +xmls   /xml(   Rj   R   R|   R   (   R   R  R   (    (    sI   /home/sa3ruby/intertwingly.net/code/venus-bzr/planet/vendor/feedparser.pyR^    s    c         C   s   | j  d | j  d | j  d d     } | r{ y | d =Wn t k
 rN n Xy | d =Wn t k
 rm n X| | d <n  | S(   NRK   R   RJ   (   Rj   R   R{   (   R   R  RJ   (    (    sI   /home/sa3ruby/intertwingly.net/code/venus-bzr/planet/vendor/feedparser.pyt   _itsAnHrefDamnIt  s    *c         C   s    |  j    } | j | |  d  S(   N(   R  Ru   (   R   Rn   R`   R  (    (    sI   /home/sa3ruby/intertwingly.net/code/venus-bzr/planet/vendor/feedparser.pyt   _save  s    c         C   s   i d d 6d d 6d d 6d d 6} |  j  s? |  j  j d	  r | j d
 d  } | j |  } | rr | |  _  q | j d  r d |  _  q d	 |  _  n  d  S(   NR'   s   0.91R(   s   0.92R)   s   0.93R*   s   0.94R-   R   R$   s   2.R+   (   R   R|   Rj   (   R   R  t
   versionmapt   attr_versionR   (    (    sI   /home/sa3ruby/intertwingly.net/code/venus-bzr/planet/vendor/feedparser.pyt
   _start_rss  s    

c         C   s   d |  _  d  S(   NR5   (   R   (   R   R  (    (    sI   /home/sa3ruby/intertwingly.net/code/venus-bzr/planet/vendor/feedparser.pyt   _start_dlhottitles  s    c         C   s   d |  _  |  j |  d  S(   Ni   (   R   t   _cdf_common(   R   R  (    (    sI   /home/sa3ruby/intertwingly.net/code/venus-bzr/planet/vendor/feedparser.pyt   _start_channel  s    	c         C   s   | j  d  r> |  j i   | d |  j d d <|  j   n  | j  d  r| |  j i   | d |  j d d <|  j   n  d  S(   Nt   lastmodiRJ   (   Rh   t   _start_modifiedR   t   _end_modifiedt   _start_linkt	   _end_link(   R   R  (    (    sI   /home/sa3ruby/intertwingly.net/code/venus-bzr/planet/vendor/feedparser.pyRs    s    c         C   sm   d |  _  i d d 6d d 6d d 6} |  j si | j d  } | j |  } | r] | |  _ qi d	 |  _ n  d  S(
   Ni   R.   s   0.1R/   s   0.2R0   s   0.3R   R2   (   R   R   Rj   (   R   R  Ro  Rp  R   (    (    sI   /home/sa3ruby/intertwingly.net/code/venus-bzr/planet/vendor/feedparser.pyt   _start_feed  s    	

	c         C   s   d |  _  d  S(   Ni    (   R   (   R   (    (    sI   /home/sa3ruby/intertwingly.net/code/venus-bzr/planet/vendor/feedparser.pyt   _end_channel  s    c         C   sE   |  j    } | j d t    d |  _ d |  _ |  j d d  d  S(   NR   i   i    (   R  Ru   R<   R   R   R  (   R   R  R  (    (    sI   /home/sa3ruby/intertwingly.net/code/venus-bzr/planet/vendor/feedparser.pyt   _start_image  s
    		c         C   s   |  j  d  d |  _ d  S(   NR   i    (   R  R   (   R   (    (    sI   /home/sa3ruby/intertwingly.net/code/venus-bzr/planet/vendor/feedparser.pyt
   _end_image  s    c         C   sE   |  j    } | j d t    d |  _ d |  _ |  j d d  d  S(   Nt	   textinputi   i    (   R  Ru   R<   R   R   R  (   R   R  R  (    (    sI   /home/sa3ruby/intertwingly.net/code/venus-bzr/planet/vendor/feedparser.pyt   _start_textinput  s
    		c         C   s   |  j  d  d |  _ d  S(   NR~  i    (   R  R   (   R   (    (    sI   /home/sa3ruby/intertwingly.net/code/venus-bzr/planet/vendor/feedparser.pyt   _end_textinput  s    c         C   s   d |  _  |  j d d  d  S(   Ni   t   author(   R   R  (   R   R  (    (    sI   /home/sa3ruby/intertwingly.net/code/venus-bzr/planet/vendor/feedparser.pyt   _start_author  s    	c         C   s$   |  j  d  d |  _ |  j   d  S(   NR  i    (   R  R   t   _sync_author_detail(   R   (    (    sI   /home/sa3ruby/intertwingly.net/code/venus-bzr/planet/vendor/feedparser.pyt   _end_author  s    	c         C   s   d |  _  |  j d d  d  S(   Ni   t	   publisheri    (   R   R  (   R   R  (    (    sI   /home/sa3ruby/intertwingly.net/code/venus-bzr/planet/vendor/feedparser.pyt   _start_itunes_owner  s    	c         C   s'   |  j  d  d |  _ |  j d  d  S(   NR  i    (   R  R   R  (   R   (    (    sI   /home/sa3ruby/intertwingly.net/code/venus-bzr/planet/vendor/feedparser.pyt   _end_itunes_owner	  s    	c         C   sM   d |  _  |  j   } | j d g   | d j t    |  j d d  d  S(   Ni   t   contributorst   contributori    (   R   R  Ru   R   R<   R  (   R   R  R  (    (    sI   /home/sa3ruby/intertwingly.net/code/venus-bzr/planet/vendor/feedparser.pyt   _start_contributor  s
    	c         C   s   |  j  d  d |  _ d  S(   NR  i    (   R  R   (   R   (    (    sI   /home/sa3ruby/intertwingly.net/code/venus-bzr/planet/vendor/feedparser.pyt   _end_contributor  s    c         C   sM   d |  _  |  j   } | j d g   | d j t    |  j d d  d  S(   Ni   R  R_   i    (   R   R  Ru   R   R<   R  (   R   R  R  (    (    sI   /home/sa3ruby/intertwingly.net/code/venus-bzr/planet/vendor/feedparser.pyt   _start_dc_contributor  s
    	c         C   s   |  j    d |  _ d  S(   Ni    (   t	   _end_nameR   (   R   (    (    sI   /home/sa3ruby/intertwingly.net/code/venus-bzr/planet/vendor/feedparser.pyt   _end_dc_contributor   s    
c         C   s   |  j  d d  d  S(   NR_   i    (   R  (   R   R  (    (    sI   /home/sa3ruby/intertwingly.net/code/venus-bzr/planet/vendor/feedparser.pyt   _start_name$  s    c         C   s   |  j  d  } |  j r. |  j d | d  nZ |  j rJ |  j d |  n> |  j rf |  j d |  n" |  j r |  j   } | | d <n  d  S(   NR_   R  (   R  R   t   _save_authorR   R   t   _save_contributorR   R  (   R   R`   R  (    (    sI   /home/sa3ruby/intertwingly.net/code/venus-bzr/planet/vendor/feedparser.pyR  (  s    				c         C   s   |  j  d d  d  S(   NR   i    (   R  (   R   R  (    (    sI   /home/sa3ruby/intertwingly.net/code/venus-bzr/planet/vendor/feedparser.pyt   _start_width5  s    c         C   sU   |  j  d  } y t |  } Wn d } n X|  j rQ |  j   } | | d <n  d  S(   NR   i    (   R  R  R   R  (   R   R`   R  (    (    sI   /home/sa3ruby/intertwingly.net/code/venus-bzr/planet/vendor/feedparser.pyt
   _end_width8  s    
	c         C   s   |  j  d d  d  S(   NR   i    (   R  (   R   R  (    (    sI   /home/sa3ruby/intertwingly.net/code/venus-bzr/planet/vendor/feedparser.pyt   _start_heightB  s    c         C   sU   |  j  d  } y t |  } Wn d } n X|  j rQ |  j   } | | d <n  d  S(   NR   i    (   R  R  R   R  (   R   R`   R  (    (    sI   /home/sa3ruby/intertwingly.net/code/venus-bzr/planet/vendor/feedparser.pyt   _end_heightE  s    
	c         C   s   |  j  d d  d  S(   NRJ   i   (   R  (   R   R  (    (    sI   /home/sa3ruby/intertwingly.net/code/venus-bzr/planet/vendor/feedparser.pyt
   _start_urlO  s    c         C   sK   |  j  d  } |  j r+ |  j d |  n |  j rG |  j d |  n  d  S(   NRJ   (   R  R   R  R   R  (   R   R`   (    (    sI   /home/sa3ruby/intertwingly.net/code/venus-bzr/planet/vendor/feedparser.pyt   _end_urlT  s
    		c         C   s   |  j  d d  d  S(   NR   i    (   R  (   R   R  (    (    sI   /home/sa3ruby/intertwingly.net/code/venus-bzr/planet/vendor/feedparser.pyt   _start_email]  s    c         C   sj   |  j  d  } |  j r. |  j d | d  n8 |  j rJ |  j d |  n |  j rf |  j d |  n  d  S(   NR   R  (   R  R   R  R   R   R  (   R   R`   (    (    sI   /home/sa3ruby/intertwingly.net/code/venus-bzr/planet/vendor/feedparser.pyt
   _end_emaila  s    			c         C   sm   |  j  r |  j } nT |  j r. |  j d } n; |  j rG |  j d } n" |  j r` |  j d } n	 |  j } | S(   NR   R~  i(   R   R   R   R   R   R   R?   (   R   R  (    (    sI   /home/sa3ruby/intertwingly.net/code/venus-bzr/planet/vendor/feedparser.pyR  k  s    					R  c         C   sC   |  j    } | j | d t    | | | d | <|  j   d  S(   NRA  (   R  Ru   R<   R  (   R   Rn   R`   R  R  (    (    sI   /home/sa3ruby/intertwingly.net/code/venus-bzr/planet/vendor/feedparser.pyR  x  s    c         C   s8   |  j    } | j d t   g  | | d d | <d  S(   NR  i(   R  Ru   R<   (   R   Rn   R`   R  (    (    sI   /home/sa3ruby/intertwingly.net/code/venus-bzr/planet/vendor/feedparser.pyR  ~  s    c         C   s  |  j    } | j d |  } | r | j d  } | j d  } | rf | rf d | | f | | <q| ry | | | <q| r| | | <qnL| j |  d  } } | s d  St j d |  } | r| j d  } | j | d  } | j d d  } | j d	 d  } | j d
 d  } | j   } | rM| d d k rM| d } n  | rp| d d k rp| d  } n  | j   } n  | s| r| j d | t	    n  | r| | d | d <n  | r| | d | d <n  d  S(   Ns	   %s_detailR_   R   s   %s (%s)s   (([a-zA-Z0-9\_\-\.\+]+)@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.)|(([a-zA-Z0-9\-]+\.)+))([a-zA-Z]{2,4}|[0-9]{1,3})(\]?))(\?subject=\S+)?i    R$   s   ()s   <>s   &lt;&gt;t   (i   it   )(
   R  Rj   R   R!   R   t   groupR   RB  Ru   R<   (   R   Rn   R  t   detailR_   R   R  t
   emailmatch(    (    sI   /home/sa3ruby/intertwingly.net/code/venus-bzr/planet/vendor/feedparser.pyR    sB     c         C   s   |  j  d | d d  d  S(   NRG   s
   text/plaini   (   R`  (   R   R  (    (    sI   /home/sa3ruby/intertwingly.net/code/venus-bzr/planet/vendor/feedparser.pyt   _start_subtitle  s    c         C   s   |  j  d  d  S(   NRG   (   Rb  (   R   (    (    sI   /home/sa3ruby/intertwingly.net/code/venus-bzr/planet/vendor/feedparser.pyt   _end_subtitle  s    c         C   s   |  j  d | d d  d  S(   NRR   s
   text/plaini   (   R`  (   R   R  (    (    sI   /home/sa3ruby/intertwingly.net/code/venus-bzr/planet/vendor/feedparser.pyt   _start_rights  s    c         C   s   |  j  d  d  S(   NRR   (   Rb  (   R   (    (    sI   /home/sa3ruby/intertwingly.net/code/venus-bzr/planet/vendor/feedparser.pyt   _end_rights  s    c         C   s   |  j  j t    |  j d d  d |  _ d |  _ d |  _ |  j | d  } | ro |  j   } | | d <n  |  j	 |  d  S(   Nt   itemi    i   s	   rdf:aboutRA   (
   R?   R   R<   R  R   t
   guidislinkR   Rl  R  Rs  (   R   R  RA   R  (    (    sI   /home/sa3ruby/intertwingly.net/code/venus-bzr/planet/vendor/feedparser.pyt   _start_item  s    			c         C   s   |  j  d  d |  _ d  S(   NR  i    (   R  R   (   R   (    (    sI   /home/sa3ruby/intertwingly.net/code/venus-bzr/planet/vendor/feedparser.pyt	   _end_item  s    c         C   s   |  j  d d  d  S(   NR   i   (   R  (   R   R  (    (    sI   /home/sa3ruby/intertwingly.net/code/venus-bzr/planet/vendor/feedparser.pyt   _start_dc_language  s    c         C   s   |  j  d  |  _ d  S(   NR   (   R  R   (   R   (    (    sI   /home/sa3ruby/intertwingly.net/code/venus-bzr/planet/vendor/feedparser.pyt   _end_dc_language  s    c         C   s   |  j  d d  d  S(   NR  i   (   R  (   R   R  (    (    sI   /home/sa3ruby/intertwingly.net/code/venus-bzr/planet/vendor/feedparser.pyt   _start_dc_publisher  s    c         C   s   |  j  d  |  j d  d  S(   NR  (   R  R  (   R   (    (    sI   /home/sa3ruby/intertwingly.net/code/venus-bzr/planet/vendor/feedparser.pyt   _end_dc_publisher  s    c         C   s   |  j  d d  d  S(   NRN   i   (   R  (   R   R  (    (    sI   /home/sa3ruby/intertwingly.net/code/venus-bzr/planet/vendor/feedparser.pyt   _start_published  s    c         C   s)   |  j  d  } |  j d t |   d  S(   NRN   RP   (   R  Rn  t   _parse_date(   R   R`   (    (    sI   /home/sa3ruby/intertwingly.net/code/venus-bzr/planet/vendor/feedparser.pyt   _end_published  s    c         C   s   |  j  d d  d  S(   NRC   i   (   R  (   R   R  (    (    sI   /home/sa3ruby/intertwingly.net/code/venus-bzr/planet/vendor/feedparser.pyt   _start_updated  s    c         C   s/   |  j  d  } t |  } |  j d |  d  S(   NRC   RE   (   R  R  Rn  (   R   R`   t   parsed_value(    (    sI   /home/sa3ruby/intertwingly.net/code/venus-bzr/planet/vendor/feedparser.pyt   _end_updated  s    c         C   s   |  j  d d  d  S(   Nt   createdi   (   R  (   R   R  (    (    sI   /home/sa3ruby/intertwingly.net/code/venus-bzr/planet/vendor/feedparser.pyt   _start_created  s    c         C   s)   |  j  d  } |  j d t |   d  S(   NR  t   created_parsed(   R  Rn  R  (   R   R`   (    (    sI   /home/sa3ruby/intertwingly.net/code/venus-bzr/planet/vendor/feedparser.pyt   _end_created  s    c         C   s   |  j  d d  d  S(   Nt   expiredi   (   R  (   R   R  (    (    sI   /home/sa3ruby/intertwingly.net/code/venus-bzr/planet/vendor/feedparser.pyt   _start_expirationdate  s    c         C   s#   |  j  d t |  j d    d  S(   Nt   expired_parsedR  (   Rn  R  R  (   R   (    (    sI   /home/sa3ruby/intertwingly.net/code/venus-bzr/planet/vendor/feedparser.pyt   _end_expirationdate  s    c         C   sa   |  j    } |  j | d  } t   } d | d <| rD | | d <n  | j d g   j |  d  S(   Ns   rdf:resourceRd   R]   RJ   Rb   (   R  Rl  R<   Ru   R   (   R   R  R  R`   (    (    sI   /home/sa3ruby/intertwingly.net/code/venus-bzr/planet/vendor/feedparser.pyt   _start_cc_license	  s    	
 c         C   s   |  j  d d  d  S(   NRd   i   (   R  (   R   R  (    (    sI   /home/sa3ruby/intertwingly.net/code/venus-bzr/planet/vendor/feedparser.pyt   _start_creativecommons_license  s    c         C   se   |  j  d  } |  j   } t   } d | d <| rA | | d <n  | j d g   j |  | d =d  S(   NRd   R]   RJ   Rb   (   R  R  R<   Ru   R   (   R   R`   R  R  (    (    sI   /home/sa3ruby/intertwingly.net/code/venus-bzr/planet/vendor/feedparser.pyt   _end_creativecommons_license  s    	
 c         C   s_   |  j    } | j d g   } t i | d 6| d 6| d 6 } | | k r[ | j |  n  d  S(   NR>  R?  RJ   R_   (   R  Ru   R<   R   (   R   R?  RJ   R_   R  R>  R`   (    (    sI   /home/sa3ruby/intertwingly.net/code/venus-bzr/planet/vendor/feedparser.pyRP    s
    !c         C   sx   |  j    } | j d g   } | r7 | r7 | r7 d  St i | d 6| d 6| d 6 } | | k rt | j |  n  d  S(   NRZ   R[   Rf   R=  (   R  Ru   R<   R   (   R   R[   Rf   R=  R  RZ   R`   (    (    sI   /home/sa3ruby/intertwingly.net/code/venus-bzr/planet/vendor/feedparser.pyRN  &  s     !c         C   s   t  r# t j j d t |   n  | j d  } | j d | j d   } | j d  } |  j | | |  |  j d d  d  S(   Ns!   entering _start_category with %s
R[   Rf   t   domainR=  RY   i   (   R   R   R   R   t   reprRj   RN  R  (   R   R  R[   Rf   R=  (    (    sI   /home/sa3ruby/intertwingly.net/code/venus-bzr/planet/vendor/feedparser.pyt   _start_category.  s     c         C   s7   x0 |  j  d  j   D] } |  j | d d   q Wd  S(   Nt   itunes_keywordss   http://www.itunes.com/(   R  R   RN  R   (   R   R[   (    (    sI   /home/sa3ruby/intertwingly.net/code/venus-bzr/planet/vendor/feedparser.pyt   _end_itunes_keywords8  s    c         C   s0   |  j  | j d  d d   |  j d d  d  S(   NR!  s   http://www.itunes.com/RY   i   (   RN  Rj   R   R  (   R   R  (    (    sI   /home/sa3ruby/intertwingly.net/code/venus-bzr/planet/vendor/feedparser.pyt   _start_itunes_category<  s    c         C   sx   |  j  d  } | s d  S|  j   } | d } | ra t |  ra | d d ra | | d d <n |  j | d  d   d  S(   NRY   RZ   iR[   (   R  R  R  RN  R   (   R   R`   R  RZ   (    (    sI   /home/sa3ruby/intertwingly.net/code/venus-bzr/planet/vendor/feedparser.pyt   _end_category@  s     
!c         C   s   t  |  |  j   d <d  S(   Nt   cloud(   R<   R  (   R   R  (    (    sI   /home/sa3ruby/intertwingly.net/code/venus-bzr/planet/vendor/feedparser.pyt   _start_cloudM  s    c         C   sw  | j  d d  | d d k r3 | j  d d  n | j  d d  |  j   } |  j |  } | j d  r |  j | d  | d <| j d  d k r | j d	  r | j d  | d	 <q n  |  j p |  j p |  j } | j  d
 g   | d
 j	 t
 |   | j d  rcd } | j d  d k rs|  j | j d   |  j k rs| d | d <qsn |  j d |  d  S(   NR]   t	   alternateR   Rk   s   application/atom+xmls	   text/htmlRJ   Rc   RA   Rb   i    R^   (   Ru   R  Rm  Rh   R5  Rj   R   R   R   R   R<   R3  RI  R  (   R   R  R  R:  (    (    sI   /home/sa3ruby/intertwingly.net/code/venus-bzr/planet/vendor/feedparser.pyRx  P  s$    %6c         C   s   |  j  d  } |  j   } d  S(   NR^   (   R  R  (   R   R`   R  (    (    sI   /home/sa3ruby/intertwingly.net/code/venus-bzr/planet/vendor/feedparser.pyRy  g  s    c         C   s/   | j  d d  d k |  _ |  j d d  d  S(   Nt   ispermalinkt   trueRA   i   (   Rj   R  R  (   R   R  (    (    sI   /home/sa3ruby/intertwingly.net/code/venus-bzr/planet/vendor/feedparser.pyt   _start_guidl  s    c         C   sX   |  j  d  } |  j d |  j o4 |  j   j d   |  j rT |  j d |  n  d  S(   NRA   R  R^   (   R  Rn  R  R  Rh   (   R   R`   (    (    sI   /home/sa3ruby/intertwingly.net/code/venus-bzr/planet/vendor/feedparser.pyt	   _end_guidp  s    )	c         C   sN   |  j  r |  j d | j    S|  j d | d |  j pF |  j pF |  j  d  S(   NR   s
   text/plain(   R   R  R@   R`  R   R   R   (   R   R  (    (    sI   /home/sa3ruby/intertwingly.net/code/venus-bzr/planet/vendor/feedparser.pyt   _start_titlex  s    	 c         C   s?   |  j  r d  S|  j d  } | s& d  S|  j   } d |  _ d  S(   NR   i   (   R   Rb  R  R   (   R   R`   R  (    (    sI   /home/sa3ruby/intertwingly.net/code/venus-bzr/planet/vendor/feedparser.pyt
   _end_title~  s    	  c         C   s    |  j  } |  j   | |  _  d  S(   N(   R   R  (   R   R   (    (    sI   /home/sa3ruby/intertwingly.net/code/venus-bzr/planet/vendor/feedparser.pyt   _end_media_title  s    	
c         C   sc   |  j    } | j d  r4 d |  _ |  j |  n+ |  j d | d |  j p[ |  j p[ |  j  d  S(   NRH   R   RI   s	   text/html(   R  Rh   R   t   _start_contentR`  R   R   R   (   R   R  R  (    (    sI   /home/sa3ruby/intertwingly.net/code/venus-bzr/planet/vendor/feedparser.pyt   _start_description  s
    	c         C   s/   |  j  d | d |  j p' |  j p' |  j  d  S(   NRI   s
   text/plain(   R`  R   R   R   (   R   R  (    (    sI   /home/sa3ruby/intertwingly.net/code/venus-bzr/planet/vendor/feedparser.pyt   _start_abstract  s    c         C   s8   |  j  d k r |  j   n |  j d  } d  |  _  d  S(   NR   RI   (   R   t   _end_contentRb  R   (   R   R`   (    (    sI   /home/sa3ruby/intertwingly.net/code/venus-bzr/planet/vendor/feedparser.pyt   _end_description  s    c         C   s   |  j  d | d d  d  S(   NR   s
   text/plaini   (   R`  (   R   R  (    (    sI   /home/sa3ruby/intertwingly.net/code/venus-bzr/planet/vendor/feedparser.pyt   _start_info  s    c         C   s   |  j  d  d  S(   NR   (   Rb  (   R   (    (    sI   /home/sa3ruby/intertwingly.net/code/venus-bzr/planet/vendor/feedparser.pyt	   _end_info  s    c         C   sk   | rA |  j  |  } | j d  rA |  j | d  | d <qA n  t |  |  j   d <|  j d d  d  S(   NRJ   t   generator_detailt	   generatori   (   Rm  Rh   R5  R<   R  R  (   R   R  (    (    sI   /home/sa3ruby/intertwingly.net/code/venus-bzr/planet/vendor/feedparser.pyt   _start_generator  s    c         C   s?   |  j  d  } |  j   } | j d  r; | | d d <n  d  S(   NR  R  R_   (   R  R  Rh   (   R   R`   R  (    (    sI   /home/sa3ruby/intertwingly.net/code/venus-bzr/planet/vendor/feedparser.pyt   _end_generator  s    c         C   sq   |  j  d d  |  j | d  } | rC |  j d d j |  n  |  j d  t i | d 6 |  j   d <d  S(   NR  i   s   rdf:resourceii   RJ   R  (   R  Rl  R   R   R  R<   R  (   R   R  R`   (    (    sI   /home/sa3ruby/intertwingly.net/code/venus-bzr/planet/vendor/feedparser.pyt   _start_admin_generatoragent  s    c         C   sT   |  j  d d  |  j | d  } | rC |  j d d j |  n  |  j d  d  S(   Nt   errorreportstoi   s   rdf:resourceii   (   R  Rl  R   R   R  (   R   R  R`   (    (    sI   /home/sa3ruby/intertwingly.net/code/venus-bzr/planet/vendor/feedparser.pyt   _start_admin_errorreportsto  s
    c         C   sZ   |  j    } | j d  r4 d |  _ |  j |  n" d |  _ |  j |  j | d d  d  S(   NRH   R   s
   text/plaini   (   R  Rh   R   R  R`  (   R   R  R  (    (    sI   /home/sa3ruby/intertwingly.net/code/venus-bzr/planet/vendor/feedparser.pyt   _start_summary  s    		c         C   s?   |  j  d k r |  j   n |  j |  j  p. d  d  |  _  d  S(   NR   RH   (   R   R  Rb  R   (   R   (    (    sI   /home/sa3ruby/intertwingly.net/code/venus-bzr/planet/vendor/feedparser.pyt   _end_summary  s    c         C   sz   |  j  |  } |  j   } d | d <| j d g   j t |   | j d  } | rv | j d  rv | | d <n  d  S(   NRc   R]   Rb   RJ   RA   (   Rm  R  Ru   R   R<   Rj   (   R   R  R  RJ   (    (    sI   /home/sa3ruby/intertwingly.net/code/venus-bzr/planet/vendor/feedparser.pyRO    s    
c         C   sF   d | k r  | d |  j  d <n  |  j d d  d |  _ d |  _ d  S(   NRK   u   urlRJ   t   sourcei   i    (   R   R  R   R   (   R   R  (    (    sI   /home/sa3ruby/intertwingly.net/code/venus-bzr/planet/vendor/feedparser.pyt   _start_source  s
    	c         C   s[   d |  _  |  j d  } | r. | |  j d <n  t j |  j  |  j   d <|  j j   d  S(   Ni    R  R   (   R   R  R   RU  RV  R  Ra  (   R   R`   (    (    sI   /home/sa3ruby/intertwingly.net/code/venus-bzr/planet/vendor/feedparser.pyt   _end_source  s    	c         C   sO   |  j  d | d d  | j d  } | r; | |  j d <n  |  j d d  d  S(   NR   s
   text/plaini   t   src(   R`  Rj   R   R  (   R   R  R  (    (    sI   /home/sa3ruby/intertwingly.net/code/venus-bzr/planet/vendor/feedparser.pyR    s
    c         C   s   |  j  d | d d  d  S(   NR   s	   text/htmli   (   R`  (   R   R  (    (    sI   /home/sa3ruby/intertwingly.net/code/venus-bzr/planet/vendor/feedparser.pyt   _start_prodlink  s    c         C   s   |  j  d | d d  d  S(   NR   s   application/xhtml+xmli   (   R`  (   R   R  (    (    sI   /home/sa3ruby/intertwingly.net/code/venus-bzr/planet/vendor/feedparser.pyt   _start_body  s    c         C   s   |  j  d | d d  d  S(   NR   s	   text/htmli   (   R`  (   R   R  (    (    sI   /home/sa3ruby/intertwingly.net/code/venus-bzr/planet/vendor/feedparser.pyt   _start_content_encoded  s    c         C   sW   |  j  |  j j d   d g |  j k } |  j d  } | rS |  j d |  n  d  S(   NRk   s
   text/plainR   RI   (   R3  R   Rj   RI  Rb  Rn  (   R   t   copyToDescriptionR`   (    (    sI   /home/sa3ruby/intertwingly.net/code/venus-bzr/planet/vendor/feedparser.pyR    s    +c         C   s:   |  j  d d  t i | j d  d 6 |  j   d <d  S(   Nt   itunes_imagei    RJ   R   (   R  R<   Rj   R  (   R   R  (    (    sI   /home/sa3ruby/intertwingly.net/code/venus-bzr/planet/vendor/feedparser.pyt   _start_itunes_image  s    c         C   s8   |  j  d d  } | d k r$ d p' d |  j   d <d  S(   Nt   itunes_blocki    t   yesi   (   R  R  (   R   R`   (    (    sI   /home/sa3ruby/intertwingly.net/code/venus-bzr/planet/vendor/feedparser.pyt   _end_itunes_block  s    c         C   s8   |  j  d d  } | d k r$ d p' d |  j   d <d  S(   Nt   itunes_expliciti    R  i   (   R  R  (   R   R`   (    (    sI   /home/sa3ruby/intertwingly.net/code/venus-bzr/planet/vendor/feedparser.pyt   _end_itunes_explicit  s    c         C   s1   |  j    } | j d g   | d j |  d  S(   Nt   media_content(   R  Ru   R   (   R   R  R  (    (    sI   /home/sa3ruby/intertwingly.net/code/venus-bzr/planet/vendor/feedparser.pyt   _start_media_content  s    c         C   sA   |  j    } | j d g   |  j d d  | d j |  d  S(   Nt   media_thumbnailRK   i   (   R  Ru   R  R   (   R   R  R  (    (    sI   /home/sa3ruby/intertwingly.net/code/venus-bzr/planet/vendor/feedparser.pyt   _start_media_thumbnail   s    c         C   sr   |  j  d  } |  j   } | d  k rn t | j    d k rn | d d j d  sn | | d d d <qn n  d  S(   NRK   i    R  i(   R  R  R   R  RB  Rh   (   R   RK   R  (    (    sI   /home/sa3ruby/intertwingly.net/code/venus-bzr/planet/vendor/feedparser.pyt   _end_media_thumbnail&  s
    $c         C   s*   |  j  d d  t |  |  j   d <d  S(   Nt   media_playeri    (   R  R<   R  (   R   R  (    (    sI   /home/sa3ruby/intertwingly.net/code/venus-bzr/planet/vendor/feedparser.pyt   _start_media_player-  s    c         C   s-   |  j  d  } |  j   } | | d d <d  S(   NR  R   (   R  R  (   R   R`   R  (    (    sI   /home/sa3ruby/intertwingly.net/code/venus-bzr/planet/vendor/feedparser.pyt   _end_media_player1  s    N(   R   R   R   R   RG  RK  RR  RI  R   R   R  R  R#  R*  R   R+  R,  R-  R0  R3  R   R5  R7  R  R  R  R`  Rb  RH  Rk  Rl  R^  Rm  Rn  Rq  Rr  Rt  t   _start_feedinfoRs  Rz  R{  t	   _end_feedR|  R}  R  t   _start_textInputR  t   _end_textInputR  t   _start_managingeditort   _start_dc_authort   _start_dc_creatort   _start_itunes_authorR  t   _end_managingeditort   _end_dc_authort   _end_dc_creatort   _end_itunes_authorR  R  R  R  R  R  R  t   _start_itunes_nameR  t   _end_itunes_nameR  R  R  R  R  t   _start_homepaget
   _start_uriR  t   _end_homepaget   _end_uriR  t   _start_itunes_emailR  t   _end_itunes_emailR  R  R  R  R  t   _start_taglinet   _start_itunes_subtitleR  t   _end_taglinet   _end_itunes_subtitleR  t   _start_dc_rightst   _start_copyrightR  t   _end_dc_rightst   _end_copyrightR  t   _start_entryt   _start_productR  t
   _end_entryR  t   _start_languageR  t   _end_languageR  t   _start_webmasterR  t   _end_webmasterR  t   _start_dcterms_issuedt   _start_issuedR  t   _end_dcterms_issuedt   _end_issuedR  Rv  t   _start_dcterms_modifiedt   _start_pubdatet   _start_dc_dateR  Rw  t   _end_dcterms_modifiedt   _end_pubdatet   _end_dc_dateR  t   _start_dcterms_createdR  t   _end_dcterms_createdR  R  R  R  t   _start_creativeCommons_licenseR  t   _end_creativeCommons_licenseRP  RN  R  t   _start_dc_subjectt   _start_keywordsR  R  R  t   _end_dc_subjectt   _end_keywordst   _end_itunes_categoryR  Rx  t   _start_producturlRy  t   _end_producturlR  R  R  t   _start_dc_titlet   _start_media_titleR  t   _end_dc_titleR  R  t   _start_dc_descriptionR  R  t   _end_abstractt   _end_dc_descriptionR  t!   _start_feedburner_browserfriendlyR  t   _end_feedburner_browserfriendlyR  R  R  R  R  t   _start_itunes_summaryR  t   _end_itunes_summaryRO  R  R  R  R  R  t   _start_xhtml_bodyR  t   _start_fullitemR  t	   _end_bodyt   _end_xhtml_bodyt   _end_content_encodedt   _end_fullitemt   _end_prodlinkR  t   _start_itunes_linkR  R  R  R  R  R  R  (    (    (    sI   /home/sa3ruby/intertwingly.net/code/venus-bzr/planet/vendor/feedparser.pyR   t  s
  

$!!$	S	(							
						
	
											
																		
		
						$																																																															t   _StrictFeedParserc           B   sG   e  Z d    Z d   Z d   Z d   Z d   Z d   Z d   Z RS(   c         C   sd   t  r t j j d  n  t j j j j |   t	 j |  | | |  d |  _
 d  |  _ i  |  _ d  S(   Ns   trying StrictFeedParser
i    (   R   R   R   R   R   t   saxt   handlert   ContentHandlerR   R   t   bozoR   t   exct   decls(   R   R   R   R   (    (    sI   /home/sa3ruby/intertwingly.net/code/venus-bzr/planet/vendor/feedparser.pyR   8  s     		c         C   s4   |  j  | |  | d k r0 | |  j d | <n  d  S(   Ns   http://www.w3.org/1999/xlinks   xmlns:(   R   RD  (   R   R  R   (    (    sI   /home/sa3ruby/intertwingly.net/code/venus-bzr/planet/vendor/feedparser.pyt   startPrefixMapping@  s    c         C   s  | \ } } t  | p d  j   } | j d  d k rH d } | } n  | ry | j d  d k ry | j d  d } n d  } |  j j | |  } | r | d  k s | d k r | d k r |  j j |  r t	 d |  n  t  |  j   } |  j
 i  }	 |  _
 | d k r+| d	 k r+| |	 d
 <n  | d k rP| d k rP| |	 d
 <n  | rm| j   d | } nT | r| rxD |  j j   D]0 \ } }
 | r|
 | k r| d | } PqqWn  t rt j j d | | | | | j   | f  n  xw | j j   D]f \ \ } } } | p!d j   } |  j j | d  } | rV| d | } n  | |	 t  |  j   <qWx3 | j   D]% } | j |  |	 t  |  j   <q}W|  j | |	 j    d  S(   NR$   s   backend.userland.com/rssis   http://backend.userland.com/rssR   i    s'   '%s' is not associated with a namespaceR   s"   http://www.w3.org/1998/Math/MathMLR   R   s   http://www.w3.org/2000/svgsf   startElementNS: qname = %s, namespace = %s, givenprefix = %s, prefix = %s, attrs = %s, localname = %s
(   R   R   R   R   R   R   Rj   R   Rh   R   RD  R@   R   R   R   R   t   _attrst	   getQNamest   getValueByQNameR  (   R   R_   t   qnameR  R	  t	   localnamet   lowernamespacet   givenprefixR  R  R`   t   attrlocalnamet	   attrvalue(    (    sI   /home/sa3ruby/intertwingly.net/code/venus-bzr/planet/vendor/feedparser.pyt   startElementNSE  sF    	=	 /"#c         C   s   |  j  |  d  S(   N(   R   (   R   R!  (    (    sI   /home/sa3ruby/intertwingly.net/code/venus-bzr/planet/vendor/feedparser.pyt
   charactersu  s    c   	      C   s   | \ } } t  | p d  j   } | rU | j d  d k rU | j d  d } n d } |  j j | |  } | r | d | } nT | r | r xD |  j j   D]0 \ } } | r | | k r | d | } Pq q Wn  t  |  j   } |  j |  d  S(   NR$   R   i    (	   R   R   R   R   R   Rj   R   R@   R  (	   R   R_   RI  R	  RJ  RK  RL  R  R`   (    (    sI   /home/sa3ruby/intertwingly.net/code/venus-bzr/planet/vendor/feedparser.pyt   endElementNSx  s    c         C   s   d |  _  | |  _ d  S(   Ni   (   RB  RC  (   R   RC  (    (    sI   /home/sa3ruby/intertwingly.net/code/venus-bzr/planet/vendor/feedparser.pyt   error  s    	c         C   s   |  j  |  |  d  S(   N(   RR  (   R   RC  (    (    sI   /home/sa3ruby/intertwingly.net/code/venus-bzr/planet/vendor/feedparser.pyt
   fatalError  s    (	   R   R   R   RE  RO  RP  RQ  RR  RS  (    (    (    sI   /home/sa3ruby/intertwingly.net/code/venus-bzr/planet/vendor/feedparser.pyR>  7  s   			0			t   _BaseHTMLProcessorc           B   s  e  Z e j d   Z e j d  Z d d d d d d d d	 d
 d d d d d d d d d d g Z d   Z d   Z d   Z	 d   Z
 d   Z d   Z d   Z d   Z d   Z d   Z d   Z d    Z d!   Z d"   Z e j d#  j Z d$   Z d%   Z d&   Z d'   Z RS((   s   [<>'"]s   &(?!#\d+;|#x[0-9a-fA-F]+;|\w+;)t   areaR   t   basefontt   brt   colt   commandt   embedt   framet   hrt   imgt   inputt   isindext   keygenR^   t   metat   paramR  t   trackt   wbrc         C   sF   | |  _  | |  _ t r2 t j j d |  j   n  t j j |   d  S(   Ns(   entering BaseHTMLProcessor, encoding=%s
(	   R   Rk   R   R   R   R   t   sgmllibt
   SGMLParserR   (   R   R   Rk   (    (    sI   /home/sa3ruby/intertwingly.net/code/venus-bzr/planet/vendor/feedparser.pyR     s
    		 c         C   s   g  |  _  t j j |   d  S(   N(   RX  Re  Rf  t   reset(   R   (    (    sI   /home/sa3ruby/intertwingly.net/code/venus-bzr/planet/vendor/feedparser.pyRg    s    	c         C   sB   | j  d  } | |  j k r* d | d Sd | d | d Sd  S(   Ni   R   s    />s   ></R   (   R  t   elements_no_end_tag(   R   R   Rp   (    (    sI   /home/sa3ruby/intertwingly.net/code/venus-bzr/planet/vendor/feedparser.pyt   _shorttag_replace  s    c         C   sd   t  j j |  |  } |  j d k r` | d k r` |  j | d | !d k r` |  j |  j  q` n  | S(   Ns   application/xhtml+xmli   s   />(   Re  Rf  t   parse_starttagRk   R.  R  t   lasttag(   R   R/  t   j(    (    sI   /home/sa3ruby/intertwingly.net/code/venus-bzr/planet/vendor/feedparser.pyRj    s
    &c         C   s   t  j d t  j  j d |  } t  j d |  j |  } | j d d  } | j d d  } |  j r t |  t d  k r | j |  j  } n  t	 j
 j |  |  t	 j
 j |   d  S(	   Ns   <!((?!DOCTYPE|--|\[))s   &lt;!\1s   <([^<>\s]+?)\s*/>s   &#39;t   's   &#34;R8  u    (   R!   R"   t
   IGNORECASER   Ri  R   R   Rk   R   Re  Rf  R=   t   close(   R   R	   (    (    sI   /home/sa3ruby/intertwingly.net/code/venus-bzr/planet/vendor/feedparser.pyR=     s    !!c         C   s   | s
 | St  g  | D] \ } } | j   | f ^ q  j   } g  | D]0 \ } } | | d k ro | j   pr | f ^ qH } | j   | S(   NR]   Rk   (   s   rels   type(   R;   R   R@   t   sort(   R   R  R9   R:   (    (    sI   /home/sa3ruby/intertwingly.net/code/venus-bzr/planet/vendor/feedparser.pyt   normalize_attrs  s     7=
c         C   s  t  r t j j d |  n  g  } d } | rOx | D] \ } } | j d d  j d d  j d d  } |  j j d	 |  } t |  t d
  k r y t | |  j	  } Wq t | d  } q Xn  | j
 t | |  j	  | f  q6 Wd
 j g  | D] \ } } d | | f ^ q  } |  j	 rOy | j |  j	  } WqLqLXqOn  | |  j k rx|  j j
 d t    n |  j j
 d t    d  S(   Ns-   _BaseHTMLProcessor, unknown_starttag, tag=%s
R$   R   s   &gt;R   s   &lt;R8  s   &quot;s   &amp;u    s
   iso-8859-1u    %s="%s"s   <%(tag)s%(strattrs)s />s   <%(tag)s%(strattrs)s>(   R   R   R   R   R   t   bare_ampersandR   Rk   R   R   R   R   R   Rh  RX  t   locals(   R   Rp   R  t   uattrsR  Rn   R`   (    (    sI   /home/sa3ruby/intertwingly.net/code/venus-bzr/planet/vendor/feedparser.pyR    s.     *#2	
c         C   s-   | |  j  k r) |  j j d t    n  d  S(   Ns
   </%(tag)s>(   Rh  RX  R   Rs  (   R   Rp   (    (    sI   /home/sa3ruby/intertwingly.net/code/venus-bzr/planet/vendor/feedparser.pyR    s    c         C   s   | j  d  r+ t t | d d   } n t t |   } | t j   k rz |  j j d t t t |   d  n |  j j d t	    d  S(   NR  i   i   s   &#%s;s
   &#%(ref)s;(
   R|   R  R  RT  Rr   RX  R   t   hext   ordRs  (   R   R   R`   (    (    sI   /home/sa3ruby/intertwingly.net/code/venus-bzr/planet/vendor/feedparser.pyR#    s    +c         C   sD   t  j |  r) |  j j d t    n |  j j d t    d  S(   Ns	   &%(ref)s;s   &amp;%(ref)s(   R   Rh   RX  R   Rs  (   R   R   (    (    sI   /home/sa3ruby/intertwingly.net/code/venus-bzr/planet/vendor/feedparser.pyR*    s    c         C   s1   t  r t j j d |  n  |  j j |  d  S(   Ns)   _BaseHTMLProcessor, handle_data, text=%s
(   R   R   R   R   RX  R   (   R   R!  (    (    sI   /home/sa3ruby/intertwingly.net/code/venus-bzr/planet/vendor/feedparser.pyR     s     c         C   s   |  j  j d t    d  S(   Ns   <!--%(text)s-->(   RX  R   Rs  (   R   R!  (    (    sI   /home/sa3ruby/intertwingly.net/code/venus-bzr/planet/vendor/feedparser.pyR+    s    c         C   s   |  j  j d t    d  S(   Ns   <?%(text)s>(   RX  R   Rs  (   R   R!  (    (    sI   /home/sa3ruby/intertwingly.net/code/venus-bzr/planet/vendor/feedparser.pyR,  
  s    c         C   s   |  j  j d t    d  S(   Ns   <!%(text)s>(   RX  R   Rs  (   R   R!  (    (    sI   /home/sa3ruby/intertwingly.net/code/venus-bzr/planet/vendor/feedparser.pyR-    s    s   [a-zA-Z][-_.a-zA-Z0-9:]*\s*c         C   s   |  j  } t |  } | | k r% d S|  j | |  } | r | j   } | j   } | t |  | k ro d S| j   | j   f S|  j |  d Sd  S(   Ni(   Ni(   Ni(   Ni(	   R.  R  R   t   _new_declname_matchR  RB  R   R   R   (   R   R/  t   declstartposR.  R   t   mR   R_   (    (    sI   /home/sa3ruby/intertwingly.net/code/venus-bzr/planet/vendor/feedparser.pyt
   _scan_name  s    	c         C   s   d | S(   Ns   &#%s;(    (   R   R_   (    (    sI   /home/sa3ruby/intertwingly.net/code/venus-bzr/planet/vendor/feedparser.pyt   convert_charref(  s    c         C   s   d | S(   Ns   &%s;(    (   R   R_   (    (    sI   /home/sa3ruby/intertwingly.net/code/venus-bzr/planet/vendor/feedparser.pyt   convert_entityref+  s    c         C   s)   d j  g  |  j D] } t |  ^ q  S(   s(   Return processed HTML as a single stringR$   (   R   RX  R   (   R   t   p(    (    sI   /home/sa3ruby/intertwingly.net/code/venus-bzr/planet/vendor/feedparser.pyR[  .  s    (   R   R   R!   R"   t   specialRr  Rh  R   Rg  Ri  Rj  R=   Rq  R  R  R#  R*  R   R+  R,  R-  R   Rw  Rz  R{  R|  R[  (    (    (    sI   /home/sa3ruby/intertwingly.net/code/venus-bzr/planet/vendor/feedparser.pyRT    s0   																	t   _LooseFeedParserc           B   s#   e  Z d    Z d   Z d   Z RS(   c         C   sF   t  j j |   t j |  | | |  t j |  | d  | |  _ d  S(   Ns   application/xhtml+xml(   Re  Rf  R   R   RT  R
   (   R   R   R   R   R
   (    (    sI   /home/sa3ruby/intertwingly.net/code/venus-bzr/planet/vendor/feedparser.pyR   3  s    c         C   sj  | j  d d  } | j  d d  } | j  d d  } | j  d d  } | j  d d  } | j  d d  } | j  d	 d
  } | j  d d
  } | j  d d  } | j  d d  } | j  d d  } | j  d d  } |  j j d  rf|  j j d d  j d  rf| j  d d  } | j  d d  } | j  d
 d  } | j  d d  } | j  d d  } n  | S(   Ns   &#60;s   &lt;s   &#x3c;s   &#x3C;s   &#62;s   &gt;s   &#x3e;s   &#x3E;s   &#38;s   &amp;s   &#x26;s   &#34;s   &quot;s   &#x22;s   &#39;s   &apos;s   &#x27;Rk   R   R   R   R   R8  Rm  (   R   R   Rh   Rj   R   (   R   R6  R	   (    (    sI   /home/sa3ruby/intertwingly.net/code/venus-bzr/planet/vendor/feedparser.pyR7  9  s&    1c         C   s<   d j  g  | D]( \ } } d | | j d d  f ^ q  S(   NR$   s    %s="%s"R8  s   &quot;(   R   R   (   R   R  R   R:   (    (    sI   /home/sa3ruby/intertwingly.net/code/venus-bzr/planet/vendor/feedparser.pyR  N  s    (   R   R   R   R7  R  (    (    (    sI   /home/sa3ruby/intertwingly.net/code/venus-bzr/planet/vendor/feedparser.pyR  2  s   		t   _MicroformatsParserc        !   B   sX  e  Z d  Z d Z d Z d Z d Z d d d d d	 d
 d d d d d d d d d d d d d d d d d d d g Z d d d  d! d" d# d$ d% d& d' d( d) d* d+ d, d- d. d% d/ d d0 d1 d2 d3 d4 d5 d6 d7 d8 d9 d: d; d< g! Z d=   Z	 d>   Z
 d?   Z d@   Z dA   Z dB   Z d dC dC dD  Z dC dE  Z dF   Z dG   Z dH   Z dI   Z RS(J   i   i   i   i   i   t   contactt   acquaintancet   friendt   mets	   co-workert   coworkert	   colleagues   co-residentt
   coresidentt   neighbort   childt   parentt   siblingt   brothert   sistert   spouset   wifet   husbandt   kint   relativet   muset   crushRD   t
   sweetheartt   met   zipt   rart   exet   gzt   tart   tgzt   tbz2t   bz2t   zt   7zt   dmgR]  t   sitt   sitxt   hqxt   debt   rpmt   jart   isot   bint   msit   mp2t   mp3t   oggt   ogmt   mp4t   m4vt   m4at   avit   wmat   wmvc         C   sv   t  j  |  |  _ | |  _ | |  _ t |  t d  k rN | j |  } n  g  |  _ g  |  _ g  |  _ d  |  _
 d  S(   Nu    (   t   BeautifulSoupt   documentR   R   Rk   R   RZ   R\   R>  R   R@  (   R   R	   R   R   (    (    sI   /home/sa3ruby/intertwingly.net/code/venus-bzr/planet/vendor/feedparser.pyR   [  s    					c         C   sU   t  |  t  d  t  d  f k rQ | j d d  j d d  j d d  } n  | S(	   NR$   u    t   ,s   \,R)  s   \;s   
s   \n(   Rk   R   (   R   R   (    (    sI   /home/sa3ruby/intertwingly.net/code/venus-bzr/planet/vendor/feedparser.pyt   vcardEscapef  s    $-c         C   s~   t  j d d |  } d } d } d } xB t |  | k rk | | | |  d 7} | | } d } d } q* W| | | 7} | S(   Ns   ;+$R$   iK   s   
t    iJ   (   R!   R   R  (   R   R   t   sFoldedt   iMaxt   sPrefix(    (    sI   /home/sa3ruby/intertwingly.net/code/venus-bzr/planet/vendor/feedparser.pyt	   vcardFoldk  s    

c         C   s   t  j d d |  j   S(   Ns   \s+R  (   R!   R   RB  (   R   R   (    (    sI   /home/sa3ruby/intertwingly.net/code/venus-bzr/planet/vendor/feedparser.pyt	   normalizex  s    c         C   s7   g  } x* | D]" } | | k r | j  |  q q W| S(   N(   R   (   R   R7   t   resultsR6  (    (    sI   /home/sa3ruby/intertwingly.net/code/venus-bzr/planet/vendor/feedparser.pyt   unique{  s
    c         C   s   t  j d |  S(   Ns   %Y-%m-%dT%H:%M:%SZ(   t   timet   strftime(   R   t   dt(    (    sI   /home/sa3ruby/intertwingly.net/code/venus-bzr/planet/vendor/feedparser.pyt	   toISO8601  s    i    c         C   s%  d   } | j    } d } d } i t j d |  d 6}	 | r | |  j k r g  }
 | d d g |	  } x! | D] } |
 j | d   qr Wt |
  d k } n  | s | | |	  }
 t |
  d k } n  | r-| d	 k r-| d
  }
 t |
  d k } | } | s-| g }
 t |
  d k } q-n  g  } | d k r| | |	  } x3 | D]( } | j | |	  rU| j |  qUqUWn  g  } x* |
 D]" } | | k r| j |  qqWt |  d k } | s,| rg  S| |  j k rd S| |  j	 k rd  S| |  j k rd S| |  j k r%d  Sd  Sn  g  } x| D]} d  } | |  j k rt| rm| j |  q9qt| Sn  | j j    } | |  j k r| d k r| j d  pd j d  j   j d  d } n  | r| r|  j |  p| j   } n  | r!| d k r!| j d  } n  | rK| r<|  j |  pE| j   } n  | r| |  j k r| d k r| j d  } q| d k r| j d  } q| d k r| j d  } qn  | r| r|  j |  p| j   } n  | r| d k r| j d  } n  | r7| r(|  j |  p1| j   } n  | s| j   } t j d d |  } | j d d  } | j d d  } n  | r| r|  j |  p| j   } n  | sq9n  | |  j	 k rt |  } n  | r| j | r|  j |  p|  q9| r|  j |  p| Sq9W| S(   Nc         S   s   d S(   Ni   (    (   R  (    (    sI   /home/sa3ruby/intertwingly.net/code/venus-bzr/planet/vendor/feedparser.pyRa     s    i    i   s   \b%s\bt   classt   ult   olt   liR`   t   preR@  R$   t   aRJ   s   mailto:t   ?t   abbrR   R]  R  t   objectR	   t   alts	   <\S[^>]*>s   
s   
s   (   R   R!   R"   t   NODEt   extendR  t
   findParentR   t   STRINGt   DATER   t   URIR_   t   EMAILRj   R   R  R  RB  t   renderContentsR   R   t   _parse_date_iso8601R  (   R   t   elmRoott	   sPropertyt   iPropertyTypet   bAllowMultiplet   bAutoEscapet   allt   bFoundt
   bNormalizet   propertyMatcht   snapResultst
   containerst	   containert   arFiltert
   snapFiltert   nodet	   arResultst   arValuest	   elmResultt   sValuet	   sNodeName(    (    sI   /home/sa3ruby/intertwingly.net/code/venus-bzr/planet/vendor/feedparser.pyt   getPropertyValue  s    		     4$$   $$$ %c   (         s  d } | s'  j  | d d d } n	 | g } x| D]  g       f d   }     f d   } d      f d  }  j    d d d } x | D] }	 t j d	  j |	 j d
   r> j |	 d  d }
 |
 j d d  }
 |
 j d d  }
 |
 r( j  j	 d |
   n  d |	 d
 <g  |	 _
 q  j  |	 d  j d d }
 |
 r  j  j	 d |
   q q W| d  }  j    d  } | r j  | d  j d d }  j  | d  j d d }  j  | d  j d d   j  | d  j d d  }  j  | d  j d d   j  | d  j d d  }  j  | d  j d d   j  | d  j d d  }  j  j	 d | d | d d j |  d d j |  d d j |    n | r j |  j   } t |  d k r| d  j d  pet | d  d k pet | d  d k oe| d j d!  } | r j  j	 d | d  d | d   q j  j	 d | d d | d    qn   j    d"  j d d } | r j  j	 d# |   n   j    d$  j d d  } | rV j  j	 d% d j |    n  | d&   j    d'  j  } | r j  j	 d(  j |    n   j    d) d d } xt| D]l}  j  | d*  j d d  } | sd+ d, d- d. g } n   j  | d/  j d  d  }  j  | d0  j d  d  }  j  | d1  j d  d  }  j  | d2  j d  d  }  j  | d3  j d  d  }  j  | d4  j d  d  }  j  | d5  j d  d  }   j  j	 d6 d j |  d7 | d | d | d | d | d | d |    qW| d8 d+ d, d- d. g  | d9 d: g  | d; d< g d< g  | d=  | d>   j    d?  }! |! r j  |! d@  j d  d  }"  j  |! dA  j d  d  }#  j  j	 dB |" d |#   n  | dC  | dD  | dE   j    dF  }$ |$ r j  |$ dG  j d  d  }% |% s j    dF  j d  d  }% |% r j  j	 dH |%   qq j  |$ dI  j d d  }&  j  j	 dH |% d d j |&    n   j    dJ  j d d   j    dK  j d d  }' |' rO j  j	 dL d j |'    n  | dM  | dN  | dO  | dP  | dQ  | d
  | dR   r7 dS dT g  dU g  | d j   d 7} q7 q7 W| j   S(V   NR$   R@  R  i   c            sU    j    |   j d d } | rK  j  j |  j   d |   n  | pT d S(   NR  i   R   R$   (   R  R  R   R  t   upper(   R  R  (   t   elmCardR   t   arLines(    sI   /home/sa3ruby/intertwingly.net/code/venus-bzr/planet/vendor/feedparser.pyt   processSingleString  s    'c            sP   j    |   j  } | rLd } d } d } | j d  r d } | j d  d j d  j   } | j d d  j   } n]  j    |   } | r |  d	 k r d
 } n  | j d d  j   j d  j   j   } n  | j   } | d k r d } n  | rd | j   } n   j  j	 |  j   | | | d |   n  d  S(   NR$   s   data:s   ;ENCODING=bR)  i    t   /R  i   RK   s
   ;VALUE=uriRk   s   OCTET-STREAMs   ;TYPE=R   (
   R  R  R|   R   R  Rj   RB  R  R   R  (   R  R  t   sContentTypet	   sEncodingt	   sValueKeyt   elmValue(   R  R   R  (    sI   /home/sa3ruby/intertwingly.net/code/venus-bzr/planet/vendor/feedparser.pyt   processSingleURI  s(    "	0	c            s    j    |  d d } x | D] }  j  | d  j d d  } | r_  j | |  } n  | sn | } n   j  | d  j d  } | r  j  j |  j   d d j |  d |   q q Wd  S(	   NR  i   Rk   R`   i    s   ;TYPE=R  R   (   R  R  R  R  R   R  R  R   (   R  t   arDefaultTypet   arForceTypeR  R  t   arTypeR  (   R  R   R  (    sI   /home/sa3ruby/intertwingly.net/code/venus-bzr/planet/vendor/feedparser.pyt   processTypeValue  s    	t   agents	   \bvcard\bR  s   
s   \nR)  s   \;s   AGENT:R`   R  s   AGENT;VALUE=uri:t   fnR   s   family-names
   given-names   additional-names   additional-namess   honorific-prefixs   honorific-prefixess   honorific-suffixs   honorific-suffixess   N:R  i   i    t   .s   sort-strings   SORT-STRING:t   nicknames	   NICKNAME:t   photot   bdays   BDAY:t   adrRk   t   intlt   postalt   parcelt   works   post-office-boxs   extended-addresss   street-addresst   localityt   regions   postal-codes   country-names	   ADR;TYPE=R   R=  t   telt   voiceR   t   internett   mailert   tzR   t   latitudet	   longitudes   GEO:R   t   roleR   t   orgs   organization-names   ORG:s   organization-unitRY   Re   s   CATEGORIES:t   notet   revt   soundt   uidRK   Rn   s   BEGIN:vCards   VERSION:3.0s	   END:vCard(   R  R   R!   R"   R   Rj   t
   findVCardsR   R   R  t   contentsR  R  R   R  R   R  R   R  R  RB  ((   R   R  t   bAgentParsingt   sVCardst   arCardsR  R  R  t   arAgentt   elmAgentt   sAgentValuet   sFNt   elmNamet   sFamilyNamet
   sGivenNamet   arAdditionalNamest   arHonorificPrefixest   arHonorificSuffixest   arNamest   bFamilyNameFirstt   sSortStringt
   arNicknamet   dtBdayt   arAdrt   elmAdrR  t   sPostOfficeBoxt   sExtendedAddresst   sStreetAddresst	   sLocalityt   sRegiont   sPostalCodet   sCountryNamet   elmGeot	   sLatitudet
   sLongitudet   elmOrgt   sOrganizationNamet   arOrganizationUnitt
   arCategory(    (   R  R  R   sI   /home/sa3ruby/intertwingly.net/code/venus-bzr/planet/vendor/feedparser.pyR    s    	!
!:::5)-0&
&D

%


 .:&






c         C   s   | j  } | j d  s d S| j d d  j   } | j d  sq | j d  sq | j d  ru | j d  ru d	 St j | d  d
 } | j d  d k r d S| j d  j	   j
   } | |  j k S(   NRJ   i    Rk   R$   s   audio/s   video/s   application/R   i   i   R  i(   t   attrMapRh   Rj   RB  R|   R   R   R   R   R  R   t   known_binary_extensions(   R   t   elmR  t   linktypet   patht   fileext(    (    sI   /home/sa3ruby/intertwingly.net/code/venus-bzr/planet/vendor/feedparser.pyt   isProbablyDownloadable  s    	  c         C   s,  d   } x|  j  | i t j d  d 6 D] } | j d  } | sM q, n  t j t |  j |   \ } } } } } }	 | j d  }
 |
 j   } | s |
 j   } n  t j	 | | d j
 |
  d d d f  } | j d  s | d 7} n  |  j j t i | d 6| d 6| j pd d	 6  q, Wd  S(
   Nc         S   s   d S(   Ni   (    (   R  (    (    sI   /home/sa3ruby/intertwingly.net/code/venus-bzr/planet/vendor/feedparser.pyRa     s    s   \btag\bR]   RJ   R  R$   R[   Rf   R=  (   R  R!   R"   Rj   R   R   R   R   R  R   R   R   RZ   R   R<   R   (   R   R  R;  RJ   t	   urlschemeR  R=  t   paramst   queryt   fragmentt   segmentsRp   t	   tagscheme(    (    sI   /home/sa3ruby/intertwingly.net/code/venus-bzr/planet/vendor/feedparser.pyt   findTags  s    	) -*c         C   s   d   } t  j d  } x |  j | i t  j d  d 6 D] } | j | j d d   rs |  j |  rs q; n  | j |  j k r; |  j j | j  | j	 r | j d  r | j	 |  j d d <q q; q; Wd  S(	   Nc         S   s   d S(   Ni   (    (   R  (    (    sI   /home/sa3ruby/intertwingly.net/code/venus-bzr/planet/vendor/feedparser.pyRa     s    s   \benclosure\bs   .+RJ   R]   R$   R   i(
   R!   R"   R  R   Rj   R?  R9  R\   R   R   (   R   R  t   enclosure_matchR;  (    (    sI   /home/sa3ruby/intertwingly.net/code/venus-bzr/planet/vendor/feedparser.pyt   findEnclosures  s    	), c         C   s   d   } x |  j  | i t j d  d 6t j d  d 6 D] } | j d d  j   } g  } x- | D]% } | |  j k rg | j |  qg qg W| r< |  j j i | d 6| j d d  d 6| j d 6 q< q< Wd  S(   Nc         S   s   d S(   Ni   (    (   R  (    (    sI   /home/sa3ruby/intertwingly.net/code/venus-bzr/planet/vendor/feedparser.pyRa     s    s   .+R]   RJ   R$   R?  R_   (	   R  R!   R"   Rj   R   t   known_xfn_relationshipsR   R>  R   (   R   R  R;  t   relst   xfn_relsR]   (    (    sI   /home/sa3ruby/intertwingly.net/code/venus-bzr/planet/vendor/feedparser.pyt   findXFN  s    	9(   R   R   R  R  R  R  R  RI  R:  R   R  R  R  R  R  R  R  R?  RF  RH  RL  (    (    (    sI   /home/sa3ruby/intertwingly.net/code/venus-bzr/planet/vendor/feedparser.pyR  Q  s&   Qi						T			
c         C   s   t  s
 d  St r# t j j d  n  t |  | |  } | j | j  | _ | j	   | j
   | j   i | j d 6| j d 6| j d 6| j d 6S(   Ns   entering _parseMicroformats
RZ   R\   R>  R@  (   R  R   R   R   R   R  R  R  R@  RF  RH  RL  RZ   R\   R>  (   t
   htmlSourcet   baseURIR   R}  (    (    sI   /home/sa3ruby/intertwingly.net/code/venus-bzr/planet/vendor/feedparser.pyRM    s      


t   _RelativeURIResolverc           B   st   e  Z d d  d! d" d# d$ d% d& d' d( d) d* d+ d, d- d. d/ d0 d1 d2 d3 d4 d5 d6 d7 g Z d   Z d   Z d   Z RS(8   R  RJ   t   applett   codebaseRU  t
   blockquotet   citet   bodyt
   backgroundt   delt   formt   actionR[  t   longdescR  t   iframet   headt   profileR]  t   usemapR^  t   insR^   R  t   classidR	   t   qt   scriptc         C   s    t  j |  | |  | |  _ d  S(   N(   RT  R   R   (   R   R   R   Rk   (    (    sI   /home/sa3ruby/intertwingly.net/code/venus-bzr/planet/vendor/feedparser.pyR   		  s    c         C   s   t  |  j | j    S(   N(   R   R   RB  (   R   R   (    (    sI   /home/sa3ruby/intertwingly.net/code/venus-bzr/planet/vendor/feedparser.pyR5  	  s    c         C   s   t  r) t j j d | t |  f  n  |  j |  } g  | D]< \ } } | | | f |  j k rr |  j |  pu | f ^ q? } t j	 |  | |  d  S(   Ns    tag: [%s] with attributes: [%s]
(
   R   R   R   R   R   Rq  t   relative_urisR5  RT  R  (   R   Rp   R  Rn   R`   (    (    sI   /home/sa3ruby/intertwingly.net/code/venus-bzr/planet/vendor/feedparser.pyR  	  s
    #I(   R  s   href(   RP  RQ  (   s   areas   href(   RR  RS  (   RT  RU  (   s   delRS  (   RW  s   action(   s   frameRY  (   s   frames   src(   RZ  RY  (   RZ  s   src(   s   headR\  (   s   imgRY  (   s   imgs   src(   s   imgR]  (   s   inputs   src(   s   inputR]  (   R^  RS  (   s   links   href(   s   objectR_  (   s   objectRQ  (   s   objects   data(   s   objectR]  (   R`  RS  (   Ra  s   src(   R   R   Rb  R   R5  R  (    (    (    sI   /home/sa3ruby/intertwingly.net/code/venus-bzr/planet/vendor/feedparser.pyRO    s8   			c         C   sB   t  r t j j d  n  t | | |  } | j |   | j   S(   Ns   entering _resolveRelativeURIs
(   R   R   R   R   RO  R=   R[  (   RM  RN  R   Rk   R}  (    (    sI   /home/sa3ruby/intertwingly.net/code/venus-bzr/planet/vendor/feedparser.pyRL  	  s
    Rc  c           B   s  e  Z d  d d d d d d d d d	 d
 d d d d d d d d d d d d d d d d d d d d d d  d! d" d# d$ d% d& d' d( d) d* d+ d, d- d. d/ d0 d1 d2 d3 d4 d5 d6 d7 d8 d9 d: d; d< d= d> d? d@ dA dB dC dD dE dF dG dH dI dJ dK dL dM dN dO dP dQ dR dS dT dU dV dW dX dY dZ d[ d\ d] d^ d_ d` da db gc Z d dc dd de df dg dh di dj dk dl dm dn do dp dq dr ds dt du dv dw dx dy dz d{ d| d} d d~ d d d d d d d d d d d d d d d d d d d d d d d d& d d d d d d d d d d d d d d d d d5 d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d dO d d d d d d d d d d d d d d d d d d d d d d d g Z d d d g Z d d d d d d d d d d d d d d d d% d d d d d d d d d d d ddddddddd	d
ddddddd dd g. Z dddddddddd dddddd d!d"d#d$d%d&d'd(d)d d*d+d,d-d.d/d0d1d2d3d4d5d6g' Z e j d7d8 Z	 d9d:d;d<d=d>d?d@dAdBdCdDdEdFdGdHdIdJdKdLdMdNdOdPdQdRdSdTdUd'dVg Z
 dWdg dXdXdXdYdZd[d\d]d d^d_d`dadbdcddd d dedfdgdhdididjdkd dldmdmdmdndod dpdqdrdsdtdud d dvdwdxdydzg1 Z d  d{d|d}d~dddddddddddddddddddddddddddd ddg# Z ddddddddddddddd~ d ddddddddd dd dddd d dd d d ddddddddd ddd dddddd dddddddd d d ddddddddddddddddddddddddddddddddddddddd dddd dddddddddddd d dddddddvddwddxd	d d
dydzddddg Z dZ dZ ddddddddg Z d  Z d  Z d  Z d  Z d  Z d  Z d  Z RS(  R  R  t   acronymt   addressRU  t   articlet   asideR   t   bt   bigRR  RW  t   buttont   canvast   captiont   centerRS  t   codeRX  t   colgroupRY  t   datagridt   datalistt   ddRV  t   detailst   dfnt   dialogt   dirR   t   dlR  t   ems   event-sourcet   fieldsett   figuret   footert   fontRW  t   headert   h1t   h2t   h3t   h4t   h5t   h6R\  R/  R]  R^  R^  R`  t   kbdR=  t   legendR  Ry  R   t   menut   metert   multicolt   navt   nextidR  R[  t   optgroupt   optionR}  R  t   progressR`  R   t   sampt   sectiont   selectt   smallR  R  t   spacert   spant   striket   strongR   t   supt   tablet   tbodyt   tdt   textareaR  t   tfoott   tht   theadt   trt   ttt   uR  t   vart   videot   noscriptt   accepts   accept-charsett	   accesskeyRX  t   alignR  t   autocompletet	   autofocust   axisRU  t   balancet   bgcolort   bgpropertiest   bordert   bordercolort   bordercolordarkt   bordercolorlightt   bottompaddingt   cellpaddingt   cellspacingt   cht	   challengeR   t   charofft   chofft   charsett   checkedR  Ra  t   colort   colst   colspant   compactt   contenteditablet   controlst   coordsR	   t   datafldt   datapagesizet   datasrct   datetimeRt   t   delayt   disabledt	   draggablet   dynsrct   enctypeR   t   facet   forR[  t
   galleryimgt   guttert   headersR   t	   hidefocust   hiddent   highRJ   t   hreflangt   hspaceR   RA   t	   inputmodet   ismapt   keytypet   leftspacingR   t   listRY  t   loopt	   loopcountt   loopendt	   loopstartt   lowt   lowsrct   maxt	   maxlengthR   R  t   mint   multipleR_   t   nohreft   noshadet   nowrapt   opent   optimumt   patternt   pings
   point-sizet   promptt   pqgt
   radiogroupt   readonlyR]   s
   repeat-maxs
   repeat-minR   t   requiredR  t   rightspacingt   rowst   rowspant   rulest   scopet   selectedt   shapet   sizeR  R    t   stepRH   t   suppresst   tabindext   targett   templateR   t
   toppaddingRk   t   unselectableR]  t   urnt   valignR`   t   variablet   volumet   vspacet   vrmlR   t   wraps   xml:langRa  RP  t   stylet   azimuths   background-colors   border-bottom-colors   border-collapses   border-colors   border-left-colors   border-right-colors   border-top-colort   cursort	   directiont   displayt	   elevationt   floats   font-familys	   font-sizes
   font-styles   font-variants   font-weights   letter-spacings   line-heightt   overflowt   pauses   pause-afters   pause-beforet   pitchs   pitch-ranget   richnesst   speaks   speak-headers   speak-numerals   speak-punctuations   speech-ratet   stresss
   text-aligns   text-decorations   text-indents   unicode-bidis   vertical-aligns   voice-familys   white-spacet   autot   aquat   blackt   blockt   bluet   boldt   botht   bottomt   brownt   collapset   dashedt   dottedt   fuchsiat   grayt   greens
   !importantt   italict   leftt   limet   maroont   mediumt   nonet   navyt   normalt   olivet   pointert   purplet   redt   rightt   solidt   silvert   tealt   topt   transparentt	   underlinet   whitet   yellows(   ^(#[0-9a-f]+|rgb\(\d+%?,\d*%?,?\d*%?\)?|s4   \d{0,2}\.?\d{0,2}(cm|em|ex|in|mm|pc|pt|px|%|,|\))?)$t
   annotations   annotation-xmlt   mactionR   t   merrort   mfencedt   mfract   mit   mmultiscriptst   mnt   mot   movert   mpaddedt   mphantomt   mprescriptst   mroott   mrowt   mspacet   msqrtt   mstylet   msubt   msubsupt   msupt   mtablet   mtdt   mtextt   mtrt   mundert
   munderovert	   semanticst
   actiontypet   columnalignRo  t   columnlinest   columnspacingt
   columnspanRY  t   displaystyleR   t   equalcolumnst	   equalrowst   fencet	   fontstylet
   fontweightt   linethicknesst   lspacet   mathbackgroundt	   mathcolort   mathvariantt   maxsizet   minsizet   othert   rowalignt   rowlinest
   rowspacingt   rspacet   scriptlevelt	   selectiont	   separatort
   separatorst   stretchys
   xlink:hrefs
   xlink:shows
   xlink:typeR   s   xmlns:xlinkt   animatet   animateColort   animateMotiont   animateTransformt   circlet   defst   desct   ellipset   foreignObjects	   font-faces   font-face-names   font-face-srct   gt   glypht   hkernt   linearGradientt   linet   markert   metadatas   missing-glypht   mpathR=  t   polygont   polylinet   radialGradientt   rectt   sett   stopR   t   switchR!  t   tspant   uses   accent-heightt
   accumulatet   additivet
   alphabetics   arabic-formt   ascentt   attributeNamet   attributeTypet   baseProfilet   bboxt   begint   byt   calcModes
   cap-heights   color-renderingR   t   cxt   cyt   dt   dxt   dyt   descentt   durt   fills   fill-opacitys	   fill-rules   font-stretcht   fromt   fxt   fyt   g1t   g2s
   glyph-namet   gradientUnitst   hangings   horiz-adv-xs   horiz-origin-xt   ideographicR9   t	   keyPointst
   keySplinest   keyTimest   mathematicals
   marker-ends
   marker-mids   marker-startt   markerHeightt   markerUnitst   markerWidtht   offsett   opacityt   orientt   origins   overline-positions   overline-thicknesss   panose-1t
   pathLengtht   pointst   preserveAspectRatiot   rt   refXt   refYt   repeatCountt	   repeatDurt   requiredExtensionst   requiredFeaturest   restartt   rotatet   rxt   ryt   slopet   stemht   stemvs
   stop-colors   stop-opacitys   strikethrough-positions   strikethrough-thicknesst   strokes   stroke-dasharrays   stroke-dashoffsets   stroke-linecaps   stroke-linejoins   stroke-miterlimits   stroke-opacitys   stroke-widtht   systemLanguages   text-anchort   tot	   transformt   u1t   u2s   underline-positions   underline-thicknessR   s   unicode-ranges   units-per-emt   valuesR   t   viewBoxt
   visibilityt   widthsR  s   x-heightt   x1t   x2s   xlink:actuates   xlink:arcroles
   xlink:roles   xlink:titles   xml:bases	   xml:spacet   yt   y1t   y2t
   zoomAndPanc         C   s,   t  j |   d |  _ d |  _ d |  _ d  S(   Ni    (   RT  Rg  t   unacceptablestackt   mathmlOKR   (   R   (    (    sI   /home/sa3ruby/intertwingly.net/code/venus-bzr/planet/vendor/feedparser.pyRg  	  s    		c      
   C   s  |  j  } i  } | |  j k s' |  j r&| |  j k rH |  j d 7_ n  | d k rr d | k rr |  j d 7_ n  | d k r d | k r |  j d 7_ n  |  j r | |  j k r |  j } q&|  j r| |  j k r|  j	 sg  |  j
 D] } | j   ^ q } g  |  j
 D] } | | k r| ^ q} | |  _
 t g  | D] } | j   | f ^ q> |  _	 g  |  j D] } | j   ^ ql} g  |  j D] } | | k r| ^ q} | |  _ t g  | D] } | j   | f ^ q |  _ n  |  j
 } |  j j | |  } |  j	 } q&| |  j k r&d  Sn  |  j s8|  j rlt d   |  rld | k ri| j d  qiqln  g  }	 x |  j |  D]z \ }
 } |
 | k r| j |
 |
  }
 |	 j |
 | f  q|
 d
 k r|  j |  } | r|	 j |
 | f  qqqWt j |  | |	  d  S(   Ni   R   R   s"   http://www.w3.org/1998/Math/MathMLR   s   http://www.w3.org/2000/svgc         S   s   |  \ } } | j  d  S(   Ns   xlink:(   R|   (   t   .0R   R:   (    (    sI   /home/sa3ruby/intertwingly.net/code/venus-bzr/planet/vendor/feedparser.pyRa   	  s    s   xmlns:xlinks   http://www.w3.org/1999/xlinkR  (   s   xmlnss"   http://www.w3.org/1998/Math/MathML(   s   xmlnss   http://www.w3.org/2000/svg(   s   xmlns:xlinks   http://www.w3.org/1999/xlink(   s   xmlns:xlinks   http://www.w3.org/1999/xlink(   t   acceptable_attributesRd  R   t"   unacceptable_elements_with_end_tagR  R  t   mathml_elementst   mathml_attributest   svg_elementst   svg_attr_mapt   svg_attributesR   R;   t   svg_elem_mapRj   Rg  R   Rq  t   sanitize_styleRT  R  (   R   Rp   R  R  Ri   t   attrR   R  t   mixt   clean_attrsRn   R`   t   clean_value(    (    sI   /home/sa3ruby/intertwingly.net/code/venus-bzr/planet/vendor/feedparser.pyR  	  sP    		"(	."(	1	 c         C   s   | |  j  k r | |  j k r0 |  j d 8_ n  |  j rr | |  j k rr | d k r |  j r |  j d 8_ q q |  j r | |  j k r |  j j | |  } | d k r |  j r |  j d 8_ q q d  Sn  t	 j
 |  |  d  S(   Ni   R   R   (   Rd  R  R  R  R  R   R  R  Rj   RT  R  (   R   Rp   (    (    sI   /home/sa3ruby/intertwingly.net/code/venus-bzr/planet/vendor/feedparser.pyR  	  s      c         C   s   d  S(   N(    (   R   R!  (    (    sI   /home/sa3ruby/intertwingly.net/code/venus-bzr/planet/vendor/feedparser.pyR,  	  s    c         C   s   d  S(   N(    (   R   R!  (    (    sI   /home/sa3ruby/intertwingly.net/code/venus-bzr/planet/vendor/feedparser.pyR-  	  s    c         C   s    |  j  s t j |  |  n  d  S(   N(   R  RT  R   (   R   R!  (    (    sI   /home/sa3ruby/intertwingly.net/code/venus-bzr/planet/vendor/feedparser.pyR   	  s    	c         C   su  t  j d  j d |  } t  j d |  s1 d St  j d d |  j   rP d Sg  } xt  j d |  D] \ } } | s qi n  | j   |  j k r | j | d | d  qi | j	 d	  d
 j   d k r*x | j	   D], } | |  j
 k r |  j j |  r Pq q W| j | d | d  qi |  j ri | j   |  j k ri | j | d | d  qi qi Wd j |  S(   Ns   url\s*\(\s*[^\s)]+?\s*\)\s*R  s@   ^([:,;#%.\sa-zA-Z0-9!]|\w-\w|'[\s\w]+'|"[\s\w]+"|\([\d,\s]+\))*$R$   s   \s*[-\w]+\s*:\s*[^:;]*;?s   ([-\w]+)\s*:\s*([^:;]*)s   : R)  R   i    RU  R  t   margint   padding(   s
   backgroundR  s   marginR  (   R!   R"   R   R   RB  Rh  R   t   acceptable_css_propertiesR   R   t   acceptable_css_keywordst   valid_css_valuesR   t   acceptable_svg_propertiesR   (   R   R  t   cleant   propR`   t   keyword(    (    sI   /home/sa3ruby/intertwingly.net/code/venus-bzr/planet/vendor/feedparser.pyR  	  s(        N(   R   R   Rd  R  R  R  R  R!   R"   R  R  R  R  R  R   R  R  R  Rg  R  R  R,  R-  R   R  (    (    (    sI   /home/sa3ruby/intertwingly.net/code/venus-bzr/planet/vendor/feedparser.pyRc  	  s   !			
							3				c      
      s  t  | |  } | j |   | j   } t rd  } xz t D]r } yb | d k rs d d l m     f d   } Pn/ | d k r d d l m	   f d   } Pn  Wq; q; Xq; W| r| |  | d  k } | r | j
 d	  } n  | | d
 d d d d d d d } | r#t | d	  } n  | j d  rs| j d d  d } | j d  rs| j d d  d } qsn  | j d  r| j d d  d } qqn  | j   j d d  } | S(   NR   i(   t   parseStringc            s   t    |  |   S(   N(   R   (   R	   t   kwargs(   t   _utidy(    sI   /home/sa3ruby/intertwingly.net/code/venus-bzr/planet/vendor/feedparser.pyt   _tidy
  s    R   (   t   Tidyc            s"     j  |  |  \ } } }  } |  S(   N(   t   tidy(   R	   R  t   nerrorst	   nwarningst	   errordata(   t   _mxtidy(    sI   /home/sa3ruby/intertwingly.net/code/venus-bzr/planet/vendor/feedparser.pyR  
  s    u    s   utf-8t   output_xhtmli   t   numeric_entitiesR  i    t   char_encodingt   utf8s   <bodyR   s   </bodys   
s   
(   Rc  R=   R[  t   TIDY_MARKUPR   t   PREFERRED_TIDY_INTERFACESR  R  t   mx.TidyR  R   R   t   countR   RB  R   (   RM  R   Rk   R}  R	   R  t   tidy_interfaceR  (    (   R  R  sI   /home/sa3ruby/intertwingly.net/code/venus-bzr/planet/vendor/feedparser.pyRS  
  s@    $t   _FeedURLHandlerc           B   s>   e  Z d    Z d   Z d   Z e Z e Z e Z d   Z RS(   c         C   s]   | d d k r5 | d k r5 |  j  | | | | |  St j | | | j    } | | _ | S(   Nid   i   i0  (   t   http_error_302R   t
   addinfourlt   get_full_urlt   status(   R   t   reqt   fpRm  t   msgR  t   infourl(    (    sI   /home/sa3ruby/intertwingly.net/code/venus-bzr/planet/vendor/feedparser.pyt   http_error_default,
  s
    	c         C   sp   | j  j d  r6 t j j |  | | | | |  } n t j | | | j    } t | d  sl | | _	 n  | S(   Nt   locationR  (
   R;   Rh   t   urllib2t   HTTPRedirectHandlerR  R   R  R  Rv   R  (   R   R  R   Rm  R  R  R  (    (    sI   /home/sa3ruby/intertwingly.net/code/venus-bzr/planet/vendor/feedparser.pyR  3
  s    $c         C   sp   | j  j d  r6 t j j |  | | | | |  } n t j | | | j    } t | d  sl | | _	 n  | S(   NR  R  (
   R;   Rh   R  R  t   http_error_301R   R  R  Rv   R  (   R   R  R   Rm  R  R  R  (    (    sI   /home/sa3ruby/intertwingly.net/code/venus-bzr/planet/vendor/feedparser.pyR  <
  s    $c         C   s   t  j  | j    d } y t j j   d d k s; t  t d  k sM t  t j | j	 d j d  d  j d  \ } } t
 j d | d  d }	 |  j |	 | | |  |  j d	 | | |  }
 |  j   |
 SWn |  j | | | | |  SXd  S(
   Ni   i    s   2.3.3t   AuthorizationR  R   s   realm="([^"]*)"s   WWW-Authenticates   www-authenticate(   R   R  R   R   R   R}   R;  R   RC  R  R!   Rh  t   add_passwordt   http_error_auth_reqedt   reset_retry_countR  (   R   R  R   Rm  R  R  t   hostt   usert   passwt   realmt   retry(    (    sI   /home/sa3ruby/intertwingly.net/code/venus-bzr/planet/vendor/feedparser.pyt   http_error_401I
  s    2
(	   R   R   R  R  R  t   http_error_300t   http_error_303t   http_error_307R  (    (    (    sI   /home/sa3ruby/intertwingly.net/code/venus-bzr/planet/vendor/feedparser.pyR  +
  s   					c         C   sP  t  |  d  r |  S|  d k r& t j St j |   d d3 k r(| sN t } n  d2 } t r t j |   \ } } t j	 |  \ }	 } |	 r t j
 |	  \ }
 }	 |
 r d | |	 | f }  t j |
  j   } q q n  y= t |  t  r |  j d  }  n |  j d	  j d  }  Wn n Xt j |   } | j d
 |  | rU| j d |  n  t |  t d  k r|t |  } n  | rd d d d d d d g } d d d d d d d d d d d d g } | j d  d! | | d" | d# | | d$ d$ | d | d% | d& | d' f  n  | r4| j d( |  n  t rSt rS| j d) d*  nB t rl| j d) d+  n) t r| j d) d,  n | j d) d  | r| j d- d. |  n  t r| j d/ t  n  | j d0 d1  t t j t t   g |   } g  | _ z | j |  SWd2 | j   Xn  y t |   SWn n Xt  t! |    S(4   s  URL, filename, or string --> stream

    This function lets you define parsers that take any input source
    (URL, pathname to local or network file, or actual data as a string)
    and deal with it in a uniform manner.  Returned object is guaranteed
    to have all the basic stdio read methods (read, readline, readlines).
    Just .close() the object when you're done with it.

    If the etag argument is supplied, it will be used as the value of an
    If-None-Match request header.

    If the modified argument is supplied, it can be a tuple of 9 integers
    (as returned by gmtime() in the standard Python time module) or a date
    string in any format supported by feedparser. Regardless, it MUST
    be in GMT (Greenwich Mean Time). It will be reformatted into an
    RFC 1123-compliant date and used as the value of an If-Modified-Since
    request header.

    If the agent argument is supplied, it will be used as the value of a
    User-Agent request header.

    If the referrer argument is supplied, it will be used as the value of a
    Referer[sic] request header.

    If handlers is supplied, it is a list of handlers used to build a
    urllib2 opener.
    t   readR   i    t   httpt   httpst   ftps	   %s://%s%st   idnas   utf-8s
   User-Agents   If-None-MatchR$   t   Mont   Tuet   Wedt   Thut   Frit   Satt   Sunt   Jant   Febt   Mart   Aprt   Mayt   Junt   Jult   Augt   Sept   Octt   Novt   Decs   If-Modified-Sinces#   %s, %02d %s %04d %02d:%02d:%02d GMTi   i   i   i   i   i   t   Referers   Accept-encodings   gzip, deflatet   gzipt   deflateR  s   Basic %st   Accepts   A-IMR=   N(   s   https   httpss   ftp("   Rv   R   t   stdinR   t
   USER_AGENTR   R;  R   t	   splittypet	   splithostt	   splitusert   encodestringRB  t
   isinstanceR   R   t   decodeR  t   Requestt
   add_headerRk   R  R.  t   zlibt   ACCEPT_HEADERt   applyt   build_openert   tupleR  t
   addheadersR  Ro  t	   _StringIOR   (   t   url_file_stream_or_stringt   etagRL   R  t   referrert   handlerst   autht   urltypet   restt   realhostt   user_passwdt   requestt   short_weekdayst   monthst   opener(    (    sI   /home/sa3ruby/intertwingly.net/code/venus-bzr/planet/vendor/feedparser.pyt   _open_resourcea
  sp    	*T"	c         C   s   t  j d |   d S(   sL   Register a date handler function (takes string, returns 9-tuple date in GMT)i    N(   t   _date_handlerst   insert(   t   func(    (    sI   /home/sa3ruby/intertwingly.net/code/venus-bzr/planet/vendor/feedparser.pyt   registerDateHandler
  s    s   YYYY-?MM-?DDs   YYYY-0MM?-?DDs   YYYY-MMs	   YYYY-?OOOs
   YY-?MM-?DDs   YY-?OOOt   YYYYs   -YY-?MMs   -OOOs   -YYs   --MM-?DDs   --MMs   ---DDt   CCs   (?P<year>\d{4})t   YYs   (?P<year>\d\d)t   MMs   (?P<month>[01]\d)t   DDs   (?P<day>[0123]\d)t   OOOs   (?P<ordinal>[0123]\d\d)s   (?P<century>\d\d$)s$   (T?(?P<hour>\d{2}):(?P<minute>\d{2})s   (:(?P<second>\d{2}))?s   (\.(?P<fracsecond>\d+))?s6   (?P<tz>[+-](?P<tzhour>\d{2})(:(?P<tzmin>\d{2}))?|Z)?)?c         C   s  d } x$ t D] } | |   } | r Pq q W| s7 d S| j   d k rM d S| j   } | j d d  } | r t |  } n d } | j d d  } | s | d k r t j   d } nI t |  d k r d t t j   d d  t |  } n t |  } | j d d	  } | s,| d	 k rN| r;d
 } qNt j   d
 } n  t |  } | j d d  } | s| r| } q| j d d  s| j d d  s| j d d  rd
 } qt j   d } n t |  } d | j	   k rt | d  d
 d d
 } n  x< d d d d d g D]% } | j | d  s&d | | <q&q&Wt | j d d   }	 t | j d d   }
 t t
 | j d d    } d } d } | | | |	 |
 | | | | g	 } | j d  } | r| d k r| d d	 k rB| d c t | j d d   7<| d c t | j d d   7<q| d d k r| d c t | j d d   8<| d c t | j d d   8<qd Sn  t j t j |   S(   s<   Parse a variety of ISO-8601-compatible formats like 20040105Ni    t   ordinalt   years   --i   id   t   monthR   i   t   dayt   centuryt   hourt   minutet   secondt   tzhourt   tzminiR  t   Zi   i   t   +(   i    i    (   R   t   _iso8601_matchesR  t	   groupdictRj   R  R  t   gmtimeR  Rr   R
  t	   localtimet   mktime(   t
   dateStringRy  t   _iso8601_matchRA  RZ  R[  R\  R]  t   fieldR_  R`  Ra  t   weekdayt   daylight_savings_flagt   tmR  (    (    sI   /home/sa3ruby/intertwingly.net/code/venus-bzr/planet/vendor/feedparser.pyR  
  sr       +		$	"%"%u   년u   월u   일u   오전u   오후s;   (\d{4})%s\s+(\d{2})%s\s+(\d{2})%s\s+(\d{2}):(\d{2}):(\d{2})u>   (\d{4})-(\d{2})-(\d{2})\s+(%s|%s)\s+(\d{,2}):(\d{,2}):(\d{,2})c         C   s   t  j |   } | s d Sd i | j d  d 6| j d  d 6| j d  d 6| j d	  d
 6| j d  d 6| j d  d 6d d 6} t r t j j d |  n  t |  S(   s8   Parse a string according to the OnBlog 8-bit date formatNsE   %(year)s-%(month)s-%(day)sT%(hour)s:%(minute)s:%(second)s%(zonediff)si   R[  i   R\  i   R]  i   R_  i   R`  i   Ra  s   +09:00t   zonediffs   OnBlog date parsed as: %s
(   t   _korean_onblog_date_reR   R  R   R   R   R   t   _parse_date_w3dtf(   Rk  Ry  t	   w3dtfdate(    (    sI   /home/sa3ruby/intertwingly.net/code/venus-bzr/planet/vendor/feedparser.pyt   _parse_date_onblogF  s     30 c         C   s  t  j |   } | s d St | j d   } | j d  } | t k rV | d 7} n  t |  } t |  d k r d | } n  d i | j d  d 6| j d	  d
 6| j d  d 6| d 6| j d  d 6| j d  d 6d d 6} t rt j	 j
 d |  n  t |  S(   s6   Parse a string according to the Nate 8-bit date formatNi   i   i   i   t   0sE   %(year)s-%(month)s-%(day)sT%(hour)s:%(minute)s:%(second)s%(zonediff)sR[  i   R\  i   R]  R_  i   R`  i   Ra  s   +09:00Rq  s   Nate date parsed as: %s
(   t   _korean_nate_date_reR   R  R  t
   _korean_pmR   R  R   R   R   R   Rs  (   Rk  Ry  R_  t   ampmRt  (    (    sI   /home/sa3ruby/intertwingly.net/code/venus-bzr/planet/vendor/feedparser.pyt   _parse_date_nateR  s"     3' s9   (\d{4})-(\d{2})-(\d{2})\s+(\d{2}):(\d{2}):(\d{2})(\.\d+)?c         C   s   t  j |   } | s d Sd i | j d  d 6| j d  d 6| j d  d 6| j d	  d
 6| j d  d 6| j d  d 6d d 6} t r t j j d |  n  t |  S(   s2   Parse a string according to the MS SQL date formatNsE   %(year)s-%(month)s-%(day)sT%(hour)s:%(minute)s:%(second)s%(zonediff)si   R[  i   R\  i   R]  i   R_  i   R`  i   Ra  s   +09:00Rq  s   MS SQL date parsed as: %s
(   t   _mssql_date_reR   R  R   R   R   R   Rs  (   Rk  Ry  Rt  (    (    sI   /home/sa3ruby/intertwingly.net/code/venus-bzr/planet/vendor/feedparser.pyt   _parse_date_mssqlg  s     30 u   Janu   Ιανu   Febu   Φεβu   Maru   Μάώu   Μαώu   Apru   Απρu   Mayu   Μάιu   Μαϊu   Μαιu   Junu   Ιούνu   Ιονu   Julu   Ιούλu   Ιολu   Augu   Αύγu   Αυγu   Sepu   Σεπu   Octu   Οκτu   Novu   Νοέu   Νοεu   Decu   Δεκu   Sunu   Κυρu   Monu   Δευu   Tueu   Τριu   Wedu   Τετu   Thuu   Πεμu   Friu   Παρu   Satu   ΣαβuL   ([^,]+),\s+(\d{2})\s+([^\s]+)\s+(\d{4})\s+(\d{2}):(\d{2}):(\d{2})\s+([^\s]+)c         C   s   t  j |   } | s d Sy* t | j d  } t | j d  } Wn d SXd i | d 6| j d  d 6| d 6| j d	  d
 6| j d  d 6| j d  d 6| j d  d 6| j d  d 6} t r t j j d |  n  t	 |  S(   s6   Parse a string according to a Greek 8-bit date format.Ni   i   sP   %(wday)s, %(day)s %(month)s %(year)s %(hour)s:%(minute)s:%(second)s %(zonediff)st   wdayi   R]  R\  i   R[  i   R_  i   R`  i   Ra  i   Rq  s   Greek date parsed as: %s
(
   t   _greek_date_format_reR   t   _greek_wdaysR  t   _greek_monthsR   R   R   R   t   _parse_date_rfc822(   Rk  Ry  R}  R\  t
   rfc822date(    (    sI   /home/sa3ruby/intertwingly.net/code/venus-bzr/planet/vendor/feedparser.pyt   _parse_date_greek  s     10 u   01u   januáru   02u	   februáriu   03u   márciusu   04u   áprilisu   05u   máujusu   06u   júniusu   07u   júliusu   08u	   augusztusu   09u
   szeptemberu   10u   októberu   11u   novemberu   12u   decemberu?   (\d{4})-([^-]+)-(\d{,2})T(\d{,2}):(\d{2})((\+|-)(\d{,2}:\d{2}))c         C   s  t  j |   } | s d Sys t | j d  } | j d  } t |  d k r] d | } n  | j d  } t |  d k r d | } n  Wn d SXd i | j d  d 6| d	 6| d
 6| d 6| j d  d 6| j d  d 6} t rt j j d |  n  t	 |  S(   s:   Parse a string according to a Hungarian 8-bit date format.Ni   i   i   Rv  i   s:   %(year)s-%(month)s-%(day)sT%(hour)s:%(minute)s%(zonediff)sR[  R\  R]  R_  i   R`  i   Rq  s   Hungarian date parsed as: %s
(
   t   _hungarian_date_format_reR   t   _hungarian_monthsR  R  R   R   R   R   Rs  (   Rk  Ry  R\  R]  R_  Rt  (    (    sI   /home/sa3ruby/intertwingly.net/code/venus-bzr/planet/vendor/feedparser.pyt   _parse_date_hungarian  s(     ! c         C   s   d   } d   } d   } d } d } t  j |  } d | } d | | f } t  j |  }	 |	 j |   }
 |
 d  k s |
 j   |  k r d  S| |
  | |
  d	 } | d d k r d  St j t j |  | |
  t j  S(
   Nc      
   S   s  t  |  j d   } | d k  rL d t  t j   d d  t  |  } n  | d k  r\ d S|  j d  } | rzt  |  } | d d } | d d } d  } x | | k rlt j | | | d d d d d d f	  } t j |  d } t | |  } | | k r3| | k  r | | } qi| d } d	 } q | | k  r | | d
 k  r\| | } qi| d } q q W| | | f S|  j d  } d } | d  k rd } n6 t  |  } |  j d  } | rt  |  } n d } | | | f S(   NR[  id   i    i  t   juliani   i   ii   i   R\  R]  (   i    i    i    (   R  R  R  Rh  R   Rj  t   abs(   Ry  R[  R  R\  R]  t   jdayR9  t   diff(    (    sI   /home/sa3ruby/intertwingly.net/code/venus-bzr/planet/vendor/feedparser.pyt   __extract_date  sF    +*
		c         S   s{   |  s
 d S|  j  d  } | s# d St |  } t |  j  d   } |  j  d  } | rh t |  } n d } | | | f S(   Ni    t   hourst   minutest   seconds(   i    i    i    (   i    i    i    (   R  R  (   Ry  R  R  R  (    (    sI   /home/sa3ruby/intertwingly.net/code/venus-bzr/planet/vendor/feedparser.pyt   __extract_time  s    c         S   s   |  s
 d S|  j  d  } | s# d S| d k r3 d St |  j  d   } |  j  d  } | rl t |  } n d } | d | d } | d d k r | S| S(   sA   Return the Time Zone Designator as an offset in seconds from UTC.i    t   tzdRd  t   tzdhourst
   tzdminutesi<   Re  (   R  R  (   Ry  R  R  R  R  (    (    sI   /home/sa3ruby/intertwingly.net/code/venus-bzr/planet/vendor/feedparser.pyt   __extract_tzd  s     sd   (?P<year>\d\d\d\d)(?:(?P<dsep>-|)(?:(?P<julian>\d\d\d)|(?P<month>\d\d)(?:(?P=dsep)(?P<day>\d\d))?))?s;   (?P<tzd>[-+](?P<tzdhours>\d\d)(?::?(?P<tzdminutes>\d\d))|Z)sW   (?P<hours>\d\d)(?P<tsep>:|)(?P<minutes>\d\d)(?:(?P=tsep)(?P<seconds>\d\d(?:[.,]\d+)?))?s
   %s(?:T%s)?i    (   i    i    i    (	   R!   R"   R   R   R  R  Rh  Rj  t   timezone(   Rk  R  R  R  t	   __date_ret   __tzd_ret   __tzd_rxt	   __time_ret   __datetime_ret   __datetime_rxRy  t   gmt(    (    sI   /home/sa3ruby/intertwingly.net/code/venus-bzr/planet/vendor/feedparser.pyRs    s"    	)		  c         C   s  |  j    } | d d d k s9 | d j   t j k rC | d =n  t |  d k r | d } | j d  } | d k r | |  | | d g | d )n | j d	  d
 j |  }  n  t |  d k  r |  d 7}  n  t j |   } | rt	 j
 t j |   Sd S(   s8   Parse an RFC822, RFC1123, RFC2822, or asctime-style datei    iR  R  i   i   Re  i   R$   R  i   s    00:00:00 GMTN(   R  R  (   R   R   t   rfc822t	   _daynamesR  R   R   R   t   parsedate_tzR  Rh  t	   mktime_tz(   Rk  R	   R   R/  Rp  (    (    sI   /home/sa3ruby/intertwingly.net/code/venus-bzr/planet/vendor/feedparser.pyR  7  s    -

ipt   ATit   ETit   CTiDt   MTit   PTc         C   s   t  j d  } | j |   j   \ } } } } } } } }	 d d d d d d d d	 d
 d d d g }
 d | | |
 t |  d | | | | |	 f } t j |  } | r t j t j	 |   Sd S(   s.   parse a date in yyyy/mm/dd hh:mm:ss TTT formatsE   (\w{,3}), (\d{,4})/(\d{,2})/(\d{2}) (\d{,2}):(\d{2}):(\d{2}) (\w{,3})R!  R"  R#  R$  R%  R&  R'  R(  R)  R*  R+  R,  s   %s, %s %s %s %s:%s:%s %si   N(
   R!   R"   R   t   groupsR  R  R  R  Rh  R  (   t   aDateStringt   _my_date_patternt   dowR[  R\  R]  R_  R`  Ra  R  RM  Rk  Rp  (    (    sI   /home/sa3ruby/intertwingly.net/code/venus-bzr/planet/vendor/feedparser.pyt   _parse_date_perforceO  s    	-*0c         C   s   x t  D] } ya | |   } | s( w n  t |  d k r\ t rS t j j d  n  t  n  t t |  | SWq t	 k
 r } t r t j j d | j
 t |  f  q q Xq Wd S(   s6   Parses a variety of date formats into a 9-tuple in GMTi	   s*   date handler function must return 9-tuple
s   %s raised %s
N(   RP  R  R   R   R   R   t
   ValueErrorR   R  t	   ExceptionR   R  R   (   Rk  R@  t
   date9tupleRf  (    (    sI   /home/sa3ruby/intertwingly.net/code/venus-bzr/planet/vendor/feedparser.pyR  ^  s       	 &c         C   s  d   } d } d } d } | |  j  d   \ } } yR| d  d k rX t |  } n| d  d k r d } t | d  j d  } nt |  d k r | d	  d
 k r | d	 d !d k r d } t | d	 d  j d  } n| d  d k rd } t | d  j d  } n[t |  d k rn| d	  d k rn| d	 d !d k rnd } t | d	 d  j d  } n| d  d k rd } t | d  j d  } n | d  d k rd } t | d  j d  } n | d  d k rd } t | d d  j d  } nj | d  d k r:d } t | d d  j d  } n5 | d  d k rod } t | d d  j d  } n  t j d  j |  } Wn d2 } n X| r| j	   d j
   } | r| d3 k r| } qn  d }	 d4 }
 d5 } | |
 k s| j d*  r)| j d+  r)d, }	 | p#| p#d } n | | k sS| j d-  rh| j d+  rhd, }	 | pbd. } nO | j d-  r| pd. } n1 |  r|  j d  r| pd/ } n | pd } | j
   d0 k rd1 } n  | | | | |	 f S(6   s	  Get the character encoding of the XML document

    http_headers is a dictionary
    xml_data is a raw string (not Unicode)
    
    This is so much trickier than it sounds, it's not even funny.
    According to RFC 3023 ('XML Media Types'), if the HTTP Content-Type
    is application/xml, application/*+xml,
    application/xml-external-parsed-entity, or application/xml-dtd,
    the encoding given in the charset parameter of the HTTP Content-Type
    takes precedence over the encoding given in the XML prefix within the
    document, and defaults to 'utf-8' if neither are specified.  But, if
    the HTTP Content-Type is text/xml, text/*+xml, or
    text/xml-external-parsed-entity, the encoding given in the XML prefix
    within the document is ALWAYS IGNORED and only the encoding given in
    the charset parameter of the HTTP Content-Type header should be
    respected, and it defaults to 'us-ascii' if not specified.

    Furthermore, discussion on the atom-syntax mailing list with the
    author of RFC 3023 leads me to the conclusion that any document
    served with a Content-Type of text/* and no charset parameter
    must be treated as us-ascii.  (We now do this.)  And also that it
    must always be flagged as non-well-formed.  (We now do this too.)
    
    If Content-Type is unspecified (input was local file or non-HTTP source)
    or unrecognized (server just got it totally wrong), then go by the
    encoding given in the XML prefix of the document and default to
    'iso-8859-1' as per the HTTP specification (RFC 2616).
    
    Then, assuming we didn't find a character encoding in the HTTP headers
    (and the HTTP Content-type allowed us to look in the body), we need
    to sniff the first few bytes of the XML data and try to determine
    whether the encoding is ASCII-compatible.  Section F of the XML
    specification shows the way here:
    http://www.w3.org/TR/REC-xml/#sec-guessing-no-ext-info

    If the sniffed encoding is not ASCII-compatible, we need to make it
    ASCII compatible so that we can sniff further into the XML declaration
    to find the encoding attribute, which will tell us the true encoding.

    Of course, none of this guarantees that we will be able to parse the
    feed in the declared character encoding (assuming it was declared
    correctly, which many are not).  CJKCodecs and iconv_codec help a lot;
    you should definitely install them if you can.
    http://cjkpython.i18n.org/
    c         S   sC   |  p	 d }  t  j |   \ }  } |  | j d d  j d d  f S(   s  takes HTTP Content-Type header and returns (content type, charset)

        If no charset is specified, returns (content type, '')
        If no content type is specified, returns ('', '')
        Both return parameters are guaranteed to be lowercase strings
        R$   R  Rm  (   t   cgit   parse_headerRj   R   (   t   content_typeRA  (    (    sI   /home/sa3ruby/intertwingly.net/code/venus-bzr/planet/vendor/feedparser.pyt   _parseHTTPContentType  s    R$   s   content-typei   s   Lot    < ?s   utf-16bes   utf-8i   s   t     s   < ? s   utf-16les   t      <s   utf-32bes   <   s   utf-32let     s     i   s   ﻿s!   ^<\?.*encoding=['"](.*?)['"].*\?>i    s   iso-10646-ucs-2s   ucs-2t	   csunicodes   iso-10646-ucs-4s   ucs-4t   csucs4s   utf-16s   utf-32t   utf_16t   utf_32t   utf16t   u16s   application/xmls   application/xml-dtds&   application/xml-external-parsed-entitys   text/xmls   text/xml-external-parsed-entitys   application/s   +xmli   s   text/s   us-asciis
   iso-8859-1t   gb2312t   gb18030N(   s   iso-10646-ucs-2s   ucs-2R  s   iso-10646-ucs-4s   ucs-4R  s   utf-16s   utf-32s   utf_16s   utf_32s   utf16s   u16(   s   application/xmls   application/xml-dtds&   application/xml-external-parsed-entity(   s   text/xmls   text/xml-external-parsed-entity(   Rj   R   R   R   R  R!   R"   R   R   R  R   R|   R   Rh   (   t   http_headerst   xml_dataR  t   sniffed_xml_encodingt   xml_encodingt   true_encodingt   http_content_typet   http_encodingt   xml_encoding_matcht   acceptable_content_typet   application_content_typest   text_content_types(    (    sI   /home/sa3ruby/intertwingly.net/code/venus-bzr/planet/vendor/feedparser.pyt   _getCharacterEncodingn  sz    0	55
	c         C   s  t  r t j j d |  n  t |   d k r |  d  d k r |  d d !d k r t  r t j j d  | d k r t j j d  q n  d } |  d }  nt |   d k r|  d  d	 k r|  d d !d k rt  r
t j j d  | d
 k r
t j j d  q
n  d
 } |  d }  n|  d  d k rxt  ret j j d  | d k ret j j d  qen  d } |  d }  n |  d  d k rt  rt j j d  | d k rt j j d  qn  d } |  d }  n[ |  d  d k r.t  rt j j d  | d k rt j j d  qn  d } |  d }  n  t |  |  } t  rZt j j d |  n  t j d  } d } | j |  r| j	 | |  } n | d | } | j
 d  S(   s   Changes an XML data stream on the fly to specify a new encoding

    data is a raw sequence of bytes (not Unicode) that is presumed to be in %encoding already
    encoding is a string recognized by encodings.aliases
    s%   entering _toUTF8, trying encoding %s
i   i   s   R  s   stripping BOM
s   utf-16bes   trying utf-16be instead
s   s   utf-16les   trying utf-16le instead
i   s   ﻿s   utf-8s   trying utf-8 instead
R  s   utf-32bes   trying utf-32be instead
s     s   utf-32les   trying utf-32le instead
s*   successfully converted %s data to unicode
s   ^<\?xml[^>]*?>s&   <?xml version='1.0' encoding='utf-8'?>u   
(   R   R   R   R   R  R   R!   R"   R   R   R   (   R	   R   t   newdatat	   declmatcht   newdecl(    (    sI   /home/sa3ruby/intertwingly.net/code/venus-bzr/planet/vendor/feedparser.pyt   _toUTF8  s\     55 c            sw  t  j d |   } | r$ | j   p' d } |  | d  |  | d } }  t  j d t  j  } | j |  } | j d |  } t  j d t  j  } | j |  } | r | d p d } | j   j d  r d	 } n d } d }	 t
 |  d k r?| r?t  j d
    t   f d   |  }
 |
 r?d d j |
  }	 q?n  | j |	 |  |  }  | |  t |	 op  j |	   f S(   s   Strips DOCTYPE from XML document, returns (rss_version, stripped_data)

    rss_version may be 'rss091n' or None
    stripped_data is the same XML document, minus the DOCTYPE
    s   <\wii   s   ^\s*<!ENTITY([^>]*?)>R$   s   ^\s*<!DOCTYPE([^>]*?)>i    t   netscapeR&   s   \s+(\w+)\s+"(&#\w+;|[^&"]*)"c            s     j  |   S(   N(   R   (   Rf  (   t   safe_pattern(    sI   /home/sa3ruby/intertwingly.net/code/venus-bzr/planet/vendor/feedparser.pyRa   H  s    s"   <!DOCTYPE feed [
  <!ENTITY %s>
]>s   >
  <!ENTITY N(   R!   R   R    R"   t	   MULTILINERh  R   R   R  R   R  Rg  R   R;   (   R	   R    R[  t   entity_patternt   entity_resultst   doctype_patternt   doctype_resultst   doctypeR   t   replacementt   safe_entities(    (   R  sI   /home/sa3ruby/intertwingly.net/code/venus-bzr/planet/vendor/feedparser.pyt   _stripDoctype/  s(    	c         C   s  t    } t    | d <g  | d <t r3 d | d <n  t |  t j k rT | g } n  y+ t |  | | | | |  } | j   } Wn3 t k
 r }	 d | d <|	 | d <d, } d, } n X| r| rt	 | d  rt
 rF| j j d d	  d
 k rFy" t
 j d t |   j   } Wqt k
 rB}	 d | d <|	 | d <d	 } qXqt r| j j d d	  d k ry t j | t j  } Wqt k
 r}	 d | d <|	 | d <d	 } qXqn  t	 | d  r| j   }
 |
 j d  } | r| | d <n  |
 j d  } | rt |  | d <qn  t	 | d  rH| j | d <d | d <n  t	 | d  rg| j | d <n  t	 | d  r| j j | d <n  t	 | d  r| j   n  | j d i   } t | |  \ | d <} } } } | r)| r)| j d  rd | d } n d } d | d <t |  | d <n  | d, k	 rQt |  \ | d <} } n  | j d | j d   } | j d d,  } | j d d  d k rd	 | d <d d  | d! <| S| d, k r| Sd } d } g  } xn | d | | f D]Y } | sqn  | | k rqn  | j |  y t | |  } d } } PWqqXqW| rt ryR t j  |  d } | r| | k r| j |  t | |  } d } } n  WqqXn  | rd" | k ry0 d" } | j |  t | |  } d } } WqqXn  | rQd# | k rQy0 d# } | j |  t | |  } d } } WqQqQXn  | rd$ | k ry0 d$ } | j |  t | |  } d } } WqqXn  | sd | d <t! d% d& | d | f  | d <d	 | d <nE | | d k r%d | d <t" d' | d | f  | d <| | d <n  t s4d } n  | ret# | | d"  } t$ j% j& t'  } | j( t$ j% j) j* d  | j+ |  | j, |  t$ j% j- j.   } | j/ t |   t	 | d(  r| j0 j i d) d* 6 n  y | j1 |  Wqet k
 ra}	 t2 r;d+ d, l3 } | j4   | j5   t6 j7 j8 d-  n  d | d <| j9 pQ|	 | d <d } qeXn  | st: | | | rd" pd	 |  } | j; |  n  | j< | d <| j= | d <| d p| j> | d <| j? | d. <| S(/   s0   Parse a feed from a URL, file, stream, or stringR=   R?   i    RB  i   t   bozo_exceptionR  s   content-encodingR$   R.  t   fileobjR/  R   t   ETagRC  s   Last-ModifiedRL   RK   RJ   i   R  Ro  R   s   content-types   %s is not an XML media types   no Content-type specifiedR   s   content-locations   content-languagei0  s1   The feed has not changed since you last checked, s:   so the server sent no data.  This is a feature, not a bug!t   debug_messages   utf-8s   windows-1252s
   iso-8859-2s#   document encoding unknown, I tried s>   %s, %s, utf-8, windows-1252, and iso-8859-2 but nothing workeds+   documented declared as %s, but parsed as %st	   _ns_stackR   s$   http://www.w3.org/XML/1998/namespaceiNs   xml parsing failed
R   (@   R<   t   _XML_AVAILABLERk   Rl   t   InstanceTypeRO  R  R  R   Rv   R.  R  Rj   t   GzipFileRA  R;  t
   decompresst	   MAX_WBITSR   t	   getheaderR  RK   R  R;   Ro  R  Rh   R   R  R   R  t   chardett   detectR   R   R>  R   R?  t   make_parsert   PREFERRED_XML_PARSERSt
   setFeatureR@  t   feature_namespacest   setContentHandlert   setErrorHandlert	   xmlreadert   InputSourcet   setByteStreamR  t   parseR   t	   tracebackt   print_stackt	   print_excR   R   R   RC  R  R=   R   R?   R   R   (   RB  RC  RL   R  RD  RE  t   resultt   fR	   Rf  R   t   last_modifiedR  R  R  R  R  t   bozo_messageR
   R   R   t   use_strict_parsert   known_encodingt   tried_encodingst   proposed_encodingt
   feedparsert	   saxparserR  R  (    (    sI   /home/sa3ruby/intertwingly.net/code/venus-bzr/planet/vendor/feedparser.pyR  O  s<   	



!"

!

"

  


	


!t
   Serializerc           B   s   e  Z d    Z RS(   c         C   s   | |  _  d  S(   N(   R  (   R   R  (    (    sI   /home/sa3ruby/intertwingly.net/code/venus-bzr/planet/vendor/feedparser.pyR     s    (   R   R   R   (    (    (    sI   /home/sa3ruby/intertwingly.net/code/venus-bzr/planet/vendor/feedparser.pyR    s   t   TextSerializerc           B   s    e  Z e j d   Z d   Z RS(   c         C   s   |  j  | |  j d  d  S(   NR$   (   t   _writerR  (   R   t   stream(    (    sI   /home/sa3ruby/intertwingly.net/code/venus-bzr/planet/vendor/feedparser.pyR     s    c   	      C   s  | s
 d  St  | d  r | j   } | j   xg| D]i } | d k rN q6 n  | j | d  rg q6 n  | j | d  r q6 n  |  j | | | | | d  q6 Wn t |  t j k rd } x | D]9 } |  j | | | d  d	 t |  d
  | d 7} q Wn y t |  j	 d  } | j
 d d  } | j
 d d  } | j
 d d  } | j | d   | j d  | j |  | j d  Wn n Xd  S(   NRr   RI   R^   RA  t   _parsedR  i    it   [s   ].i   s   utf-8s   \s   \\s   R$   s   
s   \nt   =(   s   descriptions   link(   Rv   Rr   Rp  Rh   R  Rk   Rl   Rm   R   R   R   R   (	   R   R  R  R  Rr   R9   R   R   R   (    (    sI   /home/sa3ruby/intertwingly.net/code/venus-bzr/planet/vendor/feedparser.pyR    s:     
   &)(   R   R   R   t   stdoutR   R  (    (    (    sI   /home/sa3ruby/intertwingly.net/code/venus-bzr/planet/vendor/feedparser.pyR    s   t   PprintSerializerc           B   s   e  Z e j d   Z RS(   c         C   s^   |  j  j d  r- | j |  j  d d  n  d d l m } | |  j  |  | j d  d  S(   NRJ   s   

i(   t   pprints   
(   R  Rh   R   R  (   R   R  R  (    (    sI   /home/sa3ruby/intertwingly.net/code/venus-bzr/planet/vendor/feedparser.pyR   5  s
    (   R   R   R   R  R   (    (    (    sI   /home/sa3ruby/intertwingly.net/code/venus-bzr/planet/vendor/feedparser.pyR  4  s   t   __main__(   t   OptionParserR   t   usages$   %prog [options] url_or_filename_or_-t   formatR  s   -As   --user-agentt   destR  t   metavart   AGENTt   helps   User-Agent for HTTP URLss   -es	   --referers
   --referrerRD  t   URLs   Referrer for HTTP URLss   -ts   --etagRC  t   TAGs    ETag/If-None-Match for HTTP URLss   -ms   --last-modifiedRL   R  sI   Last-modified/If-Modified-Since for HTTP URLs (any supported date format)s   -fs   --formatt   FORMATs'   output results in FORMAT (text, pprint)s   -vs	   --verboseRX  t
   store_truet   verboseRt   s%   write debugging information to stderrt   _Optionsc           B   s    e  Z d Z Z Z Z d  Z RS(   R  N(   R   R   R   RC  RL   R  RD  R	  (    (    (    sI   /home/sa3ruby/intertwingly.net/code/venus-bzr/planet/vendor/feedparser.pyR  U  s   (   t   __doc__t   __version__t   __license__t
   __author__t   __contributors__R   R2  R<  R  R  R  RJ  RQ  Re  R!   R   RU  R   R  R  Rl   R  R   R  t	   cStringIOR   RA  R.  R   R;  t   xml.saxR   R?  R  t   xml.sax.saxutilsR   R   R  R;  RD  t   cjkcodecs.aliasest	   cjkcodecst   iconv_codecR  t   chardet.constantst	   constantsRi  R   R   Re  t	   iteritemsR_   t	   codepointR|   R  R  Rv  R  R  R   R   R   R   R   R"   t   tagfindR~  t   charrefR   R   R    R   t   SUPPORTED_VERSIONSR;   R6   t	   NameErrorR<   R   R   R   RT  R   R   R   R@  RA  R>  Rf  RT  R  R  RM  RO  RL  Rc  RS  t   HTTPDigestAuthHandlerR  t   HTTPDefaultErrorHandlerR  RO  RP  RS  t   _iso8601_tmplt   tmplR   t   _iso8601_ret   regexR   Rf  R  t   _korean_yeart   _korean_montht   _korean_dayt
   _korean_amRx  Rr  Rw  Ru  Rz  R{  R|  R  R  R~  R  R  R  R  Rs  R  t   _additional_timezonest
   _timezonesR   R  R  R  R  R  R  R  R  R  R   t   optparseR  t   optionParsert   set_defaultst
   add_optionRx   t
   parse_argst   optionst   urlsR  t
   print_helpt   exitt   argvR  t   globalsRj   R	  t
   capitalizet
   serializerRK   RC  RL   R  RD  R  R   R  (    (    (    sI   /home/sa3ruby/intertwingly.net/code/venus-bzr/planet/vendor/feedparser.pyt   <module>   s6  	
	


	
 



R				    %[ 	
)		'%6	h			n%	J
			

	
	



	

	
	]
	)
	
			5	  
"%"""(		
	"0