Set "Android" as user agent when gettings captchas.

Don't reuse html.
captchafix2
Floens 11 years ago
parent b45db074cc
commit c37c1b77ae
  1. 22
      Clover/app/src/main/java/org/floens/chan/core/manager/ReplyManager.java
  2. 10
      Clover/app/src/main/java/org/floens/chan/ui/fragment/ReplyFragment.java

@ -321,8 +321,9 @@ public class ReplyManager {
public String responseData = "";
}
public void getCaptchaChallenge(final CaptchaChallengeListener listener, String reuseHtml) {
public void getCaptchaChallenge(final CaptchaChallengeListener listener) {
HttpPost httpPost = new HttpPost(ChanUrls.getCaptchaFallback());
httpPost.addHeader("User-Agent", "Android");
HttpPostSendListener postListener = new HttpPostSendListener() {
@Override
@ -350,11 +351,7 @@ public class ReplyManager {
}
};
if (TextUtils.isEmpty(reuseHtml)) {
sendHttpPost(httpPost, postListener);
} else {
postListener.onResponse(reuseHtml, null, null);
}
sendHttpPost(httpPost, postListener);
}
public interface CaptchaChallengeListener {
@ -381,17 +378,17 @@ public class ReplyManager {
Elements verificationToken = document.select("div.fbc-verification-token textarea");
String hash = verificationToken.text();
if (hash.length() > 0) {
listener.onHash(hash, responseString);
listener.onHash(hash);
return;
}
}
listener.onHash(null, responseString);
listener.onHash(null);
}
});
}
private interface CaptchaHashListener {
public void onHash(String hash, String html);
public void onHash(String hash);
}
/**
@ -406,13 +403,12 @@ public class ReplyManager {
CaptchaHashListener captchaHashListener = new CaptchaHashListener() {
@Override
public void onHash(String captchaHash, String captchaHtml) {
public void onHash(String captchaHash) {
if (captchaHash == null && !reply.usePass) {
// Could not find a hash in the response html
ReplyResponse e = new ReplyResponse();
e.isUserError = true;
e.isCaptchaError = true;
e.captchaHtml = captchaHtml;
listener.onResponse(e);
return;
}
@ -512,7 +508,7 @@ public class ReplyManager {
};
if (reply.usePass) {
captchaHashListener.onHash(null, null);
captchaHashListener.onHash(null);
} else {
getCaptchaHash(captchaHashListener, reply.captchaChallenge, reply.captchaResponse);
}
@ -563,8 +559,6 @@ public class ReplyManager {
* The thread no the post has
*/
public int threadNo = -1;
public String captchaHtml;
}
/**

@ -204,7 +204,7 @@ public class ReplyFragment extends DialogFragment {
});
showCommentCount();
getCaptcha(null);
getCaptcha();
} else {
Logger.e(TAG, "Loadable in ReplyFragment was null");
closeReply();
@ -263,7 +263,7 @@ public class ReplyFragment extends DialogFragment {
captchaContainer.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View view) {
getCaptcha(null);
getCaptcha();
}
});
captchaInput = (TextView) container.findViewById(R.id.reply_captcha);
@ -514,7 +514,7 @@ public class ReplyFragment extends DialogFragment {
loadView.setView(text);
}
private void getCaptcha(String reuseHtml) {
private void getCaptcha() {
if (gettingCaptcha)
return;
gettingCaptcha = true;
@ -547,7 +547,7 @@ public class ReplyFragment extends DialogFragment {
captchaContainer.setView(text);
}
}
}, reuseHtml);
});
}
/**
@ -609,7 +609,7 @@ public class ReplyFragment extends DialogFragment {
cancelButton.setEnabled(true);
setClosable(true);
flipPage(1);
getCaptcha(response.captchaHtml);
getCaptcha();
captchaInput.setText("");
} else if (response.isSuccessful) {
shouldSaveDraft = false;

Loading…
Cancel
Save