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');
*
* @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)
}
$cookiejar = tempnam(System::getTempPath(), 'cookiejar-onepoll-');
- $curlResult = DI::httpClient()->get($contact['poll'], [HttpClientOptions::COOKIEJAR => $cookiejar]);
+ $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, '<>'));