· 6 years ago · Dec 29, 2019, 07:48 PM
1<!-- 4193162522c76d88b449b1c31e161de3 --><!--hb|cc2f72bac52bef3bac2f95b1fa77f4bd|--><!DOCTYPE html>
2 <html>
3 <head>
4 <!-- Angular -->
5 <link rel="stylesheet" type="text/css" href="https://cdnjs.cloudflare.com/ajax/libs/angular-material/1.1.5/angular-material.min.css">
6 <!-- Theme -->
7 <link rel="stylesheet" type="text/css" href="assets/css/_.css">
8 <!-- Fonts -->
9 <link rel="stylesheet" type="text/css" href="https://fonts.googleapis.com/icon?family=Material+Icons">
10 <link rel="stylesheet" type="text/css" href="https://fonts.googleapis.com/css?family=Roboto">
11 <link rel="stylesheet" type="text/css" href="https://fonts.googleapis.com/css?family=Roboto+Condensed:400,700">
12 <link rel="stylesheet" type="text/css" href="https://fonts.googleapis.com/css?family=Titillium+Web:100,200,300,400,500,600,700">
13 <link rel="stylesheet" type="text/css" href="https://fonts.googleapis.com/css?family=Kanit:100,200,300,400,500,600,700">
14 <!-- JavaScript -->
15 <script type="text/javascript" src="https://cdn.jsdelivr.net/g/jquery@1,jquery.ui@1.10%28jquery.ui.core.min.js+jquery.ui.widget.min.js+jquery.ui.mouse.min.js+jquery.ui.sortable.min.js%29"></script>
16 <script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/angular.js/1.6.4/angular.min.js"></script>
17 <script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/angular.js/1.6.4/angular-animate.min.js"></script>
18 <script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/angular.js/1.6.4/angular-aria.min.js"></script>
19 <script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/angular.js/1.6.4/angular-messages.min.js"></script>
20 <script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/angular-sanitize/1.6.4/angular-sanitize.min.js"></script>
21 <script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/angular-material/1.1.5/angular-material.min.js"></script>
22 <script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/angular-ui-sortable/0.19.0/sortable.min.js"></script>
23 <script type="text/javascript" src="assets/js/angular-toastr.js"></script>
24 <script type="text/javascript" src="assets/js/sorttable.js"></script>
25
26 <!-- TopBar -->
27 <!-- todo: remove the need for z-index:1 and possibly add the bg as a topbar css class, do we need nogrow? -->
28 <style>
29 .topBar {
30 background: #43474c;
31 height: 36px;
32 /* md-whiteframe-2dp */
33 box-shadow: 0 1px 5px 0 rgba(0,0,0,.2), 0 2px 2px 0 rgba(0,0,0,.14), 0 3px 1px -2px rgba(0,0,0,.12);
34 padding-right: 10px;
35 z-index: 1;
36 }
37 </style>
38
39 <!-- Search Bar -->
40 <style>
41 .searchBar {
42 border-radius: 4px;
43 background: #191919;
44 height: 26px!important;
45 width: -webkit-fill-available;
46 margin: 0px 0px 0px 8px;
47 }
48 .searchBar > i {
49 font-size: 20px;
50 color: white;
51 background-color: #2f2f2f;
52 padding: 3px 3px 3px 5px;
53 border-radius: 4px 0px 0px 4px;
54 border-right: 1px solid #3e3e3e;
55 margin-right: 4px;
56 }
57 </style>
58
59 <!-- Highlighted Rows -->
60 <style>
61 .highlightedRow {
62 border: 2px solid #d1d1d1
63 }
64 </style>
65
66 <!-- Animated Spinner -->
67 <style>
68 .spinner {
69 width: 18px;
70 height: 18px;
71 position: relative;
72 margin-left: 6px;
73 }
74 .spinner > * {
75 width: 100%;
76 height: 100%;
77 border-radius: 50%;
78 background-color: #d0d0d0;
79 opacity: 0.6;
80 position: absolute;
81 top: 0;
82 left: 0;
83 animation: sk-bounce 2.0s infinite ease-in-out;
84 }
85 .spinner > div:nth-of-type(1) {
86 animation-delay: -1.0s;
87 }
88 @keyframes sk-bounce {
89 0%, 100% {
90 transform: scale(0.0);
91 } 50% {
92 transform: scale(1.0);
93 }
94 }
95 </style>
96
97 <!-- md-icon-button - override -->
98 <style>
99 .md-icon-button {
100 height: 26px!important;
101 width: 26px!important;
102 padding: 0px!important;
103 min-height: 24px;
104 margin: 0px 0px 0px 8px!important;
105 }
106 .md-icon-button > md-icon {
107 font-size: 1em;
108 color: rgba(255, 255, 255, 0.9);
109 }
110 </style>
111
112 <!-- Settings Rows -->
113 <style>
114 section {
115 z-index: 0;
116 background: #43474c;
117 color: rgba(255, 255, 255, 0.7);
118 font-size: 0.9em;
119 box-shadow: 0 1px 5px 0 rgba(0,0,0,.2), 0 2px 2px 0 rgba(0,0,0,.14), 0 3px 1px -2px rgba(0,0,0,.12);
120 }
121 section > .sectionItem {
122 border-right: 1px solid #202225;
123 background: rgba(0,0,0,0.12);
124 }
125 section > .sectionItem > md-input-container {
126 background: rgba(0,0,0,0.12);
127 }
128 section > .sectionItem > md-input-container > input,
129 section > .sectionItem > md-input-container > md-select {
130 padding-left: 4px;
131 }
132 section > .sectionItem > md-checkbox {
133 margin: 4px 8px;
134 }
135 section > .sectionItem > md-checkbox .md-label {
136 display: inline-block;
137 }
138 section p {
139 margin: 0px 8px;
140 font-size: 11.52px;
141 }
142 section md-checkbox .md-icon {
143 border-color: rgba(255, 255, 255, 0.68)!important;
144 }
145 </style>
146
147 <style>
148 .keywordPill {
149 background-color: #2196f3;
150 border-radius: 4px;
151 padding: 0px 4px;
152 margin-right: 4px;
153 }
154 .badRow {
155 background-color: rgba(205, 92, 92, 0.32);
156 }
157 .badRow:nth-child(even) {
158 background-color: rgba(205, 92, 92, 0.25)!important;
159 }
160 </style>
161 </head>
162 <body ng-app="app" id="bodytag" ng-controller="main-ctrl" oncontextmenu="return false">
163 <div id="SNIPRclose" onclick="var t=document.getElementById('SNIPRclose');t.style.visibility='hidden';t.style.opacity=0" ng-mousemove="gfunction.formDrag()" layout="column" layout-align="center center" style="font-family:'Roboto Condensed';background:rgba(0,0,0,0.65);padding:0px 4%;height:100vh;width:100vw;visibility:hidden;opacity:0;transition:opacity 0.4s ease-in-out;z-index:99999;position:absolute">
164 <h1 style="color:white;text-shadow:0px 6px 15px rgba(0,0,0,0.67)">Are you sure you want to close SNIPR?</h1>
165 <div style="background-color:#424242;border-radius:4px;padding:2px 8px;margin-top:4px">
166 <md-button onclick="globalObj.closeButton()" class="md-icon-button material-icons" style="margin-left:0px!important;background:transparent;margin:0px;margin-right:6px;height:26px;width:26px;padding:0px;min-height:24px;align-self:center;border:none">
167 <md-icon style="padding-left:initial;padding-right:initial;font-size:1em;color:limegreen">panorama_fish_eye</md-icon>
168 </md-button>
169 <md-button onclick="var t=document.getElementById('SNIPRclose');t.style.visibility='hidden';t.style.opacity=0" class="md-icon-button material-icons" style="background:transparent;margin:0px;margin-right:6px;height:26px;width:26px;padding:0px;min-height:24px;align-self:center;border:none">
170 <md-icon style="padding-left:initial;padding-right:initial;font-size:1em;color:indianred">close</md-icon>
171 </md-button>
172 </div>
173 </div>
174
175 <style>
176 #SNIPRSettings .md-errors-spacer {
177 display: block;
178 color: indianred;
179 }
180 #SNIPRSettings > div > button {
181 text-align: left;
182 width: 175px;
183 min-height: 28px;
184 line-height: 28px;
185 font-size: 0.6em;
186 border-radius: 4px;
187 color: white;
188 margin: 0px 8px 2px 0px;
189 }
190 #SNIPRSettings > div > button.settingActive {
191 background-color: rgba(158,158,158,0.2);
192 }
193 #SNIPRSettings > div > div > div {
194 padding-bottom: 4px;
195 margin-bottom: 4px;
196 border-bottom: 1px solid rgba(0,0,0,0.2);
197 }
198 #SNIPRSettings > div > div > div > h1 {
199 color: white;
200 font-weight: bold;
201 font-size: 1em;
202 margin-bottom: 2px;
203 }
204 #SNIPRSettings > div > div > div > h2 {
205 color: rgba(255,255,255,0.8);
206 font-size: 0.8em;
207 }
208 #SNIPRSettings > div > div > div > h5 {
209 color: rgba(255,255,255,0.6);
210 font-size: 0.6em;
211 }
212 #SNIPRSettings > div > div > div > md-input-container > md-select,
213 #SNIPRSettings > div > div > div > md-input-container > input {
214 padding-left: 6px;
215 background-color: rgba(0,0,0,0.3);
216 border-radius: 4px;
217 }
218 #SNIPRSettings > div > div > div > md-input-container > input {
219 width: 36px;
220 height: 21px;
221 }
222 </style>
223 <div id="SNIPRSettings" layout-fill layout="row" style="font-family:'Roboto Condensed';background:rgba(66,70,77,0.8);visibility:hidden;opacity:0;transition:opacity 0.4s ease-in-out;z-index:49;position:absolute">
224
225 <div flex="30" layout="column" layout-align="start end" style="padding:20px 0px;background:rgba(0,0,0,0.2);align-items:flex-end">
226 <md-button class="settingActive" onclick="document.getElementById('SNIPRSettingsAccountChecker').style.display='';document.getElementById('SNIPRSettingsEmailChecker').style.display='none';document.getElementById('SNIPRSettingsProxyChecker').style.display='none';document.getElementById('SNIPRSettingsProxyLeecher').style.display='none';document.getElementById('SNIPRSettingsActivate').style.display='none';document.getElementsByClassName('settingActive')[0].classList.remove('settingActive');this.classList.add('settingActive')">
227 ACCOUNT-CHECKER
228 </md-button>
229 <md-button onclick="document.getElementById('SNIPRSettingsAccountChecker').style.display='none';document.getElementById('SNIPRSettingsEmailChecker').style.display='';document.getElementById('SNIPRSettingsProxyChecker').style.display='none';document.getElementById('SNIPRSettingsProxyLeecher').style.display='none';document.getElementById('SNIPRSettingsActivate').style.display='none';document.getElementsByClassName('settingActive')[0].classList.remove('settingActive');this.classList.add('settingActive')">
230 EMAIL-CHECKER
231 </md-button>
232 <md-button onclick="document.getElementById('SNIPRSettingsAccountChecker').style.display='none';document.getElementById('SNIPRSettingsEmailChecker').style.display='none';document.getElementById('SNIPRSettingsProxyChecker').style.display='';document.getElementById('SNIPRSettingsProxyLeecher').style.display='none';document.getElementById('SNIPRSettingsActivate').style.display='none';document.getElementsByClassName('settingActive')[0].classList.remove('settingActive');this.classList.add('settingActive')">
233 PROXY-CHECKER
234 </md-button>
235 <md-button onclick="document.getElementById('SNIPRSettingsAccountChecker').style.display='none';document.getElementById('SNIPRSettingsEmailChecker').style.display='none';document.getElementById('SNIPRSettingsProxyChecker').style.display='none';document.getElementById('SNIPRSettingsProxyLeecher').style.display='';document.getElementById('SNIPRSettingsActivate').style.display='none';document.getElementsByClassName('settingActive')[0].classList.remove('settingActive');this.classList.add('settingActive')">
236 PROXY-LEECHER
237 </md-button>
238 <span flex></span>
239 <md-button id="settings_maxDevices" onclick="document.getElementById('SNIPRSettingsAccountChecker').style.display='none';document.getElementById('SNIPRSettingsEmailChecker').style.display='none';document.getElementById('SNIPRSettingsProxyChecker').style.display='none';document.getElementById('SNIPRSettingsProxyLeecher').style.display='none';document.getElementById('SNIPRSettingsActivate').style.display='';document.getElementsByClassName('settingActive')[0].classList.remove('settingActive');this.classList.add('settingActive')">
240 MAX DEVICES: 1
241 </md-button>
242
243 </div>
244 <div flex layout="column" layout-align="start start" style="background:transparent;padding:40px">
245
246 <div id="SNIPRSettingsAccountChecker">
247 <div>
248 <h1>THREADS</h1>
249 <h2>This defines how many Combos the Account-Checker can run simultaneously.</h2>
250 <md-input-container md-no-float>
251 <input type="number" ng-model="accountChecker.settings.Threads" ng-change="gfunction.setThreads(accountChecker.settings.Threads)" ng-disabled="accountChecker.functions.isChecking()" aria-label="Threads">
252 </md-input-container>
253 <h5 ng-show="accountChecker.functions.isChecking()">Cannot change threads while a profile is being used</h5>
254 <h5>default: 250</h5>
255 </div>
256 <div>
257 <h1>SMS-NOTIFICATIONS</h1>
258 <h2>Have SNIPR notify you via Pushbullet SMS when a profile finishes.</h2>
259 <md-checkbox ng-model="accountChecker.settings.smsNotifications" ng-change="accountChecker.functions.showSMSTokenDialog($event)" ng-bind="accountChecker.settings.smsNotifications ? 'Enabled - Click to Disable' : 'Disabled - Click to Enable'"></md-checkbox>
260 <h5>requires pushbullet api token - can be obtained for free from pushbullet.com</h5>
261 </div>
262 </div>
263
264 <div id="SNIPRSettingsEmailChecker" style="display:none">
265 <div>
266 <h1>THREADS</h1>
267 <h2>This defines how many Combos the Email-Checker can run simultaneously.</h2>
268 <md-input-container md-no-float>
269 <input type="number" ng-model="emailChecker.settings.Threads" ng-change="gfunction.setThreads(emailChecker.settings.Threads)" aria-label="Threads">
270 </md-input-container>
271 <h5>default: 250</h5>
272 </div>
273 <div>
274 <h1>SENT-SINCE</h1>
275 <h2>Fetch only emails sent-since the last specified amount of Days.</h2>
276 <md-input-container md-no-float>
277 <input type="number" ng-model="emailChecker.settings.SentSince" ng-change="emailChecker.functions.updateSentSince(emailChecker.settings.SentSince)" aria-label="Sent-Since">
278 </md-input-container>
279 <h5>default: 30</h5>
280 </div>
281 </div>
282
283 <div id="SNIPRSettingsProxyChecker" style="display:none">
284 <div>
285 <h1>THREADS</h1>
286 <h2>This defines how many Proxies the Proxy-Checker can run simultaneously.</h2>
287 <md-input-container md-no-float>
288 <input type="number" ng-model="proxyChecker.Threads" ng-change="gfunction.setThreads(proxyChecker.Threads)" aria-label="Threads">
289 </md-input-container>
290 <h5>default: 250</h5>
291 </div>
292 <div>
293 <h1>PROXY-TYPE</h1>
294 <h2>Proxy Protocol to try and connect with.</h2>
295 <md-input-container md-no-float>
296 <md-select ng-model="proxyChecker.ProxyType" ng-change="gfunction.setProxyType(proxyChecker.ProxyType)" aria-label="Proxy Type">
297 <md-option value="0">HTTP/s</md-option>
298 <md-option value="1">SOCKS4</md-option>
299 <md-option value="2">SOCKS5</md-option>
300 </md-select>
301 </md-input-container>
302 <h5>default: HTTP/s</h5>
303 </div>
304 </div>
305
306 <div id="SNIPRSettingsProxyLeecher" style="display:none">
307 <div>
308 <h1>THREADS</h1>
309 <h2>This defines how many Sources the Proxy-Leecher can run simultaneously.</h2>
310 <md-input-container md-no-float>
311 <input type="number" ng-model="proxyLeecher.settings.Threads" ng-change="gfunction.setThreads(proxyLeecher.settings.Threads)" aria-label="Threads">
312 </md-input-container>
313 <h5>default: 250</h5>
314 </div>
315 </div>
316
317 <div id="SNIPRSettingsActivate" style="display:none" layout-fill>
318 <div layout-fill layout="column" layout-align="center center">
319 <h1>Need to run SNIPR on more devices? Activate another Key to increase Concurrent-Device Limits!</h1>
320 <h2>The Concurrent Device Limit affects the amount of Devices you can have running SNIPR at the same time.</h2>
321 <md-input-container md-no-float style="margin:8px">
322 <input placeholder="Activation Code..." ng-model="activateCode" type="text" style="width:300px;height:initial">
323 </md-input-container>
324 <md-button ng-click="activate()" ng-disabled="activateCode==''" class="md-raised" md-colors="{background:!activateCode?'none':'blue'}" style="margin-bottom:6px">ACTIVATE</md-button>
325 <h5>Each activation increases the limit by 1 device.</h5>
326 </div>
327 </div>
328
329 </div>
330 <div layout="column" layout-align="start start" style="padding:20px 20px 0px 0px;background:transparent">
331
332 <div style="background-color:#3c3c3c;border-radius:50%;border:1px solid white">
333 <md-button onclick="var t=document.getElementById('SNIPRSettings');t.style.visibility='hidden';t.style.opacity=0" class="md-icon-button material-icons" style="margin-left:0px!important;background:transparent;margin:0px;margin-right:6px;height:26px;width:26px;padding:0px;min-height:24px;align-self:center;border:none">
334 <md-icon style="padding-left:initial;padding-right:initial;font-size:1em;color:white">close</md-icon>
335 </md-button>
336 </div>
337
338 </div>
339
340 </div>
341
342 <div style="display:initial" layout-fill layout="column" flex ng-cloak>
343 <div layout-fill layout="column" flex>
344
345 <div layout="row" layout-align="start center" id="control-box">
346 <img ng-mousemove="gfunction.formDrag()" src="https://snipr.gg/icon.png"></img>
347 <span ng-mousemove="gfunction.formDrag()" layout="column" layout-align="center start">
348 <h5>SNIPR</h5>
349 <h5 id="version">...</h5>
350 </span><button id="tab_accountChecker" class="navButtonActive" onclick="document.getElementsByClassName('navButtonActive')[0].classList.remove('navButtonActive');this.classList.add('navButtonActive')" ng-click="openedTab='accountChecker'">
351 Account-Checker
352 </button><button id="tab_profileCreator" onclick="document.getElementsByClassName('navButtonActive')[0].classList.remove('navButtonActive');this.classList.add('navButtonActive')" ng-click="openedTab='profileCreator'">
353 Profile-Creator
354 </button><button id="tab_emailChecker" onclick="document.getElementsByClassName('navButtonActive')[0].classList.remove('navButtonActive');this.classList.add('navButtonActive')" ng-click="openedTab='emailChecker'">
355 Email-Checker
356 </button><button id="tab_proxyChecker" onclick="document.getElementsByClassName('navButtonActive')[0].classList.remove('navButtonActive');this.classList.add('navButtonActive')" ng-click="openedTab='proxyChecker'">
357 Proxy-Checker
358 </button><button id="tab_proxyLeecher" onclick="document.getElementsByClassName('navButtonActive')[0].classList.remove('navButtonActive');this.classList.add('navButtonActive')" ng-click="openedTab='proxyLeecher'">
359 Proxy-Leecher
360 </button><button id="tab_comboTools" onclick="document.getElementsByClassName('navButtonActive')[0].classList.remove('navButtonActive');this.classList.add('navButtonActive')" ng-click="openedTab='comboTools'">
361 Combo-Tools
362 </button><button id="tab_hashcat" onclick="document.getElementsByClassName('navButtonActive')[0].classList.remove('navButtonActive');this.classList.add('navButtonActive')" ng-click="openedTab='hashcat'">
363 Hashcat
364 </button><span ng-mousemove="gfunction.formDrag()" style="flex:1;height:36px"></span>
365 <button ng-click="gfunction.openSupport()">SUPPORT</button>
366 <div onclick="var t=document.getElementById('SNIPRSettings');t.style.visibility='visible';t.style.opacity=1">settings</div>
367 <div onclick="globalObj.minimizeButton()">remove</div>
368 <div ng-click="gfunction.maximize($event)">fullscreen</div>
369 <div onclick="var t=document.getElementById('SNIPRclose');t.style.visibility='';t.style.opacity=''">close</div>
370 </div>
371 <div flex ng-init="openedTab='accountChecker'"><!--#region Account Checker-->
372<div layout="column" style="height:100%" ng-show="openedTab=='accountChecker'">
373
374 <!--#region TopBar-->
375 <div layout="row" layout-align="center center" class="topBar" id="accountChecker_topBar">
376
377 <!-- Back Button -->
378 <md-button id="accountChecker_topBar_buttons_back" ng-show="!accountChecker.settings.showHits||accountChecker.settings.showHistory||accountChecker.settings.showDebugger" ng-click="accountChecker.settings.showDebugger?accountChecker.settings.showDebugger=false:accountChecker.settings.showHistory?accountChecker.settings.showHistory=false:!accountChecker.settings.showHits?accountChecker.settings.showHits=true:null" class="md-icon-button material-icons">
379 <md-icon>arrow_back</md-icon>
380 </md-button>
381
382 <!-- Search -->
383 <div flex layout="row" layout-align="center center" class="searchBar">
384 <i class="material-icons">search</i>
385 <md-input-container flex md-no-float>
386 <input placeholder="{{accountChecker.settings.showDebugger?'Debugger':accountChecker.settings.showHistory?'History':accountChecker.settings.showHits?'Hits':'Profiles'}}" ng-model="accountChecker.settings.searchTerm[(accountChecker.settings.showHistory?'accountChecker_History':accountChecker.settings.showHits?'accountChecker_Hits':'profiles')]" ng-change="accountChecker.functions.search(accountChecker.settings.searchTerm[(accountChecker.settings.showHistory?'accountChecker_History':accountChecker.settings.showHits?'accountChecker_Hits':'profiles')], (accountChecker.settings.showHistory?'accountChecker_History':accountChecker.settings.showHits?'accountChecker_Hits':'profiles'))">
387 </md-input-container>
388 </div>
389
390 <!-- Profiles Dropdown + Pagination -->
391 <div ng-show="accountChecker.settings.showHits&&!accountChecker.settings.showHistory&&!accountChecker.settings.showDebugger&&accountChecker.settings.checkingProfile.length!=0&&accountChecker.functions.isChecking()" layout="row" layout-align="center center" style="background-color:#191919;border-radius:4px;margin-left:8px">
392
393 <md-input-container class="md2-select" md-no-float style="color:white">
394 <md-select ng-model="accountChecker.settings.profileTable" aria-label="Account-Checker Profile" style="background:#191919;border-radius:4px;padding-left:6px;margin-left:8px;height:26px;align-items:center">
395 <md-option ng-repeat="c in accountChecker.settings.checkingProfile" value="{{c}}" ng-bind="c"></md-option>
396 </md-select>
397 </md-input-container>
398
399 <span ng-repeat="ProfileName in accountChecker.settings.checkingProfile" ng-show="accountChecker.settings.profileTable==ProfileName" layout="row" layout-align="center center">
400 <md-button class="md-icon-button material-icons" ng-click="accountChecker.functions.changePage('accountChecker_Hits', false)" style="margin-left:0px!important">
401 <md-icon>keyboard_arrow_left</md-icon>
402 </md-button>
403 <h6 style="color:rgba(255,255,255,0.8);font-weight:bold">
404 <span id="accountChecker_Hits_pagination_curr_{{::ProfileName}}">1</span>
405 <span style="color:#5a5a5a">/</span>
406 <span id="accountChecker_Hits_pagination_total_{{::ProfileName}}">1</span>
407 </h6>
408 <md-button class="md-icon-button material-icons" ng-click="accountChecker.functions.changePage('accountChecker_Hits', true)" style="margin-left:0px!important">
409 <md-icon>keyboard_arrow_right</md-icon>
410 </md-button>
411 </span>
412
413 </div>
414
415 <!-- Profile Order -->
416 <md-input-container class="md2-select" ng-show="!accountChecker.settings.showHits&&!accountChecker.settings.showHistory" md-no-float style="color:white;background-color:#191919;border-radius:4px;margin-left:8px">
417 <md-select ng-model="accountChecker.settings.profileOrder" ng-change="accountChecker.functions.profileOrder(accountChecker.settings.profileOrder)" aria-label="Proxy-Checker Country Code" style="background:#191919;border-radius:4px;padding-left:6px;margin-left:8px;height:26px;align-items:center">
418 <md-option value="asc" ng-selected="true">Ascending</md-option>
419 <md-option value="desc">Descending</md-option>
420 <md-option value="mod">Last Modified</md-option>
421 </md-select>
422 </md-input-container>
423
424 <!-- History View -->
425 <md-button ng-show="!accountChecker.settings.showHistory" ng-click="accountChecker.functions.loadHistory()" class="md-icon-button material-icons">
426 <md-icon>history</md-icon>
427 </md-button>
428
429 <!-- History View's Action Buttons -->
430 <span layout="row" layout-align="center center" ng-show="accountChecker.settings.showHistory">
431
432 <md-input-container class="md2-select" md-no-float style="color:white">
433 <md-select ng-model="history.settings.target" ng-change="history.functions.filterProfile(history.settings.target)" aria-label="Target" style="background:#191919;border-radius:4px;padding-left:6px;margin-left:8px;height:26px;align-items:center">
434 <md-option value="*" ng-selected="true">All Targets</md-option>
435 <md-option ng-repeat="c in historyProfiles()" value="{{c}}" ng-bind="c"></md-option>
436 </md-select>
437 </md-input-container>
438
439 <span id="accountChecker_History_pagination" layout="row" layout-align="center center" style="background-color:#191919;border-radius:4px;margin-left:8px">
440 <md-button class="md-icon-button material-icons" ng-click="accountChecker.functions.changePage('accountChecker_History', false)" style="margin-left:0px!important">
441 <md-icon>keyboard_arrow_left</md-icon>
442 </md-button>
443 <h6 style="color:rgba(255,255,255,0.8);font-weight:bold">
444 <span id="accountChecker_History_pagination_curr">1</span>
445 <span style="color:#5a5a5a">/</span>
446 <span id="accountChecker_History_pagination_total">1</span>
447 </h6>
448 <md-button class="md-icon-button material-icons" ng-click="accountChecker.functions.changePage('accountChecker_History', true)" style="margin-left:0px!important">
449 <md-icon>keyboard_arrow_right</md-icon>
450 </md-button>
451 </span>
452
453 <md-menu style="align-self:center">
454 <md-button class="md-icon-button material-icons" ng-click="gfunction.openMdMenu($mdMenu, $event)" md-menu-origin style="margin:0px 0px 0px 8px!important">
455 <md-icon style="padding-left:initial;padding-right:initial;font-size:1em;color:rgba(255,255,255,0.9)">
456 save
457 </md-icon>
458 </md-button>
459 <md-menu-content width="4">
460 <md-menu-item>
461 <md-button ng-click="history.functions.saveHistory('accountChecker', true, history.settings.target)">Save</md-button>
462 </md-menu-item>
463 <md-menu-item>
464 <md-button ng-click="history.functions.saveHistory('accountChecker', false, history.settings.target)">Save without Capture</md-button>
465 </md-menu-item>
466 </md-menu-content>
467 </md-menu>
468 <md-button ng-click="accountChecker.functions.clearHistory()" class="md-icon-button material-icons">
469 <md-icon>close</md-icon>
470 </md-button>
471
472 </span>
473 <!--#endregion-->
474
475 <!-- Debugger View -->
476 <md-button id="accountChecker_debugButton" ng-show="accountChecker.settings.showHits&&!accountChecker.settings.showHistory&&!accountChecker.settings.showDebugger" ng-click="accountChecker.settings.showDebugger=true;$event.currentTarget.style.background=''" class="md-icon-button material-icons">
477 <md-icon>bug_report</md-icon>
478 </md-button>
479
480 <!-- Hits View -->
481 <md-button id="accountChecker_topBar_buttons_hits" ng-show="accountChecker.settings.showHits&&!accountChecker.settings.showHistory" ng-click="accountChecker.settings.showHits=false" class="md-icon-button material-icons">
482 <md-icon>add_box</md-icon>
483 </md-button>
484
485 </div>
486 <!--#endregion-->
487
488
489
490 <!--#region History Table-->
491 <div flex layout="column" ng-show="accountChecker.settings.showHistory" style="overflow:auto">
492 <table class="sortable">
493 <thead>
494 <tr>
495 <th class="sorttable_numeric">#</th>
496 <th class="sorttable_numeric">Date</th>
497 <th>Combo</th>
498 <th>Target</th>
499 <th>Capture</th>
500 </tr>
501 </thead>
502 <tbody id="accountChecker_History_TableBody">
503 </tbody>
504 </table>
505 </div>
506 <!--#endregion-->
507
508 <!--#region Debug Table-->
509 <div flex layout="column" ng-show="accountChecker.settings.showDebugger" style="overflow:auto">
510 <table class="sortable">
511 <thead>
512 <tr>
513 <th class="sorttable_numeric">Date</th>
514 <th>Error</th>
515 <th>Target</th>
516 <th>Combo</th>
517 <th>Request #</th>
518 </tr>
519 </thead>
520 <tbody id="accountDebuggerTableBody">
521 </tbody>
522 </table>
523 </div>
524 <!--#endregion-->
525
526 <div flex layout="column" ng-show="!accountChecker.settings.showHistory&&!accountChecker.settings.showDebugger" style="overflow-y:auto">
527
528 <!--#region Hits View-->
529 <div flex layout="column" ng-show="accountChecker.settings.showHits">
530
531 <!--#region Hits Table-->
532 <div flex style="overflow:auto">
533 <div layout-fill layout="column" layout-align="center center" ng-show="!accountChecker.functions.isChecking()" style="color:#d4d4d4">
534 <h2 layout="row" layout-align="center center" style="width:100%;text-align:center;background-color:rgba(255,255,255,0.14);padding:10px">Click <i class="material-icons" style="margin:0px 4px 0px 4px">add_box</i> above to load a Profile</h2>
535 </div>
536 <table ng-repeat="ProfileName in accountChecker.settings.checkingProfile" ng-show="accountChecker.settings.profileTable==ProfileName" class="sortable">
537 <thead>
538 <tr>
539 <th class="sorttable_numeric">#</th>
540 <th>Combo</th>
541 <th>Capture</th>
542 </tr>
543 </thead>
544 <tbody id="accountChecker_Hits_TableBody_{{::ProfileName}}"></tbody>
545 </table>
546
547 </div>
548
549 <!--#endregion-->
550
551 <!--#region Profile-Stats Row-->
552 <span layout="column" ng-repeat="ProfileName in accountChecker.settings.checkingProfile" style="border-top:1px solid #202225">
553
554 <div layout="row" layout-align="end center" style="display:none;color:white;padding:4px;background-image:linear-gradient(to right,#f89140,#e17724)">
555 <span id="accountChecker_profile_note_{{::ProfileName}}" style="font-size:0.7em;font-family:monospace"></span>
556 <i class="material-icons" style="font-size:1.0em;margin-left:4px">notes</i>
557 </div>
558
559 <div layout="row" layout-align="start center" style="height:35px;background:#36393e;color:rgba(255, 255, 255, 0.7);font-size:0.9em;box-shadow:0 2px 4px 1px rgba(0,0,0,.2),0 4px 5px 2px rgba(0,0,0,.14),0 1px 10px 2px rgba(0,0,0,.12);z-index:0">
560
561 <h5 id="accountChecker_idle_block_{{::ProfileName}}" style="padding:2px 5px;margin:0px 6px;border-radius:4px;background-color:#191919">Idle...</h5>
562
563 <!--#region Profile Stats-->
564 <div layout="column" class="{{block=='checked'?'layout-align-center-center':''}}" id="accountChecker_{{::block}}_block_{{::ProfileName}}" style="font-size:12px;font-family:monospace;padding:{{block=='checked'?'0px 6px':'1px 4px'}};display:none;border-radius:2px;margin-{{block=='checked'?'right':'left'}}:4px;background:{{block=='checked'?'#2b2e32':block=='activeProxies'?'#2b2e32':block=='hits'?'#4CAF50':block=='invalid'?'#03A9F4':'indianred'}}{{block=='checked'?';height:100%':''}}" ng-repeat="block in ['checked', 'activeProxies', 'hits', 'invalid', 'retries']">
565 <md-tooltip md-direction="top" ng-bind="(block.charAt(0).toUpperCase()+block.slice(1)) + ' - ' + (block=='checked'?'This displayed how many are checked and how many total combos were loaded.':block=='activeProxies'?'This displays your Active/Disabled Proxies. When they are Red (Disabled) they have been hit with a Ban Key or are being used. Green is when they are unused and ready to go.':block=='hits'?'Valid Checks :o':block=='invalid'?'Invalid Checks :(':'These are Checks that failed in some way. It could be caused by a lot of things including General Connection Issues, Saturated Proxies, Hitting Ban/Retry Keys, Getting IP-Banned, Server Errors and tons more :/')"></md-tooltip>
566 <div layout="row" style="font-size:inherit" layout-align="center-center">
567 <i ng-if="block!='checked'" class="material-icons" aria-label="stat-icon" style="font-size:inherit;margin-right:4px">{{block=='hits'?'check':block=='invalid'?'close':'priority_high'}}</i>
568 <span id="accountChecker_{{::block}}_{{::ProfileName}}" ng-style="block=='activeProxies' && {'color':'greenyellow'}">0</span><span ng-if="block=='checked'">/{{accountChecker.settings.totalCombos[ProfileName]||0}}</span><span ng-if="block=='activeProxies'">/<span id="accountChecker_totalProxies_{{::ProfileName}}">0</span></span>
569 </div>
570 <div style="font-size:11px" ng-if="block=='checked'">
571 <span id="accountChecker_cpm_block_{{::ProfileName}}">(<span id="accountChecker_cpm_{{::ProfileName}}">...</span>/pm)</span>
572 </div>
573 </div>
574 <!--#endregion-->
575
576 <!--#region "Profile - Filename"-->
577 <div flex layout="column" style="font-size:0.8em;height:100%;padding:4px 5px;background:-webkit-linear-gradient(left,#36393e,#171717)">
578 <div flex style="text-align:right">
579 <span id="accountChecker_profile_title_{{::ProfileName}}" ng-bind="::ProfileName">—</span>
580 </div>
581 <div flex style="font-size:0.8em;text-align:right">
582 <span id="accountChecker_profile_desc_{{::ProfileName}}" ng-bind="(accountChecker.settings.comboType[ProfileName]=='Email'?'Email':accountChecker.settings.comboType[ProfileName]=='Username'?'Username':accountChecker.settings.comboType[ProfileName]=='Email/Username'?'Email/Username':accountChecker.settings.comboType[ProfileName])">—</span>
583 </div>
584 </div>
585 <!--#endregion-->
586
587 <!--#region Buttons-->
588
589 <div layout="row" layout-align="center center" style="margin-right:8px">
590
591 <!--#region ProfileType-->
592 <md-input-container ng-show="!accountChecker.settings.checking[ProfileName]" md-no-float style="margin-left:8px">
593
594 <md-select style="padding-left:8px" ng-model="accountChecker.settings.profileType[ProfileName]" aria-label="Proxy Type">
595 <md-option value="0" ng-selected="true">{{!accountChecker.settings.usesProxies[ProfileName]?'Proxyless':'Proxies'}}</md-option>
596 <md-option value="1" ng-show="!accountChecker.settings.usesProxies[ProfileName]">Force Proxies</md-option>
597 <md-option value="2" ng-show="accountChecker.settings.usesProxies[ProfileName]">Force Proxyless</md-option>
598 </md-select>
599
600 </md-input-container>
601 <!--#endregion-->
602
603 <!--#region Proxy-Type-->
604 <md-input-container ng-show="accountChecker.settings.profileType[ProfileName]=='1'||accountChecker.settings.profileType[ProfileName]=='0'&&accountChecker.settings.usesProxies[ProfileName]" md-no-float style="margin-left:8px">
605 <md-select ng-model="accountChecker.settings.ProxyType[ProfileName]" ng-init="accountChecker.settings.ProxyType[ProfileName]=accountChecker.settings.lastUsedProxyType" ng-change="accountChecker.functions.setProxyType(ProfileName)" aria-label="Proxy-Type">
606 <md-option value="HTTP">HTTP/s</md-option>
607 <md-option value="SOCKS4">SOCKS4</md-option>
608 <md-option value="SOCKS5">SOCKS5</md-option>
609 </md-select>
610 </md-input-container>
611 <!--#endregion-->
612
613 <md-checkbox ng-show="!accountChecker.settings.checking[ProfileName]&&accountChecker.settings.usesUselessKey[ProfileName]" ng-model="accountChecker.settings.UseUselessKey[ProfileName]">Ignore "Useless" Hits</md-checkbox>
614
615 <md-menu ng-if="accountChecker.settings.profileType[ProfileName]=='1'||accountChecker.settings.profileType[ProfileName]=='0'&&accountChecker.settings.usesProxies[ProfileName]">
616 <md-button ng-click="gfunction.openMdMenu($mdMenu, $event)" ng-right-click="accountChecker.functions.updateProxies(ProfileName, true)" class="md-icon-button material-icons" style="background:transparent;margin:0px;margin-right:6px;height:26px;width:26px;padding:0px;min-height:24px;align-self:center;border:none" md-menu-origin>
617 <md-icon style="padding-left:initial;padding-right:initial;font-size:1em;color:rgba(255,255,255,0.9)">link</md-icon>
618 </md-button>
619 <md-menu-content width="5">
620 <md-menu-item>
621 <md-button ng-click="accountChecker.functions.updateProxies(ProfileName, false)" ng-right-click="accountChecker.functions.updateProxies(ProfileName, true)" ng-bind="'File...'"></md-button>
622 </md-menu-item>
623 <md-menu-item>
624 <md-button ng-click="accountChecker.functions.proxyBot(ProfileName)" ng-bind="'Grab from Proxy-Grabber every 2 hours'"></md-button>
625 </md-menu-item>
626 <md-menu-item>
627 <md-button ng-click="accountChecker.functions.proxyBotUrl(ProfileName)" ng-bind="'Grab from Url every 2 hours'"></md-button>
628 </md-menu-item>
629 </md-menu-content>
630 </md-menu>
631
632 <md-button ng-click="accountChecker.functions.startChecking(ProfileName)" ng-show="!accountChecker.settings.checking[ProfileName]" class="md-icon-button material-icons" style="background:transparent;margin:0px;margin-right:6px;height:26px;width:26px;padding:0px;min-height:24px;align-self:center;border:none">
633 <md-icon style="padding-left:initial;padding-right:initial;font-size:1em;color:rgba(255,255,255,0.9)">play_arrow</md-icon>
634 </md-button>
635
636 <md-menu>
637 <md-button ng-show="accountChecker.settings.checking[ProfileName] && !accountChecker.settings.finished[ProfileName]" ng-click="gfunction.openMdMenu($mdMenu, $event)" class="md-icon-button material-icons" style="background:transparent;margin:0px;margin-right:6px;height:26px;width:26px;padding:0px;min-height:24px;align-self:center;border:none" md-menu-origin>
638 <md-icon style="padding-left:initial;padding-right:initial;font-size:1em;color:rgba(255,255,255,0.9)">stop</md-icon>
639 </md-button>
640 <md-menu-content width="5">
641 <md-menu-item>
642 <md-button ng-click="accountChecker.functions.stop(ProfileName)">Stop</md-button>
643 </md-menu-item>
644 <md-menu-item>
645 <md-button ng-click="accountChecker.functions.saveRemaining(ProfileName)">Stop and Save Remaining Combos</md-button>
646 </md-menu-item>
647 </md-menu-content>
648 </md-menu>
649
650 <md-button ng-show="!accountChecker.settings.checking[ProfileName] || accountChecker.settings.finished[ProfileName]" ng-click="accountChecker.functions.unloadProfile(ProfileName, false)" class="md-icon-button material-icons" style="background:transparent;margin:0px;margin-right:6px;height:26px;width:26px;padding:0px;min-height:24px;align-self:center;border:none">
651 <md-icon style="padding-left:initial;padding-right:initial;font-size:1em;color:rgba(255,255,255,0.9)">close</md-icon>
652 </md-button>
653
654
655 <md-button ng-click="accountChecker.settings.finished[ProfileName] ? accountChecker.functions.reloadProfile(ProfileName) : accountChecker.settings.paused[ProfileName] ? accountChecker.functions.resume(ProfileName) : accountChecker.functions.pause(ProfileName)" ng-show="accountChecker.settings.checking[ProfileName]" class="md-icon-button material-icons" style="background:transparent;margin:0px;margin-right:6px;height:26px;width:26px;padding:0px;min-height:24px;align-self:center;border:none">
656 <md-icon style="padding-left:initial;padding-right:initial;font-size:1em;color:rgba(255,255,255,0.9)">{{accountChecker.settings.finished[ProfileName]?'refresh':accountChecker.settings.paused[ProfileName]?'play_arrow':'pause'}}</md-icon>
657 </md-button>
658
659 <md-menu ng-if="accountChecker.settings.checking[ProfileName]!=undefined">
660 <md-button ng-click="gfunction.openMdMenu($mdMenu, $event)" class="md-icon-button material-icons" style="background:transparent;margin:0px;margin-right:6px;height:26px;width:26px;padding:0px;min-height:24px;align-self:center;border:none" md-menu-origin>
661 <md-icon style="padding-left:initial;padding-right:initial;font-size:1em;color:rgba(255,255,255,0.9)">save</md-icon>
662 </md-button>
663 <md-menu-content width="5">
664 <md-menu-item>
665 <md-button ng-click="accountChecker.functions.save(ProfileName, true)">Save</md-button>
666 </md-menu-item>
667 <md-menu-item>
668 <md-button ng-click="accountChecker.functions.save(ProfileName, false)">Save without Capture</md-button>
669 </md-menu-item>
670 </md-menu-content>
671 </md-menu>
672
673 </div>
674 <!--#endregion-->
675
676 </div>
677 <div id="accountChecker_progressBarPercent_{{::ProfileName}}" style="background-color:#32cd32;height:3px;width:0%"></div>
678 <md-progress-linear id="accountChecker_progressBarIndeterminate_{{::ProfileName}}" md-mode="indeterminate" style="display:none"></md-progress-linear>
679
680 </span>
681 <!--#endregion-->
682
683 </div>
684 <!--#endregion-->
685
686
687
688 <div ng-show="!accountChecker.settings.showHits" flex layout="column" style="height:100%;color:rgba(255, 255, 255, 0.7);padding:10px">
689
690 <md-menu>
691 <md-button class="md-fab md-fab-bottom-right md-mini md-primary material-icons" style="right:4px;bottom:4px;padding:0px" ng-click="gfunction.openMdMenu($mdMenu, $event)" md-menu-origin>
692 <md-icon>add</md-icon>
693 </md-button>
694 <md-menu-content width="3">
695 <md-menu-item>
696 <md-button onclick="callbackObj.importProfiles()">Import Local Profiles</md-button>
697 </md-menu-item>
698 <md-menu-item>
699 <md-button onclick="callbackObj.uploadProfiles()">Upload to Public-Repo</md-button>
700 </md-menu-item>
701 </md-menu-content>
702 </md-menu>
703
704 <div ng-repeat="type in ['fav', 'local', 'repo', 'public']" ng-show="(type=='local' && (accountChecker.settings.profiles | filter:{fav:false,local:true}).length != 0) || (type=='fav' && (accountChecker.settings.profiles | filter:{fav:true}).length != 0) || type=='repo' || type=='public'" style="margin-bottom:10px">
705
706 <div layout="row" layout-align="start center" class="md-whiteframe-2dp" style="background-color:#35373c;height:30px;border-radius:6px">
707 <span ng-show="type=='repo'||type=='public'">
708 <div class="spinner" id="accountChecker_rowStatus_img_{{type}}" style="display:none">
709 <div></div>
710 <div></div>
711 </div>
712 <div id="accountChecker_rowStatus_dot_{{type}}" style="display:none;border-radius:50%;background-color:#565a63;width:8px;height:8px;margin-left:8px"></div>
713 </span>
714 <p flex style="font-size:0.9em;color:white;margin:0;margin-left:8px" ng-bind-html="'<h5>' + (type=='fav' ? 'Favorite' : type=='local' ? 'Local' : type=='repo' ? 'Official' : 'Public') + ' Profiles</h5><h6>' + (type=='fav' ? '' : type=='local' ? '%appdata%/SNIPR/profiles' : type=='repo' ? 'repo.snipr.gg/official' : 'repo.snipr.gg/public') + '</h6>'"></p>
715 </div>
716
717 <div>
718
719 <span ng-repeat="profile in {
720 true: (accountChecker.settings.profiles | filter:{fav:false, public:true}),
721 false: {
722 true: (accountChecker.settings.profiles | filter:{fav:true}),
723 false: {
724 true: (accountChecker.settings.profiles | filter:{fav:false, local:true}),
725 false: (accountChecker.settings.profiles | filter:{fav:false, public:false, local:false})
726 }[type=='local']
727 }[type=='fav']
728 }[type=='public'] | filter:accountChecker.settings.searchTerm['profiles']" ng-show="accountChecker.settings.checkingProfile.indexOf(profile.name) == -1" style="padding-top:10px">
729
730 <md-menu style="align-self:center">
731
732 <span md-menu-origin>
733 <md-button ng-click="profile.dead?null:accountChecker.functions.loadProfile(profile)" ng-right-click="gfunction.openMdMenu($mdMenu, $event)" style="padding-left:10px;padding-right:10px;margin:2px 4px 2px 4px" aria-label="Profile">
734 <span layout="column" layout-align="center start" md-menu-origin style="border-left:2px solid #{{profile.dead?'313131':profile.type=='Proxyless'?'20e46f':'2196f3'}};padding-left:6px">
735 <span layout="row" layout-align="start center">
736 <strong style="font-size:0.8em;line-height:normal;text-transform:none" ng-bind="profile.name"></strong>
737 <md-icon ng-if="profile.reports.length!=0" style="color:orange;font-size:14px;min-height:14px;max-height:14px">
738 <md-tooltip md-direction="top">This profile has 1 or more pending community-reports, it may be broken.</md-tooltip>
739 warning
740 </md-icon>
741 </span>
742 <small style="font-size:0.6em;line-height:normal;text-transform:none" ng-bind="(profile.comboType=='Email'?'Email':profile.comboType=='Username'?'Username':profile.comboType=='Email/Username'?'Email/Username':profile.comboType)"></small>
743 </span>
744 <md-tooltip md-direction="top" ng-if="profile.credit!=''" ng-bind="profile.credit"></md-tooltip>
745 <md-tooltip md-direction="top" ng-if="profile.dead!=''" ng-bind="profile.dead"></md-tooltip>
746 <md-tooltip md-direction="bottom" ng-if="profile.note!=''" ng-bind="profile.note"></md-tooltip>
747 </md-button>
748 </span>
749 <md-menu-content width="4">
750 <md-menu-item>
751 <md-button ng-click="gfunction.favProfile(profile.name, type=='fav')" ng-bind="(type=='fav' ? 'Remove from' : 'Add to') + ' Favorites'" aria-label="Add/Remove To/From Favorites"></md-button>
752 </md-menu-item>
753 <md-menu-item ng-show="!profile.encrypted">
754 <md-button ng-click="gfunction.editProfile(profile.name, profile.path)">Edit in Profile-Editor</md-button>
755 </md-menu-item>
756 <md-menu-item>
757 <md-button ng-click="gfunction.openProfile(profile.name, profile.path)">Open in {{type=='local' ? 'Text-Editor' : 'Browser'}}</md-button>
758 </md-menu-item>
759 <md-menu-item ng-show="type=='repo'">
760 <md-button ng-click="accountChecker.functions.reportProfile(profile.name)">Report Broken</md-button>
761 </md-menu-item>
762 <md-menu-item ng-show="type=='local'">
763 <md-button ng-click="gfunction.deleteProfile(profile.name, profile.path)">Delete</md-button>
764 </md-menu-item>
765 </md-menu-content>
766
767 </md-menu>
768
769 </span>
770
771 </div>
772
773 </div>
774
775 </div>
776
777 </div>
778
779</div>
780<!--#endregion-->
781
782<!--#region Profile-Editor-->
783<div layout="column" layout-fill ng-show="openedTab=='profileCreator'">
784
785 <style>
786 section > .md-button, section > md-menu > .md-button {
787 min-height: 30px;
788 padding-left: 8px;
789 padding-right: 8px;
790 border-radius: 0px;
791 background: #2196f3;
792 color: white;
793 }
794 section > .md-button:hover {
795 background-color: rgba(0, 142, 255, 0.7)!important;
796 }
797 .saveButton {
798 background: #4caf50!important;
799 }
800 .saveButton:hover {
801 background-color: rgba(76, 175, 80, 0.7)!important;
802 }
803 .profileSettingRow {
804 margin-bottom: 6px;
805 background-color: #42464d;
806 padding: 6px;
807 }
808 .profileSettingRow > p {
809 font-size: 0.7em;
810 color: white;
811 margin: 6px;
812 }
813 .profileSettingHeaderRow {
814 padding: 0px;
815 }
816 .profileSettingHeaderRow > div:first-of-type {
817 background-color: #35373c;
818 height: 30px;
819 border-bottom: 1px solid #2d2d2d;
820 }
821 .profileSettingHeaderRow > div.profileSettingInput {
822 padding: 6px;
823 border-bottom: 1px solid #2d2d2d;
824 }
825 .profileSettingHeaderRow > div > p {
826 font-size: 0.9em;
827 color: white;
828 margin: 0;
829 margin-left: 8px;
830 }
831 </style>
832
833 <div flex style="padding-right:10px;overflow:auto;padding-top:10px;border-top:1px solid #43474c">
834
835 <span layout="row">
836
837 <div flex="20" style="margin:0px 10px">
838 <div layout="column" style="overflow-y:auto;position:fixed;right:calc(80% - 8px);left:8px;max-height:calc(100vh - 62px);padding-top:10px;border-radius:4px;background-color:#43474c">
839
840 <span layout="row" layout-align="center center" style="background:rgba(0,0,0,0.48);min-height:36px;margin:0px 8px;border-radius:2px">
841
842 <md-menu ng-if="profileCreator.settings.profile['General']['name']!=undefined&&profileCreator.settings.profile['General']['name'].length>0">
843 <md-button ng-click="gfunction.openMdMenu($mdMenu, $event)" class="md-icon-button material-icons" style="background:transparent;margin:0px;margin-right:6px;height:26px;width:26px;padding:0px;min-height:24px;align-self:center;border:none" md-menu-origin>
844 <md-icon style="padding-left:initial;padding-right:initial;font-size:1em;color:rgba(255,255,255,0.9)">save</md-icon>
845 </md-button>
846 <md-menu-content width="5">
847 <md-menu-item>
848 <md-button ng-click="profileCreator.functions.save()">Save</md-button>
849 </md-menu-item>
850 <md-menu-item>
851 <md-button ng-click="profileCreator.functions.saveEncrypted()">Save as Encrypted Profile</md-button>
852 </md-menu-item>
853 </md-menu-content>
854 </md-menu>
855
856 <md-button ng-click="profileCreator.settings.profile={'General':{},'Requests':[{'successKeys':['']}]};profileCreator.settings.selectedRequest=0" class="md-icon-button material-icons" style="background:transparent;margin:0px;margin-right:6px;height:26px;width:26px;padding:0px;min-height:24px;align-self:center;border:none">
857 <md-icon style="padding-left:initial;padding-right:initial;font-size:1em;color:rgba(255,255,255,0.9)">refresh</md-icon>
858 <md-tooltip md-position="bottom">Clear Editor</md-tooltip>
859 </md-button>
860
861 <md-button onclick="callbackObj.openProfileWiki()" class="md-icon-button material-icons" style="background:transparent;margin:0px;margin-right:6px;height:26px;width:26px;padding:0px;min-height:24px;align-self:center;border:none">
862 <md-icon style="padding-left:initial;padding-right:initial;font-size:1em;color:rgba(255,255,255,0.9)">help</md-icon>
863 <md-tooltip md-position="bottom">Wiki</md-tooltip>
864 </md-button>
865
866 </span>
867
868 <div style="transition:border 0.1s linear;outline:none;cursor:pointer;color:white;background-color:#191919;border-radius:2px;box-shadow:0 2px 5px 0 rgba(0,0,0,.26);margin:6px 8px;padding:4px 6px" ng-style="profileCreator.settings.selectedRequest==0 && {'border-left':'4px solid rgb(250,250,250)'} || {'border-left':'0px'}" ng-click="profileCreator.settings.selectedRequest=0">General</div>
869
870 <div ui-sortable ng-model="profileCreator.settings.profile['Requests']">
871 <div style="transition:border 0.1s linear;cursor:pointer;color:white;background-color:#191919;border-radius:2px;box-shadow:0 2px 5px 0 rgba(0,0,0,.26);margin:6px 8px;padding:4px 6px" ng-repeat="item in profileCreator.settings.profile['Requests'] track by $index" ng-style="profileCreator.settings.selectedRequest==($index+1) && {'border-left':'4px solid rgb(250,250,250)'} || {'border-left':'0px'}" ng-click="profileCreator.settings.selectedRequest=($index+1)" layout="row" layout-align="start center">
872 <span flex="grow" ng-bind="profileCreator.settings.profile['Requests'][$index]['reqName'] || ('Untitled Request #'+($index+1))">...</span>
873 <div ng-if="$index>0" ng-click="profileCreator.settings.profile['Requests'].splice($index,1);profileCreator.settings.selectedRequest=$index" style="width:20px;height:16px;background-color:indianred;text-align:center;color:white;font-weight:bold;line-height:16px;border-radius:2px">-</div>
874 </div>
875 </div>
876
877 <md-button style="color:white" ng-click="profileCreator.functions.quickFill()" ng-if="profileCreator.settings.selectedRequest!=0">Quickfill</md-button>
878 <md-button style="color:white" ng-click="profileCreator.settings.profile['Requests'][profileCreator.settings.profile['Requests'].length]={};profileCreator.settings.selectedRequest=profileCreator.settings.profile['Requests'].length">Add Request</md-button>
879
880 </div>
881 </div>
882
883 <span flex layout="column">
884
885 <!-- General Metadata Settings -->
886 <div layout="column" class="profileSettingRow profileSettingHeaderRow md-whiteframe-2dp" ng-show="profileCreator.settings.selectedRequest==0">
887
888 <div layout="row" layout-align="start center" style="height:30px">
889 <p flex>General Metadata</p>
890 </div>
891
892 <div>
893
894 <div layout="column" style="padding:6px;border-top:1px solid #2d2d2d">
895 <md-input-container md-no-float style="margin:14px 0px 0px;width:100%">
896 <label>Profile Name</label>
897 <input placeholder="..." ng-model="profileCreator.settings.profile['General']['name']" required>
898 </md-input-container>
899 <p style="font-size:0.7em;color:white;margin:0">This is the name shown inside of SNIPR's Profile List.</p>
900 </div>
901
902 <div layout="column" style="padding:6px;border-top:1px solid #2d2d2d">
903 <md-input-container md-no-float style="margin-top:3px;width:100%">
904 <p style="margin:0;padding-left:3px;color:white;font-size:.8em">Proxy-Type</p>
905 <md-select placeholder="..." ng-model="profileCreator.settings.profile['General']['proxyType']">
906 <md-option value="Proxies">Proxies</md-option>
907 <md-option value="Proxyless">Proxyless</md-option>
908 </md-select>
909 </md-input-container>
910 <p style="font-size:0.7em;color:white;margin:0">When you choose "Proxies" you dont set threads, Proxy profiles use 150 threads always for maximum efficiency. Proxyless however REQUIRES you to set threads.</p>
911 </div>
912
913 <div layout="column" style="padding:6px;border-top:1px solid #2d2d2d">
914 <md-input-container md-no-float style="margin-top:3px;width:100%">
915 <p style="margin:0;padding-left:3px;color:white;font-size:.8em">Combo-Type</p>
916 <md-select placeholder="..." ng-model="profileCreator.settings.profile['General']['comboType']">
917 <md-option value="Email">Email</md-option>
918 <md-option value="Username">Username</md-option>
919 <md-option value="Email/Username">Both (Email or Username)</md-option>
920 </md-select>
921 </md-input-container>
922 <p style="font-size:0.7em;color:white;margin:0">Some websites only allow logging in with the Email, Some with Username and some with Both. For convenience, you can set here which type is used.</p>
923 </div>
924
925 <div layout="column" style="padding:6px;border-top:1px solid #2d2d2d" ng-show="profileCreator.settings.profile['General']['proxyType']=='Proxyless'">
926 <md-input-container md-no-float style="margin:14px 0px 0px;width:100%">
927 <label>Max Threads (Number 1-150)</label>
928 <input placeholder="..." ng-pattern="/^[\d]*$/" ng-model="profileCreator.settings.profile['General']['threads']" md-maxlength="3" required>
929 </md-input-container>
930 <p style="font-size:0.7em;color:white;margin:0">This is the maximum threads allowed by the profile. SNIPR will not do more threads than what you set here, even if the Thread setting inside SNIPR is set higher (But it will allow setting lower).</p>
931 </div>
932
933 <div layout="column" style="padding:6px;border-top:1px solid #2d2d2d">
934 <md-input-container md-no-float style="margin:14px 0px 0px;width:100%">
935 <label>Note</label>
936 <input placeholder="..." ng-model="profileCreator.settings.profile['General']['note']">
937 </md-input-container>
938 <p style="font-size:0.7em;color:white;margin:0">Note that's shown when you hover over the profile. Can be used to explain details about the profile. (This is NOT to be used to advertise!)</p>
939 </div>
940
941 <div layout="column" style="padding:6px;border-top:1px solid #2d2d2d">
942 <md-input-container md-no-float style="margin:14px 0px 0px;width:100%">
943 <label>Credit</label>
944 <input placeholder="..." ng-model="profileCreator.settings.profile['General']['credit']">
945 </md-input-container>
946 <p style="font-size:0.7em;color:white;margin:0">Special Note for Crediting Creators that's shown above when you hover over the profile. (This is NOT to be used to advertise!)</p>
947 </div>
948
949 <div layout="column" style="padding:6px;border-top:1px solid #2d2d2d">
950 <md-checkbox ng-model="profileCreator.settings.profile['General']['userOnly']">Only USER</md-checkbox>
951 <p style="font-size:0.7em;color:white;margin:0">If your profile only uses <USER> then enable this. It will allow you to load in files with just lines. They dont have to be combos. It wont split based on :/;. This is useful for Giftcard/Code Checking Profiles.</p>
952 </div>
953
954 </div>
955
956 </div>
957
958 <div layout="column" class="profileSettingRow profileSettingHeaderRow md-whiteframe-2dp" ng-show="profileCreator.settings.selectedRequest!=0">
959
960 <div layout="row" layout-align="start center" style="height:30px">
961 <p flex>Text-Function Builder</p>
962 </div>
963 <div>
964
965 <div style="padding:6px;border-top:1px solid #2d2d2d">
966 <md-input-container md-no-float style="margin:14px 0px 0px;width:100%">
967 <label>Priority Order (Number 1-99)</label>
968 <input placeholder="..." type="number" ng-pattern="/^[1-9]{1,2}$/" ng-maxlength="2" ng-model="profileCreator.settings.textFunctionBuilder['ORDER']" aria-label="Priority Order">
969 </md-input-container>
970 <p style="font-size:0.7em;color:white;margin:0">The order to render the text-functions. Make sure inner-text functions have the smallest number so daisy-chained text-functions render first!</p>
971 </div>
972
973 <div ng-show="profileCreator.settings.textFunctionBuilder['ORDER']" style="padding:6px;border-top:1px solid #2d2d2d">
974 <md-input-container md-no-float>
975 <label style="opacity:unset;bottom:unset">Mode</label>
976 <md-select placeholder="..." ng-model="profileCreator.settings.textFunctionBuilder['MODE']" ng-change="profileCreator.settings.textFunctionBuilder['VALUE1']='';profileCreator.settings.textFunctionBuilder['VALUE2']='';profileCreator.settings.textFunctionBuilder['VALUE3']=''" style="margin:14px 0px 0px">
977 <md-option value="HEADER">Grab the value of a specified Header.</md-option>
978 <md-option value="COOKIE">Grab the value of a specified Cookie.</md-option>
979 <md-option value="REGEX">Execute Regex on-the-fly.</md-option>
980 <md-option value="GUID">Generate a random GUID. (e.x. 0f8fad5b-d9cb-469f-a165-70867728950e)</md-option>
981 <md-option value="REPLACE">Replace a value in a string with a new value.</md-option>
982 <md-option value="URLENCODE">Url-encode a string.</md-option>
983 <md-option value="UNESCAPE">Unescape escaped characters in a string. (\x, \u, \n, e.t.c)</md-option>
984 <md-option value="REVERSESTRING">Reverse a String.</md-option>
985 <md-option value="TIMESPAN">Convert (Current Time - Specified Seconds) into a Time String Format.</md-option>
986 <md-option value="CURRENTDATETIME">Convert Current Time into a Time String Format.</md-option>
987 <md-option value="CURRENTUNIX">Get the Current Time's Unix String.</md-option>
988 <md-option value="UNIXTODATE">Convert Specified Unix String into a Time String Format.</md-option>
989 <md-option value="SHA512">Hash a string with SHA512</md-option>
990 <md-option value="SHA256">Hash a string with SHA256</md-option>
991 <md-option value="SHA1">Hash a string with SHA1</md-option>
992 <md-option value="MD5">Hash a string with MD5</md-option>
993 <md-option value="RSAPKCS15">Hash a string with RSAPKCS#1.5 (Modulus and Exponent Required)</md-option>
994 <md-option value="BASE64">Encode a string with Base64</md-option>
995 </md-select>
996 </md-input-container>
997 <p style="font-size:0.7em;color:white;margin:0">The Mode tells SNIPR what type of Text-Function it is and what to do with the values.</p>
998 </div>
999
1000 <!--#region Param #1 -->
1001 <div style="padding:6px;border-top:1px solid #2d2d2d" ng-show="
1002 profileCreator.settings.textFunctionBuilder['ORDER'] &&
1003 profileCreator.settings.textFunctionBuilder['MODE'] &&
1004 profileCreator.settings.textFunctionBuilder['MODE'] != 'GUID' &&
1005 profileCreator.settings.textFunctionBuilder['MODE'] != 'CURRENTUNIX'">
1006 <md-input-container md-no-float style="margin:14px 0px 0px;width:100%">
1007 <label ng-bind="
1008 profileCreator.settings.textFunctionBuilder['MODE']=='HEADER' ? 'Header Name' :
1009 profileCreator.settings.textFunctionBuilder['MODE']=='COOKIE' ? 'Cookie Name' :
1010 profileCreator.settings.textFunctionBuilder['MODE']=='REGEX' ? 'Regex Pattern (regex101.com to test)' :
1011 profileCreator.settings.textFunctionBuilder['MODE']=='REPLACE' ? 'Haystack (String to do replace on)' :
1012 profileCreator.settings.textFunctionBuilder['MODE']=='TIMESPAN' ? 'Seconds' :
1013 profileCreator.settings.textFunctionBuilder['MODE']=='CURRENTDATETIME' ? 'Time Format' :
1014 profileCreator.settings.textFunctionBuilder['MODE']=='UNIXTODATE' ? 'UNIX String' :
1015 profileCreator.settings.textFunctionBuilder['MODE']=='RSAPKCS15' ? 'Modulus' :
1016 'String'"></label>
1017 <input placeholder="..." ng-model="profileCreator.settings.textFunctionBuilder['VALUE1']" aria-label="Value1">
1018 </md-input-container>
1019 </div>
1020 <!--#endregion-->
1021 <!--#region Param #2 -->
1022 <div style="padding:6px;border-top:1px solid #2d2d2d" ng-show="
1023 profileCreator.settings.textFunctionBuilder['ORDER'] &&
1024 profileCreator.settings.textFunctionBuilder['MODE'] &&
1025 profileCreator.settings.textFunctionBuilder['MODE']=='REGEX' ||
1026 profileCreator.settings.textFunctionBuilder['MODE']=='REPLACE' ||
1027 profileCreator.settings.textFunctionBuilder['MODE']=='TIMESPAN' ||
1028 profileCreator.settings.textFunctionBuilder['MODE']=='UNIXTODATE' ||
1029 profileCreator.settings.textFunctionBuilder['MODE']=='RSAPKCS15'">
1030 <md-input-container md-no-float style="margin:14px 0px 0px;width:100%">
1031 <label ng-bind="
1032 profileCreator.settings.textFunctionBuilder['MODE']=='REPLACE' ? 'Needle (String to find)' :
1033 profileCreator.settings.textFunctionBuilder['MODE']=='TIMESPAN' ? 'Time Format' :
1034 profileCreator.settings.textFunctionBuilder['MODE']=='UNIXTODATE' ? 'Time Format' :
1035 profileCreator.settings.textFunctionBuilder['MODE']=='RSAPKCS15' ? 'Exponent' :
1036 'String'"></label>
1037 <input placeholder="..." ng-model="profileCreator.settings.textFunctionBuilder['VALUE2']" aria-label="Value2">
1038 </md-input-container>
1039 </div>
1040 <!--#endregion-->
1041 <!--#region Param #3 -->
1042 <div style="padding:6px;border-top:1px solid #2d2d2d" ng-show="
1043 profileCreator.settings.textFunctionBuilder['ORDER'] &&
1044 profileCreator.settings.textFunctionBuilder['MODE'] &&
1045 profileCreator.settings.textFunctionBuilder['MODE']=='REPLACE' ||
1046 profileCreator.settings.textFunctionBuilder['MODE']=='RSAPKCS15'">
1047 <md-input-container md-no-float style="margin:14px 0px 0px;width:100%">
1048 <label ng-bind="profileCreator.settings.textFunctionBuilder['MODE']=='REPLACE' ? 'Replace With' : 'String'"></label>
1049 <input placeholder="..." ng-model="profileCreator.settings.textFunctionBuilder['VALUE3']" aria-label="Value3">
1050 </md-input-container>
1051 </div>
1052 <!--#endregion-->
1053
1054 <div style="padding:6px;border-top:1px solid #2d2d2d" ng-show="
1055 profileCreator.settings.textFunctionBuilder['ORDER'] &&
1056 profileCreator.settings.textFunctionBuilder['MODE']
1057 && (
1058 profileCreator.settings.textFunctionBuilder['VALUE1'] ||
1059 profileCreator.settings.textFunctionBuilder['MODE'] == 'GUID' ||
1060 profileCreator.settings.textFunctionBuilder['MODE'] == 'CURRENTUNIX'
1061 ) && (
1062 profileCreator.settings.textFunctionBuilder['VALUE2'] || (
1063 profileCreator.settings.textFunctionBuilder['MODE'] != 'REGEX' &&
1064 profileCreator.settings.textFunctionBuilder['MODE'] != 'REPLACE' &&
1065 profileCreator.settings.textFunctionBuilder['MODE'] != 'TIMESPAN' &&
1066 profileCreator.settings.textFunctionBuilder['MODE'] != 'UNIXTODATE' &&
1067 profileCreator.settings.textFunctionBuilder['MODE'] != 'RSAPKCS15'
1068 )
1069 ) && (
1070 profileCreator.settings.textFunctionBuilder['VALUE3'] || (
1071 profileCreator.settings.textFunctionBuilder['MODE'] != 'REPLACE' &&
1072 profileCreator.settings.textFunctionBuilder['MODE'] != 'RSAPKCS15'
1073 )
1074 )">
1075 <md-input-container md-no-float style="margin:14px 0px 0px;width:100%">
1076 <label>Compiled Text-Function</label>
1077 <input placeholder="..." ng-value="'<![ ' + profileCreator.settings.textFunctionBuilder['ORDER'] + ':|SNIPR|:' + profileCreator.settings.textFunctionBuilder['MODE'] + (profileCreator.settings.textFunctionBuilder['VALUE1'] ? ':|SNIPR|:' + profileCreator.settings.textFunctionBuilder['VALUE1'] : '') + (profileCreator.settings.textFunctionBuilder['VALUE2'] ? ':|SNIPR|:' + profileCreator.settings.textFunctionBuilder['VALUE2'] : '') + (profileCreator.settings.textFunctionBuilder['VALUE3'] ? ':|SNIPR|:' + profileCreator.settings.textFunctionBuilder['VALUE3'] : '') + ' ]!>'" aria-label="Compiled Text-Function">
1078 </md-input-container>
1079 </div>
1080
1081 </div>
1082
1083 </div>
1084
1085 <div layout="column" class="profileSettingRow profileSettingHeaderRow md-whiteframe-2dp" ng-show="profileCreator.settings.selectedRequest!=0">
1086
1087 <div layout="row" layout-align="start center" style="height:30px">
1088 <p flex>Request Settings</p>
1089 </div>
1090 <div>
1091
1092 <div layout="column" style="padding:6px;border-top:1px solid #2d2d2d">
1093 <md-input-container md-no-float style="margin-top:3px;width:100%">
1094 <p style="margin:0;padding-left:3px;color:white;font-size:.8em">Method</p>
1095 <md-select placeholder="..." ng-model="profileCreator.settings.profile['Requests'][(profileCreator.settings.selectedRequest-1)]['method']">
1096 <md-option value="GET">GET</md-option>
1097 <md-option value="POST">POST</md-option>
1098 <md-option value="HEAD">HEAD</md-option>
1099 <md-option value="PUT">PUT</md-option>
1100 <md-option value="DELETE">DELETE</md-option>
1101 <md-option value="OPTIONS">OPTIONS</md-option>
1102 <md-option value="PATCH">PATCH</md-option>
1103 </md-select>
1104 </md-input-container>
1105 </div>
1106
1107 <div layout="column" ng-repeat="item in ['Request-Name', 'URL', 'User-Agent', 'Content-Type', 'Accept', 'Referer', 'Cookies', 'Post-Data']" style="padding:6px;border-top:1px solid #2d2d2d" ng-if="(item=='Post-Data'&&profileCreator.settings.profile['Requests'][(profileCreator.settings.selectedRequest-1)]['method']!='GET')||(item=='Content-Type'&&profileCreator.settings.profile['Requests'][(profileCreator.settings.selectedRequest-1)]['method']!='GET')||item!='Post-Data'&&item!='Content-Type'">
1108 <md-input-container md-no-float style="margin:14px 0px 0px;width:100%">
1109 <label ng-bind="item">...</label>
1110 <input placeholder="..." ng-model="profileCreator.settings.profile['Requests'][profileCreator.settings.selectedRequest-1][item=='Request-Name'?'reqName':item=='User-Agent'?'userAgent':item=='Content-Type'?'contentType':item=='Post-Data'?'postData':item.toLowerCase()]">
1111 </md-input-container>
1112 <p style="font-size:0.7em;color:white;margin:0">
1113 <span ng-show="item=='Request-Name'">Give this request a convenient name.</span>
1114 <span ng-show="item=='URL'">URI to send the Request to. (MUST conform with URI specifications, not URL's specifications)</span>
1115 <span ng-show="item=='User-Agent'">User-Agents are a string of text that helps servers check what OS, Browser and Versions your using.</span>
1116 <span ng-show="item=='Accept'">This tells the server what types of responses you accept. */* means Anything while stuff like application/json means you want a JSON response.</span>
1117 <span ng-show="item=='Referer'">Servers may check where you sent the request from, referrer is basically the last page you were on or the url you made the request from.</span>
1118 <span ng-show="item=='Cookies'">SNIPR automatically stores cookies when a request responds. This should only be used if it's a required cookie that isn't set by a previous request's response.<br>Pro Tip: If you are learning Profile Making and are using this field, chances are, your doing something wrong (That's how little this field is ever actually needed).<br>Usage: cookieName=CookieValue (separated by ;)</span>
1119 <span ng-show="item=='Content-Type'">Content-Type of the Post-Data you are sending. This is important!</span>
1120 <span ng-show="item=='Post-Data'">This is the HTTP Message Body.<br>Every website uses this field differently, you will need to Sniff/MiTM whatever you're making a Profile for to find out the value of this.<br>If you want to learn more about HTTP Message Body's, <a href="https://en.wikipedia.org/wiki/HTTP_message_body">read up here</a>.</span>
1121 <br>
1122 <span ng-show="item!='Request-Name'">Supports: <USER>, <PASS>, Text-Functions</span>
1123 </p>
1124 </div>
1125
1126 </div>
1127
1128 </div>
1129
1130 <div layout="column" class="profileSettingRow profileSettingHeaderRow md-whiteframe-2dp" ng-show="profileCreator.settings.selectedRequest!=0">
1131 <div layout="row" layout-align="start center">
1132 <p flex>Headers</p>
1133 <div>
1134 <section layout="row" layout-align="center center">
1135 <md-button class="material-icons" ng-click="profileCreator.functions.addxKeyNew('headers')">add</md-button>
1136 <md-button class="material-icons" ng-click="profileCreator.functions.remxKey('headers')" ng-show="profileCreator.settings.profile['Requests'][profileCreator.settings.selectedRequest-1]['headers']!=undefined">remove</md-button>
1137 </section>
1138 </div>
1139 </div>
1140 <div class="profileSettingInput" ng-repeat="keyNum in profileCreator.settings.profile['Requests'][profileCreator.settings.selectedRequest-1]['headers'] track by $index">
1141 <span layout="column">
1142 <md-input-container flex md-no-float style="padding:0;margin:0">
1143 <input placeholder="Name..." ng-model="profileCreator.settings.profile['Requests'][profileCreator.settings.selectedRequest-1]['headers'][$index]['name']" style="color:rgba(255, 255, 255, 0.7);border:0">
1144 </md-input-container>
1145 <md-input-container flex md-no-float style="padding:0;margin:0">
1146 <input placeholder="Value..." ng-model="profileCreator.settings.profile['Requests'][profileCreator.settings.selectedRequest-1]['headers'][$index]['value']" style="color:rgba(255, 255, 255, 0.7);border:0">
1147 </md-input-container>
1148 </span>
1149 </div>
1150 </div>
1151
1152 <div ng-repeat="key in ['Success', 'Useless', 'Failure', 'Ban', 'Retry']" layout="column" class="profileSettingRow profileSettingHeaderRow md-whiteframe-2dp" ng-show="profileCreator.settings.selectedRequest!=0">
1153 <div layout="row" layout-align="start center">
1154 <p flex ng-bind="key+'-Keys'">...</p>
1155 <div>
1156 <section layout="row" layout-align="center center">
1157 <md-button class="material-icons" ng-click="profileCreator.functions.addxKeyNew(key.toLowerCase()+'Keys')">add</md-button>
1158 <md-button class="material-icons" ng-click="profileCreator.functions.remxKey(key.toLowerCase()+'Keys')" ng-show="profileCreator.settings.profile['Requests'][profileCreator.settings.selectedRequest-1][key.toLowerCase()+'Keys'].length > (key=='Success'?1:0)">remove</md-button>
1159 </section>
1160 </div>
1161 </div>
1162 <div class="profileSettingInput" ng-repeat="keyNum in profileCreator.settings.profile['Requests'][profileCreator.settings.selectedRequest-1][key.toLowerCase()+'Keys'] track by $index">
1163 <md-input-container flex layout="column" md-no-float style="padding:0;margin:0">
1164 <input required placeholder="Key #{{$index+1}}" ng-model="profileCreator.settings.profile['Requests'][(profileCreator.settings.selectedRequest-1)][key.toLowerCase()+'Keys'][$index]" style="color:rgba(255, 255, 255, 0.7);border:0">
1165 </md-input-container>
1166 </div>
1167 <p>
1168 <span ng-show="key=='Success'">On-Match, it will do the next request or it will return capture if it's the last-request.<br>Tip: If you want a Success-Key to instantly return as valid with Capture, use a ForceHit-Key Instead.<br>Every request must have atleast 1 success-key.<br>An empty success-key will always Match. It's NEVER recommended to use an empty key.</span>
1169 <span ng-show="key=='Useless'">On-Match, it will return the combo as invalid.<br>It's best to use this to match accounts like Non-Premium, No Points/Credit and such.<br>The user can decide to use the Useless key or not.</span>
1170 <span ng-show="key=='Failure'">On-Match, it will return the combo as invalid.<br>An empty failure-key will always Match. It's NEVER recommended to use an empty key.</span>
1171 <span ng-show="key=='Ban'">On-Match, it will tell SNIPR when a Block/Ban response occurs.<br>It does the same thing as a Retry-Key except if proxies are used, the proxy that was being used will be marked as Banned and shown in the UI as a red Number.</span>
1172 <span ng-show="key=='Retry'">On-Match, it will tell SNIPR to simply retry when a response occurs.<br>If there's a common error message like "Technical Difficulty" or server outage errors that doesn't directly relate to a Ban/Block, then use a Retry-Key.<br>It will prevent the response being thrown as a TOCHECK in the Debugger and will retry without marking the proxy as banned.</span>
1173 </p>
1174 </div>
1175
1176 <div layout="column" class="profileSettingRow profileSettingHeaderRow md-whiteframe-2dp" ng-show="profileCreator.settings.selectedRequest!=0">
1177 <div layout="row" layout-align="start center">
1178 <p flex>Force-Hit-Keys</p>
1179 <div>
1180 <section layout="row" layout-align="center center">
1181 <md-button class="material-icons" ng-click="profileCreator.functions.addxKeyNew('forceHitKeys')">add</md-button>
1182 <md-button class="material-icons" ng-click="profileCreator.functions.remxKey('forceHitKeys')" ng-show="profileCreator.settings.profile['Requests'][profileCreator.settings.selectedRequest-1]['forceHitKeys']!=undefined">remove</md-button>
1183 </section>
1184 </div>
1185 </div>
1186 <div class="profileSettingInput" ng-repeat="keyNum in profileCreator.settings.profile['Requests'][profileCreator.settings.selectedRequest-1]['forceHitKeys']['keys'] track by $index">
1187 <span layout="column">
1188 <md-input-container flex md-no-float style="padding:0;margin:0">
1189 <input required placeholder="Key #{{$index+1}}... (optional)" ng-model="profileCreator.settings.profile['Requests'][(profileCreator.settings.selectedRequest-1)]['forceHitKeys']['keys'][$index]" style="color:rgba(255, 255, 255, 0.7);border:0">
1190 </md-input-container>
1191 <md-input-container flex md-no-float style="padding:0;margin:0">
1192 <input required placeholder="Capture For Key #{{$index+1}}..." ng-model="profileCreator.settings.profile['Requests'][(profileCreator.settings.selectedRequest-1)]['forceHitKeys']['return'][$index]" style="color:rgba(255, 255, 255, 0.7);border:0">
1193 </md-input-container>
1194 </span>
1195 </div>
1196 <p>Force-Hit-Keys are used in scenarios where you don't want a Success-Key to continue to the next request and you want to instantly return as a hit.<br>An example scenario is to check if the response has a Security Question or 2FA Check.<br>You can even put the Capture that will be returned when the key gets matched.<br>Priority for Force-Hit-Keys are above all other keys.</p>
1197 </div>
1198
1199 <div layout="column" class="profileSettingRow profileSettingHeaderRow md-whiteframe-2dp" ng-show="profileCreator.settings.selectedRequest!=0">
1200 <div layout="row" layout-align="start center">
1201 <p flex>Regex Variables</p>
1202 <div>
1203 <section layout="row" layout-align="center center">
1204 <md-button class="material-icons" ng-click="profileCreator.functions.addxKeyNew('regex')">add</md-button>
1205 <md-button class="material-icons" ng-click="profileCreator.functions.remxKey('regex')" ng-show="profileCreator.settings.profile['Requests'][profileCreator.settings.selectedRequest-1]['regex']!=undefined">remove</md-button>
1206 </section>
1207 </div>
1208 </div>
1209 <div class="profileSettingInput" ng-repeat="keyNum in profileCreator.settings.profile['Requests'][profileCreator.settings.selectedRequest-1]['regex'] track by $index">
1210 <span layout="column">
1211 <md-input-container flex md-no-float style="padding:0;margin:0">
1212 <input required placeholder="Name..." ng-model="profileCreator.settings.profile['Requests'][profileCreator.settings.selectedRequest-1]['regex'][$index]['name']" style="color:rgba(255, 255, 255, 0.7);border:0">
1213 </md-input-container>
1214 <md-input-container flex md-no-float style="padding:0;margin:0">
1215 <input required placeholder="Pattern [debug @ regex101.com]..." ng-model="profileCreator.settings.profile['Requests'][profileCreator.settings.selectedRequest-1]['regex'][$index]['pattern']" style="color:rgba(255, 255, 255, 0.7);border:0">
1216 </md-input-container>
1217 <md-input-container md-no-float style="padding:0;margin:0" flex>
1218 <md-select ng-model="profileCreator.settings.profile['Requests'][profileCreator.settings.selectedRequest-1]['regex'][$index]['usedFor']" placeholder="Used For">
1219 <md-option value="url">URL</md-option>
1220 <md-option value="cookies">Cookies</md-option>
1221 <md-option value="headers">Headers</md-option>
1222 <md-option value="postData">Post-Data</md-option>
1223 <md-option value="failureKeys">Failure-Keys</md-option>
1224 <md-option value="successKeys">Success-Keys</md-option>
1225 <md-option value="capture">Capture</md-option>
1226 </md-select>
1227 </md-input-container>
1228 <md-input-container flex md-no-float style="padding:0;margin:0">
1229 <input placeholder="Source (Keep empty for HTTP Response)..." ng-model="profileCreator.settings.profile['Requests'][profileCreator.settings.selectedRequest-1]['regex'][$index]['source']" style="color:rgba(255, 255, 255, 0.7);border:0">
1230 </md-input-container>
1231 </span>
1232 </div>
1233 </div>
1234
1235 <div layout="column" class="profileSettingRow profileSettingHeaderRow md-whiteframe-2dp" ng-show="profileCreator.settings.selectedRequest!=0">
1236 <div layout="row" layout-align="start center">
1237 <p flex>Capture<span ng-show="profileCreator.settings.selectedRequest!=profileCreator.settings.profile['Requests'].length&&profileCreator.settings.profile['Requests'][profileCreator.settings.selectedRequest-1]['capture']!=undefined" style="color:red"> Not being used!</span></p>
1238 <div>
1239 <section layout="row" layout-align="center center">
1240 <md-button class="material-icons" ng-click="profileCreator.functions.addxKeyNew('capture')">add</md-button>
1241 <md-button class="material-icons" ng-click="profileCreator.functions.remxKey('capture')" ng-show="profileCreator.settings.profile['Requests'][profileCreator.settings.selectedRequest-1]['capture']!=undefined">remove</md-button>
1242 </section>
1243 </div>
1244 </div>
1245 <div class="profileSettingInput" ng-repeat="keyNum in profileCreator.settings.profile['Requests'][profileCreator.settings.selectedRequest-1]['capture'] track by $index">
1246 <md-input-container flex layout="column" md-no-float style="padding:0;margin:0">
1247 <input required placeholder="Capture Group #{{$index+1}}..." ng-model="profileCreator.settings.profile['Requests'][(profileCreator.settings.selectedRequest-1)]['capture'][$index]" style="color:rgba(255, 255, 255, 0.7);border:0">
1248 </md-input-container>
1249 </div>
1250 <p><span ng-style="profileCreator.settings.selectedRequest!=profileCreator.settings.profile['Requests'].length&&profileCreator.settings.profile['Requests'][profileCreator.settings.selectedRequest-1]['capture']!=undefined&&{'color':'red'}">Capture is ONLY used on the FINAL request and only if the FINAL request hits a Success Key.</span><br>Each Capture Group is automatically separated with ", " (can be changed with "itemSeparator":", ").<br>If a Capture Group has a variable with multiple matches, the groups text will be duplicated for each match with each matches parsed content added into it. For example "Games: +regexVar|1+" should not be used (Result: "Games: Splatoon | Games: Splatoon 2"). Simply add "Games: " as a separate capture group BEFORE the variable one.<br>Each "Match" from a Variable in a Capture Group is automatically separated with " | " (can be changed with "matchSeparator":" | ").<br>Capture supports HTML! Feel free to spruce up colors of capture by doing: <span style="color:green">Capture Text</span> or <br> to do a Newline, The possibilities are endless, just don't go overboard!</p>
1251 </div>
1252
1253 </span>
1254
1255 </span>
1256
1257 </div>
1258
1259</div>
1260
1261<!--#endregion-->
1262
1263<!--#region Email-Checker-->
1264<div layout="column" layout-fill ng-show="openedTab=='emailChecker'">
1265
1266 <!--#region TopBar-->
1267
1268 <div layout="row" layout-align="center center" class="topBar">
1269
1270 <!-- REMOVE NEED FOR THIS -->
1271 <md-button id="emailChecker_mailboxBack" ng-click="emailChecker.functions.closeMailbox()" class="md-icon-button material-icons" style="display:none">
1272 <md-icon>arrow_back</md-icon>
1273 </md-button>
1274
1275 <!--#region Back Button-->
1276 <md-button ng-click="
1277 emailChecker.settings.keywordsOpen ?
1278 emailChecker.settings.keywordsOpen = false :
1279 emailChecker.settings.showHistory ?
1280 emailChecker.settings.showHistory = false :
1281 null" ng-show="emailChecker.settings.keywordsOpen || emailChecker.settings.showHistory" class="md-icon-button material-icons">
1282 <md-icon>arrow_back</md-icon>
1283 </md-button>
1284 <!--#endregion-->
1285
1286 <!--#region Mailbox Spinner-->
1287 <div id="emailChecker_mailboxStatus" class="spinner" style="margin-left:8px;display:none">
1288 <div></div>
1289 <div></div>
1290 </div>
1291 <!--#endregion-->
1292
1293 <!--#region Search-->
1294 <div flex layout="row" layout-align="center center" class="searchBar">
1295 <i class="material-icons">search</i>
1296 <md-input-container flex md-no-float style="align-self:center">
1297 <input placeholder="{{(emailChecker.settings.keywordsOpen?'Keywords':emailChecker.settings.showHistory?'History':'Hits')}}" ng-model="emailChecker.settings.searchTerm">
1298 </md-input-container>
1299 </div>
1300 <!--#endregion-->
1301
1302 <!--#region Buttons-->
1303
1304 <!--#region History View-->
1305 <md-button ng-show="!emailChecker.settings.showHistory" ng-click="emailChecker.functions.loadHistory()" class="md-icon-button material-icons">
1306 <md-icon>history</md-icon>
1307 </md-button>
1308 <!--#endregion-->
1309
1310 <!--#region Keywords-->
1311 <md-button ng-click="emailChecker.settings.keywordsOpen=true" ng-show="!emailChecker.settings.keywordsOpen&&!emailChecker.settings.showHistory" class="md-icon-button material-icons">
1312 <md-icon>vpn_key</md-icon>
1313 </md-button>
1314 <!--#endregion-->
1315
1316 <!--#endregion-->
1317
1318 <!--#region View Buttons-->
1319
1320 <!--#region History View's Action Buttons-->
1321 <span layout="row" layout-align="center center" ng-show="emailChecker.settings.showHistory">
1322
1323 <span id="emailChecker_History_pagination" layout="row" layout-align="center center" style="background-color:#191919;border-radius:4px;margin-left:8px">
1324 <md-button class="md-icon-button material-icons" ng-click="accountChecker.functions.changePage('emailChecker_History', false)" style="margin-left:0px!important">
1325 <md-icon>keyboard_arrow_left</md-icon>
1326 </md-button>
1327 <h6 style="color:rgba(255,255,255,0.8);font-weight:bold">
1328 <span id="emailChecker_History_pagination_curr">1</span>
1329 <span style="color:#5a5a5a">/</span>
1330 <span id="emailChecker_History_pagination_total">1</span>
1331 </h6>
1332 <md-button class="md-icon-button material-icons" ng-click="accountChecker.functions.changePage('emailChecker_History', true)" style="margin-left:0px!important">
1333 <md-icon>keyboard_arrow_right</md-icon>
1334 </md-button>
1335 </span>
1336
1337 <md-menu style="align-self:center">
1338 <md-button class="md-icon-button material-icons" ng-click="gfunction.openMdMenu($mdMenu, $event)" md-menu-origin style="margin:0px 0px 0px 8px!important">
1339 <md-icon style="padding-left:initial;padding-right:initial;font-size:1em;color:rgba(255,255,255,0.9)">
1340 save
1341 </md-icon>
1342 </md-button>
1343 <md-menu-content width="4">
1344 <md-menu-item>
1345 <md-button ng-click="history.functions.saveHistory('emailChecker', true, '')">Save</md-button>
1346 </md-menu-item>
1347 <md-menu-item>
1348 <md-button ng-click="history.functions.saveHistory('emailChecker', false, '')">Save without Capture</md-button>
1349 </md-menu-item>
1350 </md-menu-content>
1351 </md-menu>
1352 <md-button onclick="callbackObj.emailChecker_ClearHistory()" class="md-icon-button material-icons">
1353 <md-icon>close</md-icon>
1354 </md-button>
1355
1356 </span>
1357 <!--#endregion-->
1358
1359
1360 <!--#region Keywords View-->
1361 <md-button ng-click="emailChecker.functions.addKeyword()" ng-show="emailChecker.settings.keywordsOpen" class="md-icon-button material-icons">
1362 <md-icon>add</md-icon>
1363 </md-button>
1364 <!--#endregion-->
1365
1366 <!--#endregion-->
1367
1368 </div>
1369
1370 <!--#endregion-->
1371
1372 <!--#region Main-->
1373 <div flex layout="column">
1374
1375 <!--#region Tables-->
1376 <!--#region History Table-->
1377 <div flex layout="column" ng-show="emailChecker.settings.showHistory" style="overflow:auto">
1378 <table class="sortable">
1379 <thead>
1380 <tr>
1381 <th class="sorttable_numeric">#</th>
1382 <th class="sorttable_numeric">Date</th>
1383 <th>Combo</th>
1384 </tr>
1385 </thead>
1386 <tbody id="emailChecker_History_TableBody">
1387 </tbody>
1388 </table>
1389 </div>
1390 <!--#endregion-->
1391 <!--#region Keywords Table-->
1392 <div flex style="overflow:auto" ng-show="emailChecker.settings.keywordsOpen&&!emailChecker.settings.showHistory">
1393 <table class="sortable">
1394 <thead>
1395 <tr>
1396 <th>Keyword</th>
1397 <th>Type</th>
1398 <th>Actions</th>
1399 </tr>
1400 </thead>
1401 <tbody id="emailChecker_keywordsTableBody">
1402 </tbody>
1403 </table>
1404 </div>
1405 <!--#endregion-->
1406 <!--#region Hits Table-->
1407 <div flex style="overflow:auto" ng-show="!emailChecker.settings.mailboxOpen&&!emailChecker.settings.keywordsOpen&&!emailChecker.settings.showHistory">
1408 <table class="sortable">
1409 <thead>
1410 <tr>
1411 <th class="sorttable_numeric">#</th>
1412 <th>Combo</th>
1413 <th>[Fetched]/[Total] Emails</th>
1414 <th>Keyword Results</th>
1415 </tr>
1416 </thead>
1417 <tbody id="emailChecker_Hits_TableBody">
1418 </tbody>
1419 </table>
1420 </div>
1421 <!--#endregion-->
1422 <!--#region Mailbox Table-->
1423 <div flex style="overflow:auto" ng-show="emailChecker.settings.mailboxOpen&&!emailChecker.settings.errorsOpen">
1424 <table class="sortable">
1425 <thead>
1426 <tr>
1427 <th class="sorttable_numeric">#</th>
1428 <th>From</th>
1429 <th>Date/Time</th>
1430 <th>Subject</th>
1431 </tr>
1432 </thead>
1433 <tbody id="emailChecker_mailboxTableBody">
1434 </tbody>
1435 </table>
1436 </div>
1437 <!--#endregion-->
1438 <!--#region Failures Table-->
1439 <div flex style="overflow:auto" ng-show="emailChecker.settings.errorsOpen">
1440 <table class="sortable">
1441 <thead>
1442 <tr>
1443 <th>Email Domain</th>
1444 <th>Hostname:Port Tried</th>
1445 </tr>
1446 </thead>
1447 <tbody id="emailChecker_mailboxErrorsTableBody">
1448 </tbody>
1449 </table>
1450 </div>
1451 <!--#endregion-->
1452 <!--#endregion-->
1453
1454 <!--#region NEW Profile-Stats Row-->
1455 <span layout="column" style="border-top:1px solid #202225">
1456 <div layout="row" layout-align="start center" style="height:35px;background:#36393e;color:rgba(255, 255, 255, 0.7);font-size:0.9em;box-shadow:0 2px 4px 1px rgba(0,0,0,.2),0 4px 5px 2px rgba(0,0,0,.14),0 1px 10px 2px rgba(0,0,0,.12);z-index:0">
1457
1458 <h5 id="emailChecker_idle_block" style="padding:2px 5px;margin:0px 6px;border-radius:4px;background-color:#191919">Idle...</h5>
1459
1460 <!--#region Profile Stats-->
1461 <div layout="column" id="emailChecker_{{::block}}_block" style="font-size:0.8em;padding:{{block=='checked'?'0px 6px':'1px 4px'}};display:none;border-radius:2px;margin-{{block=='checked'?'right':'left'}}:4px;background:{{block=='checked'?'#2b2e32':block=='hits'?'#4CAF50':block=='invalid'?'#03A9F4':block=='unsafedomains'?'#2b2e32':block=='unsupported'?'#2b2e32':block=='failures'?'#2b2e32':'indianred'}}{{block=='checked'?';height:100%;-webkit-box-align:center':''}}" ng-repeat="block in ['checked', 'hits', 'invalid', 'unsafedomains', 'unsupported', 'failures', 'retries']">
1462 <md-tooltip md-direction="top" ng-bind="(block.charAt(0).toUpperCase()+block.slice(1)) + ' - ' + (block=='checked'?'This displayed how many are checked and how many total combos were loaded.':block=='hits'?'Valid Checks :o':block=='invalid'?'Invalid Checks :(':block=='unsafedomains'?'Automatically blocked unsafe domains to contact (.gov - government, .mil - military and more)':block=='unsupported'?'Not all domains use traditional commonplace subdomains for IMAP Servers, when SNIPR cant find the subdomain, its essentially counted as invalid and this number is increased':block=='failures'?'If SNIPR fails to contact the IMAP Server for a Combo 5 times, it will be counted as invalid and this number is increased':'These are Checks that failed in some way. It could be caused by a lot of things including General Connection Issues, Saturated Proxies, Hitting Ban/Retry Keys, Getting IP-Banned, Server Errors and tons more :/')"></md-tooltip>
1463 <div flex style="font-size:0.8em" layout="row" layout-align="center center">
1464 <i ng-if="block!='checked'" class="material-icons" aria-label="stat-icon" style="font-size:10px;margin-right:4px">{{block=='hits'?'check':block=='invalid'?'close':block=='unsafedomains'?'gavel':block=='unsupported'?'help':'priority_high'}}</i>
1465 <span flex id="emailChecker_{{::block}}" ng-style="block=='hits' && {'color':'greenyellow'}">0</span>
1466 <span ng-show="block=='checked'">/<span id="emailChecker_total">0</span></span>
1467 </div>
1468 <div flex style="font-size:0.7em" ng-if="block=='checked'">
1469 <span id="emailChecker_cpm_block">(<span id="emailChecker_cpm">...</span>/pm)</span>
1470 </div>
1471 </div>
1472 <!--#endregion-->
1473
1474 <!--#region "Profile - Filename"-->
1475 <div flex layout="column" style="font-size:0.8em;height:100%;padding:4px 5px;background:-webkit-linear-gradient(left,#36393e,#171717)">
1476 <div flex style="text-align:right">
1477 <span id="emailChecker_info_title">Email-Checker</span>
1478 </div>
1479 <div flex style="font-size:0.8em;text-align:right">
1480 <span id="emailChecker_info_desc">—</span>
1481 </div>
1482 </div>
1483 <!--#endregion-->
1484
1485 <!--#region Buttons-->
1486 <div layout="row" layout-align="center center" style="margin-right:8px">
1487
1488 <md-menu id="emailChecker_stop_button" style="display:none">
1489 <md-button ng-click="gfunction.openMdMenu($mdMenu, $event)" class="md-icon-button material-icons" style="background:transparent;margin:0px;margin-right:6px;height:26px;width:26px;padding:0px;min-height:24px;align-self:center;border:none" md-menu-origin>
1490 <md-icon style="padding-left:initial;padding-right:initial;font-size:1em;color:rgba(255,255,255,0.9)">stop</md-icon>
1491 </md-button>
1492 <md-menu-content width="5">
1493 <md-menu-item>
1494 <md-button onclick="callbackObj.emailChecker_stop()">Stop</md-button>
1495 </md-menu-item>
1496 <md-menu-item>
1497 <md-button onclick="callbackObj.emailChecker_saveRemaining()">Stop and Save Remaining Combos</md-button>
1498 </md-menu-item>
1499 </md-menu-content>
1500 </md-menu>
1501
1502 <md-button id="emailChecker_pauseResumeRefresh_button" onclick="callbackObj.emailChecker_Start()" class="md-icon-button material-icons" style="background:transparent;margin:0px;margin-right:6px;height:26px;width:26px;padding:0px;min-height:24px;align-self:center;border:none">
1503 <md-icon style="padding-left:initial;padding-right:initial;font-size:1em;color:rgba(255,255,255,0.9)">play_arrow</md-icon>
1504 </md-button>
1505
1506 <md-button id="emailChecker_save_button" onclick="callbackObj.emailChecker_Save()" class="md-icon-button material-icons" style="display:none;background:transparent;margin:0px;margin-right:6px;height:26px;width:26px;padding:0px;min-height:24px;align-self:center;border:none">
1507 <md-icon style="padding-left:initial;padding-right:initial;font-size:1em;color:rgba(255,255,255,0.9)">save</md-icon>
1508 </md-button>
1509
1510 </div>
1511 <!--#endregion-->
1512
1513 </div>
1514 <div id="emailChecker_progressBarPercent" style="background-color:#32cd32;height:3px;width:0%"></div>
1515 <md-progress-linear id="emailChecker_progressBarIndeterminate" md-mode="indeterminate" style="display:none"></md-progress-linear>
1516
1517 </span>
1518 <!--#endregion-->
1519
1520 </div>
1521 <!--#endregion-->
1522
1523</div>
1524<!--#endregion-->
1525
1526<!--#region Proxy-Checker-->
1527<div layout="column" layout-fill ng-show="openedTab=='proxyChecker'">
1528
1529 <!--#region TopBar-->
1530 <div layout="row" layout-align="center center" class="topBar">
1531
1532 <!--#region Search-->
1533 <div flex layout="row" layout-align="center center" class="searchBar">
1534 <i class="material-icons">search</i>
1535 <md-input-container flex md-no-float>
1536 <input placeholder="Proxy-Checker" ng-model="proxyChecker.searchTerm">
1537 </md-input-container>
1538 </div>
1539 <!--#endregion-->
1540
1541 <!--#region Location Select Dropdown-->
1542 <md-input-container id="proxyChecker_locationSelect_button" class="md2-select" md-no-float style="display:none;color:white;background-color:#191919;border-radius:4px;margin-left:8px">
1543 <md-select ng-model="proxyChecker.countryCode" aria-label="Proxy-Checker Country Code" style="background:#191919;border-radius:4px;padding-left:6px;margin-left:8px;height:26px;align-items:center">
1544 <md-option value="*" ng-selected="true">All Locations</md-option>
1545 <md-option ng-repeat="c in proxyChecker.checkerLocations" value="{{::c}}" ng-bind="::c"></md-option>
1546 </md-select>
1547 </md-input-container>
1548 <!--#endregion-->
1549
1550 <!--#region Start/Pause/Resume/Refresh Button-->
1551 <md-button id="proxyChecker_pauseResumeRefresh_button" onclick="callbackObj.proxyChecker_Start()" class="md-icon-button material-icons">
1552 <md-icon>
1553 play_arrow
1554 </md-icon>
1555 </md-button>
1556 <!--#endregion-->
1557 <!--#region Stop Button-->
1558 <md-button id="proxyChecker_stop_button" style="display:none" onclick="callbackObj.proxyChecker_Stop()" class="md-icon-button material-icons">
1559 <md-icon>
1560 stop
1561 </md-icon>
1562 </md-button>
1563 <!--#endregion-->
1564 <!--#region Save Button-->
1565 <md-button id="proxyChecker_save_button" style="display:none" ng-click="proxyChecker.save()" class="md-icon-button material-icons">
1566 <md-icon>
1567 insert_drive_file
1568 </md-icon>
1569 </md-button>
1570 <!--#endregion-->
1571
1572 </div>
1573 <!--#endregion-->
1574
1575 <!--#region Main-->
1576 <div flex layout="column">
1577
1578 <!--#region Table-->
1579 <div flex id="proxyChecker_table_block" style="overflow:auto">
1580 <table class="sortable">
1581 <thead>
1582 <tr>
1583 <th class="sorttable_numeric">#</th>
1584 <th>Proxy</th>
1585 <th>Location</th>
1586 </tr>
1587 </thead>
1588 <tbody id="proxyChecker_tableBody">
1589 </tbody>
1590 </table>
1591 </div>
1592 <!--#endregion-->
1593
1594 <!--#region Stats Row-->
1595 <div layout="row" layout-align="start center" style="height:35px;background:#36393e;color:rgba(255, 255, 255, 0.7);font-size:0.9em;box-shadow:0 2px 4px 1px rgba(0,0,0,.2),0 4px 5px 2px rgba(0,0,0,.14),0 1px 10px 2px rgba(0,0,0,.12);z-index:0">
1596
1597 <h5 id="proxyChecker_idle_block" style="padding:2px 5px;margin:0px 6px;border-radius:4px;background-color:#191919">Idle...</h5>
1598
1599 <!--#region Profile Stats | Checker-->
1600 <div layout="column" id="proxyChecker_{{::block}}_block" style="font-size:0.8em;padding:4px 5px;display:none;background:#2b2e32;border-right:1px solid #1f1f1f" ng-repeat="block in ['checked', 'live', 'dead']">
1601 <div flex style="color:white">
1602 <span ng-bind="{{::block}}">...</span>
1603 <span ng-show="block=='checked'" id="proxyChecker_cpm_block"> (<span id="proxyChecker_cpm">...</span> cpm)</span>
1604 </div>
1605 <div flex style="font-size:0.8em">
1606 <span flex id="proxyChecker_{{::block}}" ng-style="block=='live' && {'color':'greenyellow'} || block=='dead' && {'color':'indianred'}">0</span>
1607 <span ng-show="block=='checked'">/<span id="proxyChecker_total">0</span></span>
1608 </div>
1609 </div>
1610 <!--#endregion-->
1611
1612 <!--#region "Profile - Filename"-->
1613 <div flex layout="column" style="font-size:0.8em;height:100%;padding:4px 5px;background:-webkit-linear-gradient(left,#36393e,#171717)">
1614 <div flex style="text-align:right">
1615 <span id="proxyChecker_info_title">—</span>
1616 </div>
1617 <div flex style="font-size:0.8em;text-align:right">
1618 <span id="proxyChecker_info_desc">—</span>
1619 </div>
1620 </div>
1621 <!--#endregion-->
1622
1623 </div>
1624
1625 <div id="proxyChecker_progressBarPercent" style="background-color:#32cd32;height:3px;width:0%"></div>
1626 <md-progress-linear id="proxyChecker_progressBarIndeterminate" md-mode="indeterminate" style="display:none"></md-progress-linear>
1627 <!--#endregion-->
1628
1629 </div>
1630 <!--#endregion-->
1631
1632</div>
1633<!--#endregion-->
1634
1635<!--#region Proxy-Leecher-->
1636<div layout="column" layout-fill ng-show="openedTab=='proxyLeecher'">
1637
1638 <!--#region TopBar-->
1639 <div layout="row" layout-align="center center" class="topBar">
1640
1641 <!-- Back Button -->
1642 <md-button ng-click="proxyLeecher.settings.sourcesOpen=false" class="md-icon-button material-icons" ng-show="proxyLeecher.settings.sourcesOpen">
1643 <md-icon>arrow_back</md-icon>
1644 </md-button>
1645
1646 <!-- Search Input -->
1647 <div flex layout="row" layout-align="center center" class="searchBar">
1648 <i class="material-icons">search</i>
1649 <md-input-container flex md-no-float>
1650 <input placeholder="{{(proxyLeecher.settings.sourcesOpen?'Sources':'Proxy-Leecher')}}" ng-model="proxyLeecher.settings.searchTerm">
1651 </md-input-container>
1652 </div>
1653
1654 <!-- Manage Sources Button -->
1655 <md-button ng-click="proxyLeecher.settings.sourcesOpen=true" ng-show="!proxyLeecher.settings.sourcesOpen" class="md-icon-button material-icons">
1656 <md-icon>library_books</md-icon>
1657 </md-button>
1658
1659 <!-- Add Sources Button -->
1660 <md-button ng-click="proxyLeecher.functions.addSource()" ng-show="proxyLeecher.settings.sourcesOpen" class="md-icon-button material-icons">
1661 <md-icon>add</md-icon>
1662 </md-button>
1663
1664 <span ng-show="!proxyLeecher.settings.sourcesOpen">
1665 <!-- Start/Pause/Resume/Refresh Button -->
1666 <md-button id="proxyLeecher_pauseResumeRefresh_button" onclick="callbackObj.proxyLeecher_Start()" class="md-icon-button material-icons">
1667 <md-icon>play_arrow</md-icon>
1668 </md-button>
1669 <!-- Stop Button -->
1670 <md-button id="proxyLeecher_stop_button" style="display:none" onclick="callbackObj.proxyLeecher_Stop()" class="md-icon-button material-icons">
1671 <md-icon>stop</md-icon>
1672 </md-button>
1673 <!-- Save Button -->
1674 <md-button id="proxyLeecher_save_button" style="display:none" onclick="callbackObj.proxyLeecher_Save()" class="md-icon-button material-icons">
1675 <md-icon>insert_drive_file</md-icon>
1676 </md-button>
1677 </span>
1678
1679 </div>
1680 <!--#endregion-->
1681
1682 <!--#region Main-->
1683 <div flex layout="column">
1684
1685 <!--#region Sources Table-->
1686 <div flex style="overflow:auto" ng-show="proxyLeecher.settings.sourcesOpen">
1687 <table class="sortable">
1688 <thead>
1689 <tr>
1690 <th>Source URL</th>
1691 <th>Type</th>
1692 <th>Actions</th>
1693 </tr>
1694 </thead>
1695 <tbody id="proxyLeecher_sourcesTableBody">
1696 </tbody>
1697 </table>
1698 </div>
1699 <!--#endregion-->
1700
1701 <div flex layout="column" style="overflow:auto" ng-show="!proxyLeecher.settings.sourcesOpen">
1702
1703 <!--#region Table-->
1704 <div flex style="overflow:auto">
1705 <table class="sortable">
1706 <thead>
1707 <tr>
1708 <th class="sorttable_numeric">#</th>
1709 <th>Type</th>
1710 <th>Source</th>
1711 <th>Grabbed</th>
1712 <th>Duplicates</th>
1713 </tr>
1714 </thead>
1715 <tbody id="proxyLeecher_tableBody">
1716 </tbody>
1717 </table>
1718 </div>
1719 <!--#endregion-->
1720
1721 <!--#region Stats Row-->
1722 <div layout="row" layout-align="start center" style="height:35px;background:#36393e;color:rgba(255, 255, 255, 0.7);font-size:0.9em;box-shadow:0 2px 4px 1px rgba(0,0,0,.2),0 4px 5px 2px rgba(0,0,0,.14),0 1px 10px 2px rgba(0,0,0,.12);z-index:0">
1723
1724 <h5 id="proxyLeecher_idle_block" style="padding:2px 5px;margin:0px 6px;border-radius:4px;background-color:#191919">Idle...</h5>
1725
1726 <!--#region Profile Stats-->
1727 <div layout="column" id="proxyLeecher_{{::block}}_block" style="font-size:0.8em;padding:4px 5px;display:none;background:#2b2e32;border-right:1px solid #1f1f1f" ng-repeat="block in ['grabbed', 'failures', 'duplicates', 'bunk']">
1728 <div flex style="color:white">
1729 <span ng-bind="{{::block}}">...</span>
1730 </div>
1731 <div flex style="font-size:0.8em">
1732 <span flex id="proxyLeecher_{{::block}}">0</span>
1733 </div>
1734 </div>
1735 <!--#endregion-->
1736
1737 <!--#region "Profile - Filename"-->
1738 <div flex layout="column" style="font-size:0.8em;height:100%;padding:4px 5px;background:-webkit-linear-gradient(left,#36393e,#171717)">
1739 <div flex style="text-align:right">
1740 <span id="proxyLeecher_info_title">—</span>
1741 </div>
1742 <div flex style="font-size:0.8em;text-align:right">
1743 <span id="proxyLeecher_info_desc">—</span>
1744 </div>
1745 </div>
1746 <!--#endregion-->
1747
1748 </div>
1749
1750 <div id="proxyLeecher_progressBarPercent" style="background-color:#32cd32;height:3px;width:0%"></div>
1751 <md-progress-linear id="proxyLeecher_progressBarIndeterminate" md-mode="indeterminate" style="display:none"></md-progress-linear>
1752 <!--#endregion-->
1753
1754 </div>
1755
1756 </div>
1757 <!--#endregion-->
1758
1759</div>
1760<!--#endregion-->
1761
1762<!--#region Hashcat -->
1763<div layout="column" layout-fill ng-show="openedTab=='hashcat'">
1764
1765 <!--#region TopBar-->
1766 <div layout="row" layout-align="center center" class="topBar">
1767
1768 <!--#region Search-->
1769 <div flex layout="row" layout-align="center center" class="searchBar">
1770 <i class="material-icons">search</i>
1771 <md-input-container flex md-no-float>
1772 <input placeholder="Hashcat [Very Early! Send suggestions on the forum! Enjoy nonetheless]">
1773 </md-input-container>
1774 </div>
1775 <!--#endregion-->
1776
1777 <!--#region Hash Type Dropdown-->
1778 <md-input-container class="md2-select" md-no-float style="color:white;background-color:#191919;border-radius:4px;margin-left:8px">
1779 <md-select ng-model="hashcat.settings.hashType" aria-label="Hashcat Hash Type" style="background:#191919;border-radius:4px;padding-left:6px;margin-left:8px;height:26px;align-items:center">
1780 <md-option value="*" ng-selected="true">Hash Type</md-option>
1781 <md-option ng-repeat="t in ['MD5']" value="{{::t}}" ng-bind="::t"></md-option>
1782 </md-select>
1783 </md-input-container>
1784 <!--#endregion-->
1785
1786 <!--#region Start Button-->
1787 <md-button id="hashcat_button_start" onclick="callbackObj.hashcat_Start()" class="md-icon-button material-icons">
1788 <md-icon>play_arrow</md-icon>
1789 </md-button>
1790 <!--#endregion-->
1791 <!--#region Start Button-->
1792 <md-button id="hashcat_button_start" onclick="callbackObj.hashcat_SelectDictionarys()" class="md-icon-button material-icons">
1793 <md-icon>collections_bookmark</md-icon>
1794 </md-button>
1795 <!--#endregion-->
1796 <!--#region Stop Button-->
1797 <md-button id="hashcat_button_stop" style="display:none" ng-click="hashcat.functions.stop()" class="md-icon-button material-icons">
1798 <md-icon>stop</md-icon>
1799 </md-button>
1800 <!--#endregion-->
1801 <!--#region Refresh Button-->
1802 <md-button id="hashcat_button_refresh" style="display:none" ng-click="hashcat.functions.refresh()" class="md-icon-button material-icons">
1803 <md-icon>refresh</md-icon>
1804 </md-button>
1805 <!--#endregion-->
1806 <!--#region Save Button-->
1807 <md-button id="hashcat_button_save" style="display:none" ng-click="hashcat.functions.save()" class="md-icon-button material-icons">
1808 <md-icon>insert_drive_file</md-icon>
1809 </md-button>
1810 <!--#endregion-->
1811 <!--#region Settings Button-->
1812 <md-button id="hashcat_button_settings" onclick="var t=document.getElementById('SNIPRhashcatSettings');t.style.visibility='visible';t.style.opacity=1" class="md-icon-button material-icons">
1813 <md-icon>settings</md-icon>
1814 </md-button>
1815 <!--#endregion-->
1816
1817 </div>
1818 <!--#endregion-->
1819 <!--#region Main-->
1820 <div flex layout="column" style="padding:20px">
1821
1822 <!--#region Status-->
1823 <pre id="hashcatStatus" flex style="overflow:auto;font-size:0.9em;margin:0;padding:8px;color:rgba(255,255,255,0.7);background-color:rgb(66,70,77);border-top-left-radius:4px;border-top-right-radius:4px;box-shadow:0px 2px 10px -4px black"></pre>
1824 <!--#endregion-->
1825 <!--#region Progress Bars-->
1826 <div id="hashcat_progressBar" style="border-bottom-left-radius:4px;border-bottom-right-radius:4px;background-color:#32cd32;height:3px;width:0%"></div>
1827 <!--#endregion-->
1828
1829 </div>
1830 <!--#endregion-->
1831
1832</div>
1833<!--#endregion-->
1834
1835<!--#region Combo-Tools-->
1836
1837<div layout="column" layout-fill ng-show="openedTab=='comboTools'">
1838
1839 <div flex style="background:#43474c;overflow:hidden;display:flex;justify-content:center;align-items:center">
1840 <div style="width:100%;background:#2f3136;box-shadow:0 2px 4px 1px rgba(0,0,0,.2),0px 0px 5px 2px rgba(0,0,0,.14),2px 7px 10px 2px rgba(0,0,0,.12)">
1841 <div flex style="color:white;text-align:center;margin:10px 0px">
1842 <h4 style="font-size:1.2em;font-weight:bold;font-variant:small-caps">Combo-Tools</h4>
1843 <h4 style="font-size:0.7em">Modify and Improve your Combo Files</h4>
1844 </div>
1845 <section layout="column" layout-align="center center" style="margin-bottom:10px">
1846 <span layout="row" class="md-whiteframe-4dp" style="margin-bottom:3px">
1847 <md-button class="md-primary md-raised noRightBorders" md-colors="{background:comboTools.settings.combining()?'gray':'blue'}" ng-disabled="comboTools.settings.combining()" onclick="callbackObj.antiduplicate()">
1848 ANTI-DUPLICATE
1849 </md-button>
1850 <md-button class="md-primary md-raised noLeftBorders noRightBorders" md-colors="{background:comboTools.settings.parsing()?'gray':'blue'}" ng-disabled="comboTools.settings.parsing()" onclick="callbackObj.hqify()">
1851 PARSE
1852 </md-button>
1853 <md-button class="md-primary md-raised noLeftBorders noRightBorders" md-colors="{background:comboTools.settings.splitting()?'gray':'blue'}" ng-disabled="comboTools.settings.splitting()" ng-click="comboTools.functions.split($event)">
1854 SPLIT
1855 </md-button>
1856 <md-button class="md-primary md-raised noLeftBorders noRightBorders" md-colors="{background:comboTools.settings.combining()?'gray':'blue'}" ng-disabled="comboTools.settings.combining()" ng-click="comboTools.functions.combine($event)">
1857 COMBINE
1858 </md-button>
1859 <md-button class="md-primary md-raised noLeftBorders noRightBorders" md-colors="{background:comboTools.settings.combining()?'gray':'blue'}" ng-disabled="comboTools.settings.combining()" onclick="callbackObj.comboTools_Stitch()">
1860 STITCH
1861 </md-button>
1862 <md-button class="md-primary md-raised noLeftBorders" md-colors="{background:comboTools.settings.combining()?'gray':'blue'}" ng-disabled="comboTools.settings.combining()" onclick="callbackObj.emailToUser()">
1863 EMAIL TO USERNAME
1864 </md-button>
1865 </span>
1866 <span layout="row" class="md-whiteframe-4dp">
1867 <md-button class="md-primary md-raised noRightBorders" md-colors="{background:comboTools.settings.combining()?'gray':'blue'}" ng-disabled="comboTools.settings.combining()" onclick="callbackObj.alphabetize()">
1868 SORT A->Z
1869 </md-button>
1870 <md-button class="md-primary md-raised noLeftBorders noRightBorders" md-colors="{background:comboTools.settings.combining()?'gray':'blue'}" ng-disabled="comboTools.settings.combining()" onclick="callbackObj.orderByEmail()">
1871 SORT BY EMAIL
1872 </md-button>
1873 <md-button class="md-primary md-raised noLeftBorders noRightBorders" md-colors="{background:comboTools.settings.combining()?'gray':'blue'}" ng-disabled="comboTools.settings.combining()" onclick="callbackObj.randomize()">
1874 RANDOMIZE
1875 </md-button>
1876 <md-button class="md-primary md-raised noLeftBorders" md-colors="{background:comboTools.settings.combining()?'gray':'blue'}" ng-disabled="comboTools.settings.combining()" ng-click="comboTools.functions.extract($event)">
1877 EXTRACT
1878 </md-button>
1879 </span>
1880 </section>
1881 <md-progress-linear md-mode="indeterminate" class="opaque" ng-show="comboTools.settings.usingTool"></md-progress-linear>
1882 </div>
1883 </div>
1884</div>
1885<!--#endregion--></div>
1886 </div>
1887 </div>
1888 <script type="text/javascript" src="https://ui.snipr.gg/MAIN.js"></script>
1889 <span ng-show="::false" style="color:white">AngularJS Failed to load.<br>This is an issue with your Internet (failed to download the angular.js file).</span>
1890 </body>
1891 </html>