mirror of https://github.com/kurisufriend/Clover
parent
092909c7aa
commit
22f9056956
@ -0,0 +1,80 @@ |
|||||||
|
package org.floens.chan.core.http; |
||||||
|
|
||||||
|
import com.squareup.okhttp.FormEncodingBuilder; |
||||||
|
import com.squareup.okhttp.Request; |
||||||
|
import com.squareup.okhttp.Response; |
||||||
|
|
||||||
|
import org.floens.chan.chan.ChanUrls; |
||||||
|
|
||||||
|
import java.io.IOException; |
||||||
|
import java.net.HttpCookie; |
||||||
|
import java.util.List; |
||||||
|
|
||||||
|
public class PassHttpCall extends HttpCall { |
||||||
|
public boolean success; |
||||||
|
public String message; |
||||||
|
public String passId; |
||||||
|
|
||||||
|
private String token; |
||||||
|
private String pin; |
||||||
|
|
||||||
|
public PassHttpCall(String token, String pin) { |
||||||
|
this.token = token; |
||||||
|
this.pin = pin; |
||||||
|
} |
||||||
|
|
||||||
|
@Override |
||||||
|
public void setup(Request.Builder requestBuilder) { |
||||||
|
FormEncodingBuilder formBuilder = new FormEncodingBuilder(); |
||||||
|
|
||||||
|
formBuilder.add("act", "do_login"); |
||||||
|
|
||||||
|
formBuilder.add("id", token); |
||||||
|
formBuilder.add("pin", pin); |
||||||
|
|
||||||
|
requestBuilder.url(ChanUrls.getPassUrl()); |
||||||
|
requestBuilder.post(formBuilder.build()); |
||||||
|
} |
||||||
|
|
||||||
|
@Override |
||||||
|
public void process(Response response, String result) throws IOException { |
||||||
|
boolean authSuccess = false; |
||||||
|
if (result.contains("Success! Your device is now authorized")) { |
||||||
|
authSuccess = true; |
||||||
|
} else { |
||||||
|
if (result.contains("Your Token must be exactly 10 characters")) { |
||||||
|
message = "Incorrect token"; |
||||||
|
} else if (result.contains("You have left one or more fields blank")) { |
||||||
|
message = "You have left one or more fields blank"; |
||||||
|
} else if (result.contains("Incorrect Token or PIN")) { |
||||||
|
message = "Incorrect Token or PIN"; |
||||||
|
} else { |
||||||
|
message = "Unknown error"; |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
if (authSuccess) { |
||||||
|
List<String> cookies = response.headers("Set-Cookie"); |
||||||
|
String passId = null; |
||||||
|
for (String cookie : cookies) { |
||||||
|
try { |
||||||
|
List<HttpCookie> parsedList = HttpCookie.parse(cookie); |
||||||
|
for (HttpCookie parsed : parsedList) { |
||||||
|
if (parsed.getName().equals("pass_id") && !parsed.getValue().equals("0")) { |
||||||
|
passId = parsed.getValue(); |
||||||
|
} |
||||||
|
} |
||||||
|
} catch (IllegalArgumentException ignored) { |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
if (passId != null) { |
||||||
|
this.passId = passId; |
||||||
|
message = "Success! Your device is now authorized."; |
||||||
|
success = true; |
||||||
|
} else { |
||||||
|
message = "Could not get pass id"; |
||||||
|
} |
||||||
|
} |
||||||
|
} |
||||||
|
} |
Loading…
Reference in new issue