django项目的快速、简单和可扩展的社会活动聚合
django-activitysync的Python项目详细描述
django activitysync是一个易于使用的django社交活动聚合器。 项目。
它可以用来存储和显示来自一系列社交网络的活动 (如Twitter、Reddit、谷歌阅读器等)。与其他实用程序不同 访问和显示活动,django activitysync分离呈现 从活动更新。所有活动信息都存储在项目的 数据库使用django模型,为页面请求提供了良好的性能。 通过django管理命令更新活动,该命令可以 通过使用cron之类的实用程序实现自动化。
功能
当前支持以下活动提供程序:
提供程序是使用一个简单的公共接口实现的,这使得它非常 易于添加对附加网络的支持
安装
来自pypi:
$ pip install django-activitysync
或:
$ easy_install django-activitysync
或从Bitbucket:
克隆$ hg clone https://bitbucket.org/dancarroll/django-activitysync
并将activitysync添加到pythonpath:
$ export PYTHONPATH=$PYTHONPATH:$(pwd)/django-activitysync/
或:
$ cd django-activitysync $ sudo python setup.py install
配置
将ActivitySync添加到设置中的INSTALLED_APPS。py:
INSTALLED_APPS = ( ... 'activitysync' )
将所需的提供程序添加到ACTIVITYSYNC_PROVIDERS设置:
ACTIVITYSYNC_PROVIDERS = ( 'activitysync.providers.googlereader.GoogleReaderProvider', 'activitysync.providers.twitterprovider.TwitterUserProvider', 'activitysync.providers.twitterprovider.TwitterSearchProvider', 'activitysync.providers.redditprovider.RedditProvider', )
将提供程序设置添加到settings.py(取决于添加的提供程序)。 为了便于使用和组织,提供者的所有设置都应该 存储在ACTIVITYSYNC_SETTINGS字典中。所需的设置 内置提供商是:
ACTIVITYSYNC_SETTINGS = { 'TWITTER_USERNAME': '', # Username to use for TwitterUserProvider 'TWITTER_SEARCHTERM': '', # Search term to use for TwitterSearchProvider 'REDDIT_USERNAME': '', # Username to use for RedditProvider 'GOOGLEREADER_SHARED_RSS': '', # URL of Google Reader shared items RSS feed 'GOOGLEREADER_PUBLIC_URL': '', # URL to Google Reader public page }
同步数据库以创建所需的模型:
python manage.py syncdb
或者(如果您安装了South):
python manage.py migrate activitysync
用法
获取和创建活动项
配置完成后,运行包含的管理命令 要获取已配置提供程序的活动:
python manage.py updateactivities
该命令将把所有新活动打印到命令行。全部 活动项以唯一的guid值存储,因此此命令可以 根据需要经常运行,而不必担心创建重复的值。 在生产站点中,此命令可能会添加到crontab(或 其他调度程序)相当频繁地运行(例如每30分钟一次)。
管理命令有几个可用选项。
使用--send-result选项向站点管理员发送电子邮件 (由django管理设置控制)新添加的活动 (如果没有新项目,则不发送电子邮件):
python manage.py updateactivities --send_result
使用--dry-run option将项输出到控制台,但不 实际在数据库中创建项:
python manage.py updateactivities --dry-run
使用活动项
可以像使用django的orm的任何其他模型一样访问活动项。在这里 是获取所有已发布活动项(获取项)的快速示例 默认为public,但可以通过修改django中的项来隐藏 管理站点:
from django.shortcuts import render_to_response from activitysync.models import Activity def index(request): return render_to_response( 'index.html', { 'activities': Activity.objects.published() } )
django activitysync还提供用于显示项目的模板标记:
{% load activitysync_extras %} {% render_activities activities %}
render_activitiestemplate标记将传递对象列表和 MEDIA_URL值到模板activitysync/activities_tag.html。 项目附带了一个默认使用的示例模板,或者 可以作为你自己的基础。第二个模板标记, render_activities_with_date_headers呈现活动列表和 遇到的每个唯一日期的日期标题。