<?php
/**
- * @copyright Copyright (C) 2010-2021, the Friendica project
+ * @copyright Copyright (C) 2010-2022, the Friendica project
*
* @license GNU AGPL version 3 or any later version
*
use Friendica\Core\Logger;
use Friendica\Core\Protocol;
+use Friendica\Core\System;
use Friendica\Database\DBA;
use Friendica\DI;
use Friendica\Model\Contact;
+use Friendica\Model\Conversation;
use Friendica\Model\Item;
use Friendica\Model\Post;
use Friendica\Model\User;
+use Friendica\Network\HTTPClient\Client\HttpClientAccept;
use Friendica\Network\HTTPClient\Client\HttpClientOptions;
use Friendica\Protocol\Activity;
use Friendica\Protocol\ActivityPub;
class OnePoll
{
- public static function execute($contact_id = 0, $command = '')
+ public static function execute(int $contact_id = 0, string $command = '')
{
Logger::notice('Start polling/probing contact', ['id' => $contact_id]);
- $force = ($command == "force");
+ $force = ($command == 'force');
if (empty($contact_id)) {
Logger::notice('no contact provided');
if ($success) {
self::updateContact($contact, ['failed' => false, 'last-update' => $updated, 'success_update' => $updated]);
- Contact::unmarkForArchival($contact);
+ Contact::unmarkForArchival($contact);
} else {
self::updateContact($contact, ['failed' => true, 'last-update' => $updated, 'failure_update' => $updated]);
Contact::markForArchival($contact);
*
* @param array $contact The personal contact entry
* @param array $fields The fields that are updated
+ * @return void
* @throws \Exception
*/
private static function updateContact(array $contact, array $fields)
return false;
}
- $cookiejar = tempnam(get_temppath(), 'cookiejar-onepoll-');
- $curlResult = DI::httpClient()->get($contact['poll'], [HttpClientOptions::COOKIEJAR => $cookiejar]);
+ $cookiejar = tempnam(System::getTempPath(), 'cookiejar-onepoll-');
+ $curlResult = DI::httpClient()->get($contact['poll'], HttpClientAccept::FEED_XML, [HttpClientOptions::COOKIEJAR => $cookiejar]);
unlink($cookiejar);
if ($curlResult->isTimeout()) {
return false;
}
- Logger::notice('Consume feed of contact', ['id' => $contact['id'], 'url' => $contact['poll']]);
+ Logger::notice('Consume feed of contact', ['id' => $contact['id'], 'url' => $contact['poll'], 'Content-Type' => $curlResult->getHeader('Content-Type')]);
return !empty(Feed::import($xml, $importer, $contact));
}
$datarray['verb'] = Activity::POST;
$datarray['object-type'] = Activity\ObjectType::NOTE;
$datarray['network'] = Protocol::MAIL;
+ $datarray['protocol'] = Conversation::PARCEL_IMAP;
+ $datarray['direction'] = Conversation::PULL;
+
// $meta = Email::messageMeta($mbox, $msg_uid);
$datarray['thr-parent'] = $datarray['uri'] = Email::msgid2iri(trim($meta->message_id, '<>'));
$datarray['title'] .= $subpart->text;
}
}
- $datarray['title'] = Strings::escapeTags(trim($datarray['title']));
+ $datarray['title'] = trim($datarray['title']);
//$datarray['title'] = Strings::escapeTags(trim($meta->subject));
$datarray['created'] = DateTimeFormat::utc($meta->date);