Top Level Namespace

Defined Under Namespace

Modules: ZVK

Instance Method Summary collapse

Instance Method Details

#dlog(*args) ⇒ Object

мониторим наших овечек и записываем все их изменения/обновления:

  1. Подтягиваем из монги список друзей, профилей для мониторинга

  2. Для всех получаем актуальные данные, сравниваем - если ==, то пропускаем

если расходятся - тогда обновляем запись в монге и пишем в лог инфу об изменении


15
16
17
# File 'lib/watch-ships.rb', line 15

def dlog(*args)
    STDERR.puts args
end

#friends_diff(uid, friends, nfriends) ⇒ Object



38
39
40
41
42
43
44
45
46
47
# File 'lib/watch-ships.rb', line 38

def friends_diff(uid, friends, nfriends)
    f, nf = Set.new(friends), Set.new(nfriends)
    return [] if (f==nf)

    diffs=[]
# new friends
    diffs << (nf-f).map{|fuid| {at: Time.now.to_i, diff: 'new friends', friends: [uid, fuid]} }
    diffs << (f-nf).map{|fuid| {at: Time.now.to_i, diff: 'del friends', friends: [uid, fuid]} }
    diffs
end

#info_diff(uid, info, ninfo) ⇒ Object



19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
# File 'lib/watch-ships.rb', line 19

def info_diff(uid, info, ninfo)
    diffs=[]
    Set.new(infos.keys+ninfos.keys).each do |fld|
    	ofval, nfval = infos[fld], ninfos[fld]
	next if ofval == nfval
	if not ofval # значит до обновления филда не было
		diffs << {at: Time.now.to_i, diff: 'new field', field: {fld=>nfval}}	
#ninfos_col.update({uid: uid}, {'$set'=>diffs.last}) # и в бд
	elsif not nfval # а теперь филд удалился
		diffs << {at: Time.now.to_i, diff: 'del field', field: {fld=>ofval}}
                #! в базе не оставляем
#ninfos_col.update({uid: uid}, {'$set'=>diffs.last}) # и в бд
	elsif nfval != ofval
		diffs << {at: Time.now.to_i, diff: 'upd field', field: fld, vals: [ofval,nfval]} # филд+старое и новое
	end
    end
    diffs
end