interfaceConfigurableSource : UnifiedSource -
A settings screen for the source, as in Settings.
Implement
funsetupPreferenceScreen( screen: EntryPreferenceScreen )
interfaceRelatedEntriesSource : UnifiedSource -
Related entries on a title's page, in the order returned. They can be of any kind, so set each one's
type.Implement
suspendfun getRelatedEntries( entry: SEntry ): List<RelatedEntryGroup> -
Each
RelatedEntryGroup(title, entries)shows as a row of covers under itstitle, such as Sequels. If the site doesn't say how titles relate, return one group with a null title.
interfaceResolvableSource : UnifiedSource -
Addresses on the site open as the title or chapter they point to, as in Opening links.
Implement
fungetUriType( uri: String ): EntryUriType suspendfun getEntry( uri: String ): SEntry? suspendfun getChapter( uri: String ): SEntryChapter?
interfaceMergedEntrySource : UnifiedSource -
A title made of other titles of the source, such as a show of several seasons. See
Merged entries.
Implement
suspendfun getMergedEntries( entry: SEntry ): List<SEntry>
interfaceDeferredStreamSource : UnifiedSource -
Video links that take extra requests to find, looked up only for the stream about to play. See
Links found later.
Implement
suspendfun resolveStream( chapter: SEntryChapter, stream: VideoStream ): VideoStream
interfaceEntryPreviewSource : UnifiedSource -
Still images of a video title, such as frames from a film, in its Preview, which the user opens by pressing and holding it in a list. Previews show on Android only for
now.
Implement
suspendfun getEntryPreview( entry: SEntry ): List<EntryPreviewImage> -
Each image is an
EntryPreviewImage(index, imageUrl, title = null, url = null).
interfaceChapterListPartsSource : UnifiedSource -
A long chapter list read in parts, the newest first and the older ones in the background. See
Long chapter lists.
Implement
suspendfun getOlderChapters( entry: SEntry, token: String ): ChapterListPart
interfaceArtworkSource : UnifiedSource -
Covers and chapter stills loaded with the source's client and headers, for a host that serves images only with the site's
Refereror cookies.EntryHttpSourceandEntryImageSourcealready have it; without it Katari loads them with its own client and no source headers.Implement
valclient: OkHttpClient valheaders: Headers
interfaceSiteStorageSource : UnifiedSource -
The site's web storage, for a site that keeps a login or other state in
localStorageorsessionStorage, which unlike cookies Katari's client never sees. While the user browses the source's site in WebView, Katari reads the page's storage after each page load and hands over the last reading when WebView closes.Implement
funsaveSiteStorage( storage: SiteStorage ) -
Called on the main thread, so keep it short, such as saving what you need in the source's
settings.
SiteStorageholds the page'surl, which may be another site the user went on to, such as a login provider, and itslocalandsessionmaps.
interfaceChapterWebViewSource : WebViewSource -
WebView for a single chapter.
EntryImageHttpSourcealready has it.Implement
fungetContentUrl( entry: SEntry ): String fungetChapterUrl( chapter: SEntryChapter ): String
interfaceResumableEntryImageSource : EntryImageSource -
Comic page downloads that pick up where they stopped: Katari asks for the rest with a
Rangeheader and keeps what it has only when the host answers206 Partial Content. A marker; there is nothing to implement. interfaceEntryItemOrientationProvider -
Wide covers in lists with
HORIZONTAL, for sites whose thumbnails are landscape.Implement
valitemOrientation: EntryItemOrientation VERTICALunless overridden.
interfaceUnmeteredSource - No warning for this source when a library update holds more than 60 of its titles, or comic downloads queue more than 30 chapters or 15 from it. For sources that can take the load, such as your own server. A marker; there is nothing to implement.
interfaceChapterNumberRecognitionSource -
Katari reads chapter numbers from the names of chapters whose
chapterNumberis -1. A marker; there is nothing to implement. interfaceEmptyChapterListSource - An empty chapter list is accepted rather than treated as an error. A marker; there is nothing to implement.
The immersive view, which plays comics and videos one after another, needs none of these: it works with every source. Books don't
take part, and a source whose supportedEntryTypes has neither MANGA nor ANIME doesn't offer it.