summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/invidious.cr15
-rw-r--r--src/invidious/views/template.ecr1
2 files changed, 16 insertions, 0 deletions
diff --git a/src/invidious.cr b/src/invidious.cr
index 74ae35db..de40698f 100644
--- a/src/invidious.cr
+++ b/src/invidious.cr
@@ -512,6 +512,21 @@ end
# Search
+get "/opensearch.xml" do |env|
+ env.response.content_type = "application/opensearchdescription+xml"
+
+ XML.build(indent: " ", encoding: "UTF-8") do |xml|
+ xml.element("OpenSearchDescription", xmlns: "http://a9.com/-/spec/opensearch/1.1/") do
+ xml.element("ShortName") { xml.text "Invidious" }
+ xml.element("LongName") { xml.text "Invidious Search" }
+ xml.element("Description") { xml.text "Search for videos, channels, and playlists on Invidious" }
+ xml.element("InputEncoding") { xml.text "UTF-8" }
+ xml.element("Image", width: 48, height: 48, type: "image/x-icon") { xml.text "/favicon.ico" }
+ xml.element("Url", type: "text/html", method: "get", template: "/search?q={searchTerms}")
+ end
+ end
+end
+
get "/results" do |env|
query = env.params.query["search_query"]?
query ||= env.params.query["q"]?
diff --git a/src/invidious/views/template.ecr b/src/invidious/views/template.ecr
index 748a691f..4cfb41df 100644
--- a/src/invidious/views/template.ecr
+++ b/src/invidious/views/template.ecr
@@ -13,6 +13,7 @@
<link rel="mask-icon" href="/safari-pinned-tab.svg" color="#575757">
<meta name="msapplication-TileColor" content="#575757">
<meta name="theme-color" content="#575757">
+ <link title="Invidious" type="application/opensearchdescription+xml" rel="search" href="/opensearch.xml">
<link rel="stylesheet" href="/css/pure-min.css">
<link rel="stylesheet" href="/css/grids-responsive-min.css">
<link rel="stylesheet" href="/css/ionicons.min.css">