Esempio n. 1
0
def EntryFromDict(dico, feed_url):
    dico = normalize_entry_dict(dico, feed_url)
    entry = Entry(dico['title'], dico['content'])
    entry.url = dico['url']
    entry.link = dico['link']
    entry.title = dico['title']
    entry.content = dico['content']
    entry.mimetype = dico['mimetype']
    entry.created = dico['created']
    entry.updated = dico['updated']
    entry.public = False
    return entry
Esempio n. 2
0
def pull_feeds(request):
	sources = Source.objects.filter(usersource__user=request.user)

	for source in sources:
		if source.xml_url:
			d = feedparser.parse(source.xml_url)

			#update source with attributes from feed
			if 'icon' in d.feed:
				source.icon_url = d.feed.icon
			if 'updated_parsed' in d.feed and d.feed.updated_parsed is not None:
				source.updated_parsed = datetime.fromtimestamp(mktime(d.feed.updated_parsed))
			source.save()

			#print [field for field in d]
			for e in d['entries']:
				if 'published_parsed' in e:
					entry_published_date = datetime.fromtimestamp(mktime(e.published_parsed)) #feed timestamp
					if source.updated_parsed is None or entry_published_date>source.updated_parsed:
						entry = Entry(source=source, title=e.title, raw=e)
						if 'author_detail' in e:
							if 'name' in e.author_detail:
								entry.author_name = e.author_detail.name	
							if 'href' in e.author_detail:
								entry.author_href = e.author_detail.href
							if 'email' in e.author_detail:
								entry.author_email = e.author_detail.email
						if 'comments' in e:
							entry.comments_href = e.comments
						if 'content' in e:
							entry.content = e.content
						if 'contributors' in e:
							entry.contributors = e.contributors
						if 'link' in e:
							entry.link = e.link
						if 'links' in e:
							entry.links = e.links
						if 'created_parsed' in e:
							entry.created_parsed = datetime.fromtimestamp(mktime(e.created_parsed)) #feed timestamp
						if 'expired_parsed' in e:
							entry.expired_parsed = datetime.fromtimestamp(mktime(e.expired_parsed)) #feed timestamp
						if 'published_parsed' in e:
							entry.published_parsed = datetime.fromtimestamp(mktime(e.published_parsed)) #feed timestamp
						if 'updated_parsed' in e:
							entry.updated_parsed = datetime.fromtimestamp(mktime(e.updated_parsed)) #feed timestamp

						if 'summary' in e:
							entry.summary = e.summary
						entry.save()
				else:
					print 'Entry with no Publication date: %s' % e

	return HttpResponseRedirect( reverse('entries') )
Esempio n. 3
0
    def post(self):
        """
        /api/item, POST, create item 
        表单字段: url, author, title, content
        """

        p = Entry()
        p.url = self.request.get('tUrl')
        p.author = self.request.get('tAuthor')
        p.title = self.request.get('tTitle')
        p.content = self.request.get('tContent')
        p.tags = self.request.get('tTags').split(',')
        p.put(); # save

        self.response.headers['Content-Type'] = 'application/json'
        self.response.out.write('{ "success":true, "id":%s }' % p.key().id())
Esempio n. 4
0
    def post(self):
        #表单字段: url, author, title, content, allow_sendto_kindle
        bSendIt = self.request.get('bSendIt')

        p = Entry()
        p.url = self.request.get('tUrl')
        p.author = self.request.get('tAuthor')
        p.title = self.request.get('tTitle')
        p.content = self.request.get('tContent')
        p.tags = self.request.get('tTags').split(',')
        p.put(); # save

        #send to kindle
        if bSendIt: 
            common.add_task_sendmail(p.key().id());

        return self.redirect('/list/1')
Esempio n. 5
0
def autosave(handler, route, params):
    title = params.get("title", "")
    content = params.get("content", "")
    key = params.get("key", None)
    user = handler.session.get("account", False)
    if not title or not content:
        return {"saved": False}
    if not user:
        return {"account": False, "saved": False}
    if key:
        draft = Entry.get_by_key_name(key)
        if str(draft._author) != user:
            raise Exception("You are not this article's author")
    else:
        key = str(time.time()).replace(".", "")
        draft = Entry(key_name=key, author=db.Key(user))
    draft.title = title
    draft.content = content
    draft.put()
    return {"saved": key, "time": draft.isodate}