-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathcheck.php
36 lines (32 loc) · 1.25 KB
/
check.php
1
2
3
4
5
6
7
8
9
10
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
<?php
require 'lib/Vk.class.php';
$user = 258212;
$vk = new Vk();
$now = new DateTime();
$r = new Redis();
$r->connect('localhost','6379');
$states = [ 1 => 'online', 0 => 'offline' ];
$friends = $vk->request('friends.get', array(
'user_id' => $user,
'fields' => 'online'
)
);
if (!empty($friends)) {
foreach ($friends as $friend) {
$user_timeline = $r->hGetAll($friend['user_id']); // Get All Keys(Timemarks)
if ($user_timeline) {
echo 'Update User State...'.PHP_EOL;
end($user_timeline); $lastkey = key($user_timeline); // Get Last Timemark Key
$last_user_state = $r->hGet($friend['user_id'], $lastkey); // Get Last State
// Check for stateChange
if ($friend['online'] != $last_user_state) { // If Changed Update User Hash
echo 'User: '.$friend['first_name'].' '.$friend['last_name']
.' changed state on ['.$this->states[$friend['online']].']'.PHP_EOL;
$r->hSet($friend['user_id'], $now->getTimestamp(), $friend['online']);
}
} else {
echo 'User not found...creating with UID['.$friend['uid'].']'.PHP_EOL;
$r->hSet($friend['user_id'], $now->getTimestamp(), $friend['online']);
}
}
}