Merge remote-tracking branch 'upstream/develop' into dbclean

This commit is contained in:
Michael 2017-12-06 16:49:55 +00:00
commit 4bf425de5d
6 changed files with 37 additions and 172 deletions

View file

@ -274,29 +274,6 @@ CREATE TABLE IF NOT EXISTS `fcontact` (
UNIQUE INDEX `url` (`url`(190)) UNIQUE INDEX `url` (`url`(190))
) DEFAULT COLLATE utf8mb4_general_ci; ) DEFAULT COLLATE utf8mb4_general_ci;
--
-- TABLE ffinder
--
CREATE TABLE IF NOT EXISTS `ffinder` (
`id` int(10) unsigned NOT NULL auto_increment,
`uid` int(10) unsigned NOT NULL DEFAULT 0,
`cid` int(10) unsigned NOT NULL DEFAULT 0,
`fid` int(10) unsigned NOT NULL DEFAULT 0,
PRIMARY KEY(`id`)
) DEFAULT COLLATE utf8mb4_general_ci;
--
-- TABLE fserver
--
CREATE TABLE IF NOT EXISTS `fserver` (
`id` int(11) NOT NULL auto_increment,
`server` varchar(255) NOT NULL DEFAULT '',
`posturl` varchar(255) NOT NULL DEFAULT '',
`key` text,
PRIMARY KEY(`id`),
INDEX `server` (`server`(32))
) DEFAULT COLLATE utf8mb4_general_ci;
-- --
-- TABLE fsuggest -- TABLE fsuggest
-- --
@ -558,22 +535,6 @@ CREATE TABLE IF NOT EXISTS `item` (
INDEX `uid_ownerlink` (`uid`,`owner-link`(190)) INDEX `uid_ownerlink` (`uid`,`owner-link`(190))
) DEFAULT COLLATE utf8mb4_general_ci; ) DEFAULT COLLATE utf8mb4_general_ci;
--
-- TABLE item_id
--
CREATE TABLE IF NOT EXISTS `item_id` (
`id` int(11) NOT NULL auto_increment,
`iid` int(11) NOT NULL DEFAULT 0,
`uid` int(11) NOT NULL DEFAULT 0,
`sid` varchar(255) NOT NULL DEFAULT '',
`service` varchar(255) NOT NULL DEFAULT '',
PRIMARY KEY(`id`),
INDEX `uid` (`uid`),
INDEX `sid` (`sid`(32)),
INDEX `service` (`service`(32)),
INDEX `iid` (`iid`)
) DEFAULT COLLATE utf8mb4_general_ci;
-- --
-- TABLE locks -- TABLE locks
-- --
@ -948,23 +909,6 @@ CREATE TABLE IF NOT EXISTS `sign` (
UNIQUE INDEX `iid` (`iid`) UNIQUE INDEX `iid` (`iid`)
) DEFAULT COLLATE utf8mb4_general_ci; ) DEFAULT COLLATE utf8mb4_general_ci;
--
-- TABLE spam
--
CREATE TABLE IF NOT EXISTS `spam` (
`id` int(11) NOT NULL auto_increment,
`uid` int(11) NOT NULL DEFAULT 0,
`spam` int(11) NOT NULL DEFAULT 0,
`ham` int(11) NOT NULL DEFAULT 0,
`term` varchar(255) NOT NULL DEFAULT '',
`date` datetime NOT NULL DEFAULT '0001-01-01 00:00:00',
PRIMARY KEY(`id`),
INDEX `uid` (`uid`),
INDEX `spam` (`spam`),
INDEX `ham` (`ham`),
INDEX `term` (`term`(32))
) DEFAULT COLLATE utf8mb4_general_ci;
-- --
-- TABLE term -- TABLE term
-- --

View file

@ -888,29 +888,6 @@ function db_definition() {
"url" => array("UNIQUE", "url(190)"), "url" => array("UNIQUE", "url(190)"),
) )
); );
$database["ffinder"] = array(
"fields" => array(
"id" => array("type" => "int(10) unsigned", "not null" => "1", "extra" => "auto_increment", "primary" => "1"),
"uid" => array("type" => "int(10) unsigned", "not null" => "1", "default" => "0", "relation" => array("user" => "uid")),
"cid" => array("type" => "int(10) unsigned", "not null" => "1", "default" => "0", "relation" => array("contact" => "id")),
"fid" => array("type" => "int(10) unsigned", "not null" => "1", "default" => "0", "relation" => array("fcontact" => "id")),
),
"indexes" => array(
"PRIMARY" => array("id"),
)
);
$database["fserver"] = array(
"fields" => array(
"id" => array("type" => "int(11)", "not null" => "1", "extra" => "auto_increment", "primary" => "1"),
"server" => array("type" => "varchar(255)", "not null" => "1", "default" => ""),
"posturl" => array("type" => "varchar(255)", "not null" => "1", "default" => ""),
"key" => array("type" => "text"),
),
"indexes" => array(
"PRIMARY" => array("id"),
"server" => array("server(32)"),
)
);
$database["fsuggest"] = array( $database["fsuggest"] = array(
"fields" => array( "fields" => array(
"id" => array("type" => "int(11)", "not null" => "1", "extra" => "auto_increment", "primary" => "1"), "id" => array("type" => "int(11)", "not null" => "1", "extra" => "auto_increment", "primary" => "1"),
@ -1172,22 +1149,6 @@ function db_definition() {
"uid_ownerlink" => array("uid","owner-link(190)"), "uid_ownerlink" => array("uid","owner-link(190)"),
) )
); );
$database["item_id"] = array(
"fields" => array(
"id" => array("type" => "int(11)", "not null" => "1", "extra" => "auto_increment", "primary" => "1"),
"iid" => array("type" => "int(11)", "not null" => "1", "default" => "0", "relation" => array("item" => "id")),
"uid" => array("type" => "int(11)", "not null" => "1", "default" => "0", "relation" => array("user" => "uid")),
"sid" => array("type" => "varchar(255)", "not null" => "1", "default" => ""),
"service" => array("type" => "varchar(255)", "not null" => "1", "default" => ""),
),
"indexes" => array(
"PRIMARY" => array("id"),
"uid" => array("uid"),
"sid" => array("sid(32)"),
"service" => array("service(32)"),
"iid" => array("iid"),
)
);
$database["locks"] = array( $database["locks"] = array(
"fields" => array( "fields" => array(
"id" => array("type" => "int(11)", "not null" => "1", "extra" => "auto_increment", "primary" => "1"), "id" => array("type" => "int(11)", "not null" => "1", "extra" => "auto_increment", "primary" => "1"),
@ -1562,23 +1523,6 @@ function db_definition() {
"iid" => array("UNIQUE", "iid"), "iid" => array("UNIQUE", "iid"),
) )
); );
$database["spam"] = array(
"fields" => array(
"id" => array("type" => "int(11)", "not null" => "1", "extra" => "auto_increment", "primary" => "1"),
"uid" => array("type" => "int(11)", "not null" => "1", "default" => "0", "relation" => array("user" => "uid")),
"spam" => array("type" => "int(11)", "not null" => "1", "default" => "0"),
"ham" => array("type" => "int(11)", "not null" => "1", "default" => "0"),
"term" => array("type" => "varchar(255)", "not null" => "1", "default" => ""),
"date" => array("type" => "datetime", "not null" => "1", "default" => NULL_DATE),
),
"indexes" => array(
"PRIMARY" => array("id"),
"uid" => array("uid"),
"spam" => array("spam"),
"ham" => array("ham"),
"term" => array("term(32)"),
)
);
$database["term"] = array( $database["term"] = array(
"fields" => array( "fields" => array(
"tid" => array("type" => "int(10) unsigned", "not null" => "1", "extra" => "auto_increment", "primary" => "1"), "tid" => array("type" => "int(10) unsigned", "not null" => "1", "extra" => "auto_increment", "primary" => "1"),

View file

@ -1,33 +0,0 @@
<?php
use Friendica\Database\DBM;
function fcontact_store($url,$name,$photo) {
$nurl = str_replace(array('https:','//www.'), array('http:','//'), $url);
$r = q("SELECT `id` FROM `fcontact` WHERE `url` = '%s' LIMIT 1",
dbesc($nurl)
);
if (DBM::is_result($r))
return $r[0]['id'];
$r = dba::insert('fcontact', array('url' => $nurl, 'name' => $name, 'photo' => $photo));
if (DBM::is_result($r)) {
$r = q("SELECT `id` FROM `fcontact` WHERE `url` = '%s' LIMIT 1",
dbesc($nurl)
);
if (DBM::is_result($r))
return $r[0]['id'];
}
return 0;
}
function ffinder_store($uid,$cid,$fid) {
$r = dba::insert('ffinder', array('uid' => $uid, 'cid' => $cid, 'fid' => $fid));
return $r;
}

View file

@ -2233,7 +2233,6 @@ function drop_item($id, $interactive = true) {
// Now delete them // Now delete them
if ($parentid != "") { if ($parentid != "") {
$r = q("DELETE FROM `item_id` WHERE `iid` IN (%s)", dbesc($parentid));
$r = q("DELETE FROM `sign` WHERE `iid` IN (%s)", dbesc($parentid)); $r = q("DELETE FROM `sign` WHERE `iid` IN (%s)", dbesc($parentid));
} }

View file

@ -153,14 +153,13 @@ Class Cron {
: '' : ''
); );
$contacts = q("SELECT `contact`.`id`, `contact`.`nick`, `contact`.`name`, `contact`.`network`, $contacts = q("SELECT `contact`.`id`, `contact`.`nick`, `contact`.`name`, `contact`.`network`, `contact`.`archive`,
`contact`.`last-update`, `contact`.`priority`, `contact`.`subhub` `contact`.`last-update`, `contact`.`priority`, `contact`.`rel`, `contact`.`subhub`
FROM `user` FROM `user`
STRAIGHT_JOIN `contact` STRAIGHT_JOIN `contact`
ON `contact`.`uid` = `user`.`uid` AND `contact`.`poll` != '' ON `contact`.`uid` = `user`.`uid` AND `contact`.`poll` != ''
AND `contact`.`network` IN ('%s', '%s', '%s', '%s', '%s') $sql_extra AND `contact`.`network` IN ('%s', '%s', '%s', '%s', '%s') $sql_extra
AND NOT `contact`.`self` AND NOT `contact`.`blocked` AND NOT `contact`.`readonly` AND NOT `contact`.`self` AND NOT `contact`.`blocked`
AND NOT `contact`.`archive`
WHERE NOT `user`.`account_expired` AND NOT `user`.`account_removed` $abandon_sql", WHERE NOT `user`.`account_expired` AND NOT `user`.`account_removed` $abandon_sql",
dbesc(NETWORK_DFRN), dbesc(NETWORK_DFRN),
dbesc(NETWORK_OSTATUS), dbesc(NETWORK_OSTATUS),
@ -179,6 +178,7 @@ Class Cron {
$contact['last-update'] = NULL_DATE; $contact['last-update'] = NULL_DATE;
} }
// Friendica and OStatus are checked once a day
if (in_array($contact['network'], array(NETWORK_DFRN, NETWORK_OSTATUS))) { if (in_array($contact['network'], array(NETWORK_DFRN, NETWORK_OSTATUS))) {
$contact['priority'] = 2; $contact['priority'] = 2;
} }
@ -191,7 +191,17 @@ Class Cron {
* changed. We will only update hubs once a day, regardless of 'pushpoll_frequency'. * changed. We will only update hubs once a day, regardless of 'pushpoll_frequency'.
*/ */
$poll_interval = Config::get('system', 'pushpoll_frequency'); $poll_interval = Config::get('system', 'pushpoll_frequency');
$contact['priority'] = (($poll_interval !== false) ? intval($poll_interval) : 3); $contact['priority'] = (!is_null($poll_interval) ? intval($poll_interval) : 3);
}
// Check Diaspora contacts or followers once a week
if (($contact["network"] == NETWORK_DIASPORA) || ($contact["rel"] == CONTACT_IS_FOLLOWER)) {
$contact['priority'] = 4;
}
// Check archived contacts once a month
if ($contact['archive']) {
$contact['priority'] = 5;
} }
if (($contact['priority'] >= 0) && !$force) { if (($contact['priority'] >= 0) && !$force) {
@ -240,13 +250,16 @@ Class Cron {
} }
} }
logger("Polling " . $contact["network"] . " " . $contact["id"] . " " . $contact["nick"] . " " . $contact["name"]);
if (($contact['network'] == NETWORK_FEED) && ($contact['priority'] <= 3)) { if (($contact['network'] == NETWORK_FEED) && ($contact['priority'] <= 3)) {
$priority = PRIORITY_MEDIUM; $priority = PRIORITY_MEDIUM;
} elseif ($contact['archive']) {
$priority = PRIORITY_NEGLIGIBLE;
} else { } else {
$priority = PRIORITY_LOW; $priority = PRIORITY_LOW;
} }
logger("Polling " . $contact["network"] . " " . $contact["id"] . " " . $contact['priority'] . " " . $contact["nick"] . " " . $contact["name"]);
Worker::add(array('priority' => $priority, 'dont_fork' => true), 'OnePoll', (int)$contact['id']); Worker::add(array('priority' => $priority, 'dont_fork' => true), 'OnePoll', (int)$contact['id']);
} }
} }

View file

@ -63,9 +63,8 @@ Class OnePoll
} }
} }
// Diaspora users and followers we only check if they still exist. // Diaspora users, archived users and followers are only checked if they still exist.
if (($contact["network"] == NETWORK_DIASPORA) || ($contact["rel"] == CONTACT_IS_FOLLOWER)) { if ($contact['archive'] || ($contact["network"] == NETWORK_DIASPORA) || ($contact["rel"] == CONTACT_IS_FOLLOWER)) {
if (PortableContact::updateNeeded($contact["created"], $contact["last-item"], $contact["failure_update"], $contact["success_update"])) {
$last_updated = PortableContact::lastUpdated($contact["url"]); $last_updated = PortableContact::lastUpdated($contact["url"]);
$updated = datetime_convert(); $updated = datetime_convert();
if ($last_updated) { if ($last_updated) {
@ -84,7 +83,6 @@ Class OnePoll
Contact::markForArchival($contact); Contact::markForArchival($contact);
logger('Contact '.$contact['id'].' is marked for archival', LOGGER_DEBUG); logger('Contact '.$contact['id'].' is marked for archival', LOGGER_DEBUG);
} }
}
return; return;
} }