diff --git a/kotatsu-parsers-ksp/src/main/kotlin/org/koitharu/kotatsu/parsers/ksp/ParserProcessor.kt b/kotatsu-parsers-ksp/src/main/kotlin/org/koitharu/kotatsu/parsers/ksp/ParserProcessor.kt index b7a2144e..f64f9c5d 100644 --- a/kotatsu-parsers-ksp/src/main/kotlin/org/koitharu/kotatsu/parsers/ksp/ParserProcessor.kt +++ b/kotatsu-parsers-ksp/src/main/kotlin/org/koitharu/kotatsu/parsers/ksp/ParserProcessor.kt @@ -80,11 +80,11 @@ class ParserProcessor( """ package org.koitharu.kotatsu.parsers.model - enum class MangaParserSource( - val title: String, - val locale: String, - val contentType: ContentType, - val isBroken: Boolean, + public enum class MangaParserSource( + public val title: String, + public val locale: String, + public val contentType: ContentType, + public val isBroken: Boolean, ): MangaSource { """.trimIndent(), diff --git a/src/main/kotlin/org/koitharu/kotatsu/parsers/Broken.kt b/src/main/kotlin/org/koitharu/kotatsu/parsers/Broken.kt index 8e4bea1a..24e68479 100644 --- a/src/main/kotlin/org/koitharu/kotatsu/parsers/Broken.kt +++ b/src/main/kotlin/org/koitharu/kotatsu/parsers/Broken.kt @@ -5,4 +5,4 @@ package org.koitharu.kotatsu.parsers */ @Target(AnnotationTarget.CLASS) @Retention(AnnotationRetention.SOURCE) -annotation class Broken +internal annotation class Broken diff --git a/src/main/kotlin/org/koitharu/kotatsu/parsers/ErrorMessages.kt b/src/main/kotlin/org/koitharu/kotatsu/parsers/ErrorMessages.kt index 23f819cd..d20d20ff 100644 --- a/src/main/kotlin/org/koitharu/kotatsu/parsers/ErrorMessages.kt +++ b/src/main/kotlin/org/koitharu/kotatsu/parsers/ErrorMessages.kt @@ -1,18 +1,18 @@ package org.koitharu.kotatsu.parsers -object ErrorMessages { +public object ErrorMessages { - const val FILTER_MULTIPLE_STATES_NOT_SUPPORTED = "Multiple states are not supported by this source" - const val FILTER_MULTIPLE_GENRES_NOT_SUPPORTED = "Multiple genres are not supported by this source" - const val FILTER_MULTIPLE_CONTENT_RATING_NOT_SUPPORTED = + public const val FILTER_MULTIPLE_STATES_NOT_SUPPORTED: String = "Multiple states are not supported by this source" + public const val FILTER_MULTIPLE_GENRES_NOT_SUPPORTED: String = "Multiple genres are not supported by this source" + public const val FILTER_MULTIPLE_CONTENT_RATING_NOT_SUPPORTED: String = "Multiple Content ratings are not supported by this source" - const val FILTER_MULTIPLE_CONTENT_TYPES_NOT_SUPPORTED = + public const val FILTER_MULTIPLE_CONTENT_TYPES_NOT_SUPPORTED: String = "Multiple Content types are not supported by this source" - const val FILTER_MULTIPLE_DEMOGRAPHICS_NOT_SUPPORTED = + public const val FILTER_MULTIPLE_DEMOGRAPHICS_NOT_SUPPORTED: String = "Multiple Demographics are not supported by this source" - const val FILTER_BOTH_LOCALE_GENRES_NOT_SUPPORTED = + public const val FILTER_BOTH_LOCALE_GENRES_NOT_SUPPORTED: String = "Filtering by both genres and locale is not supported by this source" - const val FILTER_BOTH_STATES_GENRES_NOT_SUPPORTED = + public const val FILTER_BOTH_STATES_GENRES_NOT_SUPPORTED: String = "Filtering by both genres and states is not supported by this source" - const val SEARCH_NOT_SUPPORTED = "Search is not supported by this source" + public const val SEARCH_NOT_SUPPORTED: String = "Search is not supported by this source" } diff --git a/src/main/kotlin/org/koitharu/kotatsu/parsers/InternalParsersApi.kt b/src/main/kotlin/org/koitharu/kotatsu/parsers/InternalParsersApi.kt index 0cb69136..b3efbd67 100644 --- a/src/main/kotlin/org/koitharu/kotatsu/parsers/InternalParsersApi.kt +++ b/src/main/kotlin/org/koitharu/kotatsu/parsers/InternalParsersApi.kt @@ -11,4 +11,4 @@ package org.koitharu.kotatsu.parsers @SinceKotlin("1.3") @RequiresOptIn @MustBeDocumented -annotation class InternalParsersApi +public annotation class InternalParsersApi diff --git a/src/main/kotlin/org/koitharu/kotatsu/parsers/MangaLoaderContext.kt b/src/main/kotlin/org/koitharu/kotatsu/parsers/MangaLoaderContext.kt index d7cde2cd..15510f29 100644 --- a/src/main/kotlin/org/koitharu/kotatsu/parsers/MangaLoaderContext.kt +++ b/src/main/kotlin/org/koitharu/kotatsu/parsers/MangaLoaderContext.kt @@ -9,30 +9,30 @@ import org.koitharu.kotatsu.parsers.model.MangaParserSource import org.koitharu.kotatsu.parsers.model.MangaSource import java.util.* -abstract class MangaLoaderContext { +public abstract class MangaLoaderContext { - abstract val httpClient: OkHttpClient + public abstract val httpClient: OkHttpClient - abstract val cookieJar: CookieJar + public abstract val cookieJar: CookieJar - fun newParserInstance(source: MangaParserSource): MangaParser = source.newParser(this) + public fun newParserInstance(source: MangaParserSource): MangaParser = source.newParser(this) - open fun encodeBase64(data: ByteArray): String = Base64.getEncoder().encodeToString(data) + public open fun encodeBase64(data: ByteArray): String = Base64.getEncoder().encodeToString(data) - open fun decodeBase64(data: String): ByteArray = Base64.getDecoder().decode(data) + public open fun decodeBase64(data: String): ByteArray = Base64.getDecoder().decode(data) - open fun getPreferredLocales(): List = listOf(Locale.getDefault()) + public open fun getPreferredLocales(): List = listOf(Locale.getDefault()) /** * Execute JavaScript code and return result * @param script JavaScript source code * @return execution result as string, may be null */ - abstract suspend fun evaluateJs(script: String): String? + public abstract suspend fun evaluateJs(script: String): String? - abstract fun getConfig(source: MangaSource): MangaSourceConfig + public abstract fun getConfig(source: MangaSource): MangaSourceConfig - abstract fun getDefaultUserAgent(): String + public abstract fun getDefaultUserAgent(): String /** * Helper function to be used in an interceptor @@ -40,7 +40,7 @@ abstract class MangaLoaderContext { * @param response Image response * @param redraw lambda function to implement descrambling logic */ - abstract fun redrawImageResponse( + public abstract fun redrawImageResponse( response: Response, redraw: (image: Bitmap) -> Bitmap, ): Response @@ -48,7 +48,7 @@ abstract class MangaLoaderContext { /** * create a new empty Bitmap with given dimensions */ - abstract fun createBitmap( + public abstract fun createBitmap( width: Int, height: Int, ): Bitmap diff --git a/src/main/kotlin/org/koitharu/kotatsu/parsers/MangaParserAuthProvider.kt b/src/main/kotlin/org/koitharu/kotatsu/parsers/MangaParserAuthProvider.kt index a2541072..a9c21787 100644 --- a/src/main/kotlin/org/koitharu/kotatsu/parsers/MangaParserAuthProvider.kt +++ b/src/main/kotlin/org/koitharu/kotatsu/parsers/MangaParserAuthProvider.kt @@ -6,19 +6,19 @@ import org.koitharu.kotatsu.parsers.exception.ParseException /** * Implement this in your parser for authorization support */ -interface MangaParserAuthProvider { +public interface MangaParserAuthProvider { /** * Return link to the login page, which will be opened in browser. * Must be an absolute url */ - val authUrl: String + public val authUrl: String /** * Quick check if user is logged in. * In most case you should check for cookies in [MangaLoaderContext.cookieJar]. */ - val isAuthorized: Boolean + public val isAuthorized: Boolean /** * Fetch and return current user`s name or login. @@ -26,5 +26,5 @@ interface MangaParserAuthProvider { * @throws [AuthRequiredException] if user is not logged in or authorization is expired * @throws [ParseException] on parsing error */ - suspend fun getUsername(): String -} \ No newline at end of file + public suspend fun getUsername(): String +} diff --git a/src/main/kotlin/org/koitharu/kotatsu/parsers/MangaSourceParser.kt b/src/main/kotlin/org/koitharu/kotatsu/parsers/MangaSourceParser.kt index ebb45e67..b708d547 100644 --- a/src/main/kotlin/org/koitharu/kotatsu/parsers/MangaSourceParser.kt +++ b/src/main/kotlin/org/koitharu/kotatsu/parsers/MangaSourceParser.kt @@ -7,7 +7,7 @@ import org.koitharu.kotatsu.parsers.model.ContentType */ @Target(AnnotationTarget.CLASS) @Retention(AnnotationRetention.SOURCE) -annotation class MangaSourceParser( +internal annotation class MangaSourceParser( /** * Name of manga source. Used as an Enum value, must be UPPER_CASE and unique. */ diff --git a/src/main/kotlin/org/koitharu/kotatsu/parsers/SinglePageMangaParser.kt b/src/main/kotlin/org/koitharu/kotatsu/parsers/SinglePageMangaParser.kt index 33bb1a05..78f78f14 100644 --- a/src/main/kotlin/org/koitharu/kotatsu/parsers/SinglePageMangaParser.kt +++ b/src/main/kotlin/org/koitharu/kotatsu/parsers/SinglePageMangaParser.kt @@ -6,7 +6,7 @@ import org.koitharu.kotatsu.parsers.model.MangaParserSource import org.koitharu.kotatsu.parsers.model.SortOrder @InternalParsersApi -abstract class SinglePageMangaParser( +public abstract class SinglePageMangaParser( context: MangaLoaderContext, source: MangaParserSource, ) : MangaParser(context, source) { @@ -18,5 +18,5 @@ abstract class SinglePageMangaParser( return getList(order, filter) } - abstract suspend fun getList(order: SortOrder, filter: MangaListFilterV2): List + public abstract suspend fun getList(order: SortOrder, filter: MangaListFilterV2): List } diff --git a/src/main/kotlin/org/koitharu/kotatsu/parsers/bitmap/Bitmap.kt b/src/main/kotlin/org/koitharu/kotatsu/parsers/bitmap/Bitmap.kt index e9be3b8d..f39d29de 100644 --- a/src/main/kotlin/org/koitharu/kotatsu/parsers/bitmap/Bitmap.kt +++ b/src/main/kotlin/org/koitharu/kotatsu/parsers/bitmap/Bitmap.kt @@ -1,9 +1,9 @@ package org.koitharu.kotatsu.parsers.bitmap -interface Bitmap { +public interface Bitmap { - val width: Int - val height: Int + public val width: Int + public val height: Int - fun drawBitmap(sourceBitmap: Bitmap, src: Rect, dst: Rect) + public fun drawBitmap(sourceBitmap: Bitmap, src: Rect, dst: Rect) } diff --git a/src/main/kotlin/org/koitharu/kotatsu/parsers/bitmap/Rect.kt b/src/main/kotlin/org/koitharu/kotatsu/parsers/bitmap/Rect.kt index 95d972f1..60218296 100644 --- a/src/main/kotlin/org/koitharu/kotatsu/parsers/bitmap/Rect.kt +++ b/src/main/kotlin/org/koitharu/kotatsu/parsers/bitmap/Rect.kt @@ -1,6 +1,6 @@ package org.koitharu.kotatsu.parsers.bitmap -data class Rect( +public data class Rect( val left: Int = 0, val top: Int = 0, val right: Int = 0, diff --git a/src/main/kotlin/org/koitharu/kotatsu/parsers/config/ConfigKey.kt b/src/main/kotlin/org/koitharu/kotatsu/parsers/config/ConfigKey.kt index 45c86648..cd233f1d 100644 --- a/src/main/kotlin/org/koitharu/kotatsu/parsers/config/ConfigKey.kt +++ b/src/main/kotlin/org/koitharu/kotatsu/parsers/config/ConfigKey.kt @@ -1,13 +1,13 @@ package org.koitharu.kotatsu.parsers.config -sealed class ConfigKey( - @JvmField val key: String, +public sealed class ConfigKey( + @JvmField public val key: String, ) { - abstract val defaultValue: T + public abstract val defaultValue: T - class Domain( - @JvmField @JvmSuppressWildcards vararg val presetValues: String, + public class Domain( + @JvmField @JvmSuppressWildcards public vararg val presetValues: String, ) : ConfigKey("domain") { init { @@ -18,20 +18,20 @@ sealed class ConfigKey( get() = presetValues.first() } - class ShowSuspiciousContent( + public class ShowSuspiciousContent( override val defaultValue: Boolean, ) : ConfigKey("show_suspicious") - class UserAgent( + public class UserAgent( override val defaultValue: String, ) : ConfigKey("user_agent") - class SplitByTranslations( + public class SplitByTranslations( override val defaultValue: Boolean, ) : ConfigKey("split_translations") - class PreferredImageServer( - val presetValues: Map, + public class PreferredImageServer( + public val presetValues: Map, override val defaultValue: String?, ) : ConfigKey("img_server") } diff --git a/src/main/kotlin/org/koitharu/kotatsu/parsers/config/MangaSourceConfig.kt b/src/main/kotlin/org/koitharu/kotatsu/parsers/config/MangaSourceConfig.kt index fe8e4590..d4e11c49 100644 --- a/src/main/kotlin/org/koitharu/kotatsu/parsers/config/MangaSourceConfig.kt +++ b/src/main/kotlin/org/koitharu/kotatsu/parsers/config/MangaSourceConfig.kt @@ -1,6 +1,6 @@ package org.koitharu.kotatsu.parsers.config -interface MangaSourceConfig { +public interface MangaSourceConfig { - operator fun get(key: ConfigKey): T -} \ No newline at end of file + public operator fun get(key: ConfigKey): T +} diff --git a/src/main/kotlin/org/koitharu/kotatsu/parsers/exception/AuthRequiredException.kt b/src/main/kotlin/org/koitharu/kotatsu/parsers/exception/AuthRequiredException.kt index 494c2583..4a77de5b 100644 --- a/src/main/kotlin/org/koitharu/kotatsu/parsers/exception/AuthRequiredException.kt +++ b/src/main/kotlin/org/koitharu/kotatsu/parsers/exception/AuthRequiredException.kt @@ -6,7 +6,7 @@ import org.koitharu.kotatsu.parsers.model.MangaSource /** * Authorization is required for access to the requested content */ -class AuthRequiredException @InternalParsersApi @JvmOverloads constructor( - val source: MangaSource, +public class AuthRequiredException @InternalParsersApi @JvmOverloads constructor( + public val source: MangaSource, cause: Throwable? = null, ) : RuntimeException("Authorization required", cause) diff --git a/src/main/kotlin/org/koitharu/kotatsu/parsers/model/Manga.kt b/src/main/kotlin/org/koitharu/kotatsu/parsers/model/Manga.kt index 39c14b79..76919ca2 100644 --- a/src/main/kotlin/org/koitharu/kotatsu/parsers/model/Manga.kt +++ b/src/main/kotlin/org/koitharu/kotatsu/parsers/model/Manga.kt @@ -2,86 +2,86 @@ package org.koitharu.kotatsu.parsers.model import org.koitharu.kotatsu.parsers.InternalParsersApi -class Manga( +public class Manga( /** * Unique identifier for manga */ - @JvmField val id: Long, + @JvmField public val id: Long, /** * Manga title, human-readable */ - @JvmField val title: String, + @JvmField public val title: String, /** * Alternative title (for example on other language), may be null */ - @JvmField val altTitle: String?, + @JvmField public val altTitle: String?, /** * Relative url to manga (**without** a domain) or any other uri. * Used principally in parsers */ - @JvmField val url: String, + @JvmField public val url: String, /** * Absolute url to manga, must be ready to open in browser */ - @JvmField val publicUrl: String, + @JvmField public val publicUrl: String, /** * Normalized manga rating, must be in range of 0..1 or [RATING_UNKNOWN] if rating s unknown * @see hasRating */ - @JvmField val rating: Float, + @JvmField public val rating: Float, /** * Indicates that manga may contain sensitive information (18+, NSFW) */ - @JvmField val isNsfw: Boolean, + @JvmField public val isNsfw: Boolean, /** * Absolute link to the cover * @see largeCoverUrl */ - @JvmField val coverUrl: String, + @JvmField public val coverUrl: String, /** * Tags (genres) of the manga */ - @JvmField val tags: Set, + @JvmField public val tags: Set, /** * Manga status (ongoing, finished) or null if unknown */ - @JvmField val state: MangaState?, + @JvmField public val state: MangaState?, /** * Author of the manga, may be null */ - @JvmField val author: String?, + @JvmField public val author: String?, /** * Large cover url (absolute), null if is no large cover * @see coverUrl */ - @JvmField val largeCoverUrl: String? = null, + @JvmField public val largeCoverUrl: String? = null, /** * Manga description, may be html or null */ - @JvmField val description: String? = null, + @JvmField public val description: String? = null, /** * List of chapters */ - @JvmField val chapters: List? = null, + @JvmField public val chapters: List? = null, /** * Manga source */ - @JvmField val source: MangaSource, + @JvmField public val source: MangaSource, ) { /** * Return if manga has a specified rating * @see rating */ - val hasRating: Boolean + public val hasRating: Boolean get() = rating > 0f && rating <= 1f - fun getChapters(branch: String?): List? { + public fun getChapters(branch: String?): List? { return chapters?.filter { x -> x.branch == branch } } @InternalParsersApi - fun copy( + public fun copy( title: String = this.title, altTitle: String? = this.altTitle, publicUrl: String = this.publicUrl, @@ -95,7 +95,7 @@ class Manga( description: String? = this.description, chapters: List? = this.chapters, source: MangaSource = this.source, - ) = Manga( + ): Manga = Manga( id = id, title = title, altTitle = altTitle, diff --git a/src/main/kotlin/org/koitharu/kotatsu/parsers/model/MangaChapter.kt b/src/main/kotlin/org/koitharu/kotatsu/parsers/model/MangaChapter.kt index 2493a25d..7efb8a79 100644 --- a/src/main/kotlin/org/koitharu/kotatsu/parsers/model/MangaChapter.kt +++ b/src/main/kotlin/org/koitharu/kotatsu/parsers/model/MangaChapter.kt @@ -1,45 +1,45 @@ package org.koitharu.kotatsu.parsers.model -class MangaChapter( +public class MangaChapter( /** * An unique id of chapter */ - @JvmField val id: Long, + @JvmField public val id: Long, /** * User-readable name of chapter */ - @JvmField val name: String, + @JvmField public val name: String, /** * Chapter number starting from 1, 0 if unknown */ - @JvmField val number: Float, + @JvmField public val number: Float, /** * Volume number starting from 1, 0 if unknown */ - @JvmField val volume: Int, + @JvmField public val volume: Int, /** * Relative url to chapter (**without** a domain) or any other uri. * Used principally in parsers */ - @JvmField val url: String, + @JvmField public val url: String, /** * User-readable name of scanlator (releaser) or null if unknown */ - @JvmField val scanlator: String?, + @JvmField public val scanlator: String?, /** * Chapter upload date in milliseconds */ - @JvmField val uploadDate: Long, + @JvmField public val uploadDate: Long, /** * User-readable name of branch. * A branch is a group of chapters that overlap (e.g. different languages) */ - @JvmField val branch: String?, - @JvmField val source: MangaSource, + @JvmField public val branch: String?, + @JvmField public val source: MangaSource, ) { @Deprecated(message = "Consider using constructor with volume value") - constructor( + internal constructor( id: Long, name: String, number: Int, diff --git a/src/main/kotlin/org/koitharu/kotatsu/parsers/model/MangaListFilterCapabilities.kt b/src/main/kotlin/org/koitharu/kotatsu/parsers/model/MangaListFilterCapabilities.kt index 23848e2b..40a98a83 100644 --- a/src/main/kotlin/org/koitharu/kotatsu/parsers/model/MangaListFilterCapabilities.kt +++ b/src/main/kotlin/org/koitharu/kotatsu/parsers/model/MangaListFilterCapabilities.kt @@ -2,7 +2,7 @@ package org.koitharu.kotatsu.parsers.model import org.koitharu.kotatsu.parsers.InternalParsersApi -data class MangaListFilterCapabilities @InternalParsersApi constructor( +public data class MangaListFilterCapabilities @InternalParsersApi constructor( /** * Whether parser supports filtering by more than one tag diff --git a/src/main/kotlin/org/koitharu/kotatsu/parsers/model/MangaListFilterOptions.kt b/src/main/kotlin/org/koitharu/kotatsu/parsers/model/MangaListFilterOptions.kt index a60757ac..bc546fba 100644 --- a/src/main/kotlin/org/koitharu/kotatsu/parsers/model/MangaListFilterOptions.kt +++ b/src/main/kotlin/org/koitharu/kotatsu/parsers/model/MangaListFilterOptions.kt @@ -3,43 +3,43 @@ package org.koitharu.kotatsu.parsers.model import org.koitharu.kotatsu.parsers.InternalParsersApi import java.util.* -data class MangaListFilterOptions @InternalParsersApi constructor( +public data class MangaListFilterOptions @InternalParsersApi constructor( /** * Available tags (genres) */ - val availableTags: Set, + public val availableTags: Set, /** * Supported [MangaState] variants for filtering. May be empty. * * For better performance use [EnumSet] for more than one item. */ - val availableStates: Set = emptySet(), + public val availableStates: Set = emptySet(), /** * Supported [ContentRating] variants for filtering. May be empty. * * For better performance use [EnumSet] for more than one item. */ - val availableContentRating: Set = emptySet(), + public val availableContentRating: Set = emptySet(), /** * Supported [ContentType] variants for filtering. May be empty. * * For better performance use [EnumSet] for more than one item. */ - val availableContentTypes: Set = emptySet(), + public val availableContentTypes: Set = emptySet(), /** * Supported [Demographic] variants for filtering. May be empty. * * For better performance use [EnumSet] for more than one item. */ - val availableDemographics: Set = emptySet(), + public val availableDemographics: Set = emptySet(), /** * Supported content locales for multilingual sources */ - val availableLocales: Set = emptySet(), + public val availableLocales: Set = emptySet(), ) diff --git a/src/main/kotlin/org/koitharu/kotatsu/parsers/model/MangaListFilterV2.kt b/src/main/kotlin/org/koitharu/kotatsu/parsers/model/MangaListFilterV2.kt index 2b9a24c5..044b4f84 100644 --- a/src/main/kotlin/org/koitharu/kotatsu/parsers/model/MangaListFilterV2.kt +++ b/src/main/kotlin/org/koitharu/kotatsu/parsers/model/MangaListFilterV2.kt @@ -2,7 +2,7 @@ package org.koitharu.kotatsu.parsers.model import java.util.* -data class MangaListFilterV2( +public data class MangaListFilterV2( @JvmField val query: String? = null, @JvmField val tags: Set = emptySet(), @JvmField val tagsExclude: Set = emptySet(), @@ -17,7 +17,7 @@ data class MangaListFilterV2( @JvmField val yearTo: Int = 0, ) { - fun isEmpty(): Boolean = tags.isEmpty() && + public fun isEmpty(): Boolean = tags.isEmpty() && tagsExclude.isEmpty() && locale == null && originalLocale == null && @@ -30,9 +30,9 @@ data class MangaListFilterV2( types.isEmpty() && demographics.isEmpty() - companion object { + public companion object { @JvmStatic - val EMPTY = MangaListFilterV2() + public val EMPTY: MangaListFilterV2 = MangaListFilterV2() } } diff --git a/src/main/kotlin/org/koitharu/kotatsu/parsers/model/MangaSource.kt b/src/main/kotlin/org/koitharu/kotatsu/parsers/model/MangaSource.kt index 20a481f4..cbed3dc1 100644 --- a/src/main/kotlin/org/koitharu/kotatsu/parsers/model/MangaSource.kt +++ b/src/main/kotlin/org/koitharu/kotatsu/parsers/model/MangaSource.kt @@ -1,6 +1,6 @@ package org.koitharu.kotatsu.parsers.model -interface MangaSource { +public interface MangaSource { - val name: String + public val name: String } diff --git a/src/main/kotlin/org/koitharu/kotatsu/parsers/model/MangaState.kt b/src/main/kotlin/org/koitharu/kotatsu/parsers/model/MangaState.kt index 3801ff04..1355c1d9 100644 --- a/src/main/kotlin/org/koitharu/kotatsu/parsers/model/MangaState.kt +++ b/src/main/kotlin/org/koitharu/kotatsu/parsers/model/MangaState.kt @@ -1,5 +1,5 @@ package org.koitharu.kotatsu.parsers.model -enum class MangaState { +public enum class MangaState { ONGOING, FINISHED, ABANDONED, PAUSED, UPCOMING } diff --git a/src/main/kotlin/org/koitharu/kotatsu/parsers/model/MangaTag.kt b/src/main/kotlin/org/koitharu/kotatsu/parsers/model/MangaTag.kt index 184a850e..a694b4c8 100644 --- a/src/main/kotlin/org/koitharu/kotatsu/parsers/model/MangaTag.kt +++ b/src/main/kotlin/org/koitharu/kotatsu/parsers/model/MangaTag.kt @@ -2,17 +2,17 @@ package org.koitharu.kotatsu.parsers.model import org.koitharu.kotatsu.parsers.MangaParser -class MangaTag( +public class MangaTag( /** * User-readable tag title, should be in Title case */ - @JvmField val title: String, + @JvmField public val title: String, /** * Identifier of a tag, must be unique among the source. * @see MangaParser.getList */ - @JvmField val key: String, - @JvmField val source: MangaSource, + @JvmField public val key: String, + @JvmField public val source: MangaSource, ) { override fun equals(other: Any?): Boolean { diff --git a/src/main/kotlin/org/koitharu/kotatsu/parsers/model/WordSet.kt b/src/main/kotlin/org/koitharu/kotatsu/parsers/model/WordSet.kt index c2e91358..9ca977d8 100644 --- a/src/main/kotlin/org/koitharu/kotatsu/parsers/model/WordSet.kt +++ b/src/main/kotlin/org/koitharu/kotatsu/parsers/model/WordSet.kt @@ -3,9 +3,9 @@ package org.koitharu.kotatsu.parsers.model import org.koitharu.kotatsu.parsers.InternalParsersApi @InternalParsersApi -class WordSet(private vararg val words: String) { +public class WordSet(private vararg val words: String) { - fun anyWordIn(dateString: String): Boolean = words.any { + public fun anyWordIn(dateString: String): Boolean = words.any { dateString.contains(it, ignoreCase = true) } -} \ No newline at end of file +} diff --git a/src/main/kotlin/org/koitharu/kotatsu/parsers/site/all/HitomiLaParser.kt b/src/main/kotlin/org/koitharu/kotatsu/parsers/site/all/HitomiLaParser.kt index 6072d6a5..0cee01ae 100644 --- a/src/main/kotlin/org/koitharu/kotatsu/parsers/site/all/HitomiLaParser.kt +++ b/src/main/kotlin/org/koitharu/kotatsu/parsers/site/all/HitomiLaParser.kt @@ -27,7 +27,7 @@ import kotlin.math.min @OptIn(ExperimentalUnsignedTypes::class) @MangaSourceParser("HITOMILA", "Hitomi.La", type = ContentType.HENTAI) -class HitomiLaParser(context: MangaLoaderContext) : MangaParser(context, MangaParserSource.HITOMILA) { +internal class HitomiLaParser(context: MangaLoaderContext) : MangaParser(context, MangaParserSource.HITOMILA) { override val configKeyDomain = ConfigKey.Domain("hitomi.la") override fun onCreateConfig(keys: MutableCollection>) { diff --git a/src/main/kotlin/org/koitharu/kotatsu/parsers/site/all/MangaReaderToParser.kt b/src/main/kotlin/org/koitharu/kotatsu/parsers/site/all/MangaReaderToParser.kt index fb54294e..465bbba2 100644 --- a/src/main/kotlin/org/koitharu/kotatsu/parsers/site/all/MangaReaderToParser.kt +++ b/src/main/kotlin/org/koitharu/kotatsu/parsers/site/all/MangaReaderToParser.kt @@ -21,7 +21,8 @@ import javax.crypto.spec.SecretKeySpec import kotlin.math.min @MangaSourceParser("MANGAREADERTO", "MangaReader.To") -class MangaReaderToParser(context: MangaLoaderContext) : PagedMangaParser(context, MangaParserSource.MANGAREADERTO, 16), +internal class MangaReaderToParser(context: MangaLoaderContext) : + PagedMangaParser(context, MangaParserSource.MANGAREADERTO, 16), Interceptor, MangaParserAuthProvider { override val configKeyDomain = ConfigKey.Domain("mangareader.to") diff --git a/src/main/kotlin/org/koitharu/kotatsu/parsers/site/es/TuMangaOnlineParser.kt b/src/main/kotlin/org/koitharu/kotatsu/parsers/site/es/TuMangaOnlineParser.kt index 0cefbc02..3499ff76 100644 --- a/src/main/kotlin/org/koitharu/kotatsu/parsers/site/es/TuMangaOnlineParser.kt +++ b/src/main/kotlin/org/koitharu/kotatsu/parsers/site/es/TuMangaOnlineParser.kt @@ -14,7 +14,7 @@ import java.text.SimpleDateFormat import java.util.* @MangaSourceParser("TUMANGAONLINE", "TuMangaOnline", "es") -class TuMangaOnlineParser(context: MangaLoaderContext) : PagedMangaParser( +internal class TuMangaOnlineParser(context: MangaLoaderContext) : PagedMangaParser( context, source = MangaParserSource.TUMANGAONLINE, pageSize = 24, diff --git a/src/main/kotlin/org/koitharu/kotatsu/parsers/site/id/DoujinDesuParser.kt b/src/main/kotlin/org/koitharu/kotatsu/parsers/site/id/DoujinDesuParser.kt index 5e767894..30cea1b8 100644 --- a/src/main/kotlin/org/koitharu/kotatsu/parsers/site/id/DoujinDesuParser.kt +++ b/src/main/kotlin/org/koitharu/kotatsu/parsers/site/id/DoujinDesuParser.kt @@ -11,7 +11,7 @@ import java.text.SimpleDateFormat import java.util.* @MangaSourceParser("DOUJINDESU", "DoujinDesu.tv", "id") -class DoujinDesuParser(context: MangaLoaderContext) : +internal class DoujinDesuParser(context: MangaLoaderContext) : PagedMangaParser(context, MangaParserSource.DOUJINDESU, pageSize = 18) { override val configKeyDomain: ConfigKey.Domain diff --git a/src/main/kotlin/org/koitharu/kotatsu/parsers/site/mangaworld/MangaWorldParser.kt b/src/main/kotlin/org/koitharu/kotatsu/parsers/site/mangaworld/MangaWorldParser.kt index 430006b5..c788dc74 100644 --- a/src/main/kotlin/org/koitharu/kotatsu/parsers/site/mangaworld/MangaWorldParser.kt +++ b/src/main/kotlin/org/koitharu/kotatsu/parsers/site/mangaworld/MangaWorldParser.kt @@ -9,7 +9,7 @@ import org.koitharu.kotatsu.parsers.util.* import java.text.SimpleDateFormat import java.util.* -abstract class MangaWorldParser( +internal abstract class MangaWorldParser( context: MangaLoaderContext, source: MangaParserSource, domain: String, diff --git a/src/main/kotlin/org/koitharu/kotatsu/parsers/site/pt/LerManga.kt b/src/main/kotlin/org/koitharu/kotatsu/parsers/site/pt/LerManga.kt index 6a3a91cd..7a416b6b 100644 --- a/src/main/kotlin/org/koitharu/kotatsu/parsers/site/pt/LerManga.kt +++ b/src/main/kotlin/org/koitharu/kotatsu/parsers/site/pt/LerManga.kt @@ -9,7 +9,7 @@ import java.util.* @Broken @MangaSourceParser("LERMANGA", "LerManga", "pt") -class LerManga(context: MangaLoaderContext) : PagedMangaParser(context, MangaParserSource.LERMANGA, 24) { +internal class LerManga(context: MangaLoaderContext) : PagedMangaParser(context, MangaParserSource.LERMANGA, 24) { override val availableSortOrders: Set = EnumSet.of( diff --git a/src/main/kotlin/org/koitharu/kotatsu/parsers/site/pt/OnePieceEx.kt b/src/main/kotlin/org/koitharu/kotatsu/parsers/site/pt/OnePieceEx.kt index 41aa24f0..19457c6f 100644 --- a/src/main/kotlin/org/koitharu/kotatsu/parsers/site/pt/OnePieceEx.kt +++ b/src/main/kotlin/org/koitharu/kotatsu/parsers/site/pt/OnePieceEx.kt @@ -11,7 +11,7 @@ import java.util.* @Broken @MangaSourceParser("ONEPIECEEX", "OnePieceEx", "pt") -class OnePieceEx(context: MangaLoaderContext) : SinglePageMangaParser(context, MangaParserSource.ONEPIECEEX) { +internal class OnePieceEx(context: MangaLoaderContext) : SinglePageMangaParser(context, MangaParserSource.ONEPIECEEX) { override val availableSortOrders: Set = EnumSet.of(SortOrder.UPDATED) diff --git a/src/main/kotlin/org/koitharu/kotatsu/parsers/site/pt/YugenMangas.kt b/src/main/kotlin/org/koitharu/kotatsu/parsers/site/pt/YugenMangas.kt index 84999dcd..dcfe8f4b 100644 --- a/src/main/kotlin/org/koitharu/kotatsu/parsers/site/pt/YugenMangas.kt +++ b/src/main/kotlin/org/koitharu/kotatsu/parsers/site/pt/YugenMangas.kt @@ -13,7 +13,8 @@ import java.text.SimpleDateFormat import java.util.* @MangaSourceParser("YUGENMANGAS", "YugenApp", "pt") -class YugenMangas(context: MangaLoaderContext) : SinglePageMangaParser(context, MangaParserSource.YUGENMANGAS) { +internal class YugenMangas(context: MangaLoaderContext) : + SinglePageMangaParser(context, MangaParserSource.YUGENMANGAS) { override val availableSortOrders: Set = EnumSet.of(SortOrder.UPDATED, SortOrder.ALPHABETICAL) override val configKeyDomain = ConfigKey.Domain("yugenmangasbr.voblog.xyz") diff --git a/src/main/kotlin/org/koitharu/kotatsu/parsers/site/ru/MangaWtfParser.kt b/src/main/kotlin/org/koitharu/kotatsu/parsers/site/ru/MangaWtfParser.kt index 41ceedeb..91db673a 100644 --- a/src/main/kotlin/org/koitharu/kotatsu/parsers/site/ru/MangaWtfParser.kt +++ b/src/main/kotlin/org/koitharu/kotatsu/parsers/site/ru/MangaWtfParser.kt @@ -16,7 +16,7 @@ import java.text.SimpleDateFormat import java.util.* @MangaSourceParser("MANGA_WTF", "MangaWtf", "ru") -class MangaWtfParser( +internal class MangaWtfParser( context: MangaLoaderContext, ) : PagedMangaParser(context, MangaParserSource.MANGA_WTF, pageSize = 20) { diff --git a/src/main/kotlin/org/koitharu/kotatsu/parsers/site/tr/YaoiFlix.kt b/src/main/kotlin/org/koitharu/kotatsu/parsers/site/tr/YaoiFlix.kt index d879f7d0..68ac83a6 100644 --- a/src/main/kotlin/org/koitharu/kotatsu/parsers/site/tr/YaoiFlix.kt +++ b/src/main/kotlin/org/koitharu/kotatsu/parsers/site/tr/YaoiFlix.kt @@ -10,7 +10,7 @@ import java.text.SimpleDateFormat import java.util.* @MangaSourceParser("YAOIFLIX", "YaoiFlix", "tr", ContentType.HENTAI) -class YaoiFlix(context: MangaLoaderContext) : PagedMangaParser(context, MangaParserSource.YAOIFLIX, 8) { +internal class YaoiFlix(context: MangaLoaderContext) : PagedMangaParser(context, MangaParserSource.YAOIFLIX, 8) { override val availableSortOrders: Set = EnumSet.of(SortOrder.UPDATED) diff --git a/src/main/kotlin/org/koitharu/kotatsu/parsers/site/vi/YurinekoParser.kt b/src/main/kotlin/org/koitharu/kotatsu/parsers/site/vi/YurinekoParser.kt index 130e91d7..f9afd11a 100644 --- a/src/main/kotlin/org/koitharu/kotatsu/parsers/site/vi/YurinekoParser.kt +++ b/src/main/kotlin/org/koitharu/kotatsu/parsers/site/vi/YurinekoParser.kt @@ -12,7 +12,7 @@ import java.text.SimpleDateFormat import java.util.* @MangaSourceParser("YURINEKO", "YuriNeko", "vi", ContentType.HENTAI) -class YurinekoParser(context: MangaLoaderContext) : PagedMangaParser(context, MangaParserSource.YURINEKO, 20) { +internal class YurinekoParser(context: MangaLoaderContext) : PagedMangaParser(context, MangaParserSource.YURINEKO, 20) { override val configKeyDomain: ConfigKey.Domain get() = ConfigKey.Domain("yurineko.net") diff --git a/src/main/kotlin/org/koitharu/kotatsu/parsers/util/Assert.kt b/src/main/kotlin/org/koitharu/kotatsu/parsers/util/Assert.kt index fbf6b9af..35212e30 100644 --- a/src/main/kotlin/org/koitharu/kotatsu/parsers/util/Assert.kt +++ b/src/main/kotlin/org/koitharu/kotatsu/parsers/util/Assert.kt @@ -1,8 +1,8 @@ package org.koitharu.kotatsu.parsers.util -fun T?.assertNotNull(name: String): T? { +internal fun T?.assertNotNull(name: String): T? { assert(this != null) { "Value $name is null" } return this -} \ No newline at end of file +} diff --git a/src/main/kotlin/org/koitharu/kotatsu/parsers/util/Chapters.kt b/src/main/kotlin/org/koitharu/kotatsu/parsers/util/Chapters.kt index 4211ad09..eb56ac0a 100644 --- a/src/main/kotlin/org/koitharu/kotatsu/parsers/util/Chapters.kt +++ b/src/main/kotlin/org/koitharu/kotatsu/parsers/util/Chapters.kt @@ -4,7 +4,7 @@ import org.koitharu.kotatsu.parsers.InternalParsersApi import org.koitharu.kotatsu.parsers.model.MangaChapter @InternalParsersApi -inline fun List.mapChapters( +public inline fun List.mapChapters( reversed: Boolean = false, transform: (index: Int, T) -> MangaChapter?, ): List { @@ -20,7 +20,7 @@ inline fun List.mapChapters( } @InternalParsersApi -inline fun List.flatMapChapters( +public inline fun List.flatMapChapters( reversed: Boolean = false, transform: (T) -> Iterable, ): List { diff --git a/src/main/kotlin/org/koitharu/kotatsu/parsers/util/Coroutines.kt b/src/main/kotlin/org/koitharu/kotatsu/parsers/util/Coroutines.kt index fffb94f2..0a902c1a 100644 --- a/src/main/kotlin/org/koitharu/kotatsu/parsers/util/Coroutines.kt +++ b/src/main/kotlin/org/koitharu/kotatsu/parsers/util/Coroutines.kt @@ -7,11 +7,11 @@ import kotlinx.coroutines.flow.first import kotlinx.coroutines.launch import kotlin.coroutines.cancellation.CancellationException -fun Iterable.cancelAll(cause: CancellationException? = null) { +public fun Iterable.cancelAll(cause: CancellationException? = null) { forEach { it.cancel(cause) } } -suspend fun Iterable>.awaitFirst(): T { +public suspend fun Iterable>.awaitFirst(): T { return channelFlow { for (deferred in this@awaitFirst) { launch { @@ -21,7 +21,7 @@ suspend fun Iterable>.awaitFirst(): T { }.first().also { this@awaitFirst.cancelAll() } } -suspend fun Collection>.awaitFirst(condition: (T) -> Boolean): T { +public suspend fun Collection>.awaitFirst(condition: (T) -> Boolean): T { return channelFlow { for (deferred in this@awaitFirst) { launch { diff --git a/src/main/kotlin/org/koitharu/kotatsu/parsers/util/Enum.kt b/src/main/kotlin/org/koitharu/kotatsu/parsers/util/Enum.kt index 2ff419fa..56e2c7d4 100644 --- a/src/main/kotlin/org/koitharu/kotatsu/parsers/util/Enum.kt +++ b/src/main/kotlin/org/koitharu/kotatsu/parsers/util/Enum.kt @@ -4,10 +4,10 @@ package org.koitharu.kotatsu.parsers.util import kotlin.enums.EnumEntries -fun > EnumEntries.names() = Array(size) { i -> +public fun > EnumEntries.names() = Array(size) { i -> get(i).name } -fun > EnumEntries.find(name: String): E? { +public fun > EnumEntries.find(name: String): E? { return find { x -> x.name == name } } diff --git a/src/main/kotlin/org/koitharu/kotatsu/parsers/util/FaviconParser.kt b/src/main/kotlin/org/koitharu/kotatsu/parsers/util/FaviconParser.kt index 80d12b7c..96b61b1d 100644 --- a/src/main/kotlin/org/koitharu/kotatsu/parsers/util/FaviconParser.kt +++ b/src/main/kotlin/org/koitharu/kotatsu/parsers/util/FaviconParser.kt @@ -6,12 +6,12 @@ import org.koitharu.kotatsu.parsers.model.Favicons import org.koitharu.kotatsu.parsers.network.WebClient import org.koitharu.kotatsu.parsers.util.json.mapJSON -class FaviconParser( +public class FaviconParser( private val webClient: WebClient, private val domain: String, ) { - suspend fun parseFavicons(): Favicons { + public suspend fun parseFavicons(): Favicons { val url = "https://$domain" val doc = webClient.httpGet(url).parseHtml() val result = HashSet()