aboutsummaryrefslogtreecommitdiff
path: root/src/backend/tau/api/playlist.clj
diff options
context:
space:
mode:
authorMiguel Ángel Moreno <mail@migalmoreno.com>2022-12-26 21:46:15 +0100
committerMiguel Ángel Moreno <mail@migalmoreno.com>2022-12-26 21:46:15 +0100
commit9361d6444548748445db1548d0e3a6291d802bd3 (patch)
tree4de1a845bb94d11ce8568e692b615c2e20ab72bd /src/backend/tau/api/playlist.clj
parentd4d81cdfbb96c8fc359053a99d19adc9c4cc8ff8 (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.clj29
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))}))))