diff --git a/.github/workflows/generate_dokka.yml b/.github/workflows/generate_dokka.yml index e3dac385751..effa862cba9 100644 --- a/.github/workflows/generate_dokka.yml +++ b/.github/workflows/generate_dokka.yml @@ -58,10 +58,10 @@ jobs: run: | cd $GITHUB_WORKSPACE/src/ chmod +x gradlew - ./gradlew docs:dokkaGeneratePublicationHtml + ./gradlew dokkaGeneratePublicationHtml - name: Copy Dokka - run: cp -r $GITHUB_WORKSPACE/src/docs/build/dokka/html/* $GITHUB_WORKSPACE/dokka/ + run: cp -r $GITHUB_WORKSPACE/build/dokka/html/* $GITHUB_WORKSPACE/dokka/ - name: Push builds run: | diff --git a/app/build.gradle.kts b/app/build.gradle.kts index 97d24c4fbd0..7fd8f8fbbf8 100644 --- a/app/build.gradle.kts +++ b/app/build.gradle.kts @@ -286,6 +286,7 @@ dokka { moduleName = "App" dokkaSourceSets { main { + includes.setFrom("packages.md") analysisPlatform = KotlinPlatform.JVM documentedVisibilities( VisibilityModifier.Public, diff --git a/app/packages.md b/app/packages.md new file mode 100644 index 00000000000..3e8c1807fb6 --- /dev/null +++ b/app/packages.md @@ -0,0 +1,233 @@ +# Module App + +CloudStream Android application module providing the user interface and core functionality for the +streaming app. + +# Package com.lagradost.cloudstream3 + +Root package containing core application classes and main entry points. + +## Main Classes + +- **CloudStreamApp** - Application class with initialization and crash handling +- **MainActivity** - Main activity handling app lifecycle +- **CommonActivity** - Base activity class with common functionality +- **AcraApplication** - Crash reporting integration + +# Package com.lagradost.cloudstream3.actions + +Action implementations for handling various video playback intents and external app integration. + +# Package com.lagradost.cloudstream3.actions.temp + +External app integration packages for video playback: +- VLC, MX Player, MPV, LibreTorrent, Just Player, etc. +- Web video casting and clipboard actions +- ChromeCast support + +# Package com.lagradost.cloudstream3.mvvm + +MVVM architecture components including ViewModel extensions and lifecycle management. + +# Package com.lagradost.cloudstream3.network + +Network utilities including: + +- RequestsHelper - HTTP request handling +- CloudflareKiller - Cloudflare bypass +- DohProviders - DNS over HTTPS providers + +# Package com.lagradost.cloudstream3.plugins + +Plugin management system: + +- Plugin - Plugin data model +- PluginManager - Plugin lifecycle management +- RepositoryManager - Plugin repository handling + +# Package com.lagradost.cloudstream3.receivers + +Broadcast receivers for system events and notifications. + +# Package com.lagradost.cloudstream3.services + +Background services: + +- VideoDownloadService - Video download handling +- DownloadQueueService - Download queue management +- SubscriptionWorkManager - Anime/manga subscription updates +- BackupWorkManager - Data backup automation + +# Package com.lagradost.cloudstream3.subtitles + +Subtitle processing and selection utilities. + +# Package com.lagradost.cloudstream3.syncproviders + +Sync providers for tracking anime/manga watch history: + +- AniListApi - AniList integration +- MALApi - MyAnimeList integration +- KitsuApi - Kitsu integration +- SimklApi - SIMKL integration + +# Package com.lagradost.cloudstream3.syncproviders.providers + +API implementations for sync providers: + +- AniListApi - AniList API implementation +- MALApi - MyAnimeList API implementation +- KitsuApi - Kitsu API implementation +- SimklApi - SIMKL API implementation +- LocalList - Local list storage +- OpenSubtitlesApi - OpenSubtitles API +- Subdl, Addic7ed - Subtitle sources + +# Package com.lagradost.cloudstream3.ui + +User interface components including player, fragments, and dialogs. + +# Package com.lagradost.cloudstream3.ui.account + +Account management: +- AccountSelectActivity - Account selection UI +- AccountViewModel - Account state management +- AccountAdapter - Account list adapter + +# Package com.lagradost.cloudstream3.ui.download + +Download management: + +- DownloadFragment - Download UI +- DownloadViewModel - Download state management +- DownloadAdapter - Download list adapter + +# Package com.lagradost.cloudstream3.ui.download.button + +Download button components: +- DownloadButton - Download button UI +- PieFetchButton - Pie-style progress button +- BaseFetchButton - Base button implementation + +# Package com.lagradost.cloudstream3.ui.download.queue + +Download queue management: +- DownloadQueueFragment - Queue UI +- DownloadQueueViewModel - Queue state management +- DownloadQueueAdapter - Queue list adapter + +# Package com.lagradost.cloudstream3.ui.home + +Home screen: +- HomeFragment - Home UI +- HomeViewModel - Home state management +- HomeParentItemAdapter, HomeChildItemAdapter - List adapters + +# Package com.lagradost.cloudstream3.ui.library + +Library view: +- LibraryFragment - Library UI +- LibraryViewModel - Library state management +- PageAdapter, ViewpagerAdapter - View pager adapters + +# Package com.lagradost.cloudstream3.ui.player + +Video player: +- FullScreenPlayer - Full screen video player +- DownloadedPlayerActivity - Downloaded video playback +- PlayerGeneratorViewModel - Player state management +- ExtractorLinkGenerator - Stream link generation + +# Package com.lagradost.cloudstream3.ui.player.source_priority + +Stream quality management: +- SourcePriorityDialog - Source priority UI +- QualityProfileDialog - Quality profile settings +- PriorityAdapter, ProfilesAdapter - Adapters + +# Package com.lagradost.cloudstream3.ui.quicksearch + +Quick search functionality: +- QuickSearchFragment - Quick search UI + +# Package com.lagradost.cloudstream3.ui.result + +Result/details view: +- ResultFragment - Media details UI +- ResultViewModel2 - Details state management +- EpisodeAdapter - Episode list adapter +- ActorAdaptor - Actor/cast adapter + +# Package com.lagradost.cloudstream3.ui.search + +Search functionality: +- SearchFragment - Search UI +- SearchViewModel - Search state management +- SearchAdaptor, SearchHistoryAdaptor - Search adapters +- SearchSuggestionAdapter - Search suggestions + +# Package com.lagradost.cloudstream3.ui.settings + +Settings and preferences: + +- SettingsFragment - Main settings UI +- SettingsGeneral, SettingsPlayer, SettingsUI - Settings categories +- SettingsProviders, SettingsAccount, SettingsUpdates - Specific settings + +# Package com.lagradost.cloudstream3.ui.settings.extensions + +Extensions management: +- ExtensionsFragment - Extensions UI +- PluginsFragment, PluginDetailsFragment - Plugin management +- ExtensionsViewModel, PluginsViewModel - State management + +# Package com.lagradost.cloudstream3.ui.settings.testing + +Testing utilities: +- TestFragment - Testing UI +- TestViewModel - Test state management +- TestResultAdapter - Test results adapter + +# Package com.lagradost.cloudstream3.ui.settings.utils + +Settings utilities: +- DirectoryPicker - Directory selection dialog + +# Package com.lagradost.cloudstream3.ui.setup + +Initial setup wizard: +- SetupFragmentLanguage - Language setup +- SetupFragmentLayout - Layout preferences +- SetupFragmentProviderLanguage - Provider language settings +- SetupFragmentExtensions - Extension setup + +# Package com.lagradost.cloudstream3.ui.subtitles + +Subtitle management: +- SubtitlesFragment - Subtitle selection UI +- ChromecastSubtitlesFragment - Chromecast subtitle sync + +# Package com.lagradost.cloudstream3.utils + +Utility functions: + +- DataStore - Preferences storage +- UIHelper - UI utilities +- DownloadUtils - Download helpers +- ImageUtil - Image processing + +# Package com.lagradost.cloudstream3.utils.downloader + +Download utilities: +- DownloadManager - Download management +- DownloadQueueManager - Queue management +- DownloadFileManagement - File handling +- DownloadUtils - Core download utilities + +# Package com.lagradost.cloudstream3.widget + +Custom Android widgets: + +- LinearRecycleViewLayoutManager +- CenterZoomLayoutManager +- FlowLayout diff --git a/build.gradle.kts b/build.gradle.kts index cca263dd422..51df8bf771f 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -3,7 +3,7 @@ plugins { alias(libs.plugins.android.lint) apply false alias(libs.plugins.android.multiplatform.library) apply false alias(libs.plugins.buildkonfig) apply false // Universal build config - alias(libs.plugins.dokka) apply false + alias(libs.plugins.dokka) apply true alias(libs.plugins.kotlin.android) apply false alias(libs.plugins.kotlin.jvm) apply false alias(libs.plugins.kotlin.multiplatform) apply false @@ -15,3 +15,15 @@ allprojects { failOnNoDiscoveredTests = false } } + +dependencies { + dokka(project(":app:")) + dokka(project(":library:")) +} + +dokka { + moduleName = "CloudStream" + pluginsConfiguration.html { + footerMessage.set("© CloudStream") + } +} \ No newline at end of file diff --git a/docs/.gitignore b/docs/.gitignore deleted file mode 100644 index 42afabfd2ab..00000000000 --- a/docs/.gitignore +++ /dev/null @@ -1 +0,0 @@ -/build \ No newline at end of file diff --git a/docs/build.gradle.kts b/docs/build.gradle.kts deleted file mode 100644 index 8f5be2a2dbe..00000000000 --- a/docs/build.gradle.kts +++ /dev/null @@ -1,13 +0,0 @@ -plugins { - alias(libs.plugins.kotlin.jvm) - alias(libs.plugins.dokka) -} - -dependencies { - dokka(project(":app:")) - dokka(project(":library:")) -} - -dokka { - moduleName = "Cloudstream" -} diff --git a/library/build.gradle.kts b/library/build.gradle.kts index 14ef644f056..edf1c176a5e 100644 --- a/library/build.gradle.kts +++ b/library/build.gradle.kts @@ -6,7 +6,7 @@ import org.jetbrains.kotlin.gradle.dsl.JvmTarget import org.jetbrains.kotlin.gradle.tasks.KotlinJvmCompile plugins { - id("maven-publish") // Gradle core plugin + `maven-publish` alias(libs.plugins.kotlin.multiplatform) alias(libs.plugins.android.lint) alias(libs.plugins.android.multiplatform.library) @@ -98,6 +98,7 @@ dokka { moduleName = "Library" dokkaSourceSets { configureEach { + includes.setFrom("packages.md") analysisPlatform = KotlinPlatform.AndroidJVM documentedVisibilities( VisibilityModifier.Public, diff --git a/library/packages.md b/library/packages.md new file mode 100644 index 00000000000..05f428f26f6 --- /dev/null +++ b/library/packages.md @@ -0,0 +1,80 @@ +# Module Library + +CloudStream multiplatform library providing core streaming functionality, extractors, and APIs for +both common and Android platforms. + +# Package com.lagradost.cloudstream3 + +Root package with core library classes and interfaces. + +## Main Classes + +- **MainAPI** - Core API interface defining provider functionality +- **MainActivity** - Activity interface for UI implementation +- **ParCollections** - Parallel collection utilities + +# Package com.lagradost.cloudstream3.extractors + +Video extractors for various streaming hosts (100+ extractors). Includes implementations for: + +- Streamplay, StreamSB, StreamTape +- Vidplay, Vidstream, VidMoly +- Videa, VkExtractor +- DoodExtractor +- MixDrop, Mp4Upload +- YoutubeExtractor +- And many more hosting services + +# Package com.lagradost.cloudstream3.extractors.helper + +Extractor helper utilities for specific streaming services: + +- GogoHelper - Gogoanime streaming support +- NineAnimeHelper - 9Anime streaming support +- WcoHelper - WatchCartoonOnline support +- VstreamhubHelper - Vstreamhub support +- AsianEmbedHelper - Asian drama embed support +- AesHelper, CryptoJSHelper - Cryptography utilities + +# Package com.lagradost.cloudstream3.metaproviders + +Meta providers for content aggregation from multiple sources. + +# Package com.lagradost.cloudstream3.mvvm + +MVVM extensions and architecture components for reactive programming. + +# Package com.lagradost.cloudstream3.network + +Network utilities including WebViewResolver for handling JavaScript-based video sources. + +# Package com.lagradost.cloudstream3.plugins + +Plugin system interfaces: + +- BasePlugin - Base plugin class +- CloudstreamPlugin - Plugin annotation and entry point + +# Package com.lagradost.cloudstream3.syncproviders + +Sync provider interfaces for anime/manga tracking integration. + +# Package com.lagradost.cloudstream3.utils + +Utility functions: + +- SubtitleHelper - Subtitle processing +- M3u8Helper - HLS stream handling +- JsUnpacker - JavaScript unpacking utilities +- Coroutines - Coroutine extensions +- StringUtils - String utilities +- AppUtils - Application utilities + +# Package com.lagradost.api + +Android-specific API utilities. + +## Main Classes + +- **Log** - Logging utility +- **ContextHelper** - Android context helper diff --git a/settings.gradle.kts b/settings.gradle.kts index 73bf5a1958b..b43407be129 100644 --- a/settings.gradle.kts +++ b/settings.gradle.kts @@ -18,4 +18,4 @@ dependencyResolutionManagement { } rootProject.name = "CloudStream" -include(":app", ":library", ":docs") +include(":app", ":library")