分片数优化

This commit is contained in:
lushunming 2025-07-15 14:33:32 +08:00
parent 6301abfe6a
commit bbf477acb5
9 changed files with 19 additions and 18 deletions

View File

@ -25,7 +25,7 @@ class Tg189Search : Cloud() {
@Throws(Exception::class) @Throws(Exception::class)
override fun searchContent(key: String, quick: Boolean): String { override fun searchContent(key: String, quick: Boolean): String {
val url = val url =
URL + "?channelUsername=cloud189_group,yunpan139,cloud189_group,cloudtianyi,kuakeclound,tianyirigeng,txtyzy,tyypzhpd,tyysypzypd,yunpan189&keyword=" + URLEncoder.encode( URL + "?channelUsername=cloud189_group,yunpan139,cloud189_group,cloudtianyi,kuakeclound,tianyirigeng,txtyzy,tyypzhpd,tyysypzypd,yunpan189&pic=true&keyword=" + URLEncoder.encode(
key, Charset.defaultCharset().name() key, Charset.defaultCharset().name()
) )
val list: MutableList<Vod> = ArrayList() val list: MutableList<Vod> = ArrayList()
@ -36,8 +36,9 @@ class Tg189Search : Cloud() {
val doc = Jsoup.parse(s) val doc = Jsoup.parse(s)
val id = doc.select(" a").eachAttr("href") val id = doc.select(" a").eachAttr("href")
.first { it.contains("189") || it.contains("139") } .first { it.contains("189") || it.contains("139") }
val name=doc.select("strong").text()
list.add(Vod(id, s, "", "")) list.add(Vod(id, name, "", ""))
} }
} }

View File

@ -26,7 +26,7 @@ class TgQuarkSearch : Cloud() {
@Throws(Exception::class) @Throws(Exception::class)
override fun searchContent(key: String, quick: Boolean): String { override fun searchContent(key: String, quick: Boolean): String {
val url = val url =
URL + "?channelUsername=alyp_1,clouddriveresources,dianyingshare,hdhhd21,jdjdn1111,leoziyuan,NewQuark,PanjClub,Quark_Movies,xiangxiunb,yunpanchat,yunpanqk,XiangxiuNB,alyp_4K_Movies,alyp_Animation,alyp_TV,alyp_JLP&keyword=" + URLEncoder.encode( URL + "?channelUsername=alyp_1,clouddriveresources,dianyingshare,hdhhd21,jdjdn1111,leoziyuan,NewQuark,PanjClub,Quark_Movies,xiangxiunb,yunpanchat,yunpanqk,XiangxiuNB,alyp_4K_Movies,alyp_Animation,alyp_TV,alyp_JLP&pic=true&keyword=" + URLEncoder.encode(
key, key,
Charset.defaultCharset().name() Charset.defaultCharset().name()
) )
@ -38,8 +38,8 @@ class TgQuarkSearch : Cloud() {
val doc = Jsoup.parse(s) val doc = Jsoup.parse(s)
val id = doc.select(" a").eachAttr("href") val id = doc.select(" a").eachAttr("href")
.first { it.contains("189") || it.contains("139")|| it.contains("quark") } .first { it.contains("189") || it.contains("139")|| it.contains("quark") }
val name=doc.select("strong").text()
list.add(Vod(id, s, "", "")) list.add(Vod(id, name, "", ""))
} }
} }

View File

@ -25,7 +25,7 @@ class TgSearch : Cloud() {
@Throws(Exception::class) @Throws(Exception::class)
override fun searchContent(key: String, quick: Boolean): String { override fun searchContent(key: String, quick: Boolean): String {
val url = val url =
URL + "?channelUsername=tianyirigeng,tyypzhpd,XiangxiuNB,yunpanpan,kuakeyun,zaihuayun,Quark_Movies,alyp_4K_Movies,vip115hot,yunpanshare,dianyingshare&keyword=" + URLEncoder.encode( URL + "?channelUsername=tianyirigeng,tyypzhpd,XiangxiuNB,yunpanpan,kuakeyun,zaihuayun,Quark_Movies,alyp_4K_Movies,vip115hot,yunpanshare,dianyingshare&pic=true&keyword=" + URLEncoder.encode(
key, Charset.defaultCharset().name() key, Charset.defaultCharset().name()
) )
val list: MutableList<Vod> = ArrayList() val list: MutableList<Vod> = ArrayList()
@ -36,8 +36,8 @@ class TgSearch : Cloud() {
val doc = Jsoup.parse(s) val doc = Jsoup.parse(s)
val id = doc.select(" a").eachAttr("href") val id = doc.select(" a").eachAttr("href")
.first { it.contains("189") || it.contains("139") || it.contains("quark") } .first { it.contains("189") || it.contains("139") || it.contains("quark") }
val name = doc.select("strong").text()
list.add(Vod(id, s, "", "")) list.add(Vod(id, name, "", ""))
} }
} }

View File

@ -18,7 +18,7 @@ import java.util.Vector
import kotlin.math.min import kotlin.math.min
object DownloadMT { object DownloadMT {
private val THREAD_NUM: Int = Runtime.getRuntime().availableProcessors() * 2 private val THREAD_NUM: Int = 64
private val infos = mutableMapOf<String, Array<Any>>(); private val infos = mutableMapOf<String, Array<Any>>();
@ -75,9 +75,9 @@ object DownloadMT {
SpiderDebug.log("--文件总大小:$total") SpiderDebug.log("--文件总大小:$total")
//如果文件太小,也不走代理 //如果文件太小,也不走代理
/* if (total.toLong() < 1024 * 1024 * 100) { if (total.toLong() < 1024 * 1024 * 64) {
return proxy(url, headers) return ProxyVideo.proxy(url, headers)
}*/ }
var range = var range =
if (StringUtils.isAllBlank(headers["range"])) headers["Range"] else headers["range"] if (StringUtils.isAllBlank(headers["range"])) headers["Range"] else headers["range"]
if (StringUtils.isAllBlank(range)) range = "bytes=0-"; if (StringUtils.isAllBlank(range)) range = "bytes=0-";
@ -155,7 +155,7 @@ object DownloadMT {
fun generatePart(rangeObj: Map<String?, String>, total: String): List<LongArray> { fun generatePart(rangeObj: Map<String?, String>, total: String): List<LongArray> {
val totalSize = total.toLong() val totalSize = total.toLong()
//超过10GB分块是80Mb不然是16MB //超过10GB分块是80MB不然是16MB
val partSize = val partSize =
if (totalSize > 8L * 1024L * 1024L * 1024L * 10L) 1024 * 1024 * 8 * 10L else 1024 * 1024 * 8 * 2L if (totalSize > 8L * 1024L * 1024L * 1024L * 10L) 1024 * 1024 * 8 * 10L else 1024 * 1024 * 8 * 2L

View File

@ -22,13 +22,13 @@ public class TgSearchTest {
private Application mockContext; private Application mockContext;
private Tg189Search spider; private TgQuarkSearch spider;
@org.junit.Before @org.junit.Before
public void setUp() throws Exception { public void setUp() throws Exception {
mockContext = RuntimeEnvironment.application; mockContext = RuntimeEnvironment.application;
Init.init(mockContext); Init.init(mockContext);
spider = new Tg189Search(); spider = new TgQuarkSearch();
Server.get().start(); Server.get().start();
// spider.init(mockContext, "{\"cookie\":\"b-user-id=89ede34e-0efc-e1dd-c997-f16aaa792d0c; _UP_A4A_11_=wb9661c6dfb642f88f73d8e0c7edd398; b-user-id=89ede34e-0efc-e1dd-c997-f16aaa792d0c; ctoken=wla6p3EUOLyn1FSB8IKp1SEW; grey-id=5583e32b-39df-4bf0-f39f-1adf83f604a2; grey-id.sig=p8ReBIMG2BeZu1sYvsuOAZxYbx-MVrsfKEiCv87MsTM; isQuark=true; isQuark.sig=hUgqObykqFom5Y09bll94T1sS9abT1X-4Df_lzgl8nM; _UP_F7E_8D_=ZkyvVHnrBLp1A1NFJIjWi0PwKLOVbxJPcg0RzQPI6KmBtV6ZMgPh38l93pgubgHDQqhaZ2Sfc0qv%2BRantbfg1mWGAUpRMP4RqXP78Wvu%2FCfvkWWGc5NhCTV71tGOIGgDBR3%2Bu6%2Fjj44KlE5biSNDOWW7Bigcz27lvOTidzNw8s%2FWtKAIxWbnCzZn4%2FJMBUub1SIMcW89g57k4mfPmDlCgpZKzxwl6beSfdtZ4RUWXmZOn5v5NkxVKhU4wR0Pq7NklczEGdRq2nIAcu7v22Uw2o%2FxMY0xBdeC9Korm5%2FNHnxl6K%2Bd6FXSoT9a3XIMQO359auZPiZWzrNlZe%2BqnOahXcx7KAhQIRqSOapSmL4ygJor4r5isJhRuDoXy7vJAVuH%2FRDtEJJ8rZTq0BdC23Bz%2B0MrsdgbK%2BiW; _UP_D_=pc; __wpkreporterwid_=3d3f74a7-99b7-4916-3f78-911fc2eb9d87; tfstk=fIoZNxjnbhKwPOu0TWZ4LsaRqirTcudSSmNbnxD0C5VgClMm8xMyB-GsnSu4tjpOflAOmSD-9PNiGl120XrgkVNb1SrqHbJBN3tSBAEYoQOWVUUg9qZ8n1bGGkD3CqGYINKSBABhjnXgp3_Vywz6gSc0Syj3BWf0mr2DLW24eZfiiovEKWefj1q0swq3E82iNEMinMy7SLrcpA4Fh3z_ZAViCfih3PbtdW5N_DuU77AaTijmYRkL2Wq54ENoy5a7ZXxCbok33XzS7QSZgxD-oyoVsdGotql0p2dVu7umC4nLStbiLmParc4FELHrI-c0u2dPVRrs8zoZWKCnIbNZrlHfUCMUz2z8KyXVSlgSFmUojh58OzeqTzgwaGll4YCYKwctDV5coP2LL79eKHxpNTXHmre1kZU32JPWCR_AkP2LL79eLZQY-WeUNdw1.; __pus=2051c82285199d8be553be41dd5a2100AAQ+mmv35G4FDDZ5x+3Mhe2OMbNgweQ1ODbW8zDt9YuP1LQVqHUuAAz9KWLsPjpNtim0AVGHusN4MCosTmbq/khM; __kp=e6604120-6051-11ef-bfe4-c31b6cdd0766; __kps=AATcZArVgS76EPn0FMaV4HEj; __ktd=sii/iz4ePzEaoVirXul7QQ==; __uid=AATcZArVgS76EPn0FMaV4HEj; __itrace_wid=5829b95d-dac1-48d3-bfd5-f60cd9462786; __puus=7da0b96cb710fa1b376934485f977e05AATp/q8/QupT7IiBR1GWqZhxlIRT677smMvoHlLxQA0Lk6CkP0YJBOTl+p9DZgzlMz6w4hPXPgWsokukk8PW7ZfhFfPmv8tKMgLpCGLW+tk57luhNghmSdTeVPkAF59STtyCPBEtiNzNAd/zZJ6qILJDi5ywEBAAAg+gOyWHoLHNUR+QxeHRuQa8g5WWA95J8jebIlrr8rCvI1vjTbtiYktT\",\"token\":\"26fc6787afff43e78b78992e782502f1\"}"); // spider.init(mockContext, "{\"cookie\":\"b-user-id=89ede34e-0efc-e1dd-c997-f16aaa792d0c; _UP_A4A_11_=wb9661c6dfb642f88f73d8e0c7edd398; b-user-id=89ede34e-0efc-e1dd-c997-f16aaa792d0c; ctoken=wla6p3EUOLyn1FSB8IKp1SEW; grey-id=5583e32b-39df-4bf0-f39f-1adf83f604a2; grey-id.sig=p8ReBIMG2BeZu1sYvsuOAZxYbx-MVrsfKEiCv87MsTM; isQuark=true; isQuark.sig=hUgqObykqFom5Y09bll94T1sS9abT1X-4Df_lzgl8nM; _UP_F7E_8D_=ZkyvVHnrBLp1A1NFJIjWi0PwKLOVbxJPcg0RzQPI6KmBtV6ZMgPh38l93pgubgHDQqhaZ2Sfc0qv%2BRantbfg1mWGAUpRMP4RqXP78Wvu%2FCfvkWWGc5NhCTV71tGOIGgDBR3%2Bu6%2Fjj44KlE5biSNDOWW7Bigcz27lvOTidzNw8s%2FWtKAIxWbnCzZn4%2FJMBUub1SIMcW89g57k4mfPmDlCgpZKzxwl6beSfdtZ4RUWXmZOn5v5NkxVKhU4wR0Pq7NklczEGdRq2nIAcu7v22Uw2o%2FxMY0xBdeC9Korm5%2FNHnxl6K%2Bd6FXSoT9a3XIMQO359auZPiZWzrNlZe%2BqnOahXcx7KAhQIRqSOapSmL4ygJor4r5isJhRuDoXy7vJAVuH%2FRDtEJJ8rZTq0BdC23Bz%2B0MrsdgbK%2BiW; _UP_D_=pc; __wpkreporterwid_=3d3f74a7-99b7-4916-3f78-911fc2eb9d87; tfstk=fIoZNxjnbhKwPOu0TWZ4LsaRqirTcudSSmNbnxD0C5VgClMm8xMyB-GsnSu4tjpOflAOmSD-9PNiGl120XrgkVNb1SrqHbJBN3tSBAEYoQOWVUUg9qZ8n1bGGkD3CqGYINKSBABhjnXgp3_Vywz6gSc0Syj3BWf0mr2DLW24eZfiiovEKWefj1q0swq3E82iNEMinMy7SLrcpA4Fh3z_ZAViCfih3PbtdW5N_DuU77AaTijmYRkL2Wq54ENoy5a7ZXxCbok33XzS7QSZgxD-oyoVsdGotql0p2dVu7umC4nLStbiLmParc4FELHrI-c0u2dPVRrs8zoZWKCnIbNZrlHfUCMUz2z8KyXVSlgSFmUojh58OzeqTzgwaGll4YCYKwctDV5coP2LL79eKHxpNTXHmre1kZU32JPWCR_AkP2LL79eLZQY-WeUNdw1.; __pus=2051c82285199d8be553be41dd5a2100AAQ+mmv35G4FDDZ5x+3Mhe2OMbNgweQ1ODbW8zDt9YuP1LQVqHUuAAz9KWLsPjpNtim0AVGHusN4MCosTmbq/khM; __kp=e6604120-6051-11ef-bfe4-c31b6cdd0766; __kps=AATcZArVgS76EPn0FMaV4HEj; __ktd=sii/iz4ePzEaoVirXul7QQ==; __uid=AATcZArVgS76EPn0FMaV4HEj; __itrace_wid=5829b95d-dac1-48d3-bfd5-f60cd9462786; __puus=7da0b96cb710fa1b376934485f977e05AATp/q8/QupT7IiBR1GWqZhxlIRT677smMvoHlLxQA0Lk6CkP0YJBOTl+p9DZgzlMz6w4hPXPgWsokukk8PW7ZfhFfPmv8tKMgLpCGLW+tk57luhNghmSdTeVPkAF59STtyCPBEtiNzNAd/zZJ6qILJDi5ywEBAAAg+gOyWHoLHNUR+QxeHRuQa8g5WWA95J8jebIlrr8rCvI1vjTbtiYktT\",\"token\":\"26fc6787afff43e78b78992e782502f1\"}");
spider.init(mockContext,"{\n" + spider.init(mockContext,"{\n" +

Binary file not shown.

View File

@ -1 +1 @@
6c57cc4eb7ebe82b74f2a723c0323500 ee0cb4c956adb3087217062681ce67a0

View File

@ -1,5 +1,5 @@
{ {
"spider": "https://andoridspidermt.netlify.app/jar/custom_spider.jar;md5;6c57cc4eb7ebe82b74f2a723c0323500", "spider": "https://andoridspidermt.netlify.app/jar/custom_spider.jar;md5;ee0cb4c956adb3087217062681ce67a0",
"lives": [ "lives": [
{ {
"name": "电视直播", "name": "电视直播",

View File

@ -1,5 +1,5 @@
{ {
"spider": "https://ghproxy.net/https://raw.githubusercontent.com/lushunming/AndroidCatVodSpider/multiThreadkt/jar/custom_spider.jar;md5;6c57cc4eb7ebe82b74f2a723c0323500", "spider": "https://ghproxy.net/https://raw.githubusercontent.com/lushunming/AndroidCatVodSpider/multiThreadkt/jar/custom_spider.jar;md5;ee0cb4c956adb3087217062681ce67a0",
"lives": [ "lives": [
{ {
"name": "电视直播", "name": "电视直播",