本文整理汇总了Python中werkzeug.contrib.atom.AtomFeed.add方法的典型用法代码示例。如果您正苦于以下问题:Python AtomFeed.add方法的具体用法?Python AtomFeed.add怎么用?Python AtomFeed.add使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类werkzeug.contrib.atom.AtomFeed
的用法示例。
在下文中一共展示了AtomFeed.add方法的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。
示例1: publictag_feed
# 需要导入模块: from werkzeug.contrib.atom import AtomFeed [as 别名]
# 或者: from werkzeug.contrib.atom.AtomFeed import add [as 别名]
def publictag_feed(tagkey):
""" rss/atom representation of the Read-only overview of the bookmarks in the userkey/tag of this PublicTag """
try:
this_tag = PublicTag.get(PublicTag.tagkey == tagkey)
bookmarks = Bookmark.select().where(
Bookmark.userkey == this_tag.userkey,
Bookmark.tags.contains(this_tag.tag),
Bookmark.status == Bookmark.VISIBLE
)
feed = AtomFeed(this_tag.tag, feed_url=request.url, url=make_external(url_for('publictag_page', tagkey=tagkey)))
for bookmark in bookmarks:
updated_date = bookmark.modified_date
if not bookmark.modified_date:
updated_date = bookmark.created_date
bookmarktitle = '{} (no title)'.format(bookmark.url)
if bookmark.title:
bookmarktitle = bookmark.title
feed.add(
bookmarktitle,
content_type='html',
author='digimarks',
url=bookmark.url,
updated=updated_date,
published=bookmark.created_date
)
return feed.get_response()
except PublicTag.DoesNotExist:
abort(404)
示例2: test_atom_add_one
# 需要导入模块: from werkzeug.contrib.atom import AtomFeed [as 别名]
# 或者: from werkzeug.contrib.atom.AtomFeed import add [as 别名]
def test_atom_add_one(self):
a = AtomFeed(title='test_title', id=1)
f = FeedEntry(
title='test_title', id=1, updated=datetime.datetime.now())
assert len(a.entries) == 0
a.add(f)
assert len(a.entries) == 1
示例3: feed
# 需要导入模块: from werkzeug.contrib.atom import AtomFeed [as 别名]
# 或者: from werkzeug.contrib.atom.AtomFeed import add [as 别名]
def feed(site):
if site == 'hackernews':
title = 'Hacker News Digest'
news_list = models.HackerNews.query.order_by('submit_time desc').all()
else:
title = 'Startup News Digest'
news_list = models.StartupNews.query.order_by('submit_time desc').all()
feed = AtomFeed(title,
updated=models.LastUpdated.get(site),
feed_url=request.url,
url=urljoin(request.url_root, url_for(site)),
author={
'name': 'polyrabbit',
'uri': 'https://github.com/polyrabbit/'}
)
for news in news_list:
feed.add(news.title,
content=news.summary and
('<img src="%s" style="width: 220px; float: left" />' % news.image.url if news.img_id else '')
+ news.summary,
author={
'name': news.author,
'uri': news.author_link
} if news.author_link else (),
url=news.url,
updated=news.submit_time,)
return feed.get_response()
示例4: atomfeed
# 需要导入模块: from werkzeug.contrib.atom import AtomFeed [as 别名]
# 或者: from werkzeug.contrib.atom.AtomFeed import add [as 别名]
def atomfeed():
t = request.args.get('t')
if not t:
t = 'url'
r = get_last(t)
if not (r.status_code == 200 and len(r.response) > 0):
return {}
j = json.loads(r.response[0])
if len(j) < 1:
return {}
feed = AtomFeed('Les liens (pas forcement) SFW de GCU-Squad!',
feed_url=request.url, url=request.url_root,
subtitle='Adresses vues sur le canal #[email protected]')
for item in j:
post = item['_source']
for url in post['urls']:
datefmt = '%Y-%m-%dT%H:%M:%S.%f'
pubdate = datetime.datetime.strptime(post['fulldate'], datefmt)
update = pubdate
if post['tags']:
line = '{0} #{1}#'.format(post['line'], ','.join(post['tags']))
else:
line = post['line']
feed.add(title=line, title_type='text', url=url,
author=post['nick'], published=pubdate, updated=update)
return feed.get_response()
示例5: feed
# 需要导入模块: from werkzeug.contrib.atom import AtomFeed [as 别名]
# 或者: from werkzeug.contrib.atom.AtomFeed import add [as 别名]
def feed():
blogging_engine = _get_blogging_engine(current_app)
storage = blogging_engine.storage
config = blogging_engine.config
count = config.get("BLOGGING_FEED_LIMIT")
posts = storage.get_posts(count=count, offset=None, recent=True,
user_id=None, tag=None, include_draft=False)
feed = AtomFeed(
'%s - All Articles' % config.get("BLOGGING_SITENAME",
"Flask-Blogging"),
feed_url=request.url, url=request.url_root, generator=None)
if len(posts):
feed_posts_fetched.send(blogging_engine.app, engine=blogging_engine,
posts=posts)
for post in posts:
blogging_engine.process_post(post, render=True)
feed.add(post["title"], str(post["rendered_text"]),
content_type='html',
author=post["user_name"],
url=config.get("BLOGGING_SITEURL", "")+post["url"],
updated=post["last_modified_date"],
published=post["post_date"])
feed_posts_processed.send(blogging_engine.app, engine=blogging_engine,
feed=feed)
response = feed.get_response()
response.headers["Content-Type"] = "application/xml"
return response
示例6: rss
# 需要导入模块: from werkzeug.contrib.atom import AtomFeed [as 别名]
# 或者: from werkzeug.contrib.atom.AtomFeed import add [as 别名]
def rss():
feed = AtomFeed('Hacker News TLDR',
feed_url=request.url, url=request.url_root)
stories = _get_stories()
for story in stories:
if not story.get(BODY, {}).get(SENTENCES):
body = 'Unable to generate summary'
else:
body = '<ul>{}</ul>'.format(
'\n'.join(
"<li>{}</li>".format(
sentence
) for sentence in story[BODY][SENTENCES]
)
)
body += "<br/><a href={}>HN Comments</a>".format(
'https://news.ycombinator.com/item?id={}'.format(
story[HACKER_NEWS_ID]
)
)
feed.add(story[TITLE], body,
content_type='html',
updated=datetime.strptime(
story[DATE_FOUND],
'%Y-%m-%d %H:%M:%S.%f'),
url=urljoin(request.url_root, story[URL]),
)
return feed.get_response()
示例7: itemsATOM
# 需要导入模块: from werkzeug.contrib.atom import AtomFeed [as 别名]
# 或者: from werkzeug.contrib.atom.AtomFeed import add [as 别名]
def itemsATOM():
''' Returns an Atom feed of all items '''
feed = AtomFeed(title="Imperial Catalog",
subtitle="A catalog of Galactice Empire items",
feed_url="http://localhost:8000/feed",
url="http://localhost:8000",
author="Sean Fallmann")
categories = getAllCategories()
for c in categories:
for i in c.items:
feed.add(
category=c.name,
title=i.name,
id=i.id,
content=i.description,
content_type="html",
author=i.user.name,
url="http://localhost:8000/%s/%s" % (c.name, i.name),
updated=datetime.datetime.utcnow(),
)
return feed
示例8: get
# 需要导入模块: from werkzeug.contrib.atom import AtomFeed [as 别名]
# 或者: from werkzeug.contrib.atom.AtomFeed import add [as 别名]
def get(self):
feed = AtomFeed(
'Recently Added Watches - Wanna Buy A Watch',
feed_url=request.url,
url=request.url_root
)
# Prepare query
watches = session.query(Watch)
# TODO: .limit(15) and date_added
watches = watches.order_by(Watch.title).all()
for watch in watches:
feed.add(
watch.title,
unicode(watch.long_description),
content_type='html',
author='wbaw',
url=BASE_URL + '/' + watch.page_url + '?src=wbawsearch',
# TODO: Add updated and published
updated=datetime.now(),
published=datetime.now()
)
return feed.get_response()
示例9: _feeds
# 需要导入模块: from werkzeug.contrib.atom import AtomFeed [as 别名]
# 或者: from werkzeug.contrib.atom.AtomFeed import add [as 别名]
def _feeds(query=None, title='Recent Articles'):
posts = db.find("posts.files", query or {}).\
sort([("uploadDate", -1)]).limit(PAGE_SIZE)
feed = AtomFeed(title, feed_url=request.url, url=request.url_root)
from monblog.common.encodings import force_bytes
for post in posts:
author = conf.BLOG_SETTINGS.get("AUTHOR", "")
url = urljoin(request.url_root,
url_for("get_post", post_id=str(post["_id"])))
text = force_bytes(
db.fs.get(objectid.ObjectId(post["_id"])).read(),
"ascii",
errors="ignore")
feed.add(
post["metadata"].get("title"),
markdown(text),
id=url,
content_type='html',
url=url,
updated=post["uploadDate"],
published=post["uploadDate"],
author=post["metadata"].get("author", author))
return feed.get_response()
示例10: do_atom
# 需要导入模块: from werkzeug.contrib.atom import AtomFeed [as 别名]
# 或者: from werkzeug.contrib.atom.AtomFeed import add [as 别名]
def do_atom(path=None):
feed = AtomFeed('Changes' + (' - %s' % path if path != '/' else ''), feed_url=request.url, url=request.url_root)
history = []
if path != '/':
for entry in get_history(path):
entry.insert(1, path)
history.append(entry)
if len(history) == ATOM_LIMIT:
break
else:
for path in get_documents_list():
for entry in get_history(path):
entry.insert(1, path)
history.append(entry)
history = sorted(history, key=lambda x: x[0], reverse=True)[:ATOM_LIMIT]
for date, path, rev, author, desc in history:
feed.add(path, desc if desc != '-' else 'No summary available',
url=url_for('index', path=path, do='compare', to=rev),
author=author,
updated=date)
return feed.get_response()
示例11: generate_feed
# 需要导入模块: from werkzeug.contrib.atom import AtomFeed [as 别名]
# 或者: from werkzeug.contrib.atom.AtomFeed import add [as 别名]
def generate_feed(artifact):
feed = AtomFeed(
title=title or 'Feed',
subtitle=unicode(subtitle or ''),
subtitle_type=hasattr(subtitle, '__html__') and 'html' or 'text',
feed_url=feed_url,
url=embed_url,
id=get_id(ctx.env.project.id + 'lektor')
)
for item in items:
feed.add(
get_item_title(item, item_title_field),
get_item_body(item, item_body_field),
xml_base=url_to(item, external=True),
url=url_to(item, external=True),
content_type='html',
id=get_id(u'%slektor/%s' % (
ctx.env.project.id,
item['_path'].encode('utf-8'),
)),
author=get_item_author(item, item_author_field),
updated=get_item_updated(item, item_date_field))
with artifact.open('wb') as f:
f.write(feed.to_string().encode('utf-8') + '\n')
示例12: recent_feed
# 需要导入模块: from werkzeug.contrib.atom import AtomFeed [as 别名]
# 或者: from werkzeug.contrib.atom.AtomFeed import add [as 别名]
def recent_feed():
feed = AtomFeed('Recent Articles', feed_url=request.url, url=request.url_root)
threads = Thread.query.order_by(Thread.last_updated.desc()).filter(Thread.user==None).all()
for thread in threads:
url = url_for('thread', display_hash=thread.display_hash, title=thread.slug())
feed.add(thread.title, '', content_type='html', author=thread.display_name, url=url, updated=thread.last_updated, published=thread.date_created)
return feed.get_response()
示例13: recent_atom
# 需要导入模块: from werkzeug.contrib.atom import AtomFeed [as 别名]
# 或者: from werkzeug.contrib.atom.AtomFeed import add [as 别名]
def recent_atom():
app.logger.debug(request.url_root)
feed = AtomFeed('Recent Events', feed_url=request.url, url=request.url_root)
events = session.query(Event).all()
for e in events:
feed.add(id=e.id, title=e.title, content_type='html', updated=e.created)
return feed.get_response()
示例14: blog_feed
# 需要导入模块: from werkzeug.contrib.atom import AtomFeed [as 别名]
# 或者: from werkzeug.contrib.atom.AtomFeed import add [as 别名]
def blog_feed():
posts = Gallery.get_list(published=True, to_json=True)
feed_url = "{}/blog/feed.atom".format(g.app_base_link)
feed = AtomFeed('KateHeddleston.com Blog Posts',
feed_url=feed_url,
url='{}/blog'.format(g.app_base_link))
for post in posts:
post_html = []
for item in post.get('items'):
item_text = ""
if item.get('title'):
item_text += u'<h2>{}</h2><br>'.format(item.get('title'))
if item.get('image_name'):
img_src = u'{}/{}'.format(post.get('base_url'), item.get('image_name'))
item_text += u"<img src='{}' />".format(img_src)
if item.get('image_caption'):
item_text += u"<div>{}</div>".format(item.get('image_caption'))
item_text += '<br>'
item_text += item.get('body')
post_html.append(item_text)
text = '</p><p>'.join(post_html)
text = '<p>' + text + '</p>'
post_url = "{}/blog/{}".format(g.app_base_link, post.get('uuid'))
published_at = datetime.datetime.strptime(post['published_at_raw'], '%Y-%m-%dT%H:%M:%S')
feed.add(post.get('name'),
unicode(text),
content_type='html',
author=post.get('author'),
url=post_url,
updated=published_at,
published=published_at)
return feed.get_response()
示例15: recent_feed
# 需要导入模块: from werkzeug.contrib.atom import AtomFeed [as 别名]
# 或者: from werkzeug.contrib.atom.AtomFeed import add [as 别名]
def recent_feed():
feed = AtomFeed(_('Last datasets'),
feed_url=request.url, url=request.url_root)
datasets = (Dataset.objects.visible().order_by('-created_at')
.limit(current_site.feed_size))
for dataset in datasets:
author = None
if dataset.organization:
author = {
'name': dataset.organization.name,
'uri': url_for('organizations.show',
org=dataset.organization.id, _external=True),
}
elif dataset.owner:
author = {
'name': dataset.owner.fullname,
'uri': url_for('users.show',
user=dataset.owner.id, _external=True),
}
feed.add(dataset.title,
render_template('dataset/feed_item.html', dataset=dataset),
content_type='html',
author=author,
url=url_for('datasets.show',
dataset=dataset.id, _external=True),
updated=dataset.last_modified,
published=dataset.created_at)
return feed.get_response()