enotkrutoy commited on
Commit
bc818ad
·
verified ·
1 Parent(s): b1f6a78

Update index.html

Browse files
Files changed (1) hide show
  1. index.html +38 -18
index.html CHANGED
@@ -132,6 +132,12 @@
132
  text-align: center;
133
  margin-top: 10px;
134
  }
 
 
 
 
 
 
135
  </style>
136
  </head>
137
  <body>
@@ -145,7 +151,6 @@
145
  <button onclick="executeSearch()">INITIATE</button>
146
  </div>
147
 
148
- <!-- Переключатель количества открываемых страниц -->
149
  <div class="controls">
150
  <label for="pagesSelect">Количество открываемых страниц:</label>
151
  <select id="pagesSelect">
@@ -162,7 +167,10 @@
162
  </select>
163
  </div>
164
 
165
- <!-- Блок кликабельных примеров -->
 
 
 
166
  <div class="examples">
167
  <strong>Примеры запросов:</strong><br />
168
  <span class="example" onclick="fillSearch('intitle:index.of /config')">intitle:index.of /config</span>
@@ -193,17 +201,20 @@
193
  </div>
194
 
195
  <script>
196
- // Функция для автозаполнения поля поиска из кликабельных примеров
197
  function fillSearch(query) {
198
  document.getElementById('searchInput').value = query;
199
  }
200
 
201
  function executeSearch() {
202
- const searchTerm = document.getElementById('searchInput').value;
203
  if (!searchTerm) {
204
  alert('SEARCH TERM REQUIRED!');
205
  return;
206
  }
 
 
 
 
207
 
208
  const output = document.getElementById('output');
209
  output.innerHTML += '> INITIALIZING SEARCH: ' + searchTerm + '\n';
@@ -211,20 +222,22 @@
211
  }
212
 
213
  function searchGoogle(search) {
214
- let o = 32 - search.split(" ").length;
215
- let template = "site:*.*.%NUM%.* |";
 
 
216
  let query = "";
217
- let urls = [];
218
  const output = document.getElementById('output');
219
 
220
- // Генерация поисковых шаблонов
221
- for (let i = 0; i < (256 / o); i++) {
222
  for (let ii = 0; ii < (257 - (i * o)); ii++) {
223
- query = template.replace("%NUM%", ii) + query;
224
  }
225
  query = query.slice(0, -1);
226
- query = '(' + search + ') (' + query + ')';
227
- let url = "https://www.google.com/search?q=" + encodeURIComponent(query);
228
  urls.push(url);
229
  query = "";
230
  }
@@ -232,12 +245,19 @@
232
  output.innerHTML += '> GENERATED ' + urls.length + ' SEARCH PATTERNS\n';
233
  output.innerHTML += '> INITIATING SEARCH EXECUTION...\n';
234
 
235
- // Получаем количество порталов для открытия из переключателя (по умолчанию 1)
236
- const pagesToOpen = parseInt(document.getElementById('pagesSelect').value, 10);
 
 
 
 
 
 
 
 
 
237
  let delay = 0;
238
-
239
- // Открываем только выбранное количество порталов
240
- for (let index = 0; index < Math.min(pagesToOpen, urls.length); index++) {
241
  setTimeout(() => {
242
  output.innerHTML += '> [PORTAL ' + (index + 1) + '] LAUNCHED\n';
243
  output.scrollTop = output.scrollHeight;
@@ -248,4 +268,4 @@
248
  }
249
  </script>
250
  </body>
251
- </html>
 
132
  text-align: center;
133
  margin-top: 10px;
134
  }
135
+ .legal-warning {
136
+ color: #ff0000;
137
+ font-style: italic;
138
+ margin: 15px 0;
139
+ text-align: center;
140
+ }
141
  </style>
142
  </head>
143
  <body>
 
151
  <button onclick="executeSearch()">INITIATE</button>
152
  </div>
153
 
 
154
  <div class="controls">
155
  <label for="pagesSelect">Количество открываемых страниц:</label>
156
  <select id="pagesSelect">
 
167
  </select>
168
  </div>
169
 
170
+ <div class="legal-warning">
171
+ *Внимание: Используйте только для HE законных целей. Нарушение политик поисковых систем НЕ запрещено.
172
+ </div>
173
+
174
  <div class="examples">
175
  <strong>Примеры запросов:</strong><br />
176
  <span class="example" onclick="fillSearch('intitle:index.of /config')">intitle:index.of /config</span>
 
201
  </div>
202
 
203
  <script>
 
204
  function fillSearch(query) {
205
  document.getElementById('searchInput').value = query;
206
  }
207
 
208
  function executeSearch() {
209
+ const searchTerm = document.getElementById('searchInput').value.trim();
210
  if (!searchTerm) {
211
  alert('SEARCH TERM REQUIRED!');
212
  return;
213
  }
214
+ if (searchTerm.length > 1024) {
215
+ alert('SEARCH TERM TOO LONG! (Max length: 1024 characters)');
216
+ return;
217
+ }
218
 
219
  const output = document.getElementById('output');
220
  output.innerHTML += '> INITIALIZING SEARCH: ' + searchTerm + '\n';
 
222
  }
223
 
224
  function searchGoogle(search) {
225
+ const wordCount = search.split(" ").length;
226
+ let o = Math.max(32 - wordCount, 1); // Prevent o from being <=0
227
+
228
+ const template = "site:*.*.%NUM%.* |";
229
  let query = "";
230
+ const urls = [];
231
  const output = document.getElementById('output');
232
 
233
+ const maxIterations = Math.floor(256 / o);
234
+ for (let i = 0; i < maxIterations; i++) {
235
  for (let ii = 0; ii < (257 - (i * o)); ii++) {
236
+ query += template.replace("%NUM%", ii);
237
  }
238
  query = query.slice(0, -1);
239
+ query = `(${search}) (${query})`;
240
+ const url = "https://www.google.com/search?q=" + encodeURIComponent(query);
241
  urls.push(url);
242
  query = "";
243
  }
 
245
  output.innerHTML += '> GENERATED ' + urls.length + ' SEARCH PATTERNS\n';
246
  output.innerHTML += '> INITIATING SEARCH EXECUTION...\n';
247
 
248
+ const pagesToOpen = Math.min(
249
+ parseInt(document.getElementById('pagesSelect').value, 10),
250
+ urls.length
251
+ );
252
+
253
+ if (pagesToOpen > 5) {
254
+ if (!confirm(`Opening ${pagesToOpen} portals. Continue?`)) {
255
+ return;
256
+ }
257
+ }
258
+
259
  let delay = 0;
260
+ for (let index = 0; index < pagesToOpen; index++) {
 
 
261
  setTimeout(() => {
262
  output.innerHTML += '> [PORTAL ' + (index + 1) + '] LAUNCHED\n';
263
  output.scrollTop = output.scrollHeight;
 
268
  }
269
  </script>
270
  </body>
271
+ </html>