forked from juzheng/sdu-course-bot
		
	perf:resetCookie加锁
This commit is contained in:
		| @@ -80,8 +80,8 @@ export async function acquireCourse(course: IJsonCourse, channel: TChannel): Pro | ||||
|             return true | ||||
|         } else { | ||||
|             logAndNotifyUser(resp.data.message) | ||||
|             if(resp.data.message.includes('当前账号已在别处登录')){ | ||||
|                 await resetCookie() | ||||
|             if (resp.data.message.includes('当前账号已在别处登录')) { | ||||
|                 await resetCookie()// TODO 加锁、优化 | ||||
|             } | ||||
|             return false | ||||
|         } | ||||
| @@ -97,7 +97,7 @@ export async function exitCourse(course: IJsonCourse): Promise<boolean> { | ||||
|             return true | ||||
|         } else { | ||||
|             logAndNotifyUser('[exitCourse]退课失败:' + resp.data.message) | ||||
|             if(resp.data.message.includes('当前账号已在别处登录')){ | ||||
|             if (resp.data.message.includes('当前账号已在别处登录')) { | ||||
|                 await resetCookie() | ||||
|             } | ||||
|             return false | ||||
| @@ -108,7 +108,15 @@ export async function exitCourse(course: IJsonCourse): Promise<boolean> { | ||||
|     } | ||||
| } | ||||
|  | ||||
| let resetCookieLock = false | ||||
|  | ||||
| export async function resetCookie() { | ||||
|     if (resetCookieLock) { | ||||
|         console.log('resetCookie 已被锁定') | ||||
|         return | ||||
|     } | ||||
|     resetCookieLock = true | ||||
|     try { | ||||
|         let cookieJar = new tough.CookieJar() | ||||
|         let cookieAxios = axios.create({ | ||||
|             headers: { | ||||
| @@ -144,6 +152,11 @@ export async function resetCookie() { | ||||
|         console.log('[cookie]取得Cookie:' + cookieString) | ||||
|         appConfig.cookie = cookieString | ||||
|         sduAxios.defaults.headers['Cookie'] = cookieString | ||||
|     } catch (e) { | ||||
|         throw e | ||||
|     } finally { | ||||
|         resetCookieLock = false | ||||
|     } | ||||
| } | ||||
|  | ||||
| export function countStr(str: string, word: string) { | ||||
|   | ||||
		Reference in New Issue
	
	Block a user