11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
|
# File 'lib/atig/agent/list_status.rb', line 11
def initialize(context, api, db)
@log = context.log
@db = db
log :info, "initialize"
@prev = {}
api.repeat(60*5) do|t|
db.lists.each do |name, _|
log :debug, "retrieve #{name} statuses"
q = {}
q.update(since_id: @prev[name]) if @prev.key?(name)
screen_name, slug = parse name
q.update(owner_screen_name: screen_name, slug: slug)
statuses = t.get("lists/statuses", q)
statuses.reverse_each do|status|
db.statuses.transaction do|d|
d.add(status: status,
user: status.user,
source: :list,
list: name)
end
end
@prev[name] = statuses[0].id if statuses && statuses.size > 0
end
end
def parse(name)
if name.include? '^' then
name.split("^",2)
else
[@db.me.screen_name, name]
end
end
end
|