aboutsummaryrefslogtreecommitdiff
path: root/app/src/main/kotlin/com/pitchedapps/frost/facebook/requests/FbRequest.kt
diff options
context:
space:
mode:
Diffstat (limited to 'app/src/main/kotlin/com/pitchedapps/frost/facebook/requests/FbRequest.kt')
-rw-r--r--app/src/main/kotlin/com/pitchedapps/frost/facebook/requests/FbRequest.kt69
1 files changed, 0 insertions, 69 deletions
diff --git a/app/src/main/kotlin/com/pitchedapps/frost/facebook/requests/FbRequest.kt b/app/src/main/kotlin/com/pitchedapps/frost/facebook/requests/FbRequest.kt
index b948506f..53126938 100644
--- a/app/src/main/kotlin/com/pitchedapps/frost/facebook/requests/FbRequest.kt
+++ b/app/src/main/kotlin/com/pitchedapps/frost/facebook/requests/FbRequest.kt
@@ -17,16 +17,9 @@
package com.pitchedapps.frost.facebook.requests
import com.pitchedapps.frost.BuildConfig
-import com.pitchedapps.frost.facebook.FB_DTSG_MATCHER
import com.pitchedapps.frost.facebook.FB_JSON_URL_MATCHER
-import com.pitchedapps.frost.facebook.FB_REV_MATCHER
-import com.pitchedapps.frost.facebook.FB_URL_BASE
-import com.pitchedapps.frost.facebook.FB_USER_MATCHER
import com.pitchedapps.frost.facebook.USER_AGENT
import com.pitchedapps.frost.facebook.get
-import com.pitchedapps.frost.kotlin.Flyweight
-import com.pitchedapps.frost.utils.L
-import kotlinx.coroutines.GlobalScope
import okhttp3.Call
import okhttp3.FormBody
import okhttp3.OkHttpClient
@@ -35,41 +28,12 @@ import okhttp3.logging.HttpLoggingInterceptor
import org.apache.commons.text.StringEscapeUtils
/**
- * Created by Allan Wang on 21/12/17.
- */
-val fbAuth = Flyweight<String, RequestAuth>(GlobalScope, 3600000 /* an hour */) {
- it.getAuth()
-}
-
-/**
- * Underlying container for all fb requests
- */
-data class RequestAuth(
- val userId: Long = -1,
- val cookie: String = "",
- val fb_dtsg: String = "",
- val rev: String = ""
-) {
- val isComplete
- get() = userId > 0 && cookie.isNotEmpty() && fb_dtsg.isNotEmpty() && rev.isNotEmpty()
-}
-
-/**
* Request container with the execution call
*/
class FrostRequest<out T : Any?>(val call: Call, private val invoke: (Call) -> T) {
fun invoke() = invoke(call)
}
-internal inline fun <T : Any?> RequestAuth.frostRequest(
- noinline invoke: (Call) -> T,
- builder: Request.Builder.() -> Request.Builder // to ensure we don't do anything extra at the end
-): FrostRequest<T> {
- val request = cookie.requestBuilder()
- request.builder()
- return FrostRequest(request.call(), invoke)
-}
-
val httpClient: OkHttpClient by lazy {
val builder = OkHttpClient.Builder()
if (BuildConfig.DEBUG)
@@ -106,39 +70,6 @@ internal fun String?.requestBuilder(): Request.Builder {
fun Request.Builder.call(): Call = httpClient.newCall(build())
-fun String.getAuth(): RequestAuth {
- L.v { "Getting auth for ${hashCode()}" }
- var auth = RequestAuth(cookie = this)
- val id = FB_USER_MATCHER.find(this)[1]?.toLong() ?: return auth
- auth = auth.copy(userId = id)
- val call = this.requestBuilder()
- .url(FB_URL_BASE)
- .get()
- .call()
- call.execute().body()?.charStream()?.useLines { lines ->
- lines.forEach {
- val text = try {
- StringEscapeUtils.unescapeEcmaScript(it)
- } catch (ignore: Exception) {
- return@forEach
- }
- val fb_dtsg = FB_DTSG_MATCHER.find(text)[1]
- if (fb_dtsg != null) {
- auth = auth.copy(fb_dtsg = fb_dtsg)
- if (auth.isComplete) return auth
- }
-
- val rev = FB_REV_MATCHER.find(text)[1]
- if (rev != null) {
- auth = auth.copy(rev = rev)
- if (auth.isComplete) return auth
- }
- }
- }
-
- return auth
-}
-
/**
* Execute the call and attempt to check validity
* Valid = not blank & no "error" instance