diff options
author | Habeas Codice <habeascodice@federated.social> | 2015-02-05 09:15:39 -0800 |
---|---|---|
committer | Habeas Codice <habeascodice@federated.social> | 2015-02-05 09:15:39 -0800 |
commit | 9ed23f9081b56369349d4e06c51e3856f950804e (patch) | |
tree | b3a1121ec41e04cce02cfa07fc958b95a3fd289b /include/dir_fns.php | |
parent | 88488fdfbb58aa04b450af1691aba7cea1bce8ab (diff) | |
parent | 646a874390be8f92736866118d7215e8cb80fb8a (diff) | |
download | volse-hubzilla-9ed23f9081b56369349d4e06c51e3856f950804e.tar.gz volse-hubzilla-9ed23f9081b56369349d4e06c51e3856f950804e.tar.bz2 volse-hubzilla-9ed23f9081b56369349d4e06c51e3856f950804e.zip |
Merge branch 'master' of https://github.com/friendica/red
Diffstat (limited to 'include/dir_fns.php')
-rw-r--r-- | include/dir_fns.php | 43 |
1 files changed, 43 insertions, 0 deletions
diff --git a/include/dir_fns.php b/include/dir_fns.php index 6d06fddd1..8c0161ff1 100644 --- a/include/dir_fns.php +++ b/include/dir_fns.php @@ -216,6 +216,49 @@ function sync_directories($dirmode) { ); } } + if(count($j['ratings'])) { + foreach($j['ratings'] as $rr) { + $x = q("select * from xlink where xlink_xchan = '%s' and xlink_link = '%s' and xlink_static = 1", + dbesc($rr['channel']), + dbesc($rr['target']) + ); + if($x && $x[0]['xlink_updated'] >= $rr['edited']) + continue; + $y = q("select xchan_pubkey from xchan where xchan_hash = '%s' limit 1", + dbesc($rr['channel']) + ); + if(! $y) { + logger('key unavailable on this site for ' . $rr['channel']); + continue; + } + if(! rsa_verify($rr['target'] . '.' . $rr['rating'] . '.' . $rr['rating_text'], base64url_decode($rr['signature']),$y[0]['xchan_pubkey'])) { + logger('failed to verify rating'); + continue; + } + + if($x) { + $z = q("update xlink set xlink_rating = %d, xlink_rating_text = '%s', xlink_sig = '%s', xlink_updated = '%s' where xlink_id = %d", + intval($rr['rating']), + dbesc($rr['rating_text']), + dbesc($rr['signature']), + dbesc(datetime_convert()), + intval($x[0]['xlink_id']) + ); + logger('rating updated'); + } + else { + $z = q("insert into xlink ( xlink_xchan, xlink_link, xlink_rating, xlink_rating_text, xlink_sig, xlink_updated, xlink_static ) values( '%s', '%s', %d, '%s', '%s', 1 ) ", + dbesc($rr['channel']), + dbesc($rr['target']), + intval($rr['rating']), + dbesc($rr['rating_text']), + dbesc($rr['signature']), + dbesc(datetime_convert()) + ); + logger('rating created'); + } + } + } } } |