@@ -1016,7 +1016,25 @@ private ReadCaptchaResult onReadCaptcha(ReadCaptchaData data, String captchaPass
1016
1016
}
1017
1017
}
1018
1018
1019
- } else if (DvachChanConfiguration .CAPTCHA_TYPE_RECAPTCHA_2 .equals (data .captchaType ) ||
1019
+ } else if (DvachChanConfiguration .CAPTCHA_TYPE_2CH_EMOJI_CAPTCHA .equals (data .captchaType )) {
1020
+ if (data .mayShowLoadButton ) {
1021
+ return new ReadCaptchaResult (CaptchaState .NEED_LOAD , null );
1022
+ }
1023
+ DvachEmojiCaptchaProvider .DvachEmojiCaptchaAnswerRetriever retriever =
1024
+ (Bitmap task , Bitmap [] keyboardImages ) -> {
1025
+ try {
1026
+ return requireUserImageSingleChoice (-1 ,
1027
+ keyboardImages ,
1028
+ configuration .getResources ().getString (
1029
+ R .string .emoji_captcha_input ),
1030
+ task );
1031
+ } catch (HttpException e ) {
1032
+ return -1 ;
1033
+ }
1034
+ };
1035
+ return new DvachEmojiCaptchaProvider (data , locator , id , retriever )
1036
+ .loadEmojiCaptcha ();
1037
+ } else if (DvachChanConfiguration .CAPTCHA_TYPE_RECAPTCHA_2 .equals (data .captchaType ) ||
1020
1038
DvachChanConfiguration .CAPTCHA_TYPE_RECAPTCHA_2_INVISIBLE .equals (data .captchaType )) {
1021
1039
result = new ReadCaptchaResult (CaptchaState .CAPTCHA , captchaData );
1022
1040
captchaData .put (CaptchaData .API_KEY , id );
@@ -1091,14 +1109,19 @@ public SendPostResult onSendPost(SendPostData data) throws HttpException, ApiExc
1091
1109
String challenge = data .captchaData .get (CaptchaData .CHALLENGE );
1092
1110
String input = StringUtils .emptyIfNull (data .captchaData .get (CaptchaData .INPUT ));
1093
1111
1094
- String remoteCaptchaType = DvachChanConfiguration .CAPTCHA_TYPES .get (data .captchaType );
1095
- if (remoteCaptchaType != null ) {
1096
- entity .add ("captcha_type" , remoteCaptchaType );
1112
+ if (!DvachChanConfiguration .CAPTCHA_TYPE_2CH_EMOJI_CAPTCHA .equals (data .captchaType )) {
1113
+ String remoteCaptchaType = DvachChanConfiguration .CAPTCHA_TYPES .get (data .captchaType );
1114
+ if (remoteCaptchaType != null ) {
1115
+ entity .add ("captcha_type" , remoteCaptchaType );
1116
+ }
1097
1117
}
1098
1118
if (DvachChanConfiguration .CAPTCHA_TYPE_2CH_CAPTCHA .equals (data .captchaType )) {
1099
1119
entity .add ("2chcaptcha_id" , challenge );
1100
1120
entity .add ("2chcaptcha_value" , input );
1101
- } else if (DvachChanConfiguration .CAPTCHA_TYPE_RECAPTCHA_2 .equals (data .captchaType ) ||
1121
+ } else if (DvachChanConfiguration .CAPTCHA_TYPE_2CH_EMOJI_CAPTCHA .equals (data .captchaType )) {
1122
+ entity .add ("captcha_type" , DvachChanConfiguration .CAPTCHA_TYPE_2CH_EMOJI_CAPTCHA );
1123
+ entity .add ("emoji_captcha_id" , challenge );
1124
+ } else if (DvachChanConfiguration .CAPTCHA_TYPE_RECAPTCHA_2 .equals (data .captchaType ) ||
1102
1125
DvachChanConfiguration .CAPTCHA_TYPE_RECAPTCHA_2_INVISIBLE .equals (data .captchaType )) {
1103
1126
entity .add ("g-recaptcha-response" , input );
1104
1127
}
0 commit comments