diff options
| author | ChunkyProgrammer <78101139+ChunkyProgrammer@users.noreply.github.com> | 2023-03-16 11:03:07 -0400 |
|---|---|---|
| committer | chunky programmer <78101139+ChunkyProgrammer@users.noreply.github.com> | 2023-05-14 15:58:14 -0400 |
| commit | d6fb5c03b72b40bf7bd71f8023c71c76ea41f53d (patch) | |
| tree | 0969a1f369bcc1a110e9ee5fd49b7d6af1e1af7c | |
| parent | 3a54e9556b0cd28fd224db5801f8141a68108c13 (diff) | |
| download | invidious-d6fb5c03b72b40bf7bd71f8023c71c76ea41f53d.tar.gz invidious-d6fb5c03b72b40bf7bd71f8023c71c76ea41f53d.tar.bz2 invidious-d6fb5c03b72b40bf7bd71f8023c71c76ea41f53d.zip | |
add hashtag endpoint
| -rw-r--r-- | src/invidious/routes/api/v1/search.cr | 30 | ||||
| -rw-r--r-- | src/invidious/routing.cr | 1 |
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 |
