|
@@ -1,72 +0,0 @@
|
|
|
-/*
|
|
|
|
|
- * Copyright 2020 Mamoe Technologies and contributors.
|
|
|
|
|
- *
|
|
|
|
|
- * 此源代码的使用受 GNU AFFERO GENERAL PUBLIC LICENSE version 3 许可证的约束, 可以在以下链接找到该许可证.
|
|
|
|
|
- * Use of this source code is governed by the GNU AGPLv3 license that can be found through the following link.
|
|
|
|
|
- *
|
|
|
|
|
- * https://github.com/mamoe/mirai/blob/master/LICENSE
|
|
|
|
|
- */
|
|
|
|
|
-
|
|
|
|
|
-@file:Suppress("EXPERIMENTAL_API_USAGE")
|
|
|
|
|
-
|
|
|
|
|
-package demo.gentleman
|
|
|
|
|
-
|
|
|
|
|
-import kotlinx.coroutines.*
|
|
|
|
|
-import kotlinx.serialization.Serializable
|
|
|
|
|
-import kotlinx.serialization.json.Json
|
|
|
|
|
-import net.mamoe.mirai.contact.Contact
|
|
|
|
|
-import net.mamoe.mirai.message.data.Image
|
|
|
|
|
-import net.mamoe.mirai.message.uploadAsImage
|
|
|
|
|
-import org.jsoup.Jsoup
|
|
|
|
|
-
|
|
|
|
|
-class GentleImage(val contact: Contact, val keyword: String) {
|
|
|
|
|
-
|
|
|
|
|
- val image: Deferred<Image> by lazy { getImage(0) }
|
|
|
|
|
-
|
|
|
|
|
- val seImage: Deferred<Image> by lazy { getImage(1) }
|
|
|
|
|
-
|
|
|
|
|
- fun getImage(r18: Int): Deferred<Image> {
|
|
|
|
|
- return GlobalScope.async {
|
|
|
|
|
- withTimeoutOrNull(20 * 1000) {
|
|
|
|
|
- withContext(Dispatchers.IO) {
|
|
|
|
|
-
|
|
|
|
|
- @Serializable
|
|
|
|
|
- data class Setu(
|
|
|
|
|
- val url: String,
|
|
|
|
|
- val pid: String
|
|
|
|
|
- )
|
|
|
|
|
-
|
|
|
|
|
- @Serializable
|
|
|
|
|
- data class Result(
|
|
|
|
|
- val data: List<Setu>
|
|
|
|
|
- )
|
|
|
|
|
-
|
|
|
|
|
- val result =
|
|
|
|
|
- Json.nonstrict.parse(
|
|
|
|
|
- Result.serializer(),
|
|
|
|
|
- Jsoup.connect("https://api.lolicon.app/setu/?r18=$r18" + if (keyword.isNotBlank()) "&keyword=$keyword&num=10" else "")
|
|
|
|
|
- .ignoreContentType(true)
|
|
|
|
|
- .userAgent(UserAgent.randomUserAgent)
|
|
|
|
|
- // .proxy("127.0.0.1", 1088)
|
|
|
|
|
- .timeout(10_0000)
|
|
|
|
|
- .get().body().text()
|
|
|
|
|
- )
|
|
|
|
|
-
|
|
|
|
|
- val setu = result.data.random()
|
|
|
|
|
- Jsoup
|
|
|
|
|
- .connect(setu.url)
|
|
|
|
|
- .followRedirects(true)
|
|
|
|
|
- .timeout(180_000)
|
|
|
|
|
- .ignoreContentType(true)
|
|
|
|
|
- .userAgent("Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10_6_7; ja-jp) AppleWebKit/533.20.25 (KHTML, like Gecko) Version/5.0.4 Safari/533.20.27")
|
|
|
|
|
- .referrer("https://www.pixiv.net/member_illust.php?mode=medium&illust_id=${setu.pid}")
|
|
|
|
|
- // .proxy("127.0.0.1", 1088)
|
|
|
|
|
- .ignoreHttpErrors(true)
|
|
|
|
|
- .maxBodySize(10000000)
|
|
|
|
|
- .execute().also { check(it.statusCode() == 200) { "Failed to download image" } }
|
|
|
|
|
- }
|
|
|
|
|
- }?.bodyStream()?.uploadAsImage(contact) ?: error("Unable to download image")
|
|
|
|
|
- }
|
|
|
|
|
- }
|
|
|
|
|
-}
|
|
|
|
|
-
|
|
|