From 9361d6444548748445db1548d0e3a6291d802bd3 Mon Sep 17 00:00:00 2001 From: Miguel Ángel Moreno Date: Mon, 26 Dec 2022 21:46:15 +0100 Subject: feat: Abstract away result items into standalone namespace --- src/backend/tau/api/playlist.clj | 29 ++++------------------------- 1 file changed, 4 insertions(+), 25 deletions(-) (limited to 'src/backend/tau/api/playlist.clj') 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))})))) -- cgit v1.2.3