diff options
author | zotlabs <mike@macgirvin.com> | 2017-04-02 19:46:20 -0700 |
---|---|---|
committer | Mario Vavti <mario@mariovavti.com> | 2017-04-03 10:51:31 +0200 |
commit | 405e3fc21459015a63753d4fbd219d5f9920829b (patch) | |
tree | 38aab7e13bd6198357834628415cbfd72fe5b96f /include/zot.php | |
parent | fbba78411dacd411d4455aea526a7b56a7a7be8c (diff) | |
download | volse-hubzilla-405e3fc21459015a63753d4fbd219d5f9920829b.tar.gz volse-hubzilla-405e3fc21459015a63753d4fbd219d5f9920829b.tar.bz2 volse-hubzilla-405e3fc21459015a63753d4fbd219d5f9920829b.zip |
import_author_zot() - check for both hubloc and xchan entries. This should catch and repair entries which were subject to transient storage failures.
Diffstat (limited to 'include/zot.php')
-rw-r--r-- | include/zot.php | 19 |
1 files changed, 14 insertions, 5 deletions
diff --git a/include/zot.php b/include/zot.php index b3999920f..266060839 100644 --- a/include/zot.php +++ b/include/zot.php @@ -3578,21 +3578,30 @@ function get_rpost_path($observer) { function import_author_zot($x) { + // Check that we have both a hubloc and xchan record - as occasionally storage calls will fail and + // we may only end up with one; which results in posts with no author name or photo and are a bit + // of a hassle to repair. If either or both are missing, do a full discovery probe. + $hash = make_xchan_hash($x['guid'],$x['guid_sig']); - $r = q("select hubloc_url from hubloc where hubloc_guid = '%s' and hubloc_guid_sig = '%s' and hubloc_primary = 1 limit 1", + $r1 = q("select hubloc_url from hubloc where hubloc_guid = '%s' and hubloc_guid_sig = '%s' and hubloc_primary = 1 limit 1", dbesc($x['guid']), dbesc($x['guid_sig']) ); - if ($r) { - logger('import_author_zot: in cache', LOGGER_DEBUG); + $r2 = q("select xchan_hash from xchan where xchan_guid = '%s' and xchan_guid_sig = '%s' limit 1", + dbesc($x['guid']), + dbesc($x['guid_sig']) + ); + + if($r1 && $r2) { + logger('in cache', LOGGER_DEBUG); return $hash; } - logger('import_author_zot: entry not in cache - probing: ' . print_r($x,true), LOGGER_DEBUG); + logger('not in cache - probing: ' . print_r($x,true), LOGGER_DEBUG); $them = array('hubloc_url' => $x['url'], 'xchan_guid' => $x['guid'], 'xchan_guid_sig' => $x['guid_sig']); - if (zot_refresh($them)) + if(zot_refresh($them)) return $hash; return false; |