forked from recloudstream/cloudstream
		
	added a wrapper for the okhttp Response
This commit is contained in:
		
							parent
							
								
									15c1316b1f
								
							
						
					
					
						commit
						ea537da831
					
				
					 1 changed files with 60 additions and 3 deletions
				
			
		|  | @ -16,6 +16,63 @@ private val DEFAULT_COOKIES: Map<String, String> = mapOf() | ||||||
| private val DEFAULT_REFERER: String? = null | private val DEFAULT_REFERER: String? = null | ||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
|  | // lowercase to avoid conflicts | ||||||
|  | class response(response: Response) { | ||||||
|  |     companion object { | ||||||
|  |         private var responseText: String? = null | ||||||
|  |         private var responseBody: ResponseBody? = null | ||||||
|  |     } | ||||||
|  | 
 | ||||||
|  |     public val rawResponse: Response = response | ||||||
|  | 
 | ||||||
|  |     val text: String | ||||||
|  |         get() { | ||||||
|  |             if (responseText != null) return responseText!! | ||||||
|  |             if (responseBody == null) responseBody = rawResponse.body | ||||||
|  | 
 | ||||||
|  |             responseText = responseBody.toString() | ||||||
|  |             return responseText!! | ||||||
|  |         } | ||||||
|  | 
 | ||||||
|  |     val body: ResponseBody | ||||||
|  |         get() { | ||||||
|  |             if (responseBody == null) responseBody = rawResponse.body | ||||||
|  |             return responseBody!! | ||||||
|  |         } | ||||||
|  | 
 | ||||||
|  |     val url: String | ||||||
|  |         get() { | ||||||
|  |             return rawResponse.request.url.toString() | ||||||
|  |         } | ||||||
|  | 
 | ||||||
|  |     val cookies: Map<String, String> | ||||||
|  |         get() { | ||||||
|  |             val cookieList = | ||||||
|  |                 rawResponse.headers.filter { it.first.equals("set-cookie", ignoreCase = true) }.getOrNull(0)?.second?.split(";") | ||||||
|  |             return cookieList?.associate { | ||||||
|  |                 val split = it.split("=") | ||||||
|  |                 (split.getOrNull(0)?.trim() ?: "") to (split.getOrNull(1)?.trim() ?: "") | ||||||
|  |             }?.filter { it.key.isNotBlank() && it.value.isNotBlank() } ?: mapOf() | ||||||
|  |         } | ||||||
|  | 
 | ||||||
|  |     val headers: Headers | ||||||
|  |         get() { | ||||||
|  |             return rawResponse.headers | ||||||
|  |         } | ||||||
|  | 
 | ||||||
|  |     val ok: Boolean | ||||||
|  |         get() { | ||||||
|  |             return rawResponse.isSuccessful | ||||||
|  |         } | ||||||
|  | 
 | ||||||
|  |     val status: Int | ||||||
|  |         get() { | ||||||
|  |             return rawResponse.code | ||||||
|  |         } | ||||||
|  | 
 | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | 
 | ||||||
| /** WARNING! CAN ONLY BE READ ONCE */ | /** WARNING! CAN ONLY BE READ ONCE */ | ||||||
| val Response.text: String | val Response.text: String | ||||||
|     get() { |     get() { | ||||||
|  | @ -98,7 +155,7 @@ fun get( | ||||||
|         .build() |         .build() | ||||||
| 
 | 
 | ||||||
|     val request = getRequestCreator(url, headers, referer, params, cookies, cacheTime, cacheUnit) |     val request = getRequestCreator(url, headers, referer, params, cookies, cacheTime, cacheUnit) | ||||||
|     return client.newCall(request).execute() |     return response(client.newCall(request).execute()) | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
|  | @ -120,7 +177,7 @@ fun post( | ||||||
|         .callTimeout(timeout, TimeUnit.SECONDS) |         .callTimeout(timeout, TimeUnit.SECONDS) | ||||||
|         .build() |         .build() | ||||||
|     val request = postRequestCreator(url, headers, referer, params, cookies, data, cacheTime, cacheUnit) |     val request = postRequestCreator(url, headers, referer, params, cookies, data, cacheTime, cacheUnit) | ||||||
|     return client.newCall(request).execute() |     return response(client.newCall(request).execute()) | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
|  |  | ||||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue