I figured out a solutiion. It may not be the most appropriate, though,
in the controller, here is what gets returned:
return(XML(t_conditions + t_summary))
and in the view,
{{ =(XML(LOAD('default','weatherfeed')))}}
This prints out the image and text with no extraneous characters.
On Thursday, May 23, 2013 9:52:06 AM UTC-5, greaneym wrote:
>
> Thank you, Massimo,
>
> After reading a lot more about feedparser and xlml,
> I began going through xlml examples but figured that feedparser was already
> doing most of what I needed, so I found this on stackoverflow,
>
> http://stackoverflow.com/questions/11157894/less-painful-way-to-parse-a-rss-feed-with-lxml
>
> and read more docs on feedparser entries.
>
> and reading the html "view source" of the rss feed from rss_aggregator, I
> found that 'title' and 'summary' contained what I needed.
>
> With feedparser selections, I can display the current weather from NOAA
> page.
>
> The only problem is that I don't understand how to reformat so uuencoded?
> details don't get left in the view. I've made attempts to translate or
> reformat or use helpers but so not getting the plain string that I want to
> view.
>
> To get a current weather report from NOAA and display it, here is my
> solution.
>
> 1. http://w1.weather.gov/xml/current_obs/ Go here and select airport
> location closest
> to desired destination
> 2. select state Illinois, Find, Select Chicago Midway Airport, select RSS
> 3. copy the feed uri path from the uri window,
> feed://w1.weather.gov/xml/current_obs/KMDW.rss
> This will go into the feedparser.py function.
>
> rename rss_aggregator() in feedparser.py to weatherfeed()
>
> def weatherfeed():
> import datetime
> import gluon.contrib.rss2 as rss2
> import gluon.contrib.feedparser as feedparser
> # get the location closest to desired location first
> # and enter rss path below
> d = feedparser.parse('feed://w1.weather.gov/xml/current_obs/KMDW.rss')
> #this returns items but they are unicode values
> #wdict = d
> #print "wdict contains",wdict
> #print "wdict is type",type(wdict)
> #print "title",wdict['feed']['title']
> for entry in d['entries']:
> #print "feed title", d['feed']['title']
> #print "title type", type(d['feed']['title'])
> #print "bozo", d.bozo
> #print "headers" , d.headers.get('Content-type')
> strt_summary = entry.get('summary', '')
> t_summary = str(strt_summary)
> strt_conditions = entry.get('title', '')
> t_conditions = str(strt_conditions)
> print "t_conditions", t_conditions
> #typesummary = type(t_summary)
> print "t_conditions", t_conditions
> #typesummary = type(t_summary)
> #return dict(t_conditions=t_conditions,t_summary=t_summary)
> return (t_conditions,t_summary)
>
> I left in my commented print statements so other people trying it out can
> see contents of the lists and dictionaries.
>
>
> For the default/index.html view
>
> <h4> NOAA Weather Service</h4>
> {{=LOAD('default','weatherfeed')}}
> <!--{{=(XML(LOAD('default','weatherfeed')))}} has extra chars -->
> <!--{{=(XML(unicode(LOAD('default','weatherfeed'))))}} this has extra
> chars -->
> {{pass}}
> </h4>
>
> This contains almost what I need but I can't figure out how to get the
> unicode or extra chars out. I could use "tr" or some regexp but is there a
> simpler way to do it with a helper?
>
>
> thanks,
> Margaret
>
>
--
---
You received this message because you are subscribed to the Google Groups
"web2py-users" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
For more options, visit https://groups.google.com/groups/opt_out.