From ceb1ee698d13c5bbc50efa9b5c7d3bf268ce2d90 Mon Sep 17 00:00:00 2001 From: Simon Rettberg Date: Fri, 17 Nov 2023 17:30:19 +0100 Subject: [sysconfig] Update Wikipedia extraction logic --- .../sysconfig/addmodule_branding.inc.php | 31 +++++++++++++++++----- 1 file changed, 24 insertions(+), 7 deletions(-) diff --git a/modules-available/sysconfig/addmodule_branding.inc.php b/modules-available/sysconfig/addmodule_branding.inc.php index 4cbcb66f..54b2ad57 100644 --- a/modules-available/sysconfig/addmodule_branding.inc.php +++ b/modules-available/sysconfig/addmodule_branding.inc.php @@ -99,28 +99,44 @@ class Branding_ProcessFile extends AddModule_Base private static function downloadSvg(string $svgName, string $url, &$title): bool { $title = false; - // [wikipedia] Did someone paste a link to a thumbnail of the svg? Let's fix that... - if (preg_match('#^(.*)/thumb/(.*\.svg)/.*\.svg#', $url, $out)) { - $url = $out[1] . '/' . $out[2]; - } for ($i = 0; $i < 5; ++$i) { + // [wikipedia] Did someone paste a link to a thumbnail of the svg? Let's fix that... + if (preg_match('#^(.*)/thumb/(.*\.svg)/.*\.svg#', $url, $out)) { + $url = $out[1] . '/' . $out[2]; + } $code = 400; if (!Download::toFile($svgName, $url, 3, $code) || $code < 200 || $code > 299) { Message::addError('remote-timeout', $url, $code); return false; } - $content = FileUtil::readFile($svgName, 25000); + $content = FileUtil::readFile($svgName, 250000); // Is svg file? if (strpos($content, '([^<]*)#i', $content, $tout)) { $title = trim(preg_replace('/\W*Wikipedia.*/', '', $tout[1])); } $new = false; - foreach ($out[1] as $res) { + $out = []; + if (isset($out1[1])) { + $out += $out1[1]; + } + if (isset($out2[1])) { + $out += $out2[1]; + } + if (isset($out3[1])) { + $out += $out3[1]; + } + foreach ($out as $res) { + error_log("Match '$res'"); + if (!preg_match('/hochschule|univers|logo|siegel/i', $res)) + continue; if (strpos($res, 'action=edit') !== false) continue; $new = Branding_ProcessFile::internetCombineUrl($url, html_entity_decode($res, ENT_COMPAT, 'UTF-8')); @@ -129,6 +145,7 @@ class Branding_ProcessFile extends AddModule_Base } if ($new === $url || $new === false) break; + error_log("New: '$new'"); $url = $new; continue; } -- cgit v1.2.3-55-g7522