-
Notifications
You must be signed in to change notification settings - Fork 7
/
base_macro_Av2.iim
158 lines (120 loc) · 5.38 KB
/
base_macro_Av2.iim
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
'date: 2017/09/24
'main_maintainer: Darkangeel_hd https://github.com/Darkangeel-hd
SET !EXTRACT_TEST_POPUP NO
SET !ERRORIGNORE YES
SET !TIMEOUT_PAGE 999
SET !TIMEOUT_STEP 999
'Single step mode (only for debug)
'SET !SINGLESTEP YES
'===== CONFIGURATION ====='
SET url http://freebitco.in/?r=1327941
'= Login settings ='
'Used when login-in by BTC address'
SET btc YOUR_BTC_ADDRESS
'Used when login-in by mail'
SET mail mail
'The password of your freebetco.in account'
SET pw pass
'= API KEY ='
'API key from 9kw.eu'
SET apikey API_KEY
'And priority (prio 1-20)
'Priority in our system like min. 0 to max. 20 (cost +0-20)
SET priority 0
'Set wait time for the requested captcha'
'Default is 300, increase if low amount workers'
SET Wait_9kw 300
'Set wait time for the next roll'
'Default is 3620, if fail to roll, 10'
SET Wait_nextRoll 3620
SET Wait_failRoll 10
'===== END OF CONFIG ====='
'Open the page'
TAB OPEN
TAB T=1
TAB CLOSEALLOTHERS
URL GOTO={{url}}
SET !TIMEOUT_PAGE 30
'Login in'
TAG POS=1 TYPE=A ATTR=TXT:LOGIN
TAG POS=1 TYPE=INPUT:TEXT FORM=ID:login_form ATTR=ID:login_form_btc_address CONTENT={{mail}}
SET !ENCRYPTION NO
TAG POS=1 TYPE=INPUT:PASSWORD FORM=ID:login_form ATTR=ID:login_form_password CONTENT={{pw}}
TAG POS=1 TYPE=BUTTON ATTR=ID:login_button
WAIT SECONDS=5
'Wait a random number (1 to 5) of seconds
SET WAIT_TM_0 EVAL("Math.floor(Math.random()*5 + 1);")
WAIT SECONDS={{WAIT_TM_0}}
'Save the captcha key and show the field for the answer
URL GOTO=javascript:(function(){var<SP>x<SP>=<SP>document.getElementById("g-recaptcha-response");x.style.display<SP>=<SP>"";})();
TAG POS=1 TYPE=DIV ATTR=CLASS:g-recaptcha EXTRACT=HTM
SET datasitekey EVAL("var sitekey = \"{{!EXTRACT}}\";var rx = new RegExp('sitekey=\"([^\"]+)\"','i'); var x = sitekey.match(rx)[1]; x;")
'Clean the !EXTRACT variable for the next task
SET !EXTRACT NULL
'Syntaxcheck: API Key, prio
SET API_KEY EVAL("var s=\"{{apikey}}\"; if(s.match(/^[a-zA-Z0-9]+$/) && s.length <= 50 && s.length >= 5) s; else MacroError(\"API Key is wrong.\")")
SET PRIORITY EVAL("var s=\"{{priority}}\", d = parseFloat(s); if(d >= 0 && d <= 20) d; else MacroError(\"Value(Prio) is not in the set range.\")")
SET pageurl EVAL("domain = \"{{!URLCURRENT}}\".split(\"://\")[1];domain.split(\"/\")[0];")
'Open a new tab, and go to 9kw.eu, and submit the captcha picture
TAB OPEN
TAB T=2
URL GOTO=http://www.9kw.eu/grafik/form_base64.html
TAG POS=1 TYPE=INPUT ATTR=NAME:apikey CONTENT={{apikey}}
'Priority in our system like min. 0 to max. 20 (cost +0-20)
TAG POS=1 TYPE=INPUT ATTR=NAME:prio CONTENT={{priority}}
'Options for the form. See more under http://www.9kw.eu/grafik/form_base64.html and http://www.9kw.eu/api.html
TAG POS=1 TYPE=INPUT:CHECKBOX FORM=ACTION:/index.cgi ATTR=NAME:selfsolve CONTENT=NO
TAG POS=1 TYPE=INPUT:CHECKBOX FORM=ACTION:/index.cgi ATTR=NAME:confirm CONTENT=NO
TAG POS=1 TYPE=INPUT:CHECKBOX FORM=ACTION:/index.cgi ATTR=NAME:base64 CONTENT=NO
TAG POS=1 TYPE=INPUT:CHECKBOX FORM=ACTION:/index.cgi ATTR=NAME:interactive CONTENT=YES
TAG POS=1 TYPE=INPUT:CHECKBOX FORM=ACTION:/index.cgi ATTR=NAME:case-sensitive CONTENT=NO
TAG POS=1 TYPE=INPUT:CHECKBOX FORM=ACTION:/index.cgi ATTR=NAME:nomd5 CONTENT=YES
TAG POS=1 TYPE=INPUT ATTR=NAME:maxtimeout CONTENT={{Wait_9kw}}
TAG POS=1 TYPE=INPUT ATTR=NAME:source CONTENT=imacros
TAG POS=1 TYPE=INPUT ATTR=NAME:oldsource CONTENT=recaptchav2
TAG POS=1 TYPE=INPUT ATTR=NAME:pageurl CONTENT={{pageurl}}
TAG POS=1 TYPE=INPUT ATTR=NAME:file-upload-01 CONTENT={{datasitekey}}
'Submit the formdata to 9kw.eu
TAG POS=1 TYPE=INPUT ATTR=TYPE:submit
SET !TIMEOUT_STEP {{Wait_9kw}}
'Extract the captchaid from your captcha submit
TAG POS=1 TYPE=INPUT ATTR=NAME:captchaid EXTRACT=TXT
SET captcha_ID {{!EXTRACT}}
'Clean the !EXTRACT variable for the next task
SET !EXTRACT NULL
'Extract the characters that are recoginzed from the picture of captcha.
TAG POS=1 TYPE=INPUT ATTR=NAME:result EXTRACT=TXT
'Step 4: Check the captcha answer (text or nothing like #EANF# = Extraction Anchor Not Found)
SET Answer EVAL("if (\"{{!EXTRACT}}\" == \"#EANF#\") {var x = \"\";} else {var x = \"{{!EXTRACT}}\";} x;")
'Clean the !EXTRACT variable for the next task
SET !EXTRACT NULL
TAB CLOSE
'Display extracted data (only for debug)
'PROMPT {{captcha_ID}}
'Fill the recognized characters to the verification box
TAB T=1
TAG POS=1 TYPE=TEXTAREA ATTR=ID:g-recaptcha-response CONTENT={{answer}}
WAIT SECONDS=5
TAG POS=1 TYPE=INPUT:SUBMIT ATTR=ID:free_play_form_button
'Check and send the captcha feedback back to the captcha service (OK:1, NotOK:2, EN: Right/False, DE: Richtig/Falsch)
SEARCH SOURCE=REGEXP:"(Captcha is incorrect|You win)" IGNORE_CASE=YES EXTRACT="$1"
SET Feedback {{!EXTRACT}}
'Display extracted data (only for debug)
'PROMPT {{!EXTRACT}}
'Clean the !EXTRACT variable
SET !EXTRACT NULL
SET Feedback EVAL("if (\"{{Feedback}}\" == \"Captcha is incorrect\") {var x = \"2\";} else {var x = \"1\";} x;")
TAB OPEN
TAB T=2
URL GOTO=http://www.9kw.eu/index.cgi?source=imacros&action=usercaptchacorrectback&apikey={{API_KEY}}&correct={{feedback}}&id={{captcha_ID}}
WAIT SECONDS=2
TAB CLOSE
TAB T=1
' Evaluate Roll results and set wait time for next roll or retry
WAIT SECONDS=5
SET Wait4Roll EVAL("if ( \"{{Feedback}}\" == 2) { var x = \"{{Wait_failRoll}}\";} else {var x = \"{{Wait_nextRoll}}\";} x;")
'Display wait time (only for debug)
''PROMPT {{Wait4Roll}}
'Wait till the countdown end to make loops easy'
'WAIT SECONDS={{Wait_nextRoll}}
WAIT SECONDS={{Wait4Roll}}