@@ -37,7 +37,7 @@ const API_URL = 'https://jumpg-webapi.tokyo-cdn.com/api'
3737const langCode = Language . ENGLISH
3838
3939export const MangaPlusInfo : SourceInfo = {
40- version : '2.0.3 ' ,
40+ version : '2.0.4 ' ,
4141 name : 'MangaPlus' ,
4242 icon : 'icon.png' ,
4343 author : 'Rinto-kun' ,
@@ -50,19 +50,35 @@ export const MangaPlusInfo: SourceInfo = {
5050}
5151
5252export class MangaPlus implements SearchResultsProviding , MangaProviding , ChapterProviding , HomePageSectionsProviding {
53-
5453 stateManager = App . createSourceStateManager ( )
5554
55+ private cachedSessionToken : string | null = null
56+
57+ private async getSessionToken ( ) : Promise < string > {
58+ if ( this . cachedSessionToken ) return this . cachedSessionToken
59+
60+ const storedToken = ( await this . stateManager . retrieve ( 'sessionToken' ) ) as string || null
61+ if ( storedToken ) {
62+ this . cachedSessionToken = storedToken
63+ return storedToken
64+ }
65+
66+ const sessionToken = crypto . randomUUID ( )
67+ await this . stateManager . store ( 'sessionToken' , sessionToken )
68+ this . cachedSessionToken = sessionToken
69+ return sessionToken
70+ }
71+
5672 requestManager = App . createRequestManager ( {
5773 requestsPerSecond : 10 ,
5874 requestTimeout : 20000 ,
5975 interceptor : {
6076 interceptRequest : async ( request : Request ) : Promise < Request > => {
6177 request . headers = {
6278 ...( request . headers ?? { } ) ,
63-
79+ 'Origin' : BASE_URL ,
6480 'Referer' : `${ BASE_URL } /` ,
65- 'user-agent ' : await this . requestManager . getDefaultUserAgent ( )
81+ 'session-token ' : await this . getSessionToken ( )
6682 }
6783
6884 if ( request . url . startsWith ( 'imageMangaId=' ) ) {
0 commit comments