diff options
author | Miguel Ángel Moreno <mail@migalmoreno.com> | 2022-12-26 21:46:15 +0100 |
---|---|---|
committer | Miguel Ángel Moreno <mail@migalmoreno.com> | 2022-12-26 21:46:15 +0100 |
commit | 9361d6444548748445db1548d0e3a6291d802bd3 (patch) | |
tree | 4de1a845bb94d11ce8568e692b615c2e20ab72bd /src/backend/tau/api/playlist.clj | |
parent | d4d81cdfbb96c8fc359053a99d19adc9c4cc8ff8 (diff) |
feat: Abstract away result items into standalone namespace
Diffstat (limited to 'src/backend/tau/api/playlist.clj')
-rw-r--r-- | src/backend/tau/api/playlist.clj | 29 |
1 files changed, 4 insertions, 25 deletions
diff --git a/src/backend/tau/api/playlist.clj b/src/backend/tau/api/playlist.clj index 4bc7054..8f2b22c 100644 --- a/src/backend/tau/api/playlist.clj +++ b/src/backend/tau/api/playlist.clj @@ -1,9 +1,8 @@ (ns tau.api.playlist (:require [clojure.java.data :as j] - [tau.api.stream :as stream] - [tau.api.channel :as channel] - [ring.util.codec :refer [url-decode]]) + [ring.util.codec :refer [url-decode]] + [tau.api.result :as result]) (:import org.schabi.newpipe.extractor.playlist.PlaylistInfo org.schabi.newpipe.extractor.Page @@ -13,29 +12,9 @@ [id name playlist-type thumbnail-url uploader-name uploader-url uploader-avatar banner-url next-page stream-count related-streams]) -(defrecord PlaylistResult - [name thumbnail-url url upload-author stream-count]) - (defrecord PlaylistPage [next-page related-streams]) -(defn get-results - [items] - (map #(case (.name (.getInfoType %)) - "STREAM" (stream/get-result %) - "CHANNEL" (channel/get-result %) - "PLAYLIST" (get-result %)) - items)) - -(defn get-result - [playlist] - (map->PlaylistResult - {:name (.getName playlist) - :thumbnail-url (.getThumbnailUrl playlist) - :url (.getUrl playlist) - :upload-author (.getUploaderName playlist) - :stream-count (.getStreamCount playlist)})) - (defn get-info ([url] (let [service (NewPipe/getServiceByUrl (url-decode url)) @@ -51,10 +30,10 @@ :uploader-avatar (.getUploaderAvatarUrl info) :stream-count (.getStreamCount info) :next-page (j/from-java (.getNextPage info)) - :related-streams (get-results (.getRelatedItems info))}))) + :related-streams (result/get-results (.getRelatedItems info))}))) ([url page-url] (let [service (NewPipe/getServiceByUrl (url-decode url)) info (PlaylistInfo/getMoreItems service url (Page. (url-decode page-url)))] (map->PlaylistPage {:next-page (j/from-java (.getNextPage info)) - :related-streams (get-results (.getItems info))})))) + :related-streams (result/get-results (.getItems info))})))) |