Liking cljdoc? Tell your friends :D

dk.simongray.podcast.app.show

Everything a show page needs, in one map.

Everything a show page needs, in one map.
raw docstring

default-limitsclj/s

The limits of a fetch of linked shows when its options don't set them: how many seconds a request can take, and the most bytes of a publisher feed.

The limits of a fetch of linked shows when its options don't set them:
how many seconds a request can take, and the most bytes of a publisher
feed.
sourceraw docstring

earlier-in-seasonclj/s

(earlier-in-season items item-guid)

The full episodes before the one with the guid item-guid in its season, by the items in listening order, or nil when that one isn't a full episode among them.

The full episodes before the one with the guid `item-guid` in its season,
by the `items` in listening order, or nil when that one isn't a full
episode among them.
sourceraw docstring

fetch-linked-shows!clj/s

(fetch-linked-shows! view)
(fetch-linked-shows! view {:keys [except] :or {except #{}} :as opts})

Fetch the shows that the view of a show links to, with the opts below. Returns a map, in ClojureScript as a promise:

  • :podroll has each recommended show with its :show. It comes from the Podcast Index when opts give the :index credentials, without its items, or else from the start of the feed at the URL that the podroll names, as discovery/fetch-head! gives it.
  • :publisher has the :feed of the publisher, its :shows, and :confirmed?, which says whether the publisher feed lists this show. The podcast namespace asks apps to show the other shows of a publisher only when it does.

Nothing is thrown for what the network or a server does, and a part that failed has an :error. The opts are:

  • :send and :allow-pred, as for any request
  • :timeout-seconds and :max-bytes, over default-limits
  • :index, the credentials of the Podcast Index, and :now-fn, a function of the current time to sign the requests with
  • :lenient-parser, as rss/parse takes it
  • :except, a set of the parts to leave out
Fetch the shows that the `view` of a show links to, with the `opts`
below. Returns a map, in ClojureScript as a promise:

- :podroll has each recommended show with its :show. It comes from the
  Podcast Index when `opts` give the :index credentials, without its
  items, or else from the start of the feed at the URL that the podroll
  names, as discovery/fetch-head! gives it.
- :publisher has the :feed of the publisher, its :shows, and
  :confirmed?, which says whether the publisher feed lists this show.
  The podcast namespace asks apps to show the other shows of a publisher
  only when it does.

Nothing is thrown for what the network or a server does, and a part
that failed has an :error. The `opts` are:

- :send and :allow-pred, as for any request
- :timeout-seconds and :max-bytes, over default-limits
- :index, the credentials of the Podcast Index, and :now-fn, a function of
  the current time to sign the requests with
- :lenient-parser, as rss/parse takes it
- :except, a set of the parts to leave out
sourceraw docstring

in-order?clj/s

(in-order? feed order)

Whether a show with the feed is heard from its first episode, by the listener's order of its episodes, as profile/default-settings has it, or else by the feed.

Whether a show with the `feed` is heard from its first episode, by the
listener's `order` of its episodes, as profile/default-settings has it,
or else by the feed.
sourceraw docstring

placeclj/s

(place items entry-of)

Where the listener is in a serial show, by its items in listening order and entry-of, a function of an item that returns its entry in a profile, or nil when the show has no full episodes, e.g.

{:total    19
 :heard    3
 :left     44000
 :unknown  0
 :started? true
 :seasons  7
 :next     item
 :season   {:season 2 :number 2 :total 3 :heard 1 :left 3600 :unknown 0}}

Only full episodes count, since trailers and bonuses stand aside from the story, though hearing one moves the listener to its season. The :left is in seconds, and :unknown counts the episodes not yet heard that have no length.

The :next is the first not yet heard in the season heard last, or else in the seasons after it and then before it. Its :season has the :number of :next from 1 and the :name that the feed gives it, if any. Neither is there once all are heard.

Where the listener is in a serial show, by its `items` in listening order
and `entry-of`, a function of an item that returns its entry in a profile,
or nil when the show has no full episodes, e.g.

    {:total    19
     :heard    3
     :left     44000
     :unknown  0
     :started? true
     :seasons  7
     :next     item
     :season   {:season 2 :number 2 :total 3 :heard 1 :left 3600 :unknown 0}}

Only full episodes count, since trailers and bonuses stand aside from the
story, though hearing one moves the listener to its season. The :left is
in seconds, and :unknown counts the episodes not yet heard that have no
length.

The :next is the first not yet heard in the season heard last, or else in
the seasons after it and then before it. Its :season has the :number of
:next from 1 and the :name that the feed gives it, if any. Neither is there
once all are heard.
sourceraw docstring

viewclj/s

(view feed)
(view feed
      {:keys [url notes-url-fn heading-level link-fn except]
       :or {notes-url-fn resolve/notes-url except #{}}
       :as opts})

The show of feed as a page shows it, with the opts below: the feed with the properties of resolve/properties merged in, and these keys:

  • :guid, the id that the feed gives itself now, for links and remote items, when the feed has one or opts give the :url of the feed
  • :id, the key that a library keeps the feed under, as guid/feed-key gives it, which can differ from the :guid once the feed moved
  • :notes, the description as Hiccup, and :text, as plain text
  • :episodes, the items in listening order, in place of :rss/items
  • :seasons, the items by season, as maps of :season, :name and :items
  • :links, links to the show in other apps

The opts are:

  • :url, the URL of the feed, for a feed that doesn't name its own
  • :notes-url-fn, a function of the web page of the show and a URL in its description, which gives the URL to keep or nil, by default the URL made absolute
  • :heading-level, the level that the highest heading of the notes takes, e.g. 3 on a page whose own headings are h1 and h2
  • :link-fn, a function of each link of the notes, as Hiccup, e.g. [:a {:href "https://example.com"} "Example"], which gives the Hiccup in its place, e.g. the link with a :target. What it gives is kept as it is, so it's for the app's own code, and the text of the notes has its text too.
  • :except, a set of the keys above to leave out without computing them
The show of `feed` as a page shows it, with the `opts` below: the feed
with the properties of resolve/properties merged in, and these keys:

- :guid, the id that the feed gives itself now, for links and remote
  items, when the feed has one or `opts` give the :url of the feed
- :id, the key that a library keeps the feed under, as guid/feed-key
  gives it, which can differ from the :guid once the feed moved
- :notes, the description as Hiccup, and :text, as plain text
- :episodes, the items in listening order, in place of :rss/items
- :seasons, the items by season, as maps of :season, :name and :items
- :links, links to the show in other apps

The `opts` are:

- :url, the URL of the feed, for a feed that doesn't name its own
- :notes-url-fn, a function of the web page of the show and a URL in
  its description, which gives the URL to keep or nil, by default the
  URL made absolute
- :heading-level, the level that the highest heading of the notes
  takes, e.g. 3 on a page whose own headings are h1 and h2
- :link-fn, a function of each link of the notes, as Hiccup, e.g.
  [:a {:href "https://example.com"} "Example"], which gives the Hiccup
  in its place, e.g. the link with a :target. What it gives is kept as
  it is, so it's for the app's own code, and the text of the notes has
  its text too.
- :except, a set of the keys above to leave out without computing them
sourceraw docstring

cljdoc builds & hosts documentation for Clojure/Script libraries

Keyboard shortcuts
Ctrl+kJump to recent docs
←Move to previous article
→Move to next article
Ctrl+/Jump to the search field
× close