Change screenshot location
This commit is contained in:
parent
8df9a270ae
commit
e3f841af59
@ -44,13 +44,13 @@ class easy_unsubscribe extends rcube_plugin {
|
|||||||
// Array to store all patterns we want to match
|
// Array to store all patterns we want to match
|
||||||
$patterns = [
|
$patterns = [
|
||||||
// Standard <a> tag pattern
|
// Standard <a> tag pattern
|
||||||
'/<a\s+(?:[^>]*?\s+)?href=(["\'])((?:https?:)?\/\/[^"\']*?(?:unsubscribe|dummy-esclick)[^"\']*)\1/i',
|
'/<a\s+(?:[^>]*?\s+)?href=(["\'])((?:https?:)?\/\/[^"\']*?(?:unsubscribe)[^"\']*)\1/i',
|
||||||
|
|
||||||
// Square bracket pattern [URL] common in email templates
|
// Square bracket pattern [URL] common in email templates
|
||||||
'/\[\s*((?:https?:)?\/\/[^\]]*?(?:unsubscribe|dummy-esclick)[^\]]*)\s*\]/i',
|
'/\[\s*((?:https?:)?\/\/[^\]]*?(?:unsubscribe)[^\]]*)\s*\]/i',
|
||||||
|
|
||||||
// Bare URLs with unsubscribe/esclick
|
// Bare URLs with unsubscribe/esclick
|
||||||
'/((?:https?:)?\/\/[^\s<>\[\]"\']*?(?:unsubscribe|dummy-esclick)[^\s<>\[\]"\']*)/i'
|
'/((?:https?:)?\/\/[^\s<>\[\]"\']*?(?:unsubscribe)[^\s<>\[\]"\']*)/i'
|
||||||
];
|
];
|
||||||
|
|
||||||
$allUrls = [];
|
$allUrls = [];
|
||||||
@ -80,7 +80,6 @@ class easy_unsubscribe extends rcube_plugin {
|
|||||||
if($this->message_headers_done === false) {
|
if($this->message_headers_done === false) {
|
||||||
|
|
||||||
$this->message_headers_done = true;
|
$this->message_headers_done = true;
|
||||||
if(!isset($p['headers']->others['list-unsubscribe'])) return $p;
|
|
||||||
|
|
||||||
$urls = [];
|
$urls = [];
|
||||||
|
|
||||||
@ -89,7 +88,7 @@ class easy_unsubscribe extends rcube_plugin {
|
|||||||
|
|
||||||
$urls = array_merge($urls, $this->extractUnsubscribeUrls($body));
|
$urls = array_merge($urls, $this->extractUnsubscribeUrls($body));
|
||||||
|
|
||||||
$ListUnsubscribe = $this->decodeMimeHeader($p['headers']->others['list-unsubscribe']);
|
$ListUnsubscribe = $this->decodeMimeHeader($p['headers']->others['list-unsubscribe'] ?? '');
|
||||||
if (preg_match_all('/<(.+)>/mU', $ListUnsubscribe, $items, PREG_PATTERN_ORDER)) {
|
if (preg_match_all('/<(.+)>/mU', $ListUnsubscribe, $items, PREG_PATTERN_ORDER)) {
|
||||||
foreach ( $items[1] as $uri ) {
|
foreach ( $items[1] as $uri ) {
|
||||||
$urls[] = $uri;
|
$urls[] = $uri;
|
||||||
@ -98,9 +97,20 @@ class easy_unsubscribe extends rcube_plugin {
|
|||||||
|
|
||||||
$urls = array_unique($urls);
|
$urls = array_unique($urls);
|
||||||
|
|
||||||
|
$exclude_strings = ['?', 'esputnik', 'unsubscribe/'];
|
||||||
|
|
||||||
foreach ($urls as $uri) {
|
foreach ($urls as $uri) {
|
||||||
if (str_contains($uri, 'mailto')) continue;
|
if (str_contains($uri, 'mailto')) continue;
|
||||||
if (!str_contains($uri, '?') && !str_contains($uri, 'esputnik')) continue;
|
|
||||||
|
$should_continue = false;
|
||||||
|
foreach ($exclude_strings as $exclude_string) {
|
||||||
|
if (str_contains($uri, $exclude_string)) {
|
||||||
|
$should_continue = true;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (!$should_continue) continue;
|
||||||
|
|
||||||
|
|
||||||
$this->unsubscribe_img .= '<a class="easy_unsubscribe_link" title="'.$uri.'" data-href="'. htmlentities($uri) .'" target="_blank" onclick="easy_unsubscribe_click(this);"><img src="plugins/easy_unsubscribe/icon.png" alt="' . $this->gettext('unsubscribe') . '" /></a>';
|
$this->unsubscribe_img .= '<a class="easy_unsubscribe_link" title="'.$uri.'" data-href="'. htmlentities($uri) .'" target="_blank" onclick="easy_unsubscribe_click(this);"><img src="plugins/easy_unsubscribe/icon.png" alt="' . $this->gettext('unsubscribe') . '" /></a>';
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user