如何使用指定'因为'使用disqusapi模块列出disqus线程时的值?

时间:2015-07-29 01:28:14

标签: python disqus

我正在使用disqusapi Python模块访问Disqus' API。我想使用since参数,只获取自我指定日期以来创建的线程列表。但是,当我传递一个值时,我什么也得不回来。

SECRET_KEY = config.get("disqus-keys", "private")
PUBLIC_KEY = config.get("disqus-keys", "public")    
disqus = DisqusAPI(SECRET_KEY, PUBLIC_KEY)

....

# Ask for all threads since 4 years ago.
t = int(time.time()) - 60*60*24*365*4
results = disqus.threads.list(forum="imaginaryrealities", limit=100, since=t)
print "with since=%d, got %d threads" % (t, len(results))
results = disqus.threads.list(forum="imaginaryrealities", limit=100)
print "with no since, got %d threads" % len(results)
timeseq = list(time.strptime(results[0]["createdAt"], '%Y-%m-%dT%H:%M:%S'))
timeseq.append(0) # offset of date's timezone from UTC.
timeseq = tuple(timeseq)
rt = email.utils.mktime_tz(timeseq) # UTC seconds since the epoch
print "... first thread created at: %s (greater than %d? %s)" % (rt, t, rt > t)

提供以下输出:

with since=1311988086, got 0 threads
with no since, got 30 threads
... first thread created at: 1437988189 (greater than 1311988086? True)

我甚至尝试将1311988086转换为相同的RFC3339字符串,distring为其提供了日期,并通过了相同的结果。

自纪元以来#34;秒内的一次官方PHP samples次传球值。官方API"文档"是no help whatsoever

为什么这不起作用?

3 个答案:

答案 0 :(得分:1)

尝试同时设置order='asc'since参数与排序顺序相关,因此它正在查找 old 的任何内容,而不是该日期时间。

答案 1 :(得分:1)

答案 2 :(得分:0)

我建议使用disqus api cursor 代替since参数。从那时起,我得到了重复项(也就是说,第一个查询的最后一个结果出现在第二个查询的第一个结果中)。我将新时间戳添加一秒还是30分钟都没关系,它总是做到这一点。

光标是响应正文的数据成员,文档:

https://disqus.com/api/docs/cursors/

使用光标,它可以可靠地工作。