<?xml version="1.0" encoding="utf-8"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>SmartDukaan &#x2013; //trunk/profitmandi-cron/src/main/java/com/smartdukaan/cron/scheduled/CaptchaService.java</title><description>WebSVN RSS feed &#x2013; SmartDukaan</description><lastBuildDate>Tue, 15 Sep 2026 15:08:02 +0530</lastBuildDate><generator>WebSVN 2.8.6-DEV</generator><language>en</language><link>https://svn.smartdukaan.com/log.php?repname=SmartDukaan&amp;path=%2F%2Ftrunk%2Fprofitmandi-cron%2Fsrc%2Fmain%2Fjava%2Fcom%2Fsmartdukaan%2Fcron%2Fscheduled%2FCaptchaService.java&amp;max=40&amp;</link><atom:link href="https://svn.smartdukaan.com/rss.php?path=%2F%2Ftrunk%2Fprofitmandi-cron%2Fsrc%2Fmain%2Fjava%2Fcom%2Fsmartdukaan%2Fcron%2Fscheduled%2FCaptchaService.java&amp;repname=SmartDukaan" rel="self" type="application/rss+xml" />
<item><pubDate>Tue, 25 Aug 2026 20:57:24 +0530</pubDate><dc:creator>amit</dc:creator><title>Rev 37402 – Vivo IMEI activation: report Vivo&apos;s captcha verdict back to the ...</title><description>&lt;div&gt;&lt;strong&gt;amit – 2 file(s) modified&lt;/strong&gt;&lt;br/&gt;Vivo IMEI activation: report Vivo&apos;s captcha verdict back to the solver&lt;br /&gt;
&lt;br /&gt;
Only this cron ever learns whether Vivo accepted a captcha (status 0 means it&lt;br /&gt;
was wrong), so it is the only place that can label the solver&apos;s training data.&lt;br /&gt;
After each checkCode response it now posts the image, the code and the outcome&lt;br /&gt;
to the solver&apos;s /verdict endpoint, which files the sample as accepted (the&lt;br /&gt;
prediction was right - a free label) or rejected (needs a human to label it).&lt;br /&gt;
&lt;br /&gt;
The solver has been running at a measured 22.3% accept rate and no training&lt;br /&gt;
data was ever collected, so the model could not be improved at all.&lt;br /&gt;
&lt;br /&gt;
Strictly best-effort: 2s connect / 3s read timeouts and every exception&lt;br /&gt;
swallowed. Data collection must never slow down or break IMEI activation.&lt;br /&gt;
&lt;br /&gt;
The shared secret is read from CAPTCHA_VERDICT_TOKEN in the environment,&lt;br /&gt;
falling back to a captcha.verdict.token property, so it need not be committed.&lt;br /&gt;
Without a token the call is skipped entirely.&lt;br /&gt;
&lt;br /&gt;
Also drops /tmp/captcha.jpg: the captcha bytes are needed in memory for the&lt;br /&gt;
verdict report anyway, so the two concurrently-scheduled Vivo jobs no longer&lt;br /&gt;
share one file and overwrite each other&apos;s image.&lt;/div&gt;~ /trunk/profitmandi-cron/src/main/java/com/smartdukaan/cron/scheduled/CaptchaService.java&lt;br /&gt;~ /trunk/profitmandi-cron/src/main/java/com/smartdukaan/cron/scheduled/VivoImeiActivationService.java&lt;br /&gt;</description><link>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2F%2Ftrunk%2Fprofitmandi-cron%2Fsrc%2Fmain%2Fjava%2Fcom%2Fsmartdukaan%2Fcron%2Fscheduled%2FCaptchaService.java&amp;rev=37402</link><guid>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2F%2Ftrunk%2Fprofitmandi-cron%2Fsrc%2Fmain%2Fjava%2Fcom%2Fsmartdukaan%2Fcron%2Fscheduled%2FCaptchaService.java&amp;rev=37402</guid></item>
<item><pubDate>Tue, 25 Aug 2026 16:59:27 +0530</pubDate><dc:creator>amit</dc:creator><title>Rev 37393 – Vivo IMEI activation: validate captcha solver response before submitting to ...</title><description>&lt;div&gt;&lt;strong&gt;amit – 2 file(s) modified&lt;/strong&gt;&lt;br/&gt;Vivo IMEI activation: validate captcha solver response before submitting to Vivo&lt;br /&gt;
&lt;br /&gt;
The captcha solver at 45.79.121.178 was down from 09-Jul-2026 to 25-Aug-2026&lt;br /&gt;
(uwsgi never restarted after a host reboot). nginx returned a 502 page for&lt;br /&gt;
every request. RestClient.executeJson returns the response body regardless of&lt;br /&gt;
HTTP status, so CaptchaService handed that HTML page to Vivo as the captcha&lt;br /&gt;
code and Vivo logged it as &apos;Found invalid captcha&apos; - indistinguishable from an&lt;br /&gt;
ordinary wrong guess. The outage went unnoticed for 46 days.&lt;br /&gt;
&lt;br /&gt;
CaptchaService now checks the response against the solver model&apos;s own 31-class&lt;br /&gt;
alphabet (^[1-9A-HK-NP-Z]{4}$) and returns null for anything else, logging the&lt;br /&gt;
offending payload. VivoImeiActivationService skips the IMEI when the code is&lt;br /&gt;
null instead of posting the garbage; it is retried on the next run.&lt;br /&gt;
&lt;br /&gt;
Also drops a System.out.println of the full base64 captcha image.&lt;/div&gt;~ /trunk/profitmandi-cron/src/main/java/com/smartdukaan/cron/scheduled/CaptchaService.java&lt;br /&gt;~ /trunk/profitmandi-cron/src/main/java/com/smartdukaan/cron/scheduled/VivoImeiActivationService.java&lt;br /&gt;</description><link>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2F%2Ftrunk%2Fprofitmandi-cron%2Fsrc%2Fmain%2Fjava%2Fcom%2Fsmartdukaan%2Fcron%2Fscheduled%2FCaptchaService.java&amp;rev=37393</link><guid>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2F%2Ftrunk%2Fprofitmandi-cron%2Fsrc%2Fmain%2Fjava%2Fcom%2Fsmartdukaan%2Fcron%2Fscheduled%2FCaptchaService.java&amp;rev=37393</guid></item>
<item><pubDate>Fri, 09 Sep 2022 19:53:51 +0530</pubDate><dc:creator>amit.gupta</dc:creator><title>Rev 30938 – Fixed Scheduling issues</title><description>&lt;div&gt;&lt;strong&gt;amit.gupta – 1 file(s) modified&lt;/strong&gt;&lt;br/&gt;Fixed Scheduling issues&lt;/div&gt;~ /trunk/profitmandi-cron/src/main/java/com/smartdukaan/cron/scheduled/CaptchaService.java&lt;br /&gt;</description><link>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2F%2Ftrunk%2Fprofitmandi-cron%2Fsrc%2Fmain%2Fjava%2Fcom%2Fsmartdukaan%2Fcron%2Fscheduled%2FCaptchaService.java&amp;rev=30938</link><guid>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2F%2Ftrunk%2Fprofitmandi-cron%2Fsrc%2Fmain%2Fjava%2Fcom%2Fsmartdukaan%2Fcron%2Fscheduled%2FCaptchaService.java&amp;rev=30938</guid></item>
<item><pubDate>Thu, 08 Sep 2022 19:01:50 +0530</pubDate><dc:creator>amit.gupta</dc:creator><title>Rev 30935 – Fixed captcha parsing now pointing custom captcha breaking service deployed ...</title><description>&lt;div&gt;&lt;strong&gt;amit.gupta – 2 file(s) modified&lt;/strong&gt;&lt;br/&gt;Fixed captcha parsing now pointing custom captcha breaking service deployed on IN linode&lt;/div&gt;~ /trunk/profitmandi-cron/src/main/java/com/smartdukaan/cron/Application.java&lt;br /&gt;~ /trunk/profitmandi-cron/src/main/java/com/smartdukaan/cron/scheduled/CaptchaService.java&lt;br /&gt;</description><link>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2F%2Ftrunk%2Fprofitmandi-cron%2Fsrc%2Fmain%2Fjava%2Fcom%2Fsmartdukaan%2Fcron%2Fscheduled%2FCaptchaService.java&amp;rev=30935</link><guid>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2F%2Ftrunk%2Fprofitmandi-cron%2Fsrc%2Fmain%2Fjava%2Fcom%2Fsmartdukaan%2Fcron%2Fscheduled%2FCaptchaService.java&amp;rev=30935</guid></item>
<item><pubDate>Mon, 25 Apr 2022 17:41:27 +0530</pubDate><dc:creator>amit.gupta</dc:creator><title>Rev 30335 – Fixed vivo</title><description>&lt;div&gt;&lt;strong&gt;amit.gupta – 4 file(s) modified&lt;/strong&gt;&lt;br/&gt;Fixed vivo&lt;/div&gt;~ /trunk/profitmandi-cron/src/main/java/com/smartdukaan/cron/Application.java&lt;br /&gt;~ /trunk/profitmandi-cron/src/main/java/com/smartdukaan/cron/migrations/RunOnceTasks.java&lt;br /&gt;~ /trunk/profitmandi-cron/src/main/java/com/smartdukaan/cron/scheduled/CaptchaService.java&lt;br /&gt;~ /trunk/profitmandi-cron/src/main/java/com/smartdukaan/cron/scheduled/VivoImeiActivationService.java&lt;br /&gt;</description><link>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2F%2Ftrunk%2Fprofitmandi-cron%2Fsrc%2Fmain%2Fjava%2Fcom%2Fsmartdukaan%2Fcron%2Fscheduled%2FCaptchaService.java&amp;rev=30335</link><guid>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2F%2Ftrunk%2Fprofitmandi-cron%2Fsrc%2Fmain%2Fjava%2Fcom%2Fsmartdukaan%2Fcron%2Fscheduled%2FCaptchaService.java&amp;rev=30335</guid></item>
<item><pubDate>Mon, 04 Oct 2021 14:41:06 +0530</pubDate><dc:creator>amit.gupta</dc:creator><title>Rev 29337 – </title><description>&lt;div&gt;&lt;strong&gt;amit.gupta – 1 file(s) modified&lt;/strong&gt;&lt;br/&gt;&lt;/div&gt;+ /trunk/profitmandi-cron/src/main/java/com/smartdukaan/cron/scheduled/CaptchaService.java&lt;br /&gt;</description><link>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2F%2Ftrunk%2Fprofitmandi-cron%2Fsrc%2Fmain%2Fjava%2Fcom%2Fsmartdukaan%2Fcron%2Fscheduled%2FCaptchaService.java&amp;rev=29337</link><guid>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2F%2Ftrunk%2Fprofitmandi-cron%2Fsrc%2Fmain%2Fjava%2Fcom%2Fsmartdukaan%2Fcron%2Fscheduled%2FCaptchaService.java&amp;rev=29337</guid></item>
</channel></rss>