summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorChunkyProgrammer <78101139+ChunkyProgrammer@users.noreply.github.com>2023-03-16 11:03:07 -0400
committerchunky programmer <78101139+ChunkyProgrammer@users.noreply.github.com>2023-05-14 15:58:14 -0400
commitd6fb5c03b72b40bf7bd71f8023c71c76ea41f53d (patch)
tree0969a1f369bcc1a110e9ee5fd49b7d6af1e1af7c
parent3a54e9556b0cd28fd224db5801f8141a68108c13 (diff)
downloadinvidious-d6fb5c03b72b40bf7bd71f8023c71c76ea41f53d.tar.gz
invidious-d6fb5c03b72b40bf7bd71f8023c71c76ea41f53d.tar.bz2
invidious-d6fb5c03b72b40bf7bd71f8023c71c76ea41f53d.zip
add hashtag endpoint
-rw-r--r--src/invidious/routes/api/v1/search.cr30
-rw-r--r--src/invidious/routing.cr1
2 files changed, 31 insertions, 0 deletions
diff --git a/src/invidious/routes/api/v1/search.cr b/src/invidious/routes/api/v1/search.cr
index 21451d33..0bf74bc3 100644
--- a/src/invidious/routes/api/v1/search.cr
+++ b/src/invidious/routes/api/v1/search.cr
@@ -55,4 +55,34 @@ module Invidious::Routes::API::V1::Search
return error_json(500, ex)
end
end
+
+ def self.hashtag(env)
+ hashtag = env.params.url["hashtag"]
+
+ # page does not change anything.
+ # page = env.params.query["page"]?.try &.to_i?|| 1
+
+ page = 1
+ locale = env.get("preferences").as(Preferences).locale
+ region = env.params.query["region"]?
+ env.response.content_type = "application/json"
+
+ begin
+ results = Invidious::Hashtag.fetch(hashtag, page, region)
+ rescue ex
+ return error_json(400, ex)
+ end
+
+ JSON.build do |json|
+ json.object do
+ json.field "results" do
+ json.array do
+ results.each do |item|
+ item.to_json(locale, json)
+ end
+ end
+ end
+ end
+ end
+ end
end
diff --git a/src/invidious/routing.cr b/src/invidious/routing.cr
index 9e2ade3d..72ee9194 100644
--- a/src/invidious/routing.cr
+++ b/src/invidious/routing.cr
@@ -243,6 +243,7 @@ module Invidious::Routing
# Search
get "/api/v1/search", {{namespace}}::Search, :search
get "/api/v1/search/suggestions", {{namespace}}::Search, :search_suggestions
+ get "/api/v1/hashtag/:hashtag", {{namespace}}::Search, :hashtag
# Authenticated