mò |ªIc@sdZdZdZdZdklZdkTdkTdkl Z dk Tdee e e fd„ƒYZ d e fd „ƒYZd e fd „ƒYZd efd„ƒYZdefd„ƒYZdefd„ƒYZdefd„ƒYZdefd„ƒYZdefd„ƒYZdS(s3$Id: channel.py 1033 2008-11-18 11:35:34Z sa3ruby $sOSam Ruby and Mark Pilgrim s$Revision: 1033 $s,Copyright (c) 2002 Sam Ruby and Mark Pilgrim(s validatorBase(t*(situnes_channeltchannelcBs tZd„Zd„Zd„Zd„Zd„Zd„Zd„Zd„Z d „Z d „Z d „Z d „Z d „Zd„Zd„Zd„Zd„Zd„Zd„Zd„Zd„Zd„Zd„Zd„Zd„Zd„Zd„Zd„Zd„ZRS(NcCsdgS(Nuurn:atom-extension:indexinguindex(uurn:atom-extension:indexinguindex((tself((t@/web/script/rubys/feedvalidator.org/src/feedvalidator/channel.pytgetExpectedAttrNamesscCs|idtƒdS(Nuurn:atom-extension:indexinguindex(uurn:atom-extension:indexinguindex(Rtvalidate_optional_attributetyesno(R((Rt prevalidatescCs5d|_d|_g|_d|_ti|ƒdS(Nt(tNoneRtlinktdocstlinksttitlet validatorBaset__init__(R((RRs     cCsŒd|ijo,|ithd|i<dd<ƒƒnd|ijo,|ithd|i<dd<ƒƒnd|ijo,|ithd|i<dd<ƒƒnd|ijoJd|ijo:|ip,|ithd|i<dd<ƒƒqn|ii dƒd jo,|it hd|i<dd<ƒƒn|ii d ƒd jo,|it hd|i<dd <ƒƒn|ii d ƒd jo,|it hd|i<dd <ƒƒn|ii d ƒd jo,|it hd|i<dd <ƒƒn|i i t d fƒow|i it d fƒ|_ti|dhdd<ƒd|ijo,|ithd|i<dd<ƒƒq²n|iidjoS|iidjo@x=|iD]}|idjoPqâqâW|ithƒƒn|ioti|ƒn|idjoEg}|iiD]!}t |t!ƒp ||qTqT~|i_ndS(Nt descriptiontparenttelementR R t dc_languagetlanguagetimageit textInputt skipHourstskipDaystaboutt extraParamstattrs rdf:abouttitemstrsss2.0Rs)http://www.rssboard.org/rss-specification("RtchildrentlogtMissingDescriptiontnamet MissingLinkt MissingTitletxmlLangtMissingDCLanguagetcounttDuplicateElementtattrsthas_keytrdfNStgetValuetvaluetrfc2396tvalidatetMissingElementRtversionR R treltMissingAtomSelfLinktitunestitunes_channelR t_[1]t dispatchert loggedEventsteventt isinstancetUseOfExtensionAttr(RR R5R8((RR.s@,,,  0,,,,0&   cCsdS(N((R((RtmetadataBscCs'|iƒdkl}|ƒtƒfS(N(simage(RR;Rt noduplicates(RR((Rtdo_imageEs  cCs'|iƒdkl}|ƒtƒfS(N(s textInput(RR;RR<(RR((Rt do_textInputJs  cCs_|iƒ|iitdfƒp,|ithd|i<dd<ƒƒntƒt ƒfS(NRRRt textinput( RR;R(R)R*RtUndefinedElementR!teaterR<(R((Rt do_textinputOs ,cCs|iƒtƒtƒfS(N(RR;R R<(R((Rtdo_linkXs cCs |iƒtƒtƒtƒfS(N(RR;R R<tnonblank(R((Rtdo_title\s cCs|iƒtƒtƒfS(N(RR;tnonhtmlR<(R((Rtdo_description`s cCstƒtƒfS(N(tblinkR<(R((Rtdo_blinkdscCsdkl}|ƒS(N(sauthor(tauthor(RRJ((Rtdo_atom_authorgs cCsdkl}|ƒS(N(scategory(tcategory(RRL((Rtdo_atom_categoryks cCsdkl}|ƒS(N(sauthor(RJ(RRJ((Rtdo_atom_contributoros cCs#dkl}|ƒtƒtƒfS(N(s generator(t generatorRDR<(RRO((Rtdo_atom_generatorss cCstƒtƒfS(N(t rfc2396_fullR<(R((Rt do_atom_idwscCstƒtƒtƒfS(N(RDR-R<(R((Rt do_atom_iconzscCs5|iƒdkl}|ii|ƒƒ|idS(N(slinkiÿÿÿÿ(RR;R R tappend(RR ((Rt do_atom_link}s  cCstƒtƒtƒfS(N(RDR-R<(R((Rt do_atom_logoƒscCsdkl}|ƒtƒfS(N(s textConstruct(tcontentt textConstructR<(RRX((Rt do_atom_title†s cCsdkl}|ƒtƒfS(N(s textConstruct(RWRXR<(RRX((Rtdo_atom_subtitleŠs cCsdkl}|ƒtƒfS(N(s textConstruct(RWRXR<(RRX((Rtdo_atom_rightsŽs cCstƒtƒfS(N(trfc3339R<(R((Rtdo_atom_updated’scCs@d|ijo)|ithdd<dd<ƒƒntƒS(NtmanagingEditortcoretexts dc:creator(RRRtDuplicateSemanticsttext(R((Rt do_dc_creator•s)cCs@d|ijo)|ithdd<dd<ƒƒntƒS(NRLR_R`s dc:subject(RRRRaRb(R((Rt do_dc_subjectšs)cCsId|ijo)|ithdd<dd<ƒƒntƒtƒfS(NtpubDateR_R`sdc:date(RRRRatw3cdtfR<(R((Rt do_dc_dateŸs)cCs@d|ijo)|ithdd<dd<ƒƒntƒS(NtcreativeCommons_licenseR_screativeCommons:licenseR`s cc:license(RRRRaRA(R((Rt do_cc_license¤s)cCs@d|ijo)|ithdd<dd<ƒƒntƒS(Nt cc_licenseR_screativeCommons:licenseR`s cc:license(RRRRaRQ(R((Rtdo_creativeCommons_license©s)(t__name__t __module__RRRR.R;R=R>RBRCRERGRIRKRMRNRPRRRSRURVRYRZR[R]RcRdRgRiRk(((RRs:    &                       t rss20ChannelcBsªtZd„Zd„Zd„Zd„Zd„Zd„Zei Z d„Z d„Z d „Z d „Zd „Zd „Zd „Zd„Zd„Zd„Zd„ZRS(NcCsg|_ti|ƒdS(N(RtitemlocsRR(R((RR¯s cCs~|ii}xb|iD]W\}}||iƒ||iƒf}|i t hd|i <dd<ƒ|ƒqWg|_dS(NRRtitem( RR6tlocatorRotlinetcolt getLineNumbertgetColumnNumbertoffsetRt MisplacedItemR!(RRqRvRrRs((RR;³s    /cCs |ithƒƒti|ƒS(N(RRtAvoidTextInputRR>(R((RR>ºscCsB|ii}|ii|iƒ|iƒfƒdkl}|ƒS(N(s rss20Item( RR6RqRoRTRtRuRpt rss20Item(RRqRy((Rtdo_item¾s " cCs|iƒtƒS(N(RR;RL(R((Rt do_categoryÄs cCs|iƒtƒtƒfS(N(RR;tcloudR<(R((Rtdo_cloudÈs cCs |iƒtƒtƒtƒfS(N(RR;tpositiveIntegerRDR<(R((Rtdo_ttlÎs cCs|iƒtƒtƒfS(N(RR;R R<(R((Rtdo_docsÒs cCsS|iƒd|ijo)|ithdd<dd<ƒƒntƒtƒfS(Ntadmin_generatorAgentR_ROR`sadmin:generatorAgent(RR;RRRaRbR<(R((Rt do_generatorÖs )cCsS|iƒd|ijo)|ithdd<dd<ƒƒntƒtƒfS(Ntdc_dateR_ReR`sdc:date(RR;RRRatrfc822R<(R((Rt do_pubDateÜs )cCsS|iƒd|ijo)|ithdd<dd<ƒƒntƒtƒfS(Nt dc_creatorR_R^R`s dc:creator(RR;RRRatemail_with_nameR<(R((Rtdo_managingEditorâs )cCsS|iƒd|ijo)|ithdd<dd<ƒƒntƒtƒfS(Nt dc_publisherR_t webMasterR`s dc:publisher(RR;RRRaR‡R<(R((Rt do_webMasterès )cCsS|iƒd|ijo)|ithdd<dd<ƒƒntƒtƒfS(NRR_RR`s dc:language(RR;RRRatiso639R<(R((Rt do_languageîs )cCsS|iƒd|ijo)|ithdd<dd<ƒƒntƒtƒfS(Nt dc_rightsR_t copyrightR`s dc:rights(RR;RRRaRFR<(R((Rt do_copyrightôs )cCsS|iƒd|ijo)|ithdd<dd<ƒƒntƒtƒfS(Ntdcterms_modifiedR_t lastBuildDateR`sdcterms:modified(RR;RRRaR„R<(R((Rtdo_lastBuildDateús )cCs|iƒdkl}|ƒS(N(s skipHours(RR;R(RR((Rt do_skipHourss  cCs|iƒdkl}|ƒS(N(sskipDays(RR;R(RR((Rt do_skipDayss  (RlRmRR;R>RzR{R}Rtleaft do_ratingRR€R‚R…RˆR‹RRR“R”R•(((RRn®s$                 t rss10ChannelcBs5tZd„Zd„Zd„Zd„Zd„ZRS(NcCs ddgS(Nu+http://www.w3.org/1999/02/22-rdf-syntax-ns#uabout(u+http://www.w3.org/1999/02/22-rdf-syntax-ns#uabout(u+http://www.w3.org/1999/02/22-rdf-syntax-ns#uabout((R((RR scCsl|iitdfƒoOd|iijog|iid|ithd|ii<d|i<dd<ƒƒnKt j o>|it hd|ii<d|i<dd<ƒƒnXd |iiƒjo;|ithd|ii<d|i<dd<ƒƒn8|ithd|ii<d|i<dd<ƒƒd |iiƒjo;|ithd|ii<d|i<dd<ƒƒn8|ithd|ii<d|i<dd<ƒƒd|iiƒjo;|ithd|ii<d|i<dd <ƒƒn8|ithd|ii<d|i<dd <ƒƒti|ƒS(NtdomainRRRtportitpathtregisterProceduretprotocol(Nsdomain(Nsport(Nspath(NR£(Nsprotocol(R RR(tgetNamesRR›RR!t ValidCloudtintR+tInvalidIntegerAttributetKeyErrort ValueErrorRR(R((RR=s*;7;;;<;7;7;7(RlRmRR(((RR|9s N(t__doc__t __author__t __version__t __copyright__tbaseRtloggingt validatorsR3R4t extensionR-textension_channelRRnR˜RQR RFR R RbRHRLR|(RHRLR®RnRR R¬R R|R R˜R­R4R((Rt?s"  ž\