From 4f742151992d3a56aea5780bbd062ba18fd8a14b Mon Sep 17 00:00:00 2001 From: Alexandre Alapetite Date: Sat, 26 Dec 2020 17:23:23 +0100 Subject: Better OPML import of feeds in multiple categories (#3286) #fix https://github.com/FreshRSS/FreshRSS/issues/3284 Helps https://github.com/FreshRSS/FreshRSS/issues/1989 In OPMLs files in which feeds are listed several times, favour the version in a category instead of in no category. --- app/Controllers/importExportController.php | 7 +++++++ 1 file changed, 7 insertions(+) (limited to 'app/Controllers') diff --git a/app/Controllers/importExportController.php b/app/Controllers/importExportController.php index 3187e1325..9e89189fd 100644 --- a/app/Controllers/importExportController.php +++ b/app/Controllers/importExportController.php @@ -251,6 +251,13 @@ class FreshRSS_importExport_Controller extends Minz_ActionController { $nb_cats = count($this->catDAO->listCategories(false)); $limits = FreshRSS_Context::$system_conf->limits; + //Sort with categories first + usort($opml_elements, function ($a, $b) { + return strcmp( + (isset($a['xmlUrl']) ? 'Z' : 'A') . $a['text'], + (isset($b['xmlUrl']) ? 'Z' : 'A') . $b['text']); + }); + foreach ($opml_elements as $elt) { if (isset($elt['xmlUrl'])) { // If xmlUrl exists, it means it is a feed -- cgit v1.2.3