chdir($directory);
}
+use \Friendica\Core\Config;
+
require_once("boot.php");
require_once("include/photos.php");
+require_once("include/user.php");
function cron_run(&$argv, &$argc){
require_once('mod/nodeinfo.php');
require_once('include/post_update.php');
- load_config('config');
- load_config('system');
+ Config::load();
// Don't check this stuff if the function is called by the poller
if (App::callstack() != "poller_run") {
proc_run(PRIORITY_LOW, 'include/expire.php');
- proc_run(PRIORITY_LOW, 'include/dbclean.php');
+ proc_run(PRIORITY_MEDIUM, 'include/dbclean.php');
cron_update_photo_albums();
}
: ''
);
- $contacts = q("SELECT `contact`.`id` FROM `contact` INNER JOIN `user` ON `user`.`uid` = `contact`.`uid`
- WHERE `rel` IN (%d, %d) AND `poll` != '' AND `network` IN ('%s', '%s', '%s', '%s', '%s', '%s')
- $sql_extra
- AND NOT `self` AND NOT `contact`.`blocked` AND NOT `contact`.`readonly` AND NOT `contact`.`archive`
- AND NOT `user`.`account_expired` AND NOT `user`.`account_removed` $abandon_sql ORDER BY RAND()",
+ $contacts = q("SELECT `contact`.`id` FROM `user`
+ STRAIGHT_JOIN `contact`
+ ON `contact`.`uid` = `user`.`uid` AND `contact`.`rel` IN (%d, %d) AND `contact`.`poll` != ''
+ AND `contact`.`network` IN ('%s', '%s', '%s', '%s', '%s', '%s') $sql_extra
+ AND NOT `contact`.`self` AND NOT `contact`.`blocked` AND NOT `contact`.`readonly`
+ AND NOT `contact`.`archive`
+ WHERE NOT `user`.`account_expired` AND NOT `user`.`account_removed` $abandon_sql ORDER BY RAND()",
intval(CONTACT_IS_SHARING),
intval(CONTACT_IS_FRIEND),
dbesc(NETWORK_DFRN),
intval($c['id'])
);
- if((! $res) || (! count($res)))
+ if (!dbm::is_result($res)) {
continue;
+ }
foreach($res as $contact) {
*
* @param App $a
*/
-function cron_clear_cache(&$a) {
+function cron_clear_cache(App $a) {
$last = get_config('system','cache_last_cleared');
clear_cache();
// clear cache for photos
- clear_cache(App::get_basepath(), App::get_basepath()."/photo");
+ clear_cache($a->get_basepath(), $a->get_basepath()."/photo");
// clear smarty cache
- clear_cache(App::get_basepath()."/view/smarty3/compiled", App::get_basepath()."/view/smarty3/compiled");
+ clear_cache($a->get_basepath()."/view/smarty3/compiled", $a->get_basepath()."/view/smarty3/compiled");
// clear cache for image proxy
if (!get_config("system", "proxy_disabled")) {
- clear_cache(App::get_basepath(), App::get_basepath()."/proxy");
+ clear_cache($a->get_basepath(), $a->get_basepath()."/proxy");
$cachetime = get_config('system','proxy_cache_time');
if (!$cachetime) $cachetime = PROXY_DEFAULT_TIME;
*
* @param App $a
*/
-function cron_repair_diaspora(&$a) {
+function cron_repair_diaspora(App $a) {
$r = q("SELECT `id`, `url` FROM `contact`
WHERE `network` = '%s' AND (`batch` = '' OR `notify` = '' OR `poll` = '' OR pubkey = '')
ORDER BY RAND() LIMIT 50", dbesc(NETWORK_DIASPORA));
*/
function cron_repair_database() {
+ // Sometimes there seem to be issues where the "self" contact vanishes.
+ // We haven't found the origin of the problem by now.
+ $r = q("SELECT `uid` FROM `user` WHERE NOT EXISTS (SELECT `uid` FROM `contact` WHERE `contact`.`uid` = `user`.`uid` AND `contact`.`self`)");
+ if (dbm::is_result($r)) {
+ foreach ($r AS $user) {
+ logger('Create missing self contact for user '.$user['uid']);
+ user_create_self_contact($user['uid']);
+ }
+ }
+
// Set the parent if it wasn't set. (Shouldn't happen - but does sometimes)
// This call is very "cheap" so we can do it at any time without a problem
q("UPDATE `item` INNER JOIN `item` AS `parent` ON `parent`.`uri` = `item`.`parent-uri` AND `parent`.`uid` = `item`.`uid` SET `item`.`parent` = `parent`.`id` WHERE `item`.`parent` = 0");