diff --git a/app/src/main/java/eu/kanade/tachiyomi/source/online/english/Pururin.kt b/app/src/main/java/eu/kanade/tachiyomi/source/online/english/Pururin.kt new file mode 100644 index 000000000..c1efb9ec1 --- /dev/null +++ b/app/src/main/java/eu/kanade/tachiyomi/source/online/english/Pururin.kt @@ -0,0 +1,37 @@ +package eu.kanade.tachiyomi.source.online.english + +import eu.kanade.tachiyomi.source.model.FilterList +import eu.kanade.tachiyomi.source.model.MangasPage +import eu.kanade.tachiyomi.source.online.HttpSource +import eu.kanade.tachiyomi.source.online.LewdSource +import eu.kanade.tachiyomi.source.online.UrlImportableSource +import exh.metadata.metadata.PururinSearchMetadata +import exh.source.DelegatedHttpSource +import exh.util.urlImportFetchSearchManga +import org.jsoup.nodes.Document +import rx.Observable + +class Pururin(delegate: HttpSource) : DelegatedHttpSource(delegate), + LewdSource, UrlImportableSource { + /** + * An ISO 639-1 compliant language code (two letters in lower case). + */ + override val lang = "en" + /** + * The class of the metadata used by this source + */ + override val metaClass = PururinSearchMetadata::class + + //Support direct URL importing + override fun fetchSearchManga(page: Int, query: String, filters: FilterList): Observable { + val trimmedIdQuery = query.trim().removePrefix("id:") + // TODO Fetch gallery shortlink + val newQuery = if(trimmedIdQuery.toIntOrNull() ?: -1 >= 0) { + "$baseUrl/gallery/$trimmedIdQuery/-" + } else query + + return urlImportFetchSearchManga(newQuery) { + super.fetchSearchManga(page, query, filters) + } + } +} \ No newline at end of file diff --git a/app/src/main/java/exh/metadata/metadata/PururinSearchMetadata.kt b/app/src/main/java/exh/metadata/metadata/PururinSearchMetadata.kt new file mode 100644 index 000000000..bc86a4b3f --- /dev/null +++ b/app/src/main/java/exh/metadata/metadata/PururinSearchMetadata.kt @@ -0,0 +1,58 @@ +package exh.metadata.metadata + +import eu.kanade.tachiyomi.source.model.SManga +import exh.metadata.metadata.base.RaisedSearchMetadata + +class PururinSearchMetadata : RaisedSearchMetadata() { + var prId: Int? = null + + var prShortLink: String? = null + + var title by titleDelegate(TITLE_TYPE_TITLE) + var altTitle by titleDelegate(TITLE_TYPE_ALT_TITLE) + + var thumbnailUrl: String? = null + + var artist: String? = null + var artistDisp: String? = null + + var circle: String? = null + var circleDisp: String? = null + + var parody: String? = null // TODO Mult + var parodyDisp: String? = null + + var character: String? = null // TODO Mult + var characterDisp: String? = null + + var category: String? = null + var categoryDisp: String? = null + + var collection: String? = null + var collectionDisp: String? = null + + var language: String? = null + var languageDisp: String? = null + + var uploadDisp: String? = null + + var pages: Int? = null + + var fileSize: String? = null + + var ratingCount: Int? = null + var averageRating: Double? = null + + override fun copyTo(manga: SManga) { + TODO("not implemented") //To change body of created functions use File | Settings | File Templates. + } + + companion object { + private const val TITLE_TYPE_TITLE = 0 + private const val TITLE_TYPE_ALT_TITLE = 1 + + const val TAG_TYPE_CONTENTS = 0 + + val BASE_URL = "https://pururin.io" + } +} \ No newline at end of file