From 2324d21f39da166ed768993cd1d0692b126fc66f Mon Sep 17 00:00:00 2001 From: Daniel Aleksandersen Date: Thu, 1 Apr 2021 05:11:54 +0200 Subject: [PATCH 1/2] Export OPML files as .opml --- apps/feed_import/views.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/apps/feed_import/views.py b/apps/feed_import/views.py index 3f913582c..6544e018a 100644 --- a/apps/feed_import/views.py +++ b/apps/feed_import/views.py @@ -78,8 +78,8 @@ def opml_export(request): exporter = OPMLExporter(user) opml = exporter.process() - response = HttpResponse(opml, content_type='text/xml') - response['Content-Disposition'] = 'attachment; filename=NewsBlur-%s-%s' % ( + response = HttpResponse(opml, content_type='text/xml; charset=utf-8') + response['Content-Disposition'] = 'attachment; filename=NewsBlur-%s-%s.opml' % ( user.username, now.strftime('%Y-%m-%d') ) From eb71e61247f31e08fc18f1c19288fb70d98fa43a Mon Sep 17 00:00:00 2001 From: Daniel Aleksandersen Date: Thu, 1 Apr 2021 05:23:00 +0200 Subject: [PATCH 2/2] Add XML declaration to OPML output (sets utf-8) --- apps/feed_import/models.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/apps/feed_import/models.py b/apps/feed_import/models.py index 68f42827e..259173407 100644 --- a/apps/feed_import/models.py +++ b/apps/feed_import/models.py @@ -68,7 +68,7 @@ class OPMLExporter(Importer): folders = self.get_folders() body = SubElement(root, 'body') self.process_outline(body, folders, verbose=verbose) - return tostring(root) + return tostring(root, encoding='utf8', method='xml') def process_outline(self, body, folders, verbose=False): for obj in folders: