def get(self): # every 1 minute feeds = {"nrg": "http://rss.nrg.co.il/newsflash/", "וואלה!": "http://rss.walla.co.il/?w=/1/22/0/@rss", "ynet": "http://www.ynet.co.il/Integration/StoryRss1854.xml", "mako": "http://rcs.mako.co.il/rss/news-israel.xml"} updates = [] for name, url in feeds.iteritems(): for entry in feedparser.parse(url).entries: if Update.get_by_key_name(entry.title) is None: entry = Update(key_name=entry.title, content=utils.force_unicode(entry.title), date=datetime.datetime.fromtimestamp(time.mktime(entry.date_parsed)), source=utils.force_unicode(name), description=utils.force_unicode(entry.description)); entry.put() updates.append(entry) updates.sort(key=lambda item:item.date, reverse=True) for client_id in clients: try: channel.send_message(client_id, utils.updates_to_json(updates)) except: clients.remove(client_id)
def get(self): count = 20 updates = Update.all().order("-date").fetch(count, int(self.request.get("page")) * count) self.response.headers['Content-Type'] = 'application/json; charset=utf-8' self.response.out.write(utils.updates_to_json(updates))