@@ -96,18 +96,15 @@ async function getMangaListByRecommend(page, pageSize) {
9696
9797async function getMangaListByBookshelf ( page , pageSize ) {
9898 const url =
99- 'https://api.copy2000.online /api/v3/member/collect/comics' ;
99+ 'https://api.2025copy.com /api/v3/member/collect/comics' ;
100100 try {
101101 const rawResponse = await window . Rulia . httpRequest ( {
102102 url : url ,
103103 method : 'GET' ,
104- payload : 'limit=' + pageSize + '&offset=' + ( ( page - 1 ) * pageSize ) +
105- '&free_type=1 &ordering=-datetime_modifier' ,
104+ payload : 'free_type=1& limit=' + pageSize + '&offset=' + ( ( page - 1 ) * pageSize ) +
105+ '&_update=true &ordering=-datetime_modifier' ,
106106 headers : {
107- 'authorization' : authorization ,
108- 'Platform' : 2 ,
109- 'accept-language' : 'zh-CN,zh;q=0.9,en;q=0.8,en-GB;q=0.7,en-US;q=0.6,ja;q=0.5' ,
110- 'user-agent' : 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/128.0.0.0 Safari/537.36 Edg/128.0.0.0'
107+ 'authorization' : authorization
111108 }
112109 } ) ;
113110 const response = JSON . parse ( rawResponse ) ;
@@ -134,7 +131,7 @@ async function getMangaListByCategory(page, pageSize, filterOptions) {
134131 } else if ( filterOptions . theme == 'bookshelf' ) {
135132 return await getMangaListByBookshelf ( page , pageSize ) ;
136133 } else {
137- const url = 'https://api.copy2000.online /api/v3/comics' ;
134+ const url = 'https://api.2025copy.com /api/v3/comics' ;
138135 try {
139136 let theme = '' ;
140137 let top = '' ;
@@ -144,13 +141,17 @@ async function getMangaListByCategory(page, pageSize, filterOptions) {
144141 if ( filterOptions . top && filterOptions . top != 0 ) {
145142 top = '&top=' + filterOptions . top ;
146143 }
147- let payload = '_update=true&format=json& free_type=1&limit=' + pageSize + '&offset=' + ( ( page - 1 ) *
148- pageSize ) + '&ordering=popular ' + theme + top ;
144+ let payload = 'free_type=1&limit=' + pageSize + '&offset=' + ( ( page - 1 ) * pageSize ) +
145+ '&ordering=-datetime_updated&_update=true ' + theme + top ;
149146 const rawResponse = await window . Rulia . httpRequest ( {
150147 url : url ,
151148 method : 'GET' ,
152149 payload : payload ,
153- headers : headers
150+ headers : {
151+ 'accept' : 'application/json' ,
152+ 'platform' : 1 ,
153+ 'version' : '2025.08.08'
154+ }
154155 } )
155156 const response = JSON . parse ( rawResponse ) ;
156157 let result = {
@@ -173,15 +174,17 @@ async function getMangaListByCategory(page, pageSize, filterOptions) {
173174
174175async function getMangaListBySearching ( page , pageSize , keyword ) {
175176 const url =
176- 'https://api.copy2000.online /api/kb/web/searcha/comics ' ;
177+ 'https://api.2025copy.com /api/v3/search/comic ' ;
177178 try {
178179 const rawResponse = await window . Rulia . httpRequest ( {
179180 url : url ,
180181 method : 'GET' ,
181182 payload : 'limit=' + pageSize + '&offset=' + ( ( page - 1 ) * pageSize ) +
182- '&platform=2 &q=' + keyword + '&q_type=' ,
183+ '&platform=1 &q=' + keyword + '&q_type=&_update=true ' ,
183184 headers : {
184- 'user-agent' : 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/137.0.0.0 Safari/537.36 Edg/137.0.0.0'
185+ 'accept' : 'application/json' ,
186+ 'platform' : 1 ,
187+ 'version' : '2025.08.08'
185188 }
186189 } ) ;
187190 const response = JSON . parse ( rawResponse ) ;
@@ -213,15 +216,14 @@ async function getMangaList(page, pageSize, keyword, rawFilterOptions) {
213216async function getMangaData ( dataPageUrl ) {
214217 const seasonIdMatchExp = / \/ c o m i c \/ ( .* ) / ;
215218 const seasonIdMatch = dataPageUrl . match ( seasonIdMatchExp ) ;
216- const detailUrl = 'https://api.copy2000.online /api/v3/comic2/' + seasonIdMatch [ 1 ] ;
217- const chapterListUrl = 'https://api.copy2000.online /api/v3/comic/' + seasonIdMatch [ 1 ] +
219+ const detailUrl = 'https://api.2025copy.com /api/v3/comic2/' + seasonIdMatch [ 1 ] ;
220+ const chapterListUrl = 'https://api.2025copy.com /api/v3/comic/' + seasonIdMatch [ 1 ] +
218221 '/group/default/chapters' ;
219222 try {
220223 const detailRawResponse = await window . Rulia . httpRequest ( {
221224 url : detailUrl ,
222225 method : 'GET' ,
223- payload : 'format=json&platform=3' ,
224- headers : headers
226+ payload : 'platform=1&_update=true'
225227 } )
226228 const detailResponse = JSON . parse ( detailRawResponse ) ;
227229 let result = {
@@ -233,8 +235,7 @@ async function getMangaData(dataPageUrl) {
233235 const chapterListRawResponse = await window . Rulia . httpRequest ( {
234236 url : chapterListUrl ,
235237 method : 'GET' ,
236- payload : '_update=true&format=json&limit=500&offset=0' ,
237- headers : headers
238+ payload : '_update=true&limit=500&offset=0'
238239 } ) ;
239240 const chapterListResponse = JSON . parse ( chapterListRawResponse ) ;
240241
0 commit comments