Ok, last post on this subject.

After reviewing the source for PyRSS2Gen I'm going to conclude (unless
someone who actually knows can clue me in) that PyRSS2Gen is not setup
to handle custom namespaces (itunes:blah). I've tried with both the
xml and the rss views and end up with the same issues. By an large the
feed works until I try to update the rss_attrs and use the itunes
namespace which is required for a proper iTunes podcast.

I'm going to write a simple view that can handle what I need without
resorting to using this module.

On Apr 27, 1:01 pm, Nite <[email protected]> wrote:
> Ok, found the syntax issue with the curly brace conversion...
>
> def feed():
>     a = dict()
>     a = { "title":"my feed",
>                 "link":"http://feed.example.com";,
>                 "description":"my first feed",
>                 "entries":[{'title':"my feed",
>                   "link":"http://feed.example.com";,
>                   "description":"my first feed"
>                 }]
>     }
>     return a
>
> I was missing the fact that entries requires a list.
>
> It seems that the RSS functionality requires certain fields (title,
> description, link, entries (which must be a list))
>
> As a result I am guessing this is incompatible with the iTunes podcast
> specification and I will need a different view to generate the
> required file.
>
> On Apr 27, 12:52 pm, Nite <[email protected]> wrote:
>
>
>
>
>
>
>
> > Upgraded to 1.95.1 which is current.
>
> > Still no joy.
>
> > It doesn't appear that curly brace notation will work for generating
> > RSS feeds or I am doing something wrong.
>
> > From the book here is the example:
>
> > def feed():
> >     return dict(title="my feed",
> >                 link="http://feed.example.com";,
> >                 description="my first feed",
> >                 entries=[
> >                   dict(title="my feed",
> >                   link="http://feed.example.com";,
> >                   description="my first feed")
> >                 ])
>
> > Here is my test of the same with curly brace notation:
>
> > def feed():
> >     a = dict()
> >     a = { "title":"my feed",
> >                 "link":"http://feed.example.com";,
> >                 "description":"my first feed",
> >                 "entries":{'title':"my feed",
> >                   "link":"http://feed.example.com";,
> >                   "description":"my first feed"
> >                 }
> >     }
> >     return a
>
> > The html result of the curly brace test is a correctly parsed
> > dictionary in html format.
>
> > The rss result is:
>
> > RSS error<!--
> > xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx 
> > xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx 
> > xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx 
> > xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx 
> > xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx 
> > xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx 
> > xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx //--
>
> > After striping the try/except from generic.rss I found this traceback:
> > Traceback (most recent call last):
> >   File "gluon/restricted.py", line 181, in restricted
> >   File "/Applications/DigitalAudioLibrary.app/Contents/Resources/
> > applications/DAL/views/generic.rss", line 11, in <module>
> >   File "gluon/serializers.py", line 71, in rss
> > TypeError: string indices must be integers
>
> > Function argument list
> > (feed={'description': 'my first feed', 'entries': {'description': 'my
> > first feed', 'link': 'http://feed.example.com', 'title': 'my feed'},
> > 'link': 'http://feed.example.com', 'title': 'my feed'})
>
> > My version of web2py:
>
> > Version 1.95.1 (2011-04-25 15:04:14)
> > web2py is up to date
>
> > On Apr 27, 12:25 pm, Anthony <[email protected]> wrote:
>
> > > On Wednesday, April 27, 2011 12:01:29 PM UTC-4, Nite wrote:
>
> > > > entries = [
> > > >   { 'itunes:name': foo,
> > > > ...
> > > >   }
> > > > ]
>
> > > > Results in the following:
>
> > > >    'itunes:owner' = [
> > > > SyntaxError: keyword can't be an expression
>
> > > I'm not sure this is the problem, but is foo a variable? If not, you
> > > probably have to put it in quotes (i.e., 'foo').
>
> > > > However, in RSS view I received this:
>
> > > > RSS error<!--
> > > > xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
> > > >  
> > > > xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
> > > >  
> > > > xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
> > > >  
> > > > xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
> > > >  
> > > > xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
> > > >  
> > > > xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
> > > >  xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
> > > > //--
>
> > > What version of web2py are you using? I think when the response body is 
> > > less
> > > than 512 characters, web2py appends an HTML comment full of x's in order 
> > > to
> > > trick IE. However, this is only necessary for HTML responses (and 
> > > generates
> > > an error with RSS, as you have observed). This was fixed recently, though
> > > (seehttp://code.google.com/p/web2py/source/detail?r=e46809139d9f9f8b91e6a...),
> > > so maybe try the most recent version of web2py.
>
> > > Anthony

Reply via email to