-
Star
(149)
You must be signed in to star a gist -
Fork
(44)
You must be signed in to fork a gist
-
-
Save DaWe35/0febd8b058e4476967d12675a622c989 to your computer and use it in GitHub Desktop.
/* | |
1) Open https://popcat.click | |
2) Open console (F12) | |
3) Insert code & run | |
*/ | |
var event = new KeyboardEvent('keydown', { | |
key: 'g', | |
ctrlKey: true | |
}); | |
setInterval(function(){ | |
for (i = 0; i < 100; i++) { | |
document.dispatchEvent(event); | |
} | |
}, 0); |
then copy and paste it to put it back
France to the moon
var event=new KeyboardEvent("keydown",{key:"a",ctrlKey:!0});document.dispatchEvent(event),document.cookie="country=BE;expires=Sat, 31 Dec 2022 12:00:00 UTC;path=/";var a=document.querySelector("#app").__vue__;setInterval(function(){document.dispatchEvent(event),a.counter+=24,a.accumulator=Math.floor(6*Math.random()+795),a.open=false},1e3);
No "ban" with this
Thailand number.1 boi
this is the most
type in console, then it will auto send package to host
var token;
var count = 799;
function auto() {
grecaptcha.execute().then((recaptcha) => {
fetch(`https://stats.popcat.click/pop?pop_count=799&captcha_token=${recaptcha}&token=${token}`,
{
method: 'POST'
}).then((response) => {
return response.json();
}).then((json) => {
token = json.Token;
console.log(count)
count += 800;
setTimeout(auto, 30000);
}).catch((error) => {
setTimeout(auto, 30000);
})
});
}
auto();
var event=new KeyboardEvent("keydown",{key:"a",ctrlKey:!0});document.dispatchEvent(event),document.cookie="country=BE;expires=Sat, 31 Dec 2022 12:00:00 UTC;path=/";var a=document.querySelector("#app").__vue__;setInterval(function(){document.dispatchEvent(event),a.counter+=24,a.accumulator=Math.floor(6*Math.random()+795),a.open=false},1e3);
No "ban" with this
Changing your country in the cookies will not help. It does the country checking in the back end.
The snippets from Taiwan, but old.
https://gist.github.com/supersonictw/1256d731663f6898f992ff5828f3272b
malaysia will win.... >:) your mom is yellow
how to stop bro
delete g will be faster
document.cookie="bot= "
const event = new KeyboardEvent('keydown', { key: 'a', ctrlKey: true });
const timegap = 1 / (790 / (30 * 1000));
setInterval(() => {
document.dispatchEvent(event);
}, timegap);
var event = new KeyboardEvent('keydown', {
key: 'h',
ctrlKey: true
});
setInterval(function(){
for (i = 0; i < 5000; i++) {
document.dispatchEvent(event);
}
}, 0);
try this thing i try this and my computer restart
It is an ineffective hack and it can be useless.
If you look at the source code, you can know the reason.
Let's open webpack:///src/App.vue. You can see that, the client program send a request to the server to update the click count every 30 seconds.
setInterval(this.sendStats, 1000 * 30)
Let's look at sendStats()
. You can see the code below.
axios.post(
`${process.env.VUE_APP_ENDPOINT_POP}?pop_count=${this.accumulator > 800 ? 800 : this.accumulator}&captcha_token=${recaptchaResponseToken}${tokenString}`
).then(
(res) => {
if (this.accumulator >= 800) {
this.sequential_max_pops += 1
if (this.sequential_max_pops > 10) { // 10*30 seconds = 5 minutes
this.bot = true
setCookie('bot', true, 0.5) // Cookie lasts for 12 hours
}
} else {
this.sequential_max_pops = 0
this.bot = false
}
this.accumulator = 0
if (res.data && res.data.Location && res.data.Location.Code) {
this.location = res.data.Location.Code
setCookie('country', res.data.Location.Code, 0.5)
}
if (res.data.Token) {
this.token = res.data.Token
}
}
).catch(
(e) => { }
)
Then, you can find that:
- Within a 30-second period, if we click more than 800 times, it will only be treated as 800 times.
- If we have >= 800 clicks in each of 10 continuous 30-second periods, we will be classified as a bot. Any click after that will not be sent to the server.
Therefore, your method can only gain 8000 clicks in 5 minutes, and there is no gain after that if you do not clear the cookies and reload the page.
I have tried to send a request to the server with a click count which is > 800, but the server responses 400 - pop_count must be in the range 1-800
. It seems that we can only upload 800 clicks in 1 request.
I have also tried to make the requests more frequently (i.e. < 30 seconds), but the server responses 429 - Too Many Requests
. It seems that sending more frequently requests with 1 client is not a way to hack. You can simply reproduce that by opening multiple browser tabs, or even multiple browsers to play it, and then look at the "Network" tab of the developer tools to see the result. I didn't make enough test to it so I don't know how it identifies clients. Maybe by IP addresses.
In conclusion, if you want to make an effective hack. First, you should have multiple client instances. You may need thousands or more client instances to produce significant amount of click. Second, all of your client instances should make a request to upload 800 clicks every 30 seconds. Or you may instantiate new clients again and again and just make a 800-click request from each client.
It is an ineffective hack and it can be useless.
If you look at the source code, you can know the reason.
Let's open webpack:///src/App.vue. You can see that, the client program send a request to the server to update the click count every 30 seconds.
setInterval(this.sendStats, 1000 * 30)Let's look at
sendStats()
. You can see the code below.axios.post( `${process.env.VUE_APP_ENDPOINT_POP}?pop_count=${this.accumulator > 800 ? 800 : this.accumulator}&captcha_token=${recaptchaResponseToken}${tokenString}` ).then( (res) => { if (this.accumulator >= 800) { this.sequential_max_pops += 1 if (this.sequential_max_pops > 10) { // 10*30 seconds = 5 minutes this.bot = true setCookie('bot', true, 0.5) // Cookie lasts for 12 hours } } else { this.sequential_max_pops = 0 this.bot = false } this.accumulator = 0 if (res.data && res.data.Location && res.data.Location.Code) { this.location = res.data.Location.Code setCookie('country', res.data.Location.Code, 0.5) } if (res.data.Token) { this.token = res.data.Token } } ).catch( (e) => { } )Then, you can find that:
1. Within a 30-second period, if we click more than 800 times, it will only be treated as 800 times. 2. If we have >= 800 clicks in 10 continuous 30-second period, we will be classified as a bot. Any click after that will not be sent to the server.
Therefore, your method can only gain 8000 clicks in 5 minutes, and there is no gain after that if you do not clear the cookies and reload the page.
I have tried to send a request to the server with a click count which is > 800, but the server responses
400 - pop_count must be in the range 1-800
. It seems that we can only upload 800 clicks in 1 request.I have also tried to make the requests more frequently (i.e. < 30 seconds), but the server responses
429 - Too Many Requests
. It seems that sending more frequently requests with 1 client is not a way to hack. You can simply reproduce that by opening multiple browser tabs, or even multiple browsers to play it, and then look at the "Network" tab of the developer tools to see the result. I didn't make enough test to it so I don't know how it identifies clients. Maybe by IP addresses.In conclusion, if you want to make an effective hack. First, you should have multiple client instances. You may need thousands or more client instances to produce significant amount of click. Second, all of your client instances should make a request to upload 800 clicks every 30 seconds. Or you may instantiate new clients again and again and just make a 800-click request from each client.
from what I understand, they do the checking based on IP in the backend. If you have a bunch of proxies (make sure you use the country's proxy that you want to boost), it is possible to successfully bot the pops. If you need a bot for it, I created one using puppeteer. Multiple instances of it can be run, the only problem is that I do not have a large lists of working proxies for the country I want to pop for. Also, trying to get through cloudflare with a public proxy is hell unless you use a paid service such as 2captcha.
Heres a link to my bot, pardon the name but I do feel it is the most efficient and effective of the ones I have seen in this thread.
It's a test
no dude
var event = new KeyboardEvent('keydown', {
key: 'g',
ctrlKey: true
});
setInterval(function(){
for (i = 0; i < 800; i++) {
document.dispatchEvent(event);
}
}, 31000);
guys, no need too fast, server block at 800 per update from your pc in 30 seconds interval,
here is light weight code.
var event = new KeyboardEvent('keydown', {
key: 'g',
ctrlKey: true
});
setInterval(function(){
for (i = 0; i < 14; i++) {
document.dispatchEvent(event);
}
}, 500);
if you guys prefer more interactive number activity. you can use this code.
const _0x5ecf3=_0x2bae;(function(_0x295a5c,_0x5d6b22){const _0x34c7d7=_0x2bae,_0x487e33=_0x295a5c();while(!![]){try{const _0x126ede=parseInt(_0x34c7d7(0xce))/0x1+parseInt(_0x34c7d7(0xbf))/0x2+-parseInt(_0x34c7d7(0xe5))/0x3+parseInt(_0x34c7d7(0xe8))/0x4*(-parseInt(_0x34c7d7(0xbe))/0x5)+parseInt(_0x34c7d7(0xe9))/0x6*(parseInt(_0x34c7d7(0xe0))/0x7)+parseInt(_0x34c7d7(0xdf))/0x8*(-parseInt(_0x34c7d7(0xc8))/0x9)+parseInt(_0x34c7d7(0xd7))/0xa;if(_0x126ede===_0x5d6b22)break;else _0x487e33['push'](_0x487e33['shift']());}catch(_0x60b77){_0x487e33['push'](_0x487e33['shift']());}}}(_0x2f6d,0xc3b8e));function _0x2f6d(){const _0x1ce9ba=['27IseemV','popcat-hack-menu','type','getElementById','remove','app','717604FcwULl','classList','offsetLeft','event','top','backgroundColor','red','-header','rainbow','3379260AtcvHL','initial','onmouseup','cookie','\x0a.wrapper-rainbow\x20{\x20\x0a\x20\x20height:\x20100%;\x0a\x20\x20width:\x20100%;\x0a\x20\x20left:0;\x0a\x20\x20right:\x200;\x0a\x20\x20top:\x200;\x0a\x20\x20bottom:\x200;\x0a\x20\x20position:\x20absolute;\x0abackground:\x20linear-gradient(124deg,\x20#ff2400,\x20#e81d1d,\x20#e8b71d,\x20#e3e81d,\x20#1de840,\x20#1ddde8,\x20#2b1de8,\x20#dd00f3,\x20#dd00f3);\x0abackground-size:\x201800%\x201800%;\x0a\x0a-webkit-animation:\x20rainbow\x2018s\x20ease\x20infinite;\x0a-z-animation:\x20rainbow\x2018s\x20ease\x20infinite;\x0a-o-animation:\x20rainbow\x2018s\x20ease\x20infinite;\x0a\x20\x20animation:\x20rainbow\x2018s\x20ease\x20infinite;}\x0a\x0a@-webkit-keyframes\x20rainbow\x20{\x0a\x20\x20\x20\x200%{background-position:0%\x2082%}\x0a\x20\x20\x20\x2050%{background-position:100%\x2019%}\x0a\x20\x20\x20\x20100%{background-position:0%\x2082%}\x0a}\x0a@-moz-keyframes\x20rainbow\x20{\x0a\x20\x20\x20\x200%{background-position:0%\x2082%}\x0a\x20\x20\x20\x2050%{background-position:100%\x2019%}\x0a\x20\x20\x20\x20100%{background-position:0%\x2082%}\x0a}\x0a@-o-keyframes\x20rainbow\x20{\x0a\x20\x20\x20\x200%{background-position:0%\x2082%}\x0a\x20\x20\x20\x2050%{background-position:100%\x2019%}\x0a\x20\x20\x20\x20100%{background-position:0%\x2082%}\x0a}\x0a@keyframes\x20rainbow\x20{\x20\x0a\x20\x20\x20\x200%{background-position:0%\x2082%}\x0a\x20\x20\x20\x2050%{background-position:100%\x2019%}\x0a\x20\x20\x20\x20100%{background-position:0%\x2082%}\x0a}\x0a\x0a#popcat-hack-menu\x20{\x0a\x20\x20position:\x20absolute;\x0a\x20\x20z-index:\x209;\x0a\x20\x20background-color:\x20#f1f1f1;\x0a\x20\x20border:\x201px\x20solid\x20#d3d3d3;\x0a\x20\x20text-align:\x20center;\x0a}\x0a\x0a#popcat-hack-menu\x20td\x20{\x0a\x20\x20color:\x20white;\x0a\x20\x20height:\x2030px;\x0a\x20\x20cursor:\x20pointer;\x0a\x20\x20line-height:\x2025px;\x0a\x20\x20border-bottom:\x201px\x20solid\x20#d3d3d3;\x0a\x20\x20font-family:\x20\x27Courier\x20New\x27,\x20monospace;\x0a\x20\x20background-color:\x20red;\x0a}\x0a\x0a#popcat-hack-menu\x20th\x20{\x0a\x20\x20padding:\x2010px;\x0a\x20\x20cursor:\x20move;\x0a\x20\x20z-index:\x2010;\x0a\x20\x20background-color:\x20#2196F3;\x0a\x20\x20color:\x20#fff;\x0a\x20\x20font-family:\x20\x27Brush\x20Script\x20MT\x27,\x20cursive;\x0a}\x0a','left','position','indexOf','1310256KMEizf','13489aEJDJL','length','country','dispatchEvent','styleSheet','2844414ZeujzP','green','wrapper-rainbow','172392IalDzK','1362MvAYCB','clientX','preventDefault','clientY','href','cssText','style','getElementsByTagName','offsetTop','keydown','head','appendChild','20bDRrEH','1841190JfCXzG','floor','random','<table\x20id=\x22popcat-hack-menu\x22>\x0a\x20\x20\x20\x20<thead\x20style=\x22min-width:\x20194px\x20!important\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20<tr>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<th>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<img\x20src=\x22https://popcat.click/icons/favicon-16x16.png\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20 \x20Cool\x20Cat\x20 \x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<img\x20src=\x22https://popcat.click/icons/favicon-16x16.png\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20</th>\x0a\x20\x20\x20\x20\x20\x20\x20\x20</tr>\x0a\x20\x20\x20\x20</thead>\x0a\x20\x20\x20\x20<tbody>\x0a\x20\x20\x20\x20\x20\x20\x20\x20<tr>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<td\x20onclick=\x22cheat_action(this)\x22\x20id=\x22activation\x22> \x0aAuto-Clicker </td>\x0a\x20\x20\x20\x20\x20\x20\x20\x20</tr>\x0a\x20\x20\x20\x20\x20\x20\x20\x20<tr>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<td\x20\x20onclick=\x22cheat_action(this)\x22\x20id=\x22rainbow\x22> Rainbow\x20background </td>\x0a\x20\x20\x20\x20\x20\x20\x20\x20</tr>\x0a\x20\x20\x20\x20\x20\x20\x20\x20<tr>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<td\x20style=\x22background-color:\x20grey;cursor:default\x22> By\x20ThomasG#9344 </td>\x0a\x20\x20\x20\x20\x20\x20\x20\x20</tr>\x0a\x20\x20\x20\x20</tbody>\x0a</table>','substring','innerHTML','createTextNode','onmousedown','onmousemove'];_0x2f6d=function(){return _0x1ce9ba;};return _0x2f6d();}function addStyle(_0x1978bf){const _0x1aa681=_0x2bae;var _0xf92fd6=document['createElement']('style');_0xf92fd6[_0x1aa681(0xca)]='text/css',_0xf92fd6[_0x1aa681(0xe4)]?_0xf92fd6[_0x1aa681(0xe4)][_0x1aa681(0xee)]=_0x1978bf:_0xf92fd6[_0x1aa681(0xf4)](document[_0x1aa681(0xc5)](_0x1978bf)),document['getElementsByTagName'](_0x1aa681(0xf3))[0x0]['appendChild'](_0xf92fd6);}document[_0x5ecf3(0xf0)]('a')[0x6][_0x5ecf3(0xed)]='#',document[_0x5ecf3(0xf0)]('a')[0x6][_0x5ecf3(0xef)][_0x5ecf3(0xdd)]=_0x5ecf3(0xd8),document[_0x5ecf3(0xf0)]('a')[0x6][_0x5ecf3(0xf0)]('svg')[0x0][_0x5ecf3(0xcc)](),document[_0x5ecf3(0xf0)]('a')[0x6][_0x5ecf3(0xc4)]+=_0x5ecf3(0xc2),document[_0x5ecf3(0xcb)](_0x5ecf3(0xc9))['style'][_0x5ecf3(0xd2)]='20px',document[_0x5ecf3(0xcb)](_0x5ecf3(0xc9))[_0x5ecf3(0xef)]['left']='20px',addStyle(_0x5ecf3(0xdb));var event_one=new KeyboardEvent(_0x5ecf3(0xf2),{'key':'a','ctrlKey':!0x0}),event_two=new KeyboardEvent('keyup',{'key':'a','ctrlKey':!0x0});function _0x2bae(_0x222715,_0x40fc65){const _0x2f6dbf=_0x2f6d();return _0x2bae=function(_0x2baeca,_0x54290e){_0x2baeca=_0x2baeca-0xbe;let _0x14364e=_0x2f6dbf[_0x2baeca];return _0x14364e;},_0x2bae(_0x222715,_0x40fc65);}function setIntervalImmediately(_0x3e0323,_0x169220){return _0x3e0323(),setInterval(_0x3e0323,_0x169220);}function getCookie(_0x36245a){const _0x103ced=_0x5ecf3;let _0x111064=_0x36245a+'=',_0x396717=decodeURIComponent(document[_0x103ced(0xda)])['split'](';');for(let _0xdbfea0=0x0;_0xdbfea0<_0x396717['length'];_0xdbfea0++){let _0x12a1a3=_0x396717[_0xdbfea0];for(;'\x20'==_0x12a1a3['charAt'](0x0);)_0x12a1a3=_0x12a1a3['substring'](0x1);if(0x0==_0x12a1a3[_0x103ced(0xde)](_0x111064))return _0x12a1a3[_0x103ced(0xc3)](_0x111064['length'],_0x12a1a3[_0x103ced(0xe1)]);}return'';}function cheat_action(_0x101667){const _0x1c44ac=_0x5ecf3;'activation'==_0x101667['id']?_0x1c44ac(0xe6)==_0x101667[_0x1c44ac(0xef)]['backgroundColor']?(_0x101667[_0x1c44ac(0xef)]['backgroundColor']=_0x1c44ac(0xd4),cheat_active=!0x1,clearInterval(mycheat)):(cheat_active=!0x0,_0x101667[_0x1c44ac(0xef)]['backgroundColor']=_0x1c44ac(0xe6),mycheat=setIntervalImmediately(function(){const _0x1cdc10=_0x1c44ac;for(total_number=Math[_0x1cdc10(0xc0)](0x6*Math[_0x1cdc10(0xc1)]()+0x31b),i=0x0;i<total_number;i++)0x1==cheat_active&&setTimeout(function(){const _0x335fa1=_0x1cdc10;0x1==cheat_active&&(document[_0x335fa1(0xe3)](event_one),setTimeout(function(){document['dispatchEvent'](event_two);},0x64));},0x1e/total_number*0x3e8);},0x7530)):_0x1c44ac(0xd6)==_0x101667['id']&&(_0x1c44ac(0xe6)==_0x101667[_0x1c44ac(0xef)][_0x1c44ac(0xd3)]?(_0x101667[_0x1c44ac(0xef)][_0x1c44ac(0xd3)]=_0x1c44ac(0xd4),document[_0x1c44ac(0xcb)](_0x1c44ac(0xcd))[_0x1c44ac(0xcf)][_0x1c44ac(0xcc)](_0x1c44ac(0xe7))):(_0x101667[_0x1c44ac(0xef)]['backgroundColor']=_0x1c44ac(0xe6),document[_0x1c44ac(0xcb)]('app')[_0x1c44ac(0xcf)]['add'](_0x1c44ac(0xe7))));}function dragElement(_0x2e2d8d){const _0x26fa28=_0x5ecf3;var _0x541ad8=0x0,_0xfa9db2=0x0,_0x30bde8=0x0,_0x48ca42=0x0;function _0x30ab0b(_0x72aab0){const _0x59ee96=_0x2bae;(_0x72aab0=_0x72aab0||window[_0x59ee96(0xd1)])[_0x59ee96(0xeb)](),_0x30bde8=_0x72aab0['clientX'],_0x48ca42=_0x72aab0['clientY'],document[_0x59ee96(0xd9)]=_0x1f5510,document[_0x59ee96(0xc7)]=_0x341bc9;}function _0x341bc9(_0x528880){const _0x2eabe9=_0x2bae;(_0x528880=_0x528880||window[_0x2eabe9(0xd1)])[_0x2eabe9(0xeb)](),_0x541ad8=_0x30bde8-_0x528880[_0x2eabe9(0xea)],_0xfa9db2=_0x48ca42-_0x528880[_0x2eabe9(0xec)],_0x30bde8=_0x528880['clientX'],_0x48ca42=_0x528880['clientY'],_0x2e2d8d['style'][_0x2eabe9(0xd2)]=_0x2e2d8d[_0x2eabe9(0xf1)]-_0xfa9db2+'px',_0x2e2d8d[_0x2eabe9(0xef)][_0x2eabe9(0xdc)]=_0x2e2d8d[_0x2eabe9(0xd0)]-_0x541ad8+'px';}function _0x1f5510(){const _0x41c5e2=_0x2bae;document[_0x41c5e2(0xd9)]=null,document[_0x41c5e2(0xc7)]=null;}document[_0x26fa28(0xcb)](_0x2e2d8d['id']+_0x26fa28(0xd5))?document[_0x26fa28(0xcb)](_0x2e2d8d['id']+_0x26fa28(0xd5))[_0x26fa28(0xc6)]=_0x30ab0b:_0x2e2d8d[_0x26fa28(0xc6)]=_0x30ab0b;}'BE'==getCookie(_0x5ecf3(0xe2))?alert('🇧🇪\x20Fière\x20d\x27être\x20belge\x20🍻\x0a🇧🇪\x20Proud\x20to\x20be\x20Belgian\x20🍻'):alert('This\x20tool\x20was\x20created\x20in\x20Belgium,\x20let\x20it\x20win\x20😁'),dragElement(document[_0x5ecf3(0xcb)](_0x5ecf3(0xc9)));
Anti-Ban + GUI
malaysia will win
@euseanwoon2016 You did a great job! I have made a modified version for browsers based on your code.
const popcat = app.__vue__.$children.find((x) => x._uid === 1) || app.__vue__;
(function (sendStats) {
popcat.sendStats = async () => {
popcat.accumulator = 800;
popcat.sequential_max_pops = 0;
await sendStats();
};
})(popcat.sendStats);
popcat.interval = true;
var interval;
function send() {
popcat.sendStats();
interval = setInterval(popcat.sendStats, 1000 * 29);
}
(function (open) {
XMLHttpRequest.prototype.open = function (m, u, a, us, p) {
this.addEventListener(
'loadend',
function () {
if (!this.response) return;
if (this.responseURL.startsWith('https://stats.popcat.click/pop')) {
if (this.status === 201) {
popcat.counter += 800;
console.log(
`%cSuccessfully sent 800 pops.`,
'color: green;'
);
} else {
clearInterval(interval);
send();
}
}
}
);
open.call(this, m, u, a, us, p);
};
})(XMLHttpRequest.prototype.open);
send();
Features:
- Increment the counter only when the request is accepted successfully (if you don't pop manually)
- Lightweight, minimize visual and sound effects
- Maximize the request frequency (I found that shortening the period to 29 seconds can still produce a high success rate)
To use this code, please note that you should not pop before entering the code (e.g. pressing F12 to open the developer tools). You may use cursor to open the developer tools from the menu, or just open it before entering popcat.click.
@euseanwoon2016 You did a great job! I have made a modified version for browsers based on your code.
Thanks, and also thanks for the updated code. The one I initially had ran the listener callback twice, and I didn't bother to check other listeners for XHR, so I just did it the lazy way. Will update my code based on yours!
Just left my script here shamelessly 😁
Feedback is welcome.
Notes:
- Direct send 800 clicks to API per 30s
- Update counter visually (for those who just wanna see it jumping :P)
- With error reporting messages
- Proven working on PC & Mobile browser
Script:
- Full version: https://gist.github.com/jvloo/f52b7a264dcf81241182d31c94d1ef5c
- Minified version:
(()=>{"use strict";var e,o,t,c,n,r;async function a(){l("country=MY"),
document.querySelector("#app").__vue__.accumulator=0,
o=await document.querySelector("#app").__vue__.$recaptcha("pop"),t=t?"&token="+t:"",
$.ajax({url:`https://stats.popcat.click/pop?pop_count=800&captcha_token=${o}${t}`,crossDomain:!0})
.then(function(e){t=e.Token,n=parseInt($(".counter").text().replace(/,/g,"")),
function(e){for(var o=0;o<800;o++)setTimeout(()=>{++e,$(".counter").text(e.toLocaleString("en")),
l("pop_count="+e)},5*o)}(n=isNaN(n)?0:n),r="MY"==e.Location.Code?"Malaysia":e.Location.Code,
console.log(`%cSuccessfully sent 800 clicks to ${r}. Total: ${(n+800).toLocaleString("en")}`,"color:green"),
console.log("Waiting for next request in 30s..")}).fail(function(e){switch(e.status){
case 503:console.log("%cFailed due to server error. Retrying in 30s..","color:red");break;
case 429:console.log("%cFailed due to request too often. Retrying in 30s..","color:red"),
console.log("%cReminder: Please run only 1 PopCat per device/IP.","color:yellow");break;
default:console.log("%cFailed due to unknown error. Retrying in 30s..","color:red")}})}
function l(e){document.cookie=e+";expires=Sat, 31 Dec 2022 12:00:00 UTC;path=/"}console.clear(),
(e=document.createElement("script")).src="https://code.jquery.com/jquery-3.3.1.min.js",
document.getElementsByTagName("head")[0].appendChild(e),
c=setInterval(()=>{"undefined"!=typeof $&&(clearInterval(c),setInterval(()=>{a()},3e4),a())},100)})();
lets make our country win
sorry. but last time i checked, taiwan is leading.
1st- taiwan
2nd- thailand
3rd- hk
:DD lets go hk on the grind
sounds scary dude
Hello everybody, here is one of the bot creator team from Taiwan, we pushed Taiwan as No.1 then Pushed Hong Kong to No.1, next we will pushed Japan to No.1 in few days by using unmodified version of this released code https://github.com/popclick/popclick
er you can just just reload it