<?xml version='1.0' encoding='UTF-8'?><rss xmlns:atom="http://www.w3.org/2005/Atom" xmlns:openSearch="http://a9.com/-/spec/opensearchrss/1.0/" xmlns:blogger="http://schemas.google.com/blogger/2008" xmlns:georss="http://www.georss.org/georss" xmlns:gd="http://schemas.google.com/g/2005" xmlns:thr="http://purl.org/syndication/thread/1.0" version="2.0"><channel><atom:id>tag:blogger.com,1999:blog-4395737135069571330</atom:id><lastBuildDate>Wed, 04 Sep 2024 13:32:20 +0000</lastBuildDate><category>C Ruby</category><category>Django</category><category>RSS</category><category>Яndex</category><title>Багишев Фарид</title><description>решить нерешенное, найти лучшее решение, опровергнуть его и найти еще лучше</description><link>http://afhbl.blogspot.com/</link><managingEditor>noreply@blogger.com (Фарид)</managingEditor><generator>Blogger</generator><openSearch:totalResults>3</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>25</openSearch:itemsPerPage><item><guid isPermaLink="false">tag:blogger.com,1999:blog-4395737135069571330.post-2442818186346607625</guid><pubDate>Sun, 06 Feb 2011 18:31:00 +0000</pubDate><atom:updated>2011-02-06T23:31:25.820+05:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">C Ruby</category><title>RSox - биндинг libSoX для Ruby</title><description>31 января начал изучать возможность работы с &lt;a href=&quot;http://sox.sourceforge.net/&quot;&gt;SoX&lt;/a&gt;&amp;nbsp;в Ruby. Надо сказать что уже существует подобный &lt;a href=&quot;https://github.com/Beirdo/sox-ruby&quot;&gt;проект&lt;/a&gt;, но он &lt;s&gt;малопригоден&lt;/s&gt;&amp;nbsp;мне не удалось приспособить его.&lt;br /&gt;
&lt;br /&gt;
За вечер и часть ночи был написан основной функционал, без эффектов.&amp;nbsp;Часть кода была подсмотрена в малопригодном проекте (см. выше). Следующий день 1 февраля пошел на реализацию эффектов. Самое вкусное было добавлено уже в среду 2 февраля. Вкусность заключалась в возможности обрабатывать выходной сигнал (после цепочки наложенных эффектов) непосредственно в Ruby.&lt;br /&gt;
&lt;br /&gt;
Это был замечательный опыт работы с Ruby C API.&lt;br /&gt;
&lt;br /&gt;
Хочется выразить большую благодарность Роману Голомидову, в частности за поддержку и вклад в open-source.&lt;br /&gt;
&lt;br /&gt;
Код проекта лежит на &lt;a href=&quot;https://github.com/afhbl/rsox&quot;&gt;GitHub&lt;/a&gt;. Примеры использования можно посмотреть в &lt;a href=&quot;https://github.com/afhbl/rsox/blob/master/README.md&quot;&gt;README&lt;/a&gt; или &lt;a href=&quot;https://github.com/afhbl/rsox/tree/master/spec&quot;&gt;тестах&lt;/a&gt;</description><link>http://afhbl.blogspot.com/2011/02/rsox-libsox-ruby.html</link><author>noreply@blogger.com (Фарид)</author><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-4395737135069571330.post-4569146394841947495</guid><pubDate>Wed, 22 Sep 2010 11:06:00 +0000</pubDate><atom:updated>2010-09-22T17:06:13.870+06:00</atom:updated><title></title><description>(ИМХО) лучшее решение для чистки html от мусора&lt;br /&gt;
&lt;style&gt;
.hll { background-color: #ffffcc }
.c { color: #808080 } /* Comment */
.err { color: #F00000; background-color: #F0A0A0 } /* Error */
.k { color: #008000; font-weight: bold } /* Keyword */
.o { color: #303030 } /* Operator */
.cm { color: #808080 } /* Comment.Multiline */
.cp { color: #507090 } /* Comment.Preproc */
.c1 { color: #808080 } /* Comment.Single */
.cs { color: #cc0000; font-weight: bold } /* Comment.Special */
.gd { color: #A00000 } /* Generic.Deleted */
.ge { font-style: italic } /* Generic.Emph */
.gr { color: #FF0000 } /* Generic.Error */
.gh { color: #000080; font-weight: bold } /* Generic.Heading */
.gi { color: #00A000 } /* Generic.Inserted */
.go { color: #808080 } /* Generic.Output */
.gp { color: #c65d09; font-weight: bold } /* Generic.Prompt */
.gs { font-weight: bold } /* Generic.Strong */
.gu { color: #800080; font-weight: bold } /* Generic.Subheading */
.gt { color: #0040D0 } /* Generic.Traceback */
.kc { color: #008000; font-weight: bold } /* Keyword.Constant */
.kd { color: #008000; font-weight: bold } /* Keyword.Declaration */
.kn { color: #008000; font-weight: bold } /* Keyword.Namespace */
.kp { color: #003080; font-weight: bold } /* Keyword.Pseudo */
.kr { color: #008000; font-weight: bold } /* Keyword.Reserved */
.kt { color: #303090; font-weight: bold } /* Keyword.Type */
.m { color: #6000E0; font-weight: bold } /* Literal.Number */
.s { background-color: #fff0f0 } /* Literal.String */
.na { color: #0000C0 } /* Name.Attribute */
.nb { color: #007020 } /* Name.Builtin */
.nc { color: #B00060; font-weight: bold } /* Name.Class */
.no { color: #003060; font-weight: bold } /* Name.Constant */
.nd { color: #505050; font-weight: bold } /* Name.Decorator */
.ni { color: #800000; font-weight: bold } /* Name.Entity */
.ne { color: #F00000; font-weight: bold } /* Name.Exception */
.nf { color: #0060B0; font-weight: bold } /* Name.Function */
.nl { color: #907000; font-weight: bold } /* Name.Label */
.nn { color: #0e84b5; font-weight: bold } /* Name.Namespace */
.nt { color: #007000 } /* Name.Tag */
.nv { color: #906030 } /* Name.Variable */
.ow { color: #000000; font-weight: bold } /* Operator.Word */
.w { color: #bbbbbb } /* Text.Whitespace */
.mf { color: #6000E0; font-weight: bold } /* Literal.Number.Float */
.mh { color: #005080; font-weight: bold } /* Literal.Number.Hex */
.mi { color: #0000D0; font-weight: bold } /* Literal.Number.Integer */
.mo { color: #4000E0; font-weight: bold } /* Literal.Number.Oct */
.sb { background-color: #fff0f0 } /* Literal.String.Backtick */
.sc { color: #0040D0 } /* Literal.String.Char */
.sd { color: #D04020 } /* Literal.String.Doc */
.s2 { background-color: #fff0f0 } /* Literal.String.Double */
.se { color: #606060; font-weight: bold; background-color: #fff0f0 } /* Literal.String.Escape */
.sh { background-color: #fff0f0 } /* Literal.String.Heredoc */
.si { background-color: #e0e0e0 } /* Literal.String.Interpol */
.sx { color: #D02000; background-color: #fff0f0 } /* Literal.String.Other */
.sr { color: #000000; background-color: #fff0ff } /* Literal.String.Regex */
.s1 { background-color: #fff0f0 } /* Literal.String.Single */
.ss { color: #A06000 } /* Literal.String.Symbol */
.bp { color: #007020 } /* Name.Builtin.Pseudo */
.vc { color: #306090 } /* Name.Variable.Class */
.vg { color: #d07000; font-weight: bold } /* Name.Variable.Global */
.vi { color: #3030B0 } /* Name.Variable.Instance */
.il { color: #0000D0; font-weight: bold } /* Literal.Number.Integer.Long */
&lt;/style&gt;&lt;br /&gt;
&lt;div class=&quot;highlight&quot;&gt;&lt;pre&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;color: grey;&quot;&gt;
&lt;/span&gt;&lt;/pre&gt;&lt;pre&gt;&lt;span class=&quot;c&quot;&gt;# -*- coding:utf-8 -*-&lt;/span&gt;

&lt;span class=&quot;kn&quot;&gt;from&lt;/span&gt; &lt;span class=&quot;nn&quot;&gt;lxml.html.clean&lt;/span&gt; &lt;span class=&quot;kn&quot;&gt;import&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;Cleaner&lt;/span&gt;
&lt;span class=&quot;kn&quot;&gt;import&lt;/span&gt; &lt;span class=&quot;nn&quot;&gt;re&lt;/span&gt;

&lt;span class=&quot;k&quot;&gt;class&lt;/span&gt; &lt;span class=&quot;nc&quot;&gt;CleanEmpty&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;Cleaner&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;):&lt;/span&gt;

    &lt;span class=&quot;n&quot;&gt;white&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;re&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;compile&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;&#39;[&lt;/span&gt;&lt;span class=&quot;se&quot;&gt;\r\n\t&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;]+&#39;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt;

    &lt;span class=&quot;k&quot;&gt;def&lt;/span&gt; &lt;span class=&quot;nf&quot;&gt;__call__&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;bp&quot;&gt;self&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;doc&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;):&lt;/span&gt;
        &lt;span class=&quot;nb&quot;&gt;super&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;CleanEmpty&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;bp&quot;&gt;self&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;__call__&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;doc&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt;

        &lt;span class=&quot;n&quot;&gt;empty&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;p&quot;&gt;[]&lt;/span&gt;
        &lt;span class=&quot;k&quot;&gt;for&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;el&lt;/span&gt; &lt;span class=&quot;ow&quot;&gt;in&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;doc&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;iter&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;():&lt;/span&gt;
            &lt;span class=&quot;k&quot;&gt;if&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;el&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;text&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;:&lt;/span&gt;
                &lt;span class=&quot;n&quot;&gt;el&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;text&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;bp&quot;&gt;self&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;white&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;sub&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;&#39;&#39;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;el&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;text&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;strip&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;())&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;replace&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;&#39;  &#39;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;s&quot;&gt;&#39; &#39;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt;
            &lt;span class=&quot;k&quot;&gt;elif&lt;/span&gt; &lt;span class=&quot;ow&quot;&gt;not&lt;/span&gt; &lt;span class=&quot;nb&quot;&gt;list&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;el&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;):&lt;/span&gt;
                &lt;span class=&quot;n&quot;&gt;empty&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;append&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;el&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt;
            &lt;span class=&quot;k&quot;&gt;if&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;el&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;tail&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;:&lt;/span&gt;
                &lt;span class=&quot;n&quot;&gt;el&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;tail&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;s&quot;&gt;&#39;&#39;&lt;/span&gt;
        &lt;span class=&quot;k&quot;&gt;for&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;el&lt;/span&gt; &lt;span class=&quot;ow&quot;&gt;in&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;empty&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;:&lt;/span&gt;
            &lt;span class=&quot;n&quot;&gt;el&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;drop_tag&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;()&lt;/span&gt;

&lt;span class=&quot;k&quot;&gt;def&lt;/span&gt; &lt;span class=&quot;nf&quot;&gt;clean_html&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;buf&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;):&lt;/span&gt;

    &lt;span class=&quot;n&quot;&gt;c&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;CleanEmpty&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;
        &lt;span class=&quot;n&quot;&gt;allow_tags&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;&#39;html&#39;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;&#39;body&#39;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;s&quot;&gt;&#39;a&#39;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;s&quot;&gt;&#39;p&#39;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;s&quot;&gt;&#39;img&#39;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;s&quot;&gt;&#39;h2&#39;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;s&quot;&gt;&#39;table&#39;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;s&quot;&gt;&#39;thead&#39;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;s&quot;&gt;&#39;tbody&#39;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;s&quot;&gt;&#39;tr&#39;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;s&quot;&gt;&#39;td&#39;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;s&quot;&gt;&#39;th&#39;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;s&quot;&gt;&#39;strong&#39;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;s&quot;&gt;&#39;em&#39;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;s&quot;&gt;&#39;sup&#39;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;s&quot;&gt;&#39;sub&#39;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;s&quot;&gt;&#39;ul&#39;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;s&quot;&gt;&#39;ol&#39;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;s&quot;&gt;&#39;li&#39;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;),&lt;/span&gt;
        &lt;span class=&quot;n&quot;&gt;scripts&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;bp&quot;&gt;False&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt;
        &lt;span class=&quot;n&quot;&gt;style&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;bp&quot;&gt;True&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt;
        &lt;span class=&quot;n&quot;&gt;comments&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;bp&quot;&gt;False&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt;
        &lt;span class=&quot;n&quot;&gt;page_structure&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;bp&quot;&gt;False&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt;
        &lt;span class=&quot;n&quot;&gt;remove_unknown_tags&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;bp&quot;&gt;False&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt;
    &lt;span class=&quot;k&quot;&gt;return&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;c&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;clean_html&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;buf&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt;

&lt;span class=&quot;k&quot;&gt;if&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;__name__&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;==&lt;/span&gt; &lt;span class=&quot;s&quot;&gt;&#39;__main__&#39;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;:&lt;/span&gt;
    &lt;span class=&quot;kn&quot;&gt;import&lt;/span&gt; &lt;span class=&quot;nn&quot;&gt;sys&lt;/span&gt;
    &lt;span class=&quot;k&quot;&gt;print&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;clean_html&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;nb&quot;&gt;open&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;sys&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;argv&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;mi&quot;&gt;1&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;])&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;read&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;()&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;decode&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;&#39;utf-8&#39;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;))[&lt;/span&gt;&lt;span class=&quot;mi&quot;&gt;12&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;-&lt;/span&gt;&lt;span class=&quot;mi&quot;&gt;14&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;]&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;encode&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;&#39;utf-8&#39;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;</description><link>http://afhbl.blogspot.com/2010/09/html.html</link><author>noreply@blogger.com (Фарид)</author><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-4395737135069571330.post-4996124697595053935</guid><pubDate>Sun, 31 Jan 2010 09:53:00 +0000</pubDate><atom:updated>2010-01-31T20:10:31.366+05:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">Django</category><category domain="http://www.blogger.com/atom/ns#">RSS</category><category domain="http://www.blogger.com/atom/ns#">Яndex</category><title>Django: Яндекс RSS</title><description>Привет коллеги, которые пишут свои реализации RSS специально для Яндекса.&lt;br /&gt;
Приведенный код также добавляет в syndication возможность создавать элементы с CDATA&lt;br /&gt;
&lt;br /&gt;
&lt;pre style=&quot;background: none repeat scroll 0% 0% rgb(255, 255, 255); color: black;&quot;&gt;&lt;span style=&quot;color: maroon; font-weight: bold;&quot;&gt;from&lt;/span&gt; django&lt;span style=&quot;color: #808030;&quot;&gt;.&lt;/span&gt;contrib&lt;span style=&quot;color: #808030;&quot;&gt;.&lt;/span&gt;syndication&lt;span style=&quot;color: #808030;&quot;&gt;.&lt;/span&gt;feeds &lt;span style=&quot;color: maroon; font-weight: bold;&quot;&gt;import&lt;/span&gt; Feed
&lt;span style=&quot;color: maroon; font-weight: bold;&quot;&gt;from&lt;/span&gt; django&lt;span style=&quot;color: #808030;&quot;&gt;.&lt;/span&gt;utils&lt;span style=&quot;color: #808030;&quot;&gt;.&lt;/span&gt;xmlutils &lt;span style=&quot;color: maroon; font-weight: bold;&quot;&gt;import&lt;/span&gt; SimplerXMLGenerator
&lt;span style=&quot;color: maroon; font-weight: bold;&quot;&gt;from&lt;/span&gt; django&lt;span style=&quot;color: #808030;&quot;&gt;.&lt;/span&gt;utils&lt;span style=&quot;color: #808030;&quot;&gt;.&lt;/span&gt;feedgenerator &lt;span style=&quot;color: maroon; font-weight: bold;&quot;&gt;import&lt;/span&gt; Rss201rev2Feed


&lt;span style=&quot;color: maroon; font-weight: bold;&quot;&gt;class&lt;/span&gt; SXG&lt;span style=&quot;color: #808030;&quot;&gt;(&lt;/span&gt;SimplerXMLGenerator&lt;span style=&quot;color: #808030;&quot;&gt;)&lt;/span&gt;&lt;span style=&quot;color: #808030;&quot;&gt;:&lt;/span&gt;
    &lt;span style=&quot;color: maroon; font-weight: bold;&quot;&gt;def&lt;/span&gt; addQuickElementCDATA&lt;span style=&quot;color: #808030;&quot;&gt;(&lt;/span&gt;self&lt;span style=&quot;color: #808030;&quot;&gt;,&lt;/span&gt; name&lt;span style=&quot;color: #808030;&quot;&gt;,&lt;/span&gt; contents&lt;span style=&quot;color: #808030;&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color: #e34adc;&quot;&gt;None&lt;/span&gt;&lt;span style=&quot;color: #808030;&quot;&gt;,&lt;/span&gt; attrs&lt;span style=&quot;color: #808030;&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color: #e34adc;&quot;&gt;None&lt;/span&gt;&lt;span style=&quot;color: #808030;&quot;&gt;)&lt;/span&gt;&lt;span style=&quot;color: #808030;&quot;&gt;:&lt;/span&gt;
        &lt;span style=&quot;color: maroon; font-weight: bold;&quot;&gt;if&lt;/span&gt; attrs &lt;span style=&quot;color: maroon; font-weight: bold;&quot;&gt;is&lt;/span&gt; &lt;span style=&quot;color: #e34adc;&quot;&gt;None&lt;/span&gt;&lt;span style=&quot;color: #808030;&quot;&gt;:&lt;/span&gt; attrs &lt;span style=&quot;color: #808030;&quot;&gt;=&lt;/span&gt; &lt;span style=&quot;color: purple;&quot;&gt;{&lt;/span&gt;&lt;span style=&quot;color: purple;&quot;&gt;}&lt;/span&gt;
        self&lt;span style=&quot;color: #808030;&quot;&gt;.&lt;/span&gt;startElement&lt;span style=&quot;color: #808030;&quot;&gt;(&lt;/span&gt;name&lt;span style=&quot;color: #808030;&quot;&gt;,&lt;/span&gt; attrs&lt;span style=&quot;color: #808030;&quot;&gt;)&lt;/span&gt;
        &lt;span style=&quot;color: maroon; font-weight: bold;&quot;&gt;if&lt;/span&gt; contents &lt;span style=&quot;color: maroon; font-weight: bold;&quot;&gt;is&lt;/span&gt; &lt;span style=&quot;color: maroon; font-weight: bold;&quot;&gt;not&lt;/span&gt; &lt;span style=&quot;color: #e34adc;&quot;&gt;None&lt;/span&gt;&lt;span style=&quot;color: #808030;&quot;&gt;:&lt;/span&gt;
            self&lt;span style=&quot;color: #808030;&quot;&gt;.&lt;/span&gt;_write&lt;span style=&quot;color: #808030;&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color: #0000e6;&quot;&gt;&#39;&amp;lt;![CDATA[&#39;&lt;/span&gt;&lt;span style=&quot;color: #808030;&quot;&gt;+&lt;/span&gt;contents&lt;span style=&quot;color: #808030;&quot;&gt;+&lt;/span&gt;&lt;span style=&quot;color: #0000e6;&quot;&gt;&#39;]]&amp;gt;&#39;&lt;/span&gt;&lt;span style=&quot;color: #808030;&quot;&gt;)&lt;/span&gt;
        self&lt;span style=&quot;color: #808030;&quot;&gt;.&lt;/span&gt;endElement&lt;span style=&quot;color: #808030;&quot;&gt;(&lt;/span&gt;name&lt;span style=&quot;color: #808030;&quot;&gt;)&lt;/span&gt;
        

&lt;span style=&quot;color: maroon; font-weight: bold;&quot;&gt;class&lt;/span&gt; Rss&lt;span style=&quot;color: #808030;&quot;&gt;(&lt;/span&gt;Rss201rev2Feed&lt;span style=&quot;color: #808030;&quot;&gt;)&lt;/span&gt;&lt;span style=&quot;color: #808030;&quot;&gt;:&lt;/span&gt;
    &lt;span style=&quot;color: maroon; font-weight: bold;&quot;&gt;def&lt;/span&gt; write&lt;span style=&quot;color: #808030;&quot;&gt;(&lt;/span&gt;self&lt;span style=&quot;color: #808030;&quot;&gt;,&lt;/span&gt; outfile&lt;span style=&quot;color: #808030;&quot;&gt;,&lt;/span&gt; encoding&lt;span style=&quot;color: #808030;&quot;&gt;)&lt;/span&gt;&lt;span style=&quot;color: #808030;&quot;&gt;:&lt;/span&gt;
        handler &lt;span style=&quot;color: #808030;&quot;&gt;=&lt;/span&gt; SXG&lt;span style=&quot;color: #808030;&quot;&gt;(&lt;/span&gt;outfile&lt;span style=&quot;color: #808030;&quot;&gt;,&lt;/span&gt; encoding&lt;span style=&quot;color: #808030;&quot;&gt;)&lt;/span&gt;
        handler&lt;span style=&quot;color: #808030;&quot;&gt;.&lt;/span&gt;startDocument&lt;span style=&quot;color: #808030;&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color: #808030;&quot;&gt;)&lt;/span&gt;
        handler&lt;span style=&quot;color: #808030;&quot;&gt;.&lt;/span&gt;startElement&lt;span style=&quot;color: #808030;&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color: #0000e6;&quot;&gt;u&quot;rss&quot;&lt;/span&gt;&lt;span style=&quot;color: #808030;&quot;&gt;,&lt;/span&gt; self&lt;span style=&quot;color: #808030;&quot;&gt;.&lt;/span&gt;rss_attributes&lt;span style=&quot;color: #808030;&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color: #808030;&quot;&gt;)&lt;/span&gt;&lt;span style=&quot;color: #808030;&quot;&gt;)&lt;/span&gt;
        handler&lt;span style=&quot;color: #808030;&quot;&gt;.&lt;/span&gt;startElement&lt;span style=&quot;color: #808030;&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color: #0000e6;&quot;&gt;u&quot;channel&quot;&lt;/span&gt;&lt;span style=&quot;color: #808030;&quot;&gt;,&lt;/span&gt; self&lt;span style=&quot;color: #808030;&quot;&gt;.&lt;/span&gt;root_attributes&lt;span style=&quot;color: #808030;&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color: #808030;&quot;&gt;)&lt;/span&gt;&lt;span style=&quot;color: #808030;&quot;&gt;)&lt;/span&gt;
        self&lt;span style=&quot;color: #808030;&quot;&gt;.&lt;/span&gt;add_root_elements&lt;span style=&quot;color: #808030;&quot;&gt;(&lt;/span&gt;handler&lt;span style=&quot;color: #808030;&quot;&gt;)&lt;/span&gt;
        self&lt;span style=&quot;color: #808030;&quot;&gt;.&lt;/span&gt;write_items&lt;span style=&quot;color: #808030;&quot;&gt;(&lt;/span&gt;handler&lt;span style=&quot;color: #808030;&quot;&gt;)&lt;/span&gt;
        self&lt;span style=&quot;color: #808030;&quot;&gt;.&lt;/span&gt;endChannelElement&lt;span style=&quot;color: #808030;&quot;&gt;(&lt;/span&gt;handler&lt;span style=&quot;color: #808030;&quot;&gt;)&lt;/span&gt;
        handler&lt;span style=&quot;color: #808030;&quot;&gt;.&lt;/span&gt;endElement&lt;span style=&quot;color: #808030;&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color: #0000e6;&quot;&gt;u&quot;rss&quot;&lt;/span&gt;&lt;span style=&quot;color: #808030;&quot;&gt;)&lt;/span&gt;
    
    &lt;span style=&quot;color: maroon; font-weight: bold;&quot;&gt;def&lt;/span&gt; add_item_elements&lt;span style=&quot;color: #808030;&quot;&gt;(&lt;/span&gt;self&lt;span style=&quot;color: #808030;&quot;&gt;,&lt;/span&gt; handler&lt;span style=&quot;color: #808030;&quot;&gt;,&lt;/span&gt; item&lt;span style=&quot;color: #808030;&quot;&gt;)&lt;/span&gt;&lt;span style=&quot;color: #808030;&quot;&gt;:&lt;/span&gt;
        &lt;span style=&quot;color: maroon; font-weight: bold;&quot;&gt;if&lt;/span&gt; item&lt;span style=&quot;color: #808030;&quot;&gt;[&lt;/span&gt;&lt;span style=&quot;color: #0000e6;&quot;&gt;&#39;description&#39;&lt;/span&gt;&lt;span style=&quot;color: #808030;&quot;&gt;]&lt;/span&gt; &lt;span style=&quot;color: maroon; font-weight: bold;&quot;&gt;is&lt;/span&gt; &lt;span style=&quot;color: maroon; font-weight: bold;&quot;&gt;not&lt;/span&gt; &lt;span style=&quot;color: #e34adc;&quot;&gt;None&lt;/span&gt;&lt;span style=&quot;color: #808030;&quot;&gt;:&lt;/span&gt;
            handler&lt;span style=&quot;color: #808030;&quot;&gt;.&lt;/span&gt;addQuickElementCDATA&lt;span style=&quot;color: #808030;&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color: #0000e6;&quot;&gt;u&#39;description&#39;&lt;/span&gt;&lt;span style=&quot;color: #808030;&quot;&gt;,&lt;/span&gt; item&lt;span style=&quot;color: #808030;&quot;&gt;[&lt;/span&gt;&lt;span style=&quot;color: #0000e6;&quot;&gt;&#39;description&#39;&lt;/span&gt;&lt;span style=&quot;color: #808030;&quot;&gt;]&lt;/span&gt;&lt;span style=&quot;color: #808030;&quot;&gt;)&lt;/span&gt;
            item&lt;span style=&quot;color: #808030;&quot;&gt;[&lt;/span&gt;&lt;span style=&quot;color: #0000e6;&quot;&gt;&#39;description&#39;&lt;/span&gt;&lt;span style=&quot;color: #808030;&quot;&gt;]&lt;/span&gt; &lt;span style=&quot;color: #808030;&quot;&gt;=&lt;/span&gt; &lt;span style=&quot;color: #e34adc;&quot;&gt;None&lt;/span&gt;
        &lt;span style=&quot;color: #e34adc;&quot;&gt;super&lt;/span&gt;&lt;span style=&quot;color: #808030;&quot;&gt;(&lt;/span&gt;Rss&lt;span style=&quot;color: #808030;&quot;&gt;,&lt;/span&gt; self&lt;span style=&quot;color: #808030;&quot;&gt;)&lt;/span&gt;&lt;span style=&quot;color: #808030;&quot;&gt;.&lt;/span&gt;add_item_elements&lt;span style=&quot;color: #808030;&quot;&gt;(&lt;/span&gt;handler&lt;span style=&quot;color: #808030;&quot;&gt;,&lt;/span&gt; item&lt;span style=&quot;color: #808030;&quot;&gt;)&lt;/span&gt;


&lt;span style=&quot;color: maroon; font-weight: bold;&quot;&gt;class&lt;/span&gt; RssYandex&lt;span style=&quot;color: #808030;&quot;&gt;(&lt;/span&gt;Rss&lt;span style=&quot;color: #808030;&quot;&gt;)&lt;/span&gt;&lt;span style=&quot;color: #808030;&quot;&gt;:&lt;/span&gt;
    &lt;span style=&quot;color: maroon; font-weight: bold;&quot;&gt;def&lt;/span&gt; rss_attributes&lt;span style=&quot;color: #808030;&quot;&gt;(&lt;/span&gt;self&lt;span style=&quot;color: #808030;&quot;&gt;)&lt;/span&gt;&lt;span style=&quot;color: #808030;&quot;&gt;:&lt;/span&gt;
        attrs &lt;span style=&quot;color: #808030;&quot;&gt;=&lt;/span&gt; &lt;span style=&quot;color: #e34adc;&quot;&gt;super&lt;/span&gt;&lt;span style=&quot;color: #808030;&quot;&gt;(&lt;/span&gt;RssYandex&lt;span style=&quot;color: #808030;&quot;&gt;,&lt;/span&gt; self&lt;span style=&quot;color: #808030;&quot;&gt;)&lt;/span&gt;&lt;span style=&quot;color: #808030;&quot;&gt;.&lt;/span&gt;rss_attributes&lt;span style=&quot;color: #808030;&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color: #808030;&quot;&gt;)&lt;/span&gt;
        attrs&lt;span style=&quot;color: #808030;&quot;&gt;.&lt;/span&gt;update&lt;span style=&quot;color: #808030;&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color: purple;&quot;&gt;{&lt;/span&gt;&lt;span style=&quot;color: #0000e6;&quot;&gt;&#39;xmlns&#39;&lt;/span&gt;&lt;span style=&quot;color: #808030;&quot;&gt;:&lt;/span&gt;&lt;span style=&quot;color: #0000e6;&quot;&gt;&#39;http://backend.userland.com/rss2&#39;&lt;/span&gt;&lt;span style=&quot;color: #808030;&quot;&gt;,&lt;/span&gt; &lt;span style=&quot;color: #0000e6;&quot;&gt;&#39;xmlns:yandex&#39;&lt;/span&gt;&lt;span style=&quot;color: #808030;&quot;&gt;:&lt;/span&gt;&lt;span style=&quot;color: #0000e6;&quot;&gt;&#39;http://news.yandex.ru&#39;&lt;/span&gt;&lt;span style=&quot;color: purple;&quot;&gt;}&lt;/span&gt;&lt;span style=&quot;color: #808030;&quot;&gt;)&lt;/span&gt;
        &lt;span style=&quot;color: maroon; font-weight: bold;&quot;&gt;return&lt;/span&gt; attrs
    
    &lt;span style=&quot;color: maroon; font-weight: bold;&quot;&gt;def&lt;/span&gt; add_item_elements&lt;span style=&quot;color: #808030;&quot;&gt;(&lt;/span&gt;self&lt;span style=&quot;color: #808030;&quot;&gt;,&lt;/span&gt; handler&lt;span style=&quot;color: #808030;&quot;&gt;,&lt;/span&gt; item&lt;span style=&quot;color: #808030;&quot;&gt;)&lt;/span&gt;&lt;span style=&quot;color: #808030;&quot;&gt;:&lt;/span&gt;
        &lt;span style=&quot;color: maroon; font-weight: bold;&quot;&gt;if&lt;/span&gt; item&lt;span style=&quot;color: #808030;&quot;&gt;[&lt;/span&gt;&lt;span style=&quot;color: #0000e6;&quot;&gt;&#39;fulltext&#39;&lt;/span&gt;&lt;span style=&quot;color: #808030;&quot;&gt;]&lt;/span&gt; &lt;span style=&quot;color: maroon; font-weight: bold;&quot;&gt;is&lt;/span&gt; &lt;span style=&quot;color: maroon; font-weight: bold;&quot;&gt;not&lt;/span&gt; &lt;span style=&quot;color: #e34adc;&quot;&gt;None&lt;/span&gt;&lt;span style=&quot;color: #808030;&quot;&gt;:&lt;/span&gt;
            handler&lt;span style=&quot;color: #808030;&quot;&gt;.&lt;/span&gt;addQuickElementCDATA&lt;span style=&quot;color: #808030;&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color: #0000e6;&quot;&gt;u&#39;yandex:full-text&#39;&lt;/span&gt;&lt;span style=&quot;color: #808030;&quot;&gt;,&lt;/span&gt; item&lt;span style=&quot;color: #808030;&quot;&gt;[&lt;/span&gt;&lt;span style=&quot;color: #0000e6;&quot;&gt;&#39;fulltext&#39;&lt;/span&gt;&lt;span style=&quot;color: #808030;&quot;&gt;]&lt;/span&gt;&lt;span style=&quot;color: #808030;&quot;&gt;)&lt;/span&gt;
        &lt;span style=&quot;color: #e34adc;&quot;&gt;super&lt;/span&gt;&lt;span style=&quot;color: #808030;&quot;&gt;(&lt;/span&gt;RssYandex&lt;span style=&quot;color: #808030;&quot;&gt;,&lt;/span&gt; self&lt;span style=&quot;color: #808030;&quot;&gt;)&lt;/span&gt;&lt;span style=&quot;color: #808030;&quot;&gt;.&lt;/span&gt;add_item_elements&lt;span style=&quot;color: #808030;&quot;&gt;(&lt;/span&gt;handler&lt;span style=&quot;color: #808030;&quot;&gt;,&lt;/span&gt; item&lt;span style=&quot;color: #808030;&quot;&gt;)&lt;/span&gt;&lt;/pre&gt;&lt;br /&gt;
&lt;br /&gt;
пример использования:&lt;br /&gt;
&lt;pre style=&quot;background: none repeat scroll 0% 0% rgb(255, 255, 255); color: black;&quot;&gt;&lt;span style=&quot;color: maroon; font-weight: bold;&quot;&gt;class&lt;/span&gt; MyFeed&lt;span style=&quot;color: #808030;&quot;&gt;(&lt;/span&gt;Feed&lt;span style=&quot;color: #808030;&quot;&gt;)&lt;/span&gt;&lt;span style=&quot;color: #808030;&quot;&gt;:&lt;/span&gt;
    feed_type &lt;span style=&quot;color: #808030;&quot;&gt;=&lt;/span&gt; RssYandex

    &lt;span style=&quot;color: maroon; font-weight: bold;&quot;&gt;def&lt;/span&gt; item_extra_kwargs&lt;span style=&quot;color: #808030;&quot;&gt;(&lt;/span&gt;self&lt;span style=&quot;color: #808030;&quot;&gt;,&lt;/span&gt; item&lt;span style=&quot;color: #808030;&quot;&gt;)&lt;/span&gt;&lt;span style=&quot;color: #808030;&quot;&gt;:&lt;/span&gt;
        &lt;span style=&quot;color: maroon; font-weight: bold;&quot;&gt;return&lt;/span&gt; &lt;span style=&quot;color: purple;&quot;&gt;{&lt;/span&gt;&lt;span style=&quot;color: #0000e6;&quot;&gt;&#39;fulltext&#39;&lt;/span&gt;&lt;span style=&quot;color: #808030;&quot;&gt;:&lt;/span&gt;item&lt;span style=&quot;color: #808030;&quot;&gt;.&lt;/span&gt;body&lt;span style=&quot;color: #808030;&quot;&gt;.&lt;/span&gt;rendered&lt;span style=&quot;color: purple;&quot;&gt;}&lt;/span&gt;

&lt;/pre&gt;&lt;br /&gt;
и не забываем про любимую Яндексом кодировку:&lt;br /&gt;
&lt;pre style=&quot;background: none repeat scroll 0% 0% rgb(255, 255, 255); color: black;&quot;&gt;&lt;span style=&quot;color: maroon; font-weight: bold;&quot;&gt;def&lt;/span&gt; feed&lt;span style=&quot;color: #808030;&quot;&gt;(&lt;/span&gt;request&lt;span style=&quot;color: #808030;&quot;&gt;,&lt;/span&gt; url&lt;span style=&quot;color: #808030;&quot;&gt;)&lt;/span&gt;&lt;span style=&quot;color: #808030;&quot;&gt;:&lt;/span&gt;
    &lt;span style=&quot;color: maroon; font-weight: bold;&quot;&gt;try&lt;/span&gt;&lt;span style=&quot;color: #808030;&quot;&gt;:&lt;/span&gt;
        slug&lt;span style=&quot;color: #808030;&quot;&gt;,&lt;/span&gt; param &lt;span style=&quot;color: #808030;&quot;&gt;=&lt;/span&gt; url&lt;span style=&quot;color: #808030;&quot;&gt;.&lt;/span&gt;split&lt;span style=&quot;color: #808030;&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color: #0000e6;&quot;&gt;&#39;/&#39;&lt;/span&gt;&lt;span style=&quot;color: #808030;&quot;&gt;,&lt;/span&gt;&lt;span style=&quot;color: #008c00;&quot;&gt;1&lt;/span&gt;&lt;span style=&quot;color: #808030;&quot;&gt;)&lt;/span&gt;
    &lt;span style=&quot;color: maroon; font-weight: bold;&quot;&gt;except&lt;/span&gt; &lt;span style=&quot;color: #e34adc;&quot;&gt;ValueError&lt;/span&gt;&lt;span style=&quot;color: #808030;&quot;&gt;:&lt;/span&gt;
        slug&lt;span style=&quot;color: #808030;&quot;&gt;,&lt;/span&gt; param &lt;span style=&quot;color: #808030;&quot;&gt;=&lt;/span&gt; url&lt;span style=&quot;color: #808030;&quot;&gt;,&lt;/span&gt; &lt;span style=&quot;color: #0000e6;&quot;&gt;&#39;&#39;&lt;/span&gt;
    
    f &lt;span style=&quot;color: #808030;&quot;&gt;=&lt;/span&gt; MyFeed&lt;span style=&quot;color: #808030;&quot;&gt;(&lt;/span&gt;slug&lt;span style=&quot;color: #808030;&quot;&gt;,&lt;/span&gt; request&lt;span style=&quot;color: #808030;&quot;&gt;)&lt;/span&gt;&lt;span style=&quot;color: #808030;&quot;&gt;.&lt;/span&gt;get_feed&lt;span style=&quot;color: #808030;&quot;&gt;(&lt;/span&gt;param&lt;span style=&quot;color: #808030;&quot;&gt;)&lt;/span&gt;
    
    response &lt;span style=&quot;color: #808030;&quot;&gt;=&lt;/span&gt; HttpResponse&lt;span style=&quot;color: #808030;&quot;&gt;(&lt;/span&gt;mimetype&lt;span style=&quot;color: #808030;&quot;&gt;=&lt;/span&gt;f&lt;span style=&quot;color: #808030;&quot;&gt;.&lt;/span&gt;mime_type&lt;span style=&quot;color: #808030;&quot;&gt;)&lt;/span&gt;
    f&lt;span style=&quot;color: #808030;&quot;&gt;.&lt;/span&gt;write&lt;span style=&quot;color: #808030;&quot;&gt;(&lt;/span&gt;response&lt;span style=&quot;color: #808030;&quot;&gt;,&lt;/span&gt; &lt;span style=&quot;color: #0000e6;&quot;&gt;&#39;windows-1251&#39;&lt;/span&gt;&lt;span style=&quot;color: #808030;&quot;&gt;)&lt;/span&gt;
    &lt;span style=&quot;color: maroon; font-weight: bold;&quot;&gt;return&lt;/span&gt; response
&lt;/pre&gt;&lt;br /&gt;
&lt;br /&gt;
если вам не нужна поддержка CDATA, то можно обойтись малой кровью&lt;br /&gt;
&lt;pre style=&quot;background: none repeat scroll 0% 0% rgb(255, 255, 255); color: black;&quot;&gt;&lt;span style=&quot;color: maroon; font-weight: bold;&quot;&gt;from&lt;/span&gt; django&lt;span style=&quot;color: #808030;&quot;&gt;.&lt;/span&gt;utils&lt;span style=&quot;color: #808030;&quot;&gt;.&lt;/span&gt;feedgenerator &lt;span style=&quot;color: maroon; font-weight: bold;&quot;&gt;import&lt;/span&gt; Rss201rev2Feed

&lt;span style=&quot;color: maroon; font-weight: bold;&quot;&gt;class&lt;/span&gt; RssYandex&lt;span style=&quot;color: #808030;&quot;&gt;(&lt;/span&gt;Rss201rev2Feed&lt;span style=&quot;color: #808030;&quot;&gt;)&lt;/span&gt;&lt;span style=&quot;color: #808030;&quot;&gt;:&lt;/span&gt;
    &lt;span style=&quot;color: maroon; font-weight: bold;&quot;&gt;def&lt;/span&gt; rss_attributes&lt;span style=&quot;color: #808030;&quot;&gt;(&lt;/span&gt;self&lt;span style=&quot;color: #808030;&quot;&gt;)&lt;/span&gt;&lt;span style=&quot;color: #808030;&quot;&gt;:&lt;/span&gt;
        attrs &lt;span style=&quot;color: #808030;&quot;&gt;=&lt;/span&gt; &lt;span style=&quot;color: #e34adc;&quot;&gt;super&lt;/span&gt;&lt;span style=&quot;color: #808030;&quot;&gt;(&lt;/span&gt;RssYandex&lt;span style=&quot;color: #808030;&quot;&gt;,&lt;/span&gt; self&lt;span style=&quot;color: #808030;&quot;&gt;)&lt;/span&gt;&lt;span style=&quot;color: #808030;&quot;&gt;.&lt;/span&gt;rss_attributes&lt;span style=&quot;color: #808030;&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color: #808030;&quot;&gt;)&lt;/span&gt;
        attrs&lt;span style=&quot;color: #808030;&quot;&gt;.&lt;/span&gt;update&lt;span style=&quot;color: #808030;&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color: purple;&quot;&gt;{&lt;/span&gt;&lt;span style=&quot;color: #0000e6;&quot;&gt;&#39;xmlns&#39;&lt;/span&gt;&lt;span style=&quot;color: #808030;&quot;&gt;:&lt;/span&gt;&lt;span style=&quot;color: #0000e6;&quot;&gt;&#39;http://backend.userland.com/rss2&#39;&lt;/span&gt;&lt;span style=&quot;color: #808030;&quot;&gt;,&lt;/span&gt; &lt;span style=&quot;color: #0000e6;&quot;&gt;&#39;xmlns:yandex&#39;&lt;/span&gt;&lt;span style=&quot;color: #808030;&quot;&gt;:&lt;/span&gt;&lt;span style=&quot;color: #0000e6;&quot;&gt;&#39;http://news.yandex.ru&#39;&lt;/span&gt;&lt;span style=&quot;color: purple;&quot;&gt;}&lt;/span&gt;&lt;span style=&quot;color: #808030;&quot;&gt;)&lt;/span&gt;
        &lt;span style=&quot;color: maroon; font-weight: bold;&quot;&gt;return&lt;/span&gt; attrs
    
    &lt;span style=&quot;color: maroon; font-weight: bold;&quot;&gt;def&lt;/span&gt; add_item_elements&lt;span style=&quot;color: #808030;&quot;&gt;(&lt;/span&gt;self&lt;span style=&quot;color: #808030;&quot;&gt;,&lt;/span&gt; handler&lt;span style=&quot;color: #808030;&quot;&gt;,&lt;/span&gt; item&lt;span style=&quot;color: #808030;&quot;&gt;)&lt;/span&gt;&lt;span style=&quot;color: #808030;&quot;&gt;:&lt;/span&gt;
        &lt;span style=&quot;color: maroon; font-weight: bold;&quot;&gt;if&lt;/span&gt; item&lt;span style=&quot;color: #808030;&quot;&gt;[&lt;/span&gt;&lt;span style=&quot;color: #0000e6;&quot;&gt;&#39;fulltext&#39;&lt;/span&gt;&lt;span style=&quot;color: #808030;&quot;&gt;]&lt;/span&gt; &lt;span style=&quot;color: maroon; font-weight: bold;&quot;&gt;is&lt;/span&gt; &lt;span style=&quot;color: maroon; font-weight: bold;&quot;&gt;not&lt;/span&gt; &lt;span style=&quot;color: #e34adc;&quot;&gt;None&lt;/span&gt;&lt;span style=&quot;color: #808030;&quot;&gt;:&lt;/span&gt;
            handler&lt;span style=&quot;color: #808030;&quot;&gt;.&lt;/span&gt;addQuickElement&lt;span style=&quot;color: #808030;&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color: #0000e6;&quot;&gt;u&#39;yandex:full-text&#39;&lt;/span&gt;&lt;span style=&quot;color: #808030;&quot;&gt;,&lt;/span&gt; item&lt;span style=&quot;color: #808030;&quot;&gt;[&lt;/span&gt;&lt;span style=&quot;color: #0000e6;&quot;&gt;&#39;fulltext&#39;&lt;/span&gt;&lt;span style=&quot;color: #808030;&quot;&gt;]&lt;/span&gt;&lt;span style=&quot;color: #808030;&quot;&gt;)&lt;/span&gt;
        &lt;span style=&quot;color: #e34adc;&quot;&gt;super&lt;/span&gt;&lt;span style=&quot;color: #808030;&quot;&gt;(&lt;/span&gt;RssYandex&lt;span style=&quot;color: #808030;&quot;&gt;,&lt;/span&gt; self&lt;span style=&quot;color: #808030;&quot;&gt;)&lt;/span&gt;&lt;span style=&quot;color: #808030;&quot;&gt;.&lt;/span&gt;add_item_elements&lt;span style=&quot;color: #808030;&quot;&gt;(&lt;/span&gt;handler&lt;span style=&quot;color: #808030;&quot;&gt;,&lt;/span&gt; item&lt;span style=&quot;color: #808030;&quot;&gt;)&lt;/span&gt;
&lt;/pre&gt;</description><link>http://afhbl.blogspot.com/2010/01/django-ndex-rss.html</link><author>noreply@blogger.com (Фарид)</author><thr:total>2</thr:total></item></channel></rss>