numbpilled commited on
Commit
69626f3
·
verified ·
1 Parent(s): f5fb4a3

Add 3 files

Browse files
Files changed (3) hide show
  1. README.md +7 -7
  2. index.html +514 -19
  3. prompts.txt +1 -0
README.md CHANGED
@@ -1,12 +1,12 @@
1
  ---
2
- title: >-
3
- Filesnitch Feed It Ip Name Domain Return Pdf Xlds Csv Of All Related And
4
- Indexed Files
5
- emoji: 🐠
6
- colorFrom: indigo
7
- colorTo: green
8
  sdk: static
9
  pinned: false
 
 
10
  ---
11
 
12
- Check out the configuration reference at https://huggingface.co/docs/hub/spaces-config-reference
 
1
  ---
2
+ title: filesnitch-feed-it-ip-name-domain-return-pdf-xlds-csv-of-all-related-and-indexed-files
3
+ emoji: 🐳
4
+ colorFrom: blue
5
+ colorTo: red
 
 
6
  sdk: static
7
  pinned: false
8
+ tags:
9
+ - deepsite
10
  ---
11
 
12
+ Check out the configuration reference at https://huggingface.co/docs/hub/spaces-config-reference
index.html CHANGED
@@ -1,19 +1,514 @@
1
- <!doctype html>
2
- <html>
3
- <head>
4
- <meta charset="utf-8" />
5
- <meta name="viewport" content="width=device-width" />
6
- <title>My static Space</title>
7
- <link rel="stylesheet" href="style.css" />
8
- </head>
9
- <body>
10
- <div class="card">
11
- <h1>Welcome to your static Space!</h1>
12
- <p>You can modify this app directly by editing <i>index.html</i> in the Files and versions tab.</p>
13
- <p>
14
- Also don't forget to check the
15
- <a href="https://huggingface.co/docs/hub/spaces" target="_blank">Spaces documentation</a>.
16
- </p>
17
- </div>
18
- </body>
19
- </html>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <!DOCTYPE html>
2
+ <html lang="en">
3
+ <head>
4
+ <meta charset="UTF-8">
5
+ <meta name="viewport" content="width=device-width, initial-scale=1.0">
6
+ <title>FILESNITCH™ - The open web is a filing cabinet left unlocked</title>
7
+ <script src="https://cdn.tailwindcss.com"></script>
8
+ <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.4.0/css/all.min.css">
9
+ <style>
10
+ .file-icon {
11
+ width: 48px;
12
+ height: 48px;
13
+ display: flex;
14
+ align-items: center;
15
+ justify-content: center;
16
+ border-radius: 8px;
17
+ }
18
+ .pdf-icon {
19
+ background-color: #FF5252;
20
+ color: white;
21
+ }
22
+ .docx-icon {
23
+ background-color: #4285F4;
24
+ color: white;
25
+ }
26
+ .xls-icon {
27
+ background-color: #0F9D58;
28
+ color: white;
29
+ }
30
+ .csv-icon {
31
+ background-color: #FF9800;
32
+ color: white;
33
+ }
34
+ .pulse {
35
+ animation: pulse 2s infinite;
36
+ }
37
+ @keyframes pulse {
38
+ 0% {
39
+ opacity: 0.6;
40
+ }
41
+ 50% {
42
+ opacity: 1;
43
+ }
44
+ 100% {
45
+ opacity: 0.6;
46
+ }
47
+ }
48
+ .loading-bar {
49
+ width: 100%;
50
+ height: 4px;
51
+ background-color: #e5e7eb;
52
+ overflow: hidden;
53
+ }
54
+ .loading-progress {
55
+ height: 100%;
56
+ width: 0%;
57
+ background-color: #3b82f6;
58
+ animation: loading 2s ease-in-out infinite;
59
+ }
60
+ @keyframes loading {
61
+ 0% {
62
+ width: 0%;
63
+ margin-left: 0;
64
+ }
65
+ 50% {
66
+ width: 100%;
67
+ margin-left: 0;
68
+ }
69
+ 100% {
70
+ width: 0%;
71
+ margin-left: 100%;
72
+ }
73
+ }
74
+ </style>
75
+ </head>
76
+ <body class="bg-gray-100 min-h-screen">
77
+ <div class="bg-black text-white py-4 px-6 shadow-md">
78
+ <div class="container mx-auto flex justify-between items-center">
79
+ <div class="flex items-center space-x-2">
80
+ <i class="fas fa-file-alt text-red-500 text-2xl"></i>
81
+ <h1 class="text-2xl font-bold">FILESNITCH™</h1>
82
+ </div>
83
+ <div class="hidden md:flex space-x-6">
84
+ <a href="#" class="hover:text-red-400 transition">How It Works</a>
85
+ <a href="#" class="hover:text-red-400 transition">Pricing</a>
86
+ <a href="#" class="hover:text-red-400 transition">Data Packs</a>
87
+ <a href="#" class="hover:text-red-400 transition">Blog</a>
88
+ </div>
89
+ <button class="bg-red-600 hover:bg-red-700 px-4 py-2 rounded-md font-medium transition">
90
+ Sign In
91
+ </button>
92
+ </div>
93
+ </div>
94
+
95
+ <div class="container mx-auto px-4 py-12">
96
+ <div class="max-w-4xl mx-auto text-center mb-12">
97
+ <h2 class="text-4xl font-bold mb-4">The open web is a filing cabinet left unlocked</h2>
98
+ <p class="text-xl text-gray-600 mb-8">Feed in an IP, name, or domain — returns PDF, XLS, DOCX, and CSV files publicly indexed (and often forgotten).</p>
99
+
100
+ <div class="relative max-w-2xl mx-auto">
101
+ <input type="text" id="searchQuery" placeholder="Search for domains, IPs, names, or keywords..."
102
+ class="w-full px-6 py-4 rounded-full border-2 border-gray-300 focus:border-red-500 focus:outline-none shadow-lg">
103
+ <button id="searchButton" class="absolute right-2 top-2 bg-red-600 hover:bg-red-700 text-white px-6 py-2 rounded-full font-medium transition">
104
+ <i class="fas fa-search mr-2"></i> Search
105
+ </button>
106
+ </div>
107
+
108
+ <div class="mt-4 flex flex-wrap justify-center gap-2">
109
+ <span class="text-sm text-gray-500">Try:</span>
110
+ <button class="text-sm text-red-600 hover:text-red-800 hover:underline" onclick="setExample('site:gov contracts')">government contracts</button>
111
+ <span class="text-sm text-gray-500">•</span>
112
+ <button class="text-sm text-red-600 hover:text-red-800 hover:underline" onclick="setExample('filetype:pdf court filing')">court filings</button>
113
+ <span class="text-sm text-gray-500">•</span>
114
+ <button class="text-sm text-red-600 hover:text-red-800 hover:underline" onclick="setExample('filetype:xls financial data')">financial data</button>
115
+ </div>
116
+ </div>
117
+
118
+ <div id="resultsContainer" class="hidden">
119
+ <div class="flex justify-between items-center mb-6">
120
+ <h3 class="text-2xl font-semibold">Search Results</h3>
121
+ <div class="flex items-center space-x-4">
122
+ <div class="flex items-center">
123
+ <span class="mr-2 text-sm text-gray-600">Filter:</span>
124
+ <select id="fileTypeFilter" class="border rounded px-3 py-1 text-sm">
125
+ <option value="all">All File Types</option>
126
+ <option value="pdf">PDF</option>
127
+ <option value="docx">DOCX</option>
128
+ <option value="xls">XLS/XLSX</option>
129
+ <option value="csv">CSV</option>
130
+ </select>
131
+ </div>
132
+ <button id="buyPackButton" class="bg-green-600 hover:bg-green-700 text-white px-4 py-1 rounded-md text-sm font-medium hidden">
133
+ <i class="fas fa-shopping-cart mr-1"></i> Buy Data Pack
134
+ </button>
135
+ </div>
136
+ </div>
137
+
138
+ <div id="loadingIndicator" class="hidden">
139
+ <div class="loading-bar mb-4">
140
+ <div class="loading-progress"></div>
141
+ </div>
142
+ <p class="text-center text-gray-500">Searching the depths of the open web...</p>
143
+ </div>
144
+
145
+ <div id="resultsList" class="space-y-4">
146
+ <!-- Results will be inserted here -->
147
+ </div>
148
+
149
+ <div id="pagination" class="mt-8 flex justify-center space-x-2 hidden">
150
+ <button id="prevPage" class="px-4 py-2 border rounded-md hover:bg-gray-100 disabled:opacity-50">
151
+ <i class="fas fa-chevron-left mr-1"></i> Previous
152
+ </button>
153
+ <div id="pageNumbers" class="flex space-x-1">
154
+ <!-- Page numbers will be inserted here -->
155
+ </div>
156
+ <button id="nextPage" class="px-4 py-2 border rounded-md hover:bg-gray-100 disabled:opacity-50">
157
+ Next <i class="fas fa-chevron-right ml-1"></i>
158
+ </button>
159
+ </div>
160
+ </div>
161
+
162
+ <div id="noResults" class="hidden text-center py-12">
163
+ <i class="fas fa-file-excel text-5xl text-gray-400 mb-4"></i>
164
+ <h3 class="text-2xl font-semibold mb-2">No documents found</h3>
165
+ <p class="text-gray-600 mb-6">Try refining your search with specific keywords or file types.</p>
166
+ <button onclick="resetSearch()" class="bg-red-600 hover:bg-red-700 text-white px-6 py-2 rounded-md font-medium">
167
+ <i class="fas fa-redo mr-2"></i> New Search
168
+ </button>
169
+ </div>
170
+ </div>
171
+
172
+ <div class="bg-gray-900 text-white py-12">
173
+ <div class="container mx-auto px-4">
174
+ <div class="grid grid-cols-1 md:grid-cols-4 gap-8">
175
+ <div>
176
+ <h4 class="text-xl font-bold mb-4">Data Packs</h4>
177
+ <ul class="space-y-2">
178
+ <li><a href="#" class="text-gray-400 hover:text-white transition">Government Contracts</a></li>
179
+ <li><a href="#" class="text-gray-400 hover:text-white transition">Court Filings</a></li>
180
+ <li><a href="#" class="text-gray-400 hover:text-white transition">Small Town Corruption</a></li>
181
+ <li><a href="#" class="text-gray-400 hover:text-white transition">Corporate Leaks</a></li>
182
+ </ul>
183
+ </div>
184
+ <div>
185
+ <h4 class="text-xl font-bold mb-4">Resources</h4>
186
+ <ul class="space-y-2">
187
+ <li><a href="#" class="text-gray-400 hover:text-white transition">Search Tips</a></li>
188
+ <li><a href="#" class="text-gray-400 hover:text-white transition">API Documentation</a></li>
189
+ <li><a href="#" class="text-gray-400 hover:text-white transition">Data Privacy</a></li>
190
+ </ul>
191
+ </div>
192
+ <div>
193
+ <h4 class="text-xl font-bold mb-4">Company</h4>
194
+ <ul class="space-y-2">
195
+ <li><a href="#" class="text-gray-400 hover:text-white transition">About Us</a></li>
196
+ <li><a href="#" class="text-gray-400 hover:text-white transition">Careers</a></li>
197
+ <li><a href="#" class="text-gray-400 hover:text-white transition">Contact</a></li>
198
+ </ul>
199
+ </div>
200
+ <div>
201
+ <h4 class="text-xl font-bold mb-4">Subscribe</h4>
202
+ <p class="text-gray-400 mb-4">Get notified when we add new data packs.</p>
203
+ <div class="flex">
204
+ <input type="email" placeholder="Your email" class="px-4 py-2 rounded-l-md text-gray-900 w-full">
205
+ <button class="bg-red-600 hover:bg-red-700 px-4 py-2 rounded-r-md">
206
+ <i class="fas fa-paper-plane"></i>
207
+ </button>
208
+ </div>
209
+ </div>
210
+ </div>
211
+ <div class="border-t border-gray-800 mt-8 pt-8 text-center text-gray-500">
212
+ <p>© 2023 FILESNITCH™. All rights reserved. The information provided is from publicly available sources.</p>
213
+ </div>
214
+ </div>
215
+ </div>
216
+
217
+ <script>
218
+ // API configuration
219
+ const API_KEY = 'AIzaSyDzq7qYyQjQ6mQ6v6q6q6q6q6q6q6q6q6q'; // Replace with your actual Google API key
220
+ const SEARCH_ENGINE_ID = '012345678901234567890:abcdefghijk'; // Replace with your actual Search Engine ID
221
+ let currentPage = 1;
222
+ let currentQuery = '';
223
+ let totalResults = 0;
224
+ let resultsPerPage = 5;
225
+
226
+ // DOM elements
227
+ const searchQueryInput = document.getElementById('searchQuery');
228
+ const searchButton = document.getElementById('searchButton');
229
+ const resultsContainer = document.getElementById('resultsContainer');
230
+ const resultsList = document.getElementById('resultsList');
231
+ const loadingIndicator = document.getElementById('loadingIndicator');
232
+ const noResults = document.getElementById('noResults');
233
+ const pagination = document.getElementById('pagination');
234
+ const prevPageButton = document.getElementById('prevPage');
235
+ const nextPageButton = document.getElementById('nextPage');
236
+ const pageNumbersContainer = document.getElementById('pageNumbers');
237
+ const fileTypeFilter = document.getElementById('fileTypeFilter');
238
+ const buyPackButton = document.getElementById('buyPackButton');
239
+
240
+ // Event listeners
241
+ searchButton.addEventListener('click', performSearch);
242
+ searchQueryInput.addEventListener('keypress', function(e) {
243
+ if (e.key === 'Enter') {
244
+ performSearch();
245
+ }
246
+ });
247
+ prevPageButton.addEventListener('click', goToPreviousPage);
248
+ nextPageButton.addEventListener('click', goToNextPage);
249
+ fileTypeFilter.addEventListener('change', filterResultsByFileType);
250
+
251
+ // Example search buttons
252
+ function setExample(query) {
253
+ searchQueryInput.value = query;
254
+ searchQueryInput.focus();
255
+ }
256
+
257
+ // Reset search
258
+ function resetSearch() {
259
+ resultsContainer.classList.add('hidden');
260
+ noResults.classList.add('hidden');
261
+ searchQueryInput.value = '';
262
+ searchQueryInput.focus();
263
+ }
264
+
265
+ // Perform search
266
+ function performSearch() {
267
+ const query = searchQueryInput.value.trim();
268
+ if (!query) return;
269
+
270
+ currentQuery = query;
271
+ currentPage = 1;
272
+
273
+ resultsContainer.classList.remove('hidden');
274
+ resultsList.innerHTML = '';
275
+ loadingIndicator.classList.remove('hidden');
276
+ noResults.classList.add('hidden');
277
+ pagination.classList.add('hidden');
278
+
279
+ searchDocuments(query, currentPage);
280
+ }
281
+
282
+ // Search documents using Google Custom Search JSON API
283
+ function searchDocuments(query, page) {
284
+ const startIndex = (page - 1) * resultsPerPage + 1;
285
+ const fileTypes = ['pdf', 'docx', 'xls', 'csv'];
286
+ const fileTypeQueries = fileTypes.map(type => `filetype:${type}`).join(' OR ');
287
+
288
+ const fullQuery = `${query} AND (${fileTypeQueries})`;
289
+
290
+ fetch(`https://www.googleapis.com/customsearch/v1?key=${API_KEY}&cx=${SEARCH_ENGINE_ID}&q=${encodeURIComponent(fullQuery)}&start=${startIndex}&num=${resultsPerPage}`)
291
+ .then(response => {
292
+ if (!response.ok) {
293
+ throw new Error('Network response was not ok');
294
+ }
295
+ return response.json();
296
+ })
297
+ .then(data => {
298
+ loadingIndicator.classList.add('hidden');
299
+
300
+ if (data.items && data.items.length > 0) {
301
+ totalResults = Math.min(data.searchInformation.totalResults, 100); // Google API max is 100 results
302
+ displayResults(data.items);
303
+ updatePagination();
304
+ } else {
305
+ showNoResults();
306
+ }
307
+ })
308
+ .catch(error => {
309
+ console.error('Error fetching search results:', error);
310
+ loadingIndicator.classList.add('hidden');
311
+ showNoResults();
312
+ });
313
+ }
314
+
315
+ // Display results
316
+ function displayResults(items) {
317
+ resultsList.innerHTML = '';
318
+
319
+ items.forEach(item => {
320
+ const fileType = getFileType(item.link);
321
+ const fileIcon = getFileIcon(fileType);
322
+ const fileIconClass = getFileIconClass(fileType);
323
+
324
+ const resultElement = document.createElement('div');
325
+ resultElement.className = 'bg-white p-6 rounded-lg shadow-md hover:shadow-lg transition';
326
+ resultElement.innerHTML = `
327
+ <div class="flex items-start space-x-4">
328
+ <div class="file-icon ${fileIconClass}">
329
+ <i class="${fileIcon} text-2xl"></i>
330
+ </div>
331
+ <div class="flex-1">
332
+ <h4 class="text-lg font-semibold mb-1">
333
+ <a href="${item.link}" target="_blank" class="text-blue-600 hover:underline">${item.title || 'Untitled Document'}</a>
334
+ </h4>
335
+ <p class="text-sm text-gray-600 mb-2">${item.snippet || 'No description available.'}</p>
336
+ <div class="flex flex-wrap items-center text-xs text-gray-500 space-x-4">
337
+ <span class="flex items-center">
338
+ <i class="fas fa-link mr-1"></i> ${extractDomain(item.link)}
339
+ </span>
340
+ <span class="flex items-center">
341
+ <i class="fas fa-file-${fileType === 'csv' ? 'excel' : fileType} mr-1"></i> ${fileType.toUpperCase()}
342
+ </span>
343
+ <span class="flex items-center">
344
+ <i class="fas fa-download mr-1"></i>
345
+ <a href="${item.link}" target="_blank" class="text-blue-500 hover:underline">Download</a>
346
+ </span>
347
+ </div>
348
+ </div>
349
+ <div class="flex flex-col items-center">
350
+ <span class="text-xs text-gray-500 mb-2">$0.99</span>
351
+ <button class="bg-red-600 hover:bg-red-700 text-white px-3 py-1 rounded-md text-xs">
352
+ <i class="fas fa-unlock-alt mr-1"></i> Unlock
353
+ </button>
354
+ </div>
355
+ </div>
356
+ `;
357
+ resultsList.appendChild(resultElement);
358
+ });
359
+
360
+ // Show buy pack button if we have more than 5 results
361
+ if (totalResults > 5) {
362
+ buyPackButton.classList.remove('hidden');
363
+ } else {
364
+ buyPackButton.classList.add('hidden');
365
+ }
366
+ }
367
+
368
+ // Filter results by file type
369
+ function filterResultsByFileType() {
370
+ const selectedType = fileTypeFilter.value;
371
+ if (selectedType === 'all') {
372
+ // Show all results
373
+ document.querySelectorAll('#resultsList > div').forEach(el => {
374
+ el.style.display = 'block';
375
+ });
376
+ } else {
377
+ // Hide results that don't match the selected type
378
+ document.querySelectorAll('#resultsList > div').forEach(el => {
379
+ const fileType = el.querySelector('i.fa-file-pdf, i.fa-file-word, i.fa-file-excel, i.fa-file-csv').classList.value.includes(selectedType);
380
+ el.style.display = fileType ? 'block' : 'none';
381
+ });
382
+ }
383
+ }
384
+
385
+ // Update pagination controls
386
+ function updatePagination() {
387
+ pagination.classList.remove('hidden');
388
+ prevPageButton.disabled = currentPage === 1;
389
+
390
+ const totalPages = Math.ceil(totalResults / resultsPerPage);
391
+ nextPageButton.disabled = currentPage === totalPages;
392
+
393
+ // Update page numbers
394
+ pageNumbersContainer.innerHTML = '';
395
+ const maxVisiblePages = 5;
396
+ let startPage = Math.max(1, currentPage - Math.floor(maxVisiblePages / 2));
397
+ let endPage = Math.min(totalPages, startPage + maxVisiblePages - 1);
398
+
399
+ if (endPage - startPage + 1 < maxVisiblePages) {
400
+ startPage = Math.max(1, endPage - maxVisiblePages + 1);
401
+ }
402
+
403
+ if (startPage > 1) {
404
+ const pageElement = document.createElement('button');
405
+ pageElement.className = 'px-4 py-2 border rounded-md hover:bg-gray-100';
406
+ pageElement.textContent = '1';
407
+ pageElement.addEventListener('click', () => goToPage(1));
408
+ pageNumbersContainer.appendChild(pageElement);
409
+
410
+ if (startPage > 2) {
411
+ const ellipsis = document.createElement('span');
412
+ ellipsis.className = 'px-2 py-2';
413
+ ellipsis.textContent = '...';
414
+ pageNumbersContainer.appendChild(ellipsis);
415
+ }
416
+ }
417
+
418
+ for (let i = startPage; i <= endPage; i++) {
419
+ const pageElement = document.createElement('button');
420
+ pageElement.className = i === currentPage
421
+ ? 'px-4 py-2 border rounded-md bg-red-600 text-white'
422
+ : 'px-4 py-2 border rounded-md hover:bg-gray-100';
423
+ pageElement.textContent = i;
424
+ pageElement.addEventListener('click', () => goToPage(i));
425
+ pageNumbersContainer.appendChild(pageElement);
426
+ }
427
+
428
+ if (endPage < totalPages) {
429
+ if (endPage < totalPages - 1) {
430
+ const ellipsis = document.createElement('span');
431
+ ellipsis.className = 'px-2 py-2';
432
+ ellipsis.textContent = '...';
433
+ pageNumbersContainer.appendChild(ellipsis);
434
+ }
435
+
436
+ const pageElement = document.createElement('button');
437
+ pageElement.className = 'px-4 py-2 border rounded-md hover:bg-gray-100';
438
+ pageElement.textContent = totalPages;
439
+ pageElement.addEventListener('click', () => goToPage(totalPages));
440
+ pageNumbersContainer.appendChild(pageElement);
441
+ }
442
+ }
443
+
444
+ // Navigation functions
445
+ function goToPage(page) {
446
+ if (page === currentPage) return;
447
+
448
+ currentPage = page;
449
+ resultsList.innerHTML = '';
450
+ loadingIndicator.classList.remove('hidden');
451
+ window.scrollTo({ top: 0, behavior: 'smooth' });
452
+
453
+ searchDocuments(currentQuery, currentPage);
454
+ }
455
+
456
+ function goToPreviousPage() {
457
+ if (currentPage > 1) {
458
+ goToPage(currentPage - 1);
459
+ }
460
+ }
461
+
462
+ function goToNextPage() {
463
+ const totalPages = Math.ceil(totalResults / resultsPerPage);
464
+ if (currentPage < totalPages) {
465
+ goToPage(currentPage + 1);
466
+ }
467
+ }
468
+
469
+ // Show no results message
470
+ function showNoResults() {
471
+ resultsContainer.classList.add('hidden');
472
+ noResults.classList.remove('hidden');
473
+ }
474
+
475
+ // Helper functions
476
+ function getFileType(url) {
477
+ if (url.toLowerCase().endsWith('.pdf')) return 'pdf';
478
+ if (url.toLowerCase().endsWith('.docx')) return 'docx';
479
+ if (url.toLowerCase().endsWith('.xls') || url.toLowerCase().endsWith('.xlsx')) return 'xls';
480
+ if (url.toLowerCase().endsWith('.csv')) return 'csv';
481
+ return 'unknown';
482
+ }
483
+
484
+ function getFileIcon(fileType) {
485
+ switch(fileType) {
486
+ case 'pdf': return 'fas fa-file-pdf';
487
+ case 'docx': return 'fas fa-file-word';
488
+ case 'xls': return 'fas fa-file-excel';
489
+ case 'csv': return 'fas fa-file-csv';
490
+ default: return 'fas fa-file';
491
+ }
492
+ }
493
+
494
+ function getFileIconClass(fileType) {
495
+ switch(fileType) {
496
+ case 'pdf': return 'pdf-icon';
497
+ case 'docx': return 'docx-icon';
498
+ case 'xls': return 'xls-icon';
499
+ case 'csv': return 'csv-icon';
500
+ default: return 'bg-gray-500';
501
+ }
502
+ }
503
+
504
+ function extractDomain(url) {
505
+ try {
506
+ const domain = new URL(url).hostname.replace('www.', '');
507
+ return domain.length > 30 ? domain.substring(0, 27) + '...' : domain;
508
+ } catch {
509
+ return url.length > 30 ? url.substring(0, 27) + '...' : url;
510
+ }
511
+ }
512
+ </script>
513
+ <p style="border-radius: 8px; text-align: center; font-size: 12px; color: #fff; margin-top: 16px;position: fixed; left: 8px; bottom: 8px; z-index: 10; background: rgba(0, 0, 0, 0.8); padding: 4px 8px;">Made with <img src="https://enzostvs-deepsite.hf.space/logo.svg" alt="DeepSite Logo" style="width: 16px; height: 16px; vertical-align: middle;display:inline-block;margin-right:3px;filter:brightness(0) invert(1);"><a href="https://enzostvs-deepsite.hf.space" style="color: #fff;text-decoration: underline;" target="_blank" >DeepSite</a> - 🧬 <a href="https://enzostvs-deepsite.hf.space?remix=numbpilled/filesnitch-feed-it-ip-name-domain-return-pdf-xlds-csv-of-all-related-and-indexed-files" style="color: #fff;text-decoration: underline;" target="_blank" >Remix</a></p></body>
514
+ </html>
prompts.txt ADDED
@@ -0,0 +1 @@
 
 
1
+ FILESNITCH™ Feed in an IP, name, or domain — returns PDF, XLS, DOCX, and CSV files publicly indexed (and often forgotten). Government grants, contracts, court filings, cached emails. Monetization: Pay-per-find, or bundle packs of themed data (e.g. “small town corruption” pack). Tagline: “The open web is a filing cabinet left unlocked.” make it with real data, no mock data- it must function as intended