Guest User

Untitled

a guest
Dec 29th, 2019
431
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 113.49 KB | None | 0 0
  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,[email protected]%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 &lt;USER&gt; 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="'&lt;![ ' + 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'] : '') + ' ]!&gt;'" 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: &lt;USER&gt;, &lt;PASS&gt;, 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: &lt;span style="color:green"&gt;Capture Text&lt;/span&gt; or &lt;br&gt; 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>
Add Comment
Please, Sign In to add comment