Compare commits

...

3 Commits

Author SHA1 Message Date
Bnyro c02a700504
Merge 6303c56c55 into b176323e89 2024-10-28 22:53:14 +01:00
Bnyro 6303c56c55 [feat] rss: add xsl style to view rss in browser 2024-10-19 16:55:09 +02:00
Bnyro 75b5813031 [chore] rss: rename from searx to SearXNG 2024-10-19 16:54:51 +02:00
3 changed files with 63 additions and 3 deletions

View File

@ -0,0 +1,59 @@
<?xml version="1.0"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="html" version="5" encoding="UTF-8" indent="yes" />
<xsl:template match="rss">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title><xsl:value-of select="channel/title" /> RSS Feed</title>
<meta charset="UTF-8" />
<meta http-equiv="x-ua-compatible" content="IE=edge,chrome=1" />
<meta name="viewport" content="width=device-width,initial-scale=1" />
<style type="text/css">
html {
background: #fff;
color: #444;
}
a {
color: #334999;
text-decoration: none;
}
a:hover {
text-decoration: underline;
}
</style>
</head>
<body>
<header>
<h2>
<xsl:value-of select="channel/description" />
</h2>
</header>
<hr />
<main>
<xsl:for-each select="channel/item">
<article>
<h3>
<a hreflang="en" target="_blank">
<xsl:attribute name="href">
<xsl:value-of select="link" />
</xsl:attribute>
<xsl:value-of select="title" />
</a>
</h3>
<time>
<xsl:value-of select="pubDate" />
</time>
<p><xsl:value-of select="description" /></p>
<hr />
</article>
</xsl:for-each>
</main>
</body>
</html>
</xsl:template>
</xsl:stylesheet>

View File

@ -1,11 +1,12 @@
<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet href="{{ url_for('static', filename='xsl/rss.xsl') }}" type="text/xsl"?>
<rss version="2.0"
xmlns:opensearch="http://a9.com/-/spec/opensearch/1.1/"
xmlns:atom="http://www.w3.org/2005/Atom">
<channel>
<title>Searx search: {{ q|e }}</title>
<title>SearXNG search: {{ q|e }}</title>
<link>{{ url_for('search', _external=True) }}?q={{ q|e }}</link>
<description>Search results for "{{ q|e }}" - searx</description>
<description>Search results for "{{ q|e }}" - SearXNG</description>
<opensearch:totalResults>{{ number_of_results }}</opensearch:totalResults>
<opensearch:startIndex>1</opensearch:startIndex>
<opensearch:itemsPerPage>{{ number_of_results }}</opensearch:itemsPerPage>

View File

@ -180,7 +180,7 @@ class ViewsTestCase(SearxTestCase): # pylint: disable=missing-class-docstring,
def test_search_rss(self):
result = self.app.post('/search', data={'q': 'test', 'format': 'rss'})
self.assertIn(b'<description>Search results for "test" - searx</description>', result.data)
self.assertIn(b'<description>Search results for "test" - SearXNG</description>', result.data)
self.assertIn(b'<opensearch:totalResults>3</opensearch:totalResults>', result.data)