From dfcc61063822dfb0fe699896da312249e93d5439 Mon Sep 17 00:00:00 2001 From: Miguel Ángel Moreno Date: Thu, 29 Dec 2022 01:53:08 +0100 Subject: feat(backend): Remove records and simplify API --- src/backend/tau/api/channels.clj | 28 ++++++++++++++++++++++++++++ 1 file changed, 28 insertions(+) create mode 100644 src/backend/tau/api/channels.clj (limited to 'src/backend/tau/api/channels.clj') diff --git a/src/backend/tau/api/channels.clj b/src/backend/tau/api/channels.clj new file mode 100644 index 0000000..695a3fd --- /dev/null +++ b/src/backend/tau/api/channels.clj @@ -0,0 +1,28 @@ +(ns tau.api.channels + (:require + [clojure.java.data :as j] + [ring.util.codec :refer [url-decode]] + [tau.api.items :as items]) + (:import + org.schabi.newpipe.extractor.channel.ChannelInfo + org.schabi.newpipe.extractor.NewPipe + org.schabi.newpipe.extractor.Page)) + +(defn get-channel + ([url] + (let [info (ChannelInfo/getInfo (url-decode url))] + {:id (.getId info) + :name (.getName info) + :verified? (.isVerified info) + :banner (.getBannerUrl info) + :avatar (.getAvatarUrl info) + :description (.getDescription info) + :subscriber-count (when-not (= (.getSubscriberCount info) -1) (.getSubscriberCount info)) + :donation-links (.getDonationLinks info) + :next-page (j/from-java (.getNextPage info)) + :related-streams (items/get-items (.getRelatedItems info))})) + ([url page-url] + (let [service (NewPipe/getServiceByUrl (url-decode url)) + info (ChannelInfo/getMoreItems service (url-decode url) (Page. (url-decode page-url)))] + {:related-streams (items/get-items (.getItems info)) + :next-page (j/from-java (.getNextPage info))}))) -- cgit v1.2.3