*/
private static function isPictureLink(string $page, string $preview): bool
{
- return preg_match('#/photos/.*/image/#ism', $page) && preg_match('#/photo/.*-1\.#ism', $preview);
+ return (preg_match('#/photo/.*-0\.#ism', $page) || preg_match('#/photos/.*/image/#ism', $page)) && preg_match('#/photo/.*-[01]\.#ism', $preview);
}
/**
$attachments = [];
if (preg_match_all("#\[url=([^\]]+?)\]\s*\[img=([^\[\]]*)\]([^\[\]]*)\[\/img\]\s*\[/url\]$endmatchpattern#ism", $body, $pictures, PREG_SET_ORDER)) {
foreach ($pictures as $picture) {
- if (!self::isPictureLink($picture[1], $picture[2])) {
- continue;
+ if (self::isPictureLink($picture[1], $picture[2])) {
+ $body = str_replace($picture[0], '', $body);
+ $image = str_replace('-1.', '-0.', $picture[2]);
+ $attachments[$image] = [
+ 'uri-id' => $uriid, 'type' => self::IMAGE, 'url' => $image,
+ 'preview' => $picture[2], 'description' => $picture[3]
+ ];
+ } else {
+ $body = str_replace($picture[0], '', $body);
+ $attachments[$picture[1]] = [
+ 'uri-id' => $uriid, 'type' => self::UNKNOWN, 'url' => $picture[1],
+ 'preview' => $picture[2], 'description' => $picture[3]
+ ];
}
- $body = str_replace($picture[0], '', $body);
- $image = str_replace('-1.', '-0.', $picture[2]);
- $attachments[$image] = [
- 'uri-id' => $uriid, 'type' => self::IMAGE, 'url' => $image,
- 'preview' => $picture[2], 'description' => $picture[3]
- ];
}
}
if (preg_match_all("#\[url=([^\]]+?)\]\s*\[img\]([^\[]+?)\[/img\]\s*\[/url\]$endmatchpattern#ism", $body, $pictures, PREG_SET_ORDER)) {
foreach ($pictures as $picture) {
- if (!self::isPictureLink($picture[1], $picture[2])) {
- continue;
+ if (self::isPictureLink($picture[1], $picture[2])) {
+ $body = str_replace($picture[0], '', $body);
+ $image = str_replace('-1.', '-0.', $picture[2]);
+ $attachments[$image] = [
+ 'uri-id' => $uriid, 'type' => self::IMAGE, 'url' => $image,
+ 'preview' => $picture[2], 'description' => null
+ ];
+ } else {
+ $body = str_replace($picture[0], '', $body);
+ $attachments[$picture[1]] = [
+ 'uri-id' => $uriid, 'type' => self::UNKNOWN, 'url' => $picture[1],
+ 'preview' => $picture[2], 'description' => null
+ ];
}
- $body = str_replace($picture[0], '', $body);
- $image = str_replace('-1.', '-0.', $picture[2]);
- $attachments[$image] = [
- 'uri-id' => $uriid, 'type' => self::IMAGE, 'url' => $image,
- 'preview' => $picture[2], 'description' => null
- ];
}
}
return $body;
}
+ /**
+ * Remove media from the body
+ *
+ * @param string $body
+ * @return string
+ */
+ public static function removeFromBody(string $body): string
+ {
+ do {
+ $prebody = $body;
+ $body = self::insertFromBody(0, $body);
+ } while ($prebody != $body);
+ return $body;
+ }
+
/**
* Add media links from a relevant url in the body
*