diff options
| -rwxr-xr-x | bin/subscribe.php | 7 | ||||
| -rw-r--r-- | src/phinde/Subscriptions.php | 28 |
2 files changed, 30 insertions, 5 deletions
diff --git a/bin/subscribe.php b/bin/subscribe.php index 411fa86..7d05f79 100755 --- a/bin/subscribe.php +++ b/bin/subscribe.php @@ -22,17 +22,18 @@ try { $cc->displayError($e->getMessage()); } +$subDb = new Subscriptions(); + $url = $res->args['url']; $url = Helper::addSchema($url); $urlObj = new \Net_URL2($url); $url = $urlObj->getNormalizedURL(); if (!Helper::isUrlAllowed($url)) { - Log::error("Domain is not allowed; not crawling"); + Log::error("Domain is not allowed; not subscribing"); + $subDb->remove($url); exit(2); } -$subDb = new Subscriptions(); - list($topic, $hub) = $subDb->detectHub($url); if ($hub === null) { Log::error('No hub URL found for topic'); diff --git a/src/phinde/Subscriptions.php b/src/phinde/Subscriptions.php index 87119c8..e49e817 100644 --- a/src/phinde/Subscriptions.php +++ b/src/phinde/Subscriptions.php @@ -38,6 +38,22 @@ class Subscriptions } /** + * Remove a topic + * + * @param string $topic Topic URL + * + * @return void + */ + public function remove($topic) + { + $stmt = $this->db->prepare( + 'DELETE FROM subscriptions' + . ' WHERE sub_topic = :topic' + ); + $stmt->execute([':topic' => $topic]); + } + + /** * Count number of subscriptions * * @return array Array of keys with different status, number as value @@ -68,8 +84,16 @@ class Subscriptions { $stmt = $this->db->prepare( 'SELECT * FROM subscriptions' - . ' WHERE sub_status IN ("active", "expired")' - . ' AND DATEDIFF(sub_expires, NOW()) <= 2' + . ' WHERE' + . '(' + //expire soon + . ' sub_status IN ("active", "expired")' + . ' AND DATEDIFF(sub_expires, NOW()) <= 2' + . ') OR (' + //no reaction to subscription within 10 minutes + . ' sub_status = "subscribing"' + . ' AND TIMEDIFF(NOW(), sub_created) > "00:10:00"' + . ')' ); $stmt->execute(); |
