社交网络翻译

granar的Python项目详细描述


granary 粮仓circle cicoverage status<

社交网络翻译。使用微格式2获取和转换社交网络、HTML和JSON之间的数据,microformats2activitystreamsatomjson提要,等等。

关于

granary是一个库和rest api,它在各种数据源和格式之间获取和转换:

  • Facebook、Flickr、Github、Instagram和Twitter原生API
  • Instagram刮掉的HTML
  • 活动流1.0和2.0(json)
  • 带有微格式2的HTML和JSON
  • atomrss 2.0json提要
  • 纯XML

免费您自己从思洛APIchaff中获取信息并以标准格式和协议公开甜蜜的社会数据食品!

以下是开始的方法:

许可证:此项目位于公共域中。

使用

所有依赖项都由pip处理,并在requirements.txt中枚举。我们建议您在avirtualenv中安装pip。(应用程序引擎详细信息。

库和rest api都基于opensocial活动流服务

让我们从一个例子开始。此代码使用库:

fromgranaryimporttwitter...tw=twitter.Twitter(ACCESS_TOKEN_KEY,ACCESS_TOKEN_SECRET)tw.get_activities(group_id='@friends')

相当于http get请求:

https://granary.io/twitter/@me/@friends/@app/
  ?access_token_key=ACCESS_TOKEN_KEY&access_token_secret=ACCESS_TOKEN_SECRET

他们返回经过身份验证的用户的twitter流(tweets)。以下是json输出:

{"itemsPerPage":10,"startIndex":0,"totalResults":12,"items":[{"verb":"post","id":"tag:twitter.com,2013:374272979578150912","url":"http://twitter.com/evanpro/status/374272979578150912","content":"Getting stuff for barbecue tomorrow. No ribs left! Got some nice tenderloin though. (@ Metro Plus Famille Lemay) http://t.co/b2PLgiLJwP","actor":{"username":"evanpro","displayName":"Evan Prodromou","description":"Prospector.","url":"http://twitter.com/evanpro",},"object":{"tags":[{"url":"http://4sq.com/1cw5vf6","startIndex":113,"length":22,"objectType":"article"},"..."],},},"..."]"..."}

这两个请求参数都是相同的,都是可选的:user_id是源特定的id,或者@me是经过身份验证的用户。组id可以是@all@friends(当前与@all),@self@search@blocks应用程序id当前被忽略;最佳做法是使用@a p p作为占位符。

通过startindexcount参数支持分页。它们是不言而喻的,并在中详细描述。OpenSocial规范

使用组id@search时(对于支持它的平台-当前为Twitter和Instagram),请通过q参数提供搜索字符串。该API松散地基于OpenSearch规范,OpenSocial核心容器规范,以及opensocial core gadget spec

输出数据是封装在OpenSocial信封中的JSON活动流1.0对象,它将活动in顶级的项目字段作为列表,并添加项目页面总计数等字段。

大多数facebook请求以及所有twitter、instagram和flickr请求都需要oauth访问令牌。如果您在google app engine上使用python,则可以轻松地为这些站点添加oauth客户端流。否则,以下是网站的身份验证文档:facebookflickrInstagram上Twitter上

如果您获得一个访问令牌并将其传递给源提供程序,它将用于对基础请求进行签名和授权。有关示例,请参见上面的rest api端点演示。

使用rest api

上面的端点都服务于opensocial activity streams rest api。请求路径的格式为:

/USER_ID/GROUP_ID/APP_ID/ACTIVITY_ID?startIndex=...&count=...&format=FORMAT&access_token=...

所有查询参数都是可选的。格式可以是as1(默认值)、as2atomhtmljsonfeedmf2 jsonrssxml(默认值)。atom支持booleanreader查询参数,用于切换适合馈送读卡器的呈现,例如,当reader=true时,在内容中呈现位置(默认值)。其余的path元素和查询参数如上文所述。

返回的错误带有相应的http响应代码,例如403表示未经授权,详细信息请参见响应正文。

默认情况下,响应被缓存和重用10米而不重新获取源数据。(Instagram响应缓存60米。)您可以通过在请求中添加cache=false查询参数来防止这种情况发生。

若要在现有ActivityStreams客户端中使用rest api,您需要对要使用的域(例如facebook.com)硬编码异常,并将http请求重定向到上面相应的端点

web ui(granary.io)目前只为用户获取facebook访问令牌。如果要使用它访问Facebook页面,则需要使用图形API资源管理器手动获取访问令牌(单击获取…下拉列表)。然后,在granary.io上登录facebook,并将页面访问令牌粘贴到访问令牌文本框中。

使用库

有关快速入门指南,请参见上面的示例。

将此回购复制或下载到名为granary的目录中(注意下划线而不是破折号)。每个源的工作方式相同。导入要使用的源的模块,然后通过传递http处理程序对象来实例化其类。对于当前的http请求,处理程序应该有一个请求属性。

有用的方法是get_activities()get_actor(),它们返回当前经过身份验证的用户(如果有的话)。有关详细信息,请参阅个别方法文档字符串。所有返回值都是解码活动流1 json的python指令。

microformats2.*u to_html()函数对于将ActivityStreams 1对象呈现为格式良好的HTML也很有用。

故障排除/常见问题解答

查看oauth dropins疑难解答/faq部分。它非常全面,也适用于这个项目。对于可搜索性,这里有一些错误消息,其中有解决方案:

bash: ./bin/easy_install: ...bad interpreter: No such file or directory

ImportError: cannot import name certs

ImportError: cannot import name tweepy

File ".../site-packages/tweepy/auth.py", line 68, in _get_request_token
  raise TweepError(e)
TweepError: must be _socket.socket, not socket

未来工作

我们想添加更多的网站!在我的头顶上,youtu beyoutubetumblrwordpress.com新浪微博n.wikipedia.org/wiki/qzone" rel="nofollow">qzone,以及renrenren都是很好的候选人。如果你想开始,实现一个新的网站是一个很好的开始。它相当独立,现有的网站是很好的例子,但这是一个不错的工作量,所以你将熟悉整个项目结束。

开发

欢迎拉取请求!如有任何问题,请随时给我发消息。

您将需要供应商支持)。将其添加到您的$pythonpath,例如export pythonpath=$pythonpath:/usr/local/google_appengine,然后运行:

virtualenv localsource local/bin/activate
pip install -r requirements.txt
python setup.py test

如果您发送拉取请求,请尽可能包括(或更新)新功能的测试!测试需要使用gcloud app engine python和gcloud appengine appengine python extras组件

如果您想同时使用oauth dropins,请使用 pip install-e<;oauth dropins repo的路径

要部署:

python -m unittest discover && gcloud -q app deploy granary-demo *.yaml

部署facebook atom、twitter atom和instagram atom。eed.appspot.com/" rel="nofollow">plusstreamfeed更换粮仓后:

#!/bin/tcsh
foreach s (facebook-atom twitter-atom instagram-atom plusstreamfeed)cd ~/src/$s&& gcloud -q app deploy $s *.yaml
end

这些文档是用sphinx构建的,包括apidoc、autodoc、autodoc。tp://www.sphinx-doc.org/en/stable/ext/napoleon.html" rel="nofollow">拿破仑。配置在docs/conf.py中,要构建它们,首先使用pip install sphinx安装sphinx。(您可能希望在virtualenv之外执行此操作;如果是,则需要重新配置它,以使用virtualenv--system site packages local查看系统包)然后,运行docs/build.sh此activitystreams验证器对于手动测试非常有用。

发布说明

下面介绍如何打包、测试和发布新版本。(请注意,这是在oauth dropins自述文件中也大量复制的发布说明)

  1. 运行单元测试。
    source local/bin/activate.csh
    python2 -m unittest discover
    deactivate
    
    source local3/bin/activate.csh
    python3 -m unittest discover -s granary/tests/
    deactivate
    
  2. setup.pydocs/conf.py中增加版本号。git grep旧版本号,以确保它只出现在变更日志中。将此新版本的readme.md中的当前更改日志条目从unreleased更改为当前日期。
  3. 建立文档。如果添加了任何新模块,请将它们添加到docs/source/中的相应文件中。然后运行/docs/build.sh
  4. git commit-am'发布vx.y'
  5. 上传到test.pypi.org进行测试。
    fromgranaryimporttwitter...tw=twitter.Twitter(ACCESS_TOKEN_KEY,ACCESS_TOKEN_SECRET)tw.get_activities(group_id='@friends')
    0
  6. 从test.pypi.org安装python 2和3。
    fromgranaryimporttwitter...tw=twitter.Twitter(ACCESS_TOKEN_KEY,ACCESS_TOKEN_SECRET)tw.get_activities(group_id='@friends')
    1
    fromgranaryimporttwitter...tw=twitter.Twitter(ACCESS_TOKEN_KEY,ACCESS_TOKEN_SECRET)tw.get_activities(group_id='@friends')
    2
  7. Smoke测试代码在Python2和Python3中轻松加载和运行。
    fromgranaryimporttwitter...tw=twitter.Twitter(ACCESS_TOKEN_KEY,ACCESS_TOKEN_SECRET)tw.get_activities(group_id='@friends')
    3
    fromgranaryimporttwitter...tw=twitter.Twitter(ACCESS_TOKEN_KEY,ACCESS_TOKEN_SECRET)tw.get_activities(group_id='@friends')
    4 要粘贴到解释器中的测试代码:
    fromgranaryimporttwitter...tw=twitter.Twitter(ACCESS_TOKEN_KEY,ACCESS_TOKEN_SECRET)tw.get_activities(group_id='@friends')
    5
  8. 用git标记发布。在标记消息编辑器中,删除底部生成的注释,将第一行留空(以省略github中的release"title"),将显著更改放在第二行,然后将此版本的更改日志内容复制并粘贴到下面。
    fromgranaryimporttwitter...tw=twitter.Twitter(ACCESS_TOKEN_KEY,ACCESS_TOKEN_SECRET)tw.get_activities(group_id='@friends')
    6
  9. 单击此处在githu上起草新版本b.标记版本框中输入vx.y。保留释放标题为空。将"显著更改"和"更改日志"内容复制到"说明"文本框中。
  10. 上传到pypi.org
    fromgranaryimporttwitter...tw=twitter.Twitter(ACCESS_TOKEN_KEY,ACCESS_TOKEN_SECRET)tw.get_activities(group_id='@friends')
    7

相关工作

apache streams是一个类似的项目,可以在存储系统、数据库和社会模式之间进行转换。它是一个Java库,它的设计结构很重。这是它支持的格式列表。它主要由人员模式使用

gnip类似地将社交网络数据转换为activitystreams并支持更多的源网络。不幸的是,它是商业性的,没有免费试用或自助注册,而且计划从500美元开始。

datalift看起来大体上是一样的,只是它们提供了自助服务、随付随付的账单,并且它们使用服务。低">他们自己的专有输出格式而不是activitystreams。它们的目标也更多地是数据挖掘,而不是单个用户访问。

cliqset的feedproxy用于进行这种格式转换,但不幸的是,它和cliqset都死了。

facebook过去一直是官方网站支持activitystreams,但这也没用。

有很多产品可以下载你的社交网络数据,将其规范化,并让你查询和可视化。虽然ssl证书当前已过期,但socialsafe是一个。Thinkup是一款开源产品,但于2016年7月18日关闭。还有从多个源站点提取数据的项目的lifelogging/lifestream聚合器。storytlr就是一个很好的例子。它不包括Facebook或Instagram,但包括一些较小的源网站。还有很多其他插件,例如lifestream wordpress插件。不幸的是,它们通常面向最终用户,而不是开发人员,并且通常不公开库或restapi。

在开源方面,有很多相关的项目。php-mf2-shim将微格式2添加到Facebook和Twitter的原始HTML中。sockethub是一种类似的"polyglot"方法,但更侧重于写作而非阅读。

更改日志

2.0-2019-03-01

中断更改:删除google+,因为它在3月份关闭。值得注意的是,这将删除Google Plus的模块。

<H3>1。15-2019年2月28日
  • 添加rss 2.0输出!(124
  • 所有筒仓:
    • 将用户的主要URL从网站切换到思洛配置文件(\158)。
  • Github:
    • 不要在<;/>;中括起裸露的URL(snarfed/bridge/issues/850" rel="nofollow">snarfed/bridge/850)。
    原子:
    • 多个图片URL的演员和附件的错误修复。
    • 没有属性的附件作者对象的错误修复。
    谷歌+:
  • Instagram软件:
    • 修复多个照片/视频帖子的单个照片/视频链接URL。
    • 处理用户提供的alt文本(
  • Twitter:
  • /url:获取用户的url时返回http 400将导致无限重定向。

1.14-2018年11月12日

添加delete()。目前包括Twitter和Flickr支持。

  • Instagram软件:
    • 进行额外的http获取(使用cookie)以获得个人喜好(snarfed/bridgey 840)。
    • 更新刮削逻辑以处理feed html更改。
    • link@-在评论和照片/视频标题中提及。
  • Github:
    • create/preview\u createprivate repo问题和评论的错误修复。
    • 处理来自rest api的http 410丢失的响应,例如当repo被删除或repo的问题被禁用时。
    Twitter:
    • 添加delete()preview\u delete()以删除推文。
    Flickr:
    • 添加delete()preview\u delete()以删除照片。
  • 微格式2:
    • 添加跟随支持。
    • 只对引用tweets使用属性的quote,而不是url。(155
    • 如果一个标签有startindex/length,它将在内容中被链接,因此不要为它发出mf2子元素或html h-cite。(155
  • 原子:
    • 在作者URL和电子邮件地址中编码&;s。(感谢sebused!)
    < > AS2:
    • 添加跟随支持。

1.13-2018年8月8日

1.12-2018年3月24日

  • 添加Python3支持!Granary现在需要Python2.7+或Python3.3+。
  • Instagram软件:
    • 修复刮削配置文件页。
  • Twitter:
    • 更新字符计数以处理twitter的更改,该更改现在自动链接allcctlds。背景。
    Github:
    • 用已删除的问题和报告修复get_activities()的错误。
  • 微格式2:
    • object_to_json():将标记转换为类别中的简单字符串属性,而不是完全嵌套的对象,如h-cards(\141)。
    • 响应回购协议或其/issuesurl的特殊情况GitHub问题是objectTypeissue
    • 在HTML输出中呈现简单的字符串类别。

这个版本故意很小,范围有限,以包含python 3迁移的任何影响。它应该是现有Python2用户的noop,我们已经泰德说得很清楚,但我肯定还是有虫子。如果您发现任何损坏,请提交问题!

1.11-2018-03-09

  • 添加github!
    • get_activities()支持问题和拉取请求,包括注释和响应。它目前是基于通知的,所以它是尽最大努力的,而不是全面的,并且只包括最近活跃的问题/prs。
    • create()preview\u create()支持问题、评论,明星,以及背景。
    • 媒体图像首选https url。
    • get_activities():在用户id中支持@-前缀用户名
  • 脸谱网:
    • 支持新的重复AKA多实例事件create()preview\u create()现在只支持对多实例事件的单个实例的rsvps,以匹配facebook api本身。
    • 努力寻找原始(完整)大小的照片url,特别是.jpg文件,而不是.jpg
    • create()修复带有Unicode字符的照片和图像URL的错误。
    • 修正了获取活动(用户id=…)包含经过身份验证的用户自己最近的照片、相册和新闻发布的错误。
  • Instagram软件:
    • 从刮取的配置文件页中提取更多用户(作者)数据。
    • 修复主页提要刮擦。
  • 微格式2,原子:
    • 为图像附件添加附件。
    • 修复了在共享和附件中呈现图像、视频和音频附件的错误。重复数据消除图像。
  • 微格式2:
    • 只处理简单字符串的作者属性。
    • 添加fetch_mf2kwarg tojson_to_object()用于通过http获取附加页以确定作者身份。
    • 在HTML中生成显式的空白p-name,以防止出现旧的有缺陷的p-name处理(http://microformats.org/wiki/microformats2-implied-properties" rel="nofollow">隐式p-name处理)。
    • 修正了activity-to-json()activities-to-html()中的动词处理(\134)。
    • 记住哪些内容包含HTML,保留其中的换行符,不要将这些换行符转换为<;br>;s(\130)。
  • 原子:
    • 修正updated和published中的时区错误
  • JSON源:
    • 如果标题与内容相同,则省略标题。(通常由微格式2的隐含p-name逻辑引起。)

1.10-2017年12月10日

  • 将网站和rest api移动到granary.io!granary demo.appspot.com现在301重定向。
  • Twitter:
  • Instagram软件:
    • 将cookie query param添加到rest api中,以允许对登录到用户提要中的内容进行抓取。
  • HTML(包括Atom内容):
    • 更频繁、更一致地呈现图像、视频和音频附件。
    • 包括微格式2U-photoU-video,以及更经常、更一致地U-audio类。
  • 原子:
    • 添加atom_to_activities()以转换完整的feed文档。
    • 添加到rest api和web ui。
    • rel=alternate链接以及actor/author url中包含源url(\151)。
  • JSON源:
    • 修复某些情况下省略标题的错误(122)。

1.9-2017年10月24日

  • 添加activitystreams 2.0!新的AS2模块包括到@AS1()从@AS1()函数。当前支持:文章、便笺、回复、喜欢、转发、事件、RSVP、标记、附件。
  • 原子:
    • 添加新的Atom to_activity()函数,用于将Atom转换为AS1。
    • 将电子邮件字段添加到作者(如果提供)。
  • JSON源:
    • 错误(非dict)输入时出现raise valueerror。
  • rest api:
    • formatinput添加as2值。将现有的activitystreams和microformats2值名称修改为as1as1 xml,以及mf2 json。旧值activitystreamsjsonjson-mf2,以及xml仍被接受,但已弃用。

1.8-2017年8月29日

  • 添加对库和rest api的支持。
  • Twitter:
    • 添加get_blocklist()
    • 用于创建视频URL的回复、收藏夹或转发的错误修复,例如https://twitter.com/name/status/123/video/1" rel="nofollow">https://twitter.com/name/status/123/video/1
    • 用于解析收藏夹HTML以处理Twitter端的小更改的错误修复。
    • post_id()现在在返回id之前更严格地验证它们。
  • 脸谱网:
    • 改进启发式方法以确定来自其他用户的墙贴的隐私。
    • 在评论中支持GIF(附件类型动画图像自动播放动画图像共享)。
    • 将graph-api从v2.6升级到v2.10
  • Instagram软件:
    • 更新scraping以处理新的主页(ie news feed)json模式,该模式在2017年2月27日左右发生了变化。(个人资料页和个人照片/视频永久链接尚未更改。)
  • 微格式2:
    • u-featured添加到activitystreamsimage
    • 改进对h-event的支持。
    • 当将位置呈现为HTML时,小的空白改变(添加了

      )。

    • post_id()现在在返回id之前更严格地验证它们。
    • 修正在ActivityStreams和MF2之间转换经纬度的错误。
  • 谷歌+:
    • 更新html抓取以处理更改的序列化json数据格式。
    原子:
    • 添加新的activity_to_atom()函数,该函数将呈现一个顶级的<;entry>;,而不是<;feed>;
    • 添加新的readerquery param,用于切换特定于feed readers的呈现决策。现在,只影响位置:当reader=true(默认值)时在内容中呈现,当reader=false(默认值)时省略。
    • 在呈现附加文章和注释(例如引用tweets)时,请包括作者姓名。
    • 只有当元素具有值时,才包括asactivity:object typeactivity:verb元素。
    • 如果内容中没有图像和MF2 U-photo,则渲染为图像和MF2 U-photo。
    • renderthr:响应fromobject.in reply to以及activity.context.inreplyto
  • rest api:
    • 修复HTML=>;JSON-MF2和HTML=>;HTML转换中的错误。
  • 将brevity升级到0.2.14,以修复一对错误修复程序

1.7-2017年2月27日

  • 微格式2:
    • 将h-cite和u-quotation-of(实验性)解释为附件,例如引用tweets。
    • 将音频和视频属性转换为附件。
  • Twitter:
    • linkify@-在preview\u create()中提到和标记
    • 支持从带有twitter url的附件创建引用tweets。
    • 将quote tweets转换为as时,请从文本末尾删除quoted tweet url。
    • 传递get_activities()但不传递search_query时引发值错误
  • Instagram软件:
    • 改进HTML抓取错误处理。
    • 支持多照片/视频帖子
  • 脸谱网:
    • 禁用创建"感兴趣"的RSVP,因为Facebook的API不允许它。
  • 原子:
    • 支持音频和视频附件的媒体附件。
  • source.get_activities():开始对错误的参数值引发valueerror,特别是无效的facebook和twitter id以及instagram搜索查询。
  • 修复用Unicode高代码点(即16位基本多语言平面之上)呈现和链接内容的问题,包括一些emoji,在Python2的"窄"版本上使用--enable unicode=ucs2,这是Mac OS X、Windows和旧的*nix上的默认设置。

1.6-2016年11月26日

    Twitter:
    • 处理新的"扩展"tweets,隐藏对@提到的回复并跟踪 媒体、引用推文等的URL背景: https://dev.twitter.com/overview/api/coming-changes-to-tweets
    • 错误修复:确保like.author.displayname是一个普通的unicode字符串,以便 可以正常进行pickle操作,例如通过app engine的memcache。
    • 错误修复:在Favorites_html_to_likes()中正确处理带有表情符号的名称。
    • 错误修复:使用Unicode字符处理搜索查询。
    原子:
    • 在引用tweets的转发中呈现完整的原始引用tweet。
  • 微格式2 HTML:
    • 可以选择跟随并获取rel="author"链接。
    • 改进微格式2和ActivityStreams"photo"类型之间的映射。(mf2"photo"类型是带有照片的注释或文章,但作为"photo"类型,则是照片。因此,将mf2照片映射到没有照片的底层类型。)
    • 支持H-Card以外的位置属性,例如H-ADR、H-GEO、U-GEO,甚至 当纬度和经度等属性出现在顶层时。
  • 错误处理:对于非json api响应返回http 502,对于连接失败返回504。

1.5-2016年8月25日

  • rest api:
    • 支持用户id、应用id和活动id的标记uri。
  • Twitter:
    • 上传不支持类型的照片时会出现更好的错误信息。
    • 只包括原始的引用推文,不包括它们的转发。
    • 跳过获取受保护帐户的转发,因为API调用始终为403。
    Flickr:
    • 更好的用户名检测。flickr的api在用户名方面非常不一致 vs实名vs路径别名。这特别检测用户名 可能是真的,因为它有一个空格。
    • 上载:检测并处理应用程序引擎的10MB HTTP请求限制。
    • 创建中的错误修复:处理照片/视频描述中的Unicode字符, 标签和注释文本。
    原子:
    • 错误修复:在附件文本中转义(如引用tweets)。
    • 错误修复:处理ActivityStreams 1活动中的多值"对象"字段。
    Github:
    • 将创建注释和反应从graphql切换到rest api(bridge 824

1.4.1-2016年6月27日

  • 将OAuth Dropins要求提高到1.4。

1.4.0-2016年6月27日

  • rest api:
    • 默认情况下,缓存思洛存储器的请求为5米,instagram的请求为60米,因为它们会积极阻止抓取。您可以使用新的cache=false查询参数跳过缓存。
  • 脸谱网:
  • Twitter:
    • 切换create()以使用简洁性计算字符数。https://github.com/kylewm/brevity
    • 修正create()中偶尔错误转义的.,+,和-字符的错误。
    • 修复有多张照片/视频时的文本呈现错误。
    • 在回答自己的问题时,不要加上"自我"一词。
  • Instagram软件:
    • 修复刮削中的错误。
  • 升级至requests 2.10.0和requests toolbelt 0.60,后者支持app engine。

1.3.1-2016年4月7日

1.3.0-2016年4月6日

  • 支持发布视频!目前在Facebook、Flickr和Twitter上。
  • Instagram软件:
    • 添加对刮削的支持,因为它们会锁定自己的api并需要手动批准。
    • linkify@-在图片标题中提到。
  • 脸谱网:
    • 获取打开图形故事akanews.publish操作。
    • 许多照片贴的错误修正:更好的隐私检测,修正错误贴上评论的错误。
  • Twitter:
    • 处理所有附加到推特的照片/视频,而不仅仅是第一个。
    • 停止获取对@-提及的答复。
    原子:
    • 呈现附件。
    • 添加xml:base
  • 微格式2:
    • 加载并转换H卡。
    • 使用mf2util实现完整的post类型发现算法。https://indiewbcamp.com/post-type-discovery
    • 放弃对H-AS-*类的支持,包括传入和传出。它们不赞成后类型发现。
    • 删除旧的不推荐的u-like和u-repost属性。
  • 其他错误修复。
  • 准备工作服。

1.2.0-2016年1月11日

  • 改进原始的后发现算法。(新娘51
  • Flickr调整。(新娘466
  • 将mf2、activitystreams、atom和search添加到交互式ui。(3129
  • 改进后类型发现(使用mf2util)。
  • 从配置文件中的所有字段中提取用户网站链接(例如,描述/生物)。
  • 将捏造的片段添加到comment/like permalinks(例如,like-by-user123)中,以便对象url始终是唯一的(多个思洛存储器)。
  • 在创建/预览(多个思洛存储器)中改进格式/空白支持。
  • 谷歌+:
    • 添加搜索。
  • 脸谱网:
    • 在"获取"活动中获取更多信息:照片、活动、RSVP。
    • 在创建/预览中支持个人标签。
    • 通过将照片上载到"时间线照片"相册,防止Facebook自动整合照片帖子。
    • 在创建/预览中包含标题。
    • 改进对象ID解析/解析。
    • 改进标签处理。
    • 获取嵌套注释的错误修复。
    • 其他改进,API错误/片状处理。
  • Flickr:
    • 创建/预览对照片、评论、收藏夹、标记、个人标记、位置的支持。
    Twitter:
    • 创建/预览位置、多张照片的支持。
    • 获取报价推文。
    • 获取用户提到的改进,错误修复。
    • 固定嵌入。
    • MISC作为转换改进。
  • 微格式2:
    • 改进like和repost渲染。
  • 其他错误修复。
  • 设置圆圈。

1.1.0-2015年9月6日

  • 添加Flickr。
  • 脸谱网:
    • 获取多个ID格式,例如带有或不带有用户ID前缀。
    • 支持线程注释。
    • 从/posts api端点切换到/feed。
  • 谷歌+:
    • 支持将plus.google.com HTML转换为ActivityStreams。
  • Instagram软件:
    • 支持位置。
  • 改进原始的后发现算法。
  • 新徽标。

1.0.1-2015年7月11日

  • Atom模板渲染的错误修复。
  • Facebook,Instagram:支持访问令牌参数。

1.0-2015年7月10日
  • 初始PYPI版本。

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java传递位置作为FragmentPagerAdapter中片段的参数   html Java Jsoup循环打印   java如何使用FileOutputStream写入数据而不丢失旧数据?   java在测试用例类/方法中执行sql before/after/in   java在javafx中注册鼠标处理程序,但处理程序不是内联的   Android嵌入了一个C++库的java代码,不需要TopPLE程序来嵌入它?   片段类内部的java ProgressBar导致setMax方法出现NullPointerException?   带有google app engine的java Activator Play框架   java如何解析星级而不是字符串?   java如何在基本实体中定义通用主键字段?   通过扩展实现Java克隆   使用CipherOutputStream的java递归加密提供一个空字节[]   在运行时提取字段值的Java服务   Java 11和spring boot从spring boot应用程序的fat jar中的依赖项jar加载资源   java尝试使用J2SE枚举所有可用的Wifi网络   使用Java库进行SWIFT MT消息解析   java拆分非逗号分隔的字符串   java为什么toString()不能是静态方法?   java在连接到集群数据库时遇到mongo异常   java访问Hashmap中存储的json有效负载值