Cleanup nHentai media-server

This commit is contained in:
Cuong-Tran 2025-06-15 23:38:40 +07:00
parent 289bec715a
commit b7c60d0750
2 changed files with 4 additions and 20 deletions

View file

@ -72,11 +72,9 @@ class NHentai(delegate: HttpSource, val context: Context) :
} }
override suspend fun parseIntoMetadata(metadata: NHentaiSearchMetadata, input: Response) { override suspend fun parseIntoMetadata(metadata: NHentaiSearchMetadata, input: Response) {
// AZ --> val body = input.body.string()
val strdata = input.body.string() val server = MEDIA_SERVER_REGEX.find(body)?.groupValues?.get(1)?.toInt() ?: 1
val server = MEDIA_SERVER_REGEX.find(strdata)?.groupValues?.get(1)?.toInt() ?: 1 val json = GALLERY_JSON_REGEX.find(body)!!.groupValues[1].replace(
// AZ <--
val json = GALLERY_JSON_REGEX.find(strdata)!!.groupValues[1].replace(
UNICODE_ESCAPE_REGEX, UNICODE_ESCAPE_REGEX,
) { it.groupValues[1].toInt(radix = 16).toChar().toString() } ) { it.groupValues[1].toInt(radix = 16).toChar().toString() }
val jsonResponse = jsonParser.decodeFromString<JsonResponse>(json) val jsonResponse = jsonParser.decodeFromString<JsonResponse>(json)
@ -90,9 +88,7 @@ class NHentai(delegate: HttpSource, val context: Context) :
mediaId = jsonResponse.mediaId mediaId = jsonResponse.mediaId
// AZ -->
mediaServer = server mediaServer = server
// AZ <--
jsonResponse.title?.let { title -> jsonResponse.title?.let { title ->
japaneseTitle = title.japanese japaneseTitle = title.japanese
@ -103,7 +99,7 @@ class NHentai(delegate: HttpSource, val context: Context) :
preferredTitle = this@NHentai.preferredTitle preferredTitle = this@NHentai.preferredTitle
jsonResponse.images?.let { images -> jsonResponse.images?.let { images ->
coverImageType = input.asJsoup(strdata).parseCoverType() coverImageType = input.asJsoup(body).parseCoverType()
?: images.cover?.type ?: images.cover?.type
images.pages.mapNotNull { images.pages.mapNotNull {
it.type it.type
@ -217,9 +213,7 @@ class NHentai(delegate: HttpSource, val context: Context) :
index + 1, index + 1,
imageUrl = thumbnailUrlFromType( imageUrl = thumbnailUrlFromType(
metadata.mediaId!!, metadata.mediaId!!,
// AZ -->
metadata.mediaServer ?: 1, metadata.mediaServer ?: 1,
// AZ <--
index + 1, index + 1,
s, s,
)!!, )!!,
@ -232,9 +226,7 @@ class NHentai(delegate: HttpSource, val context: Context) :
private fun thumbnailUrlFromType( private fun thumbnailUrlFromType(
mediaId: String, mediaId: String,
// AZ -->
mediaServer: Int, mediaServer: Int,
// AZ <--
page: Int, page: Int,
t: String, t: String,
) = NHentaiSearchMetadata.typeToExtension(t)?.let { ) = NHentaiSearchMetadata.typeToExtension(t)?.let {
@ -258,11 +250,7 @@ class NHentai(delegate: HttpSource, val context: Context) :
} }
private val GALLERY_JSON_REGEX = Regex(".parse\\(\"(.*)\"\\);") private val GALLERY_JSON_REGEX = Regex(".parse\\(\"(.*)\"\\);")
// AZ -->
private val MEDIA_SERVER_REGEX = Regex("media_server\\s*:\\s*(\\d+)") private val MEDIA_SERVER_REGEX = Regex("media_server\\s*:\\s*(\\d+)")
// AZ <--
private val UNICODE_ESCAPE_REGEX = Regex("\\\\u([0-9a-fA-F]{4})") private val UNICODE_ESCAPE_REGEX = Regex("\\\\u([0-9a-fA-F]{4})")
private const val TITLE_PREF = "Display manga title as:" private const val TITLE_PREF = "Display manga title as:"
} }

View file

@ -29,9 +29,7 @@ class NHentaiSearchMetadata : RaisedSearchMetadata() {
var mediaId: String? = null var mediaId: String? = null
// AZ -->
var mediaServer: Int? = null var mediaServer: Int? = null
// AZ <--
var japaneseTitle by titleDelegate(TITLE_TYPE_JAPANESE) var japaneseTitle by titleDelegate(TITLE_TYPE_JAPANESE)
var englishTitle by titleDelegate(TITLE_TYPE_ENGLISH) var englishTitle by titleDelegate(TITLE_TYPE_ENGLISH)
@ -49,10 +47,8 @@ class NHentaiSearchMetadata : RaisedSearchMetadata() {
val key = nhId?.let { nhIdToPath(it) } val key = nhId?.let { nhIdToPath(it) }
val cover = if (mediaId != null) { val cover = if (mediaId != null) {
// AZ -->
// Default media server for cover is always 1 (see in page header) // Default media server for cover is always 1 (see in page header)
val server = mediaServer ?: 1 val server = mediaServer ?: 1
// AZ <--
typeToExtension(coverImageType)?.let { typeToExtension(coverImageType)?.let {
"https://t$server.nhentai.net/galleries/$mediaId/cover.$it" "https://t$server.nhentai.net/galleries/$mediaId/cover.$it"
} }