*
* Cleanup old introductions that remain blocked.
* Also remove the contact record, but only if there is no existing relationship
+ * Do not remove email contacts as these may be awaiting email verification
+ */
+
+ $r = q("SELECT `intro`.*, `intro`.`id` AS `iid`, `contact`.`id` AS `cid`, `contact`.`rel`
+ FROM `intro` LEFT JOIN `contact` on `intro`.`contact-id` = `contact`.`id`
+ WHERE `intro`.`blocked` = 1 AND `contact`.`self` = 0
+ AND `contact`.`network` != '%s'
+ AND `intro`.`datetime` < UTC_TIMESTAMP() - INTERVAL 30 MINUTE ",
+ dbesc(NETWORK_MAIL)
+ );
+ if(count($r)) {
+ foreach($r as $rr) {
+ if(! $rr['rel']) {
+ q("DELETE FROM `contact` WHERE `id` = %d LIMIT 1",
+ intval($rr['cid'])
+ );
+ }
+ q("DELETE FROM `intro` WHERE `id` = %d LIMIT 1",
+ intval($rr['iid'])
+ );
+ }
+ }
+
+ /**
*
+ * Cleanup any old email intros - which will have a greater lifetime
*/
$r = q("SELECT `intro`.*, `intro`.`id` AS `iid`, `contact`.`id` AS `cid`, `contact`.`rel`
FROM `intro` LEFT JOIN `contact` on `intro`.`contact-id` = `contact`.`id`
- WHERE `intro`.`blocked` = 1 AND `contact`.`self` = 0 AND `intro`.`datetime` < UTC_TIMESTAMP() - INTERVAL 30 MINUTE ");
+ WHERE `intro`.`blocked` = 1 AND `contact`.`self` = 0
+ AND `contact`.`network` = '%s'
+ AND `intro`.`datetime` < UTC_TIMESTAMP() - INTERVAL 3 DAY ",
+ dbesc(NETWORK_MAIL)
+ );
if(count($r)) {
foreach($r as $rr) {
if(! $rr['rel']) {
}
}
+
$url = trim($_POST['dfrn_url']);
if(! strlen($url)) {
notice( t("Invalid locator") . EOL );
if(count($r)) {
if($r[0]['page-flags'] != PAGE_NORMAL)
$auto_confirm = true;
- if(($r[0]['notify-flags'] & NOTIFY_INTRO) && (! $auto_confirm)) {
- $email_tpl = get_intltext_template('request_notify_eml.tpl');
- $email = replace_macros($email_tpl, array(
- '$requestor' => ((strlen(stripslashes($r[0]['name']))) ? stripslashes($r[0]['name']) : t('[Name Withheld]')),
- '$url' => stripslashes($r[0]['url']),
- '$myname' => $r[0]['username'],
- '$siteurl' => $a->get_baseurl(),
- '$sitename' => $a->config['sitename']
+
+ if(! $auto_confirm) {
+ require_once('include/enotify.php');
+ notification(array(
+ 'type' => NOTIFY_INTRO,
+ 'notify_flags' => $r[0]['notify-flags'],
+ 'language' => $r[0]['language'],
+ 'to_name' => $r[0]['username'],
+ 'to_email' => $r[0]['email'],
+ 'link' => $a->get_baseurl() . '/notifications/intros',
+ 'source_name' => ((strlen(stripslashes($r[0]['name']))) ? stripslashes($r[0]['name']) : t('[Name Withheld]')),
+ 'source_link' => $r[0]['url'],
+ 'source_photo' => $r[0]['photo'],
+ 'verb' => ACTIVITY_REQ_FRIEND,
+ 'otype' => 'intro'
));
- $res = mail($r[0]['email'],
- t("Introduction received at ") . $a->config['sitename'],
- $email,
- 'From: ' . t('Administrator') . '@' . $_SERVER['SERVER_NAME'] . "\n"
- . 'Content-type: text/plain; charset=UTF-8' . "\n"
- . 'Content-transfer-encoding: 8bit' );
-
- // This is a redundant notification - no point throwing errors if it fails.
}
+
if($auto_confirm) {
require_once('mod/dfrn_confirm.php');
$handsfree = array(