diff --git a/src/nya/miku/wishmaster/chans/makaba/MakabaModule.java b/src/nya/miku/wishmaster/chans/makaba/MakabaModule.java index 4091e3469..de7b03a95 100644 --- a/src/nya/miku/wishmaster/chans/makaba/MakabaModule.java +++ b/src/nya/miku/wishmaster/chans/makaba/MakabaModule.java @@ -456,14 +456,16 @@ public PostModel[] search(String boardName, String searchRequest, ProgressListen @Override public CaptchaModel getNewCaptcha(String boardName, String threadNumber, ProgressListener listener, CancellableTask task) throws Exception { String response; - String url = domainUrl + "makaba/captcha.fcgi?type=2chaptcha" + (threadNumber != null ? "&action=thread" : "") + ("&board=" + boardName); + JSONObject json; + String url = domainUrl + "api/captcha/2chaptcha/id?" + ("board=" + boardName) + (threadNumber != null ? "&thread" : "") ; try { response = HttpStreamer.getInstance().getStringFromUrl(url, HttpRequestModel.DEFAULT_GET, httpClient, null, task, true); if (task != null && task.isCancelled()) throw new Exception("interrupted"); - if (response.startsWith("DISABLED") || response.startsWith("VIP")) { + json = new JSONObject(response); + if (json.getInt("result")==3 || json.getInt("result")==2) { captchaId = null; return null; - } else if (!response.startsWith("CHECK")) { + } else if (json.getInt("result")!=1) { throw new Exception("Invalid captcha response"); } } catch (HttpWrongStatusCodeException e) { @@ -471,8 +473,9 @@ public CaptchaModel getNewCaptcha(String boardName, String threadNumber, Progres throw e; } - String id = response.substring(response.indexOf('\n') + 1); - url = domainUrl + "makaba/captcha.fcgi?type=2chaptcha&action=image&id=" + id; + String id = json.getString("id"); + url = domainUrl + "api/captcha/2chaptcha/image/" + id; + CaptchaModel captchaModel = downloadCaptcha(url, listener, task); captchaModel.type = CaptchaModel.TYPE_NORMAL_DIGITS; captchaId = id;