function mailstream_post_hook(&$a, &$item) {
if (!PConfig::get($item['uid'], 'mailstream', 'enabled')) {
+ Logger::debug('mailstream: not enabled for item ' . $item['id']);
return;
}
if (!$item['uid']) {
+ Logger::debug('mailstream: no uid for item ' . $item['id']);
return;
}
if (!$item['contact-id']) {
+ Logger::debug('mailstream: no contact-id for item ' . $item['id']);
return;
}
if (!$item['uri']) {
+ Logger::debug('mailstream: no uri for item ' . $item['id']);
+ return;
+ }
+ if (!$item['plink']) {
+ Logger::debug('mailstream: no plink for item ' . $item['id']);
return;
}
if (PConfig::get($item['uid'], 'mailstream', 'nolikes')) {
if ($item['verb'] == ACTIVITY_LIKE) {
+ Logger::debug('mailstream: like item ' . $item['id']);
return;
}
}
$attachments = [];
preg_match_all("/\[img\=([0-9]*)x([0-9]*)\](.*?)\[\/img\]/ism", $item["body"], $matches1);
preg_match_all("/\[img\](.*?)\[\/img\]/ism", $item["body"], $matches2);
- foreach (array_merge($matches1[3], $matches2[1]) as $url) {
+ preg_match_all("/\[img\=([^\]]*)\]([^[]*)\[\/img\]/ism", $item["body"], $matches3);
+ foreach (array_merge($matches1[3], $matches2[1], $matches3[1]) as $url) {
+ $components = parse_url($url);
+ if (!$components) {
+ continue;
+ }
$cookiejar = tempnam(get_temppath(), 'cookiejar-mailstream-');
$curlResult = Network::fetchUrlFull($url, true, 0, '', $cookiejar);
$attachments[$url] = [
'data' => $curlResult->getBody(),
'guid' => hash("crc32", $url),
- 'filename' => basename($url),
+ 'filename' => basename($components['path']),
'type' => $curlResult->getContentType()
];
$mail->IsHTML(true);
$mail->CharSet = 'utf-8';
$template = Renderer::getMarkupTemplate('mail.tpl', 'addon/mailstream/');
+ $mail->AltBody = BBCode::toPlaintext($item['body']);
$item['body'] = BBCode::convert($item['body']);
$item['url'] = $a->getBaseURL() . '/display/' . $item['guid'];
$mail->Body = Renderer::replaceMacros($template, [