teste / index.html
floribella's picture
Add 1 files
3b62414 verified
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>OmniSearch Pro - Ultimate File Search Engine</title>
<script src="https://cdn.tailwindcss.com"></script>
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.4.0/css/all.min.css">
<style>
.search-box {
box-shadow: 0 10px 25px -5px rgba(0, 0, 0, 0.1), 0 10px 10px -5px rgba(0, 0, 0, 0.04);
}
.search-box:focus-within {
box-shadow: 0 10px 25px -5px rgba(59, 130, 246, 0.3), 0 10px 10px -5px rgba(59, 130, 246, 0.1);
}
.file-type-btn.active {
background-color: #3b82f6;
color: white;
}
.result-card:hover {
transform: translateY(-2px);
box-shadow: 0 10px 15px -3px rgba(0, 0, 0, 0.1);
}
.service-tag::before {
content: "";
display: inline-block;
width: 8px;
height: 8px;
border-radius: 50%;
margin-right: 6px;
}
.service-tag.google::before { background-color: #4285F4; }
.service-tag.fastserver::before { background-color: #00BFA5; }
.service-tag.hdvietnam::before { background-color: #FF6D00; }
.service-tag.olala::before { background-color: #AA00FF; }
.service-tag.rutracker::before { background-color: #00C853; }
.service-tag.boyvideos::before { background-color: #2962FF; }
.service-tag.xbuddy::before { background-color: #D50000; }
.service-tag.reddit::before { background-color: #FF5700; }
.service-tag.ulozto::before { background-color: #0091EA; }
.service-tag.seedr::before { background-color: #00B8D4; }
</style>
</head>
<body class="bg-gray-50 min-h-screen">
<div class="container mx-auto px-4 py-8">
<!-- Header -->
<header class="mb-12 text-center">
<h1 class="text-4xl font-bold text-blue-600 mb-2">OmniSearch Pro</h1>
<p class="text-gray-600">Search across multiple file hosting services simultaneously</p>
</header>
<!-- Search Box -->
<div class="max-w-4xl mx-auto mb-8">
<div class="search-box bg-white rounded-full p-2 flex items-center transition-all duration-300">
<div class="px-4 text-gray-400">
<i class="fas fa-search"></i>
</div>
<input
type="text"
id="searchInput"
placeholder="Search for files across multiple services"
class="flex-grow py-3 outline-none text-gray-700"
>
<button id="searchBtn" class="bg-blue-600 text-white px-6 py-3 rounded-full hover:bg-blue-700 transition">
<i class="fas fa-bolt mr-2"></i> Search
</button>
</div>
<!-- Advanced Options -->
<div class="mt-6 text-center">
<button id="toggleAdvanced" class="text-blue-600 hover:text-blue-800 text-sm font-medium">
<i class="fas fa-cog mr-1"></i> Advanced Search Options
</button>
<div id="advancedOptions" class="hidden mt-4 p-4 bg-white rounded-lg shadow-sm">
<div class="flex flex-wrap justify-center gap-4">
<div class="flex items-center">
<input type="checkbox" id="fastserver" class="mr-2" checked>
<label for="fastserver" class="text-sm service-tag fastserver">FastServer</label>
</div>
<div class="flex items-center">
<input type="checkbox" id="hdvietnam" class="mr-2" checked>
<label for="hdvietnam" class="text-sm service-tag hdvietnam">HDVietnam</label>
</div>
<div class="flex items-center">
<input type="checkbox" id="olala" class="mr-2" checked>
<label for="olala" class="text-sm service-tag olala">OlalaVietnam</label>
</div>
<div class="flex items-center">
<input type="checkbox" id="rutracker" class="mr-2" checked>
<label for="rutracker" class="text-sm service-tag rutracker">RuTracker</label>
</div>
<div class="flex items-center">
<input type="checkbox" id="boyvideos" class="mr-2" checked>
<label for="boyvideos" class="text-sm service-tag boyvideos">BoyVideos</label>
</div>
<div class="flex items-center">
<input type="checkbox" id="xbuddy" class="mr-2" checked>
<label for="xbuddy" class="text-sm service-tag xbuddy">9xBuddy</label>
</div>
<div class="flex items-center">
<input type="checkbox" id="reddit" class="mr-2" checked>
<label for="reddit" class="text-sm service-tag reddit">Reddit</label>
</div>
<div class="flex items-center">
<input type="checkbox" id="ulozto" class="mr-2" checked>
<label for="ulozto" class="text-sm service-tag ulozto">Uloz.to</label>
</div>
<div class="flex items-center">
<input type="checkbox" id="seedr" class="mr-2" checked>
<label for="seedr" class="text-sm service-tag seedr">Seedr.cc</label>
</div>
</div>
</div>
</div>
</div>
<!-- Results Section -->
<div id="resultsSection" class="max-w-6xl mx-auto hidden">
<div class="flex justify-between items-center mb-6">
<h2 class="text-xl font-semibold text-gray-800">Search Results</h2>
<div class="text-sm text-gray-500" id="resultStats">About 0 results from 0 services (0.00 seconds)</div>
</div>
<div id="resultsContainer" class="space-y-4">
<!-- Results will appear here -->
</div>
</div>
</div>
<script>
// Service configurations
const services = {
fastserver: {
name: "FastServer",
class: "fastserver",
search: async (query) => {
// This would be replaced with actual API call
return new Promise(resolve => {
setTimeout(() => {
resolve([
{
title: `${query} files on FastServer`,
service: "FastServer",
size: "1.2 GB",
date: "2023-05-10",
views: "1245",
description: `Found multiple files related to ${query} on FastServer.`,
url: "http://fastserver.me/big/index.php?q=" + encodeURIComponent(query),
filename: `${query}_files.zip`
}
]);
}, 800);
});
}
},
hdvietnam: {
name: "HDVietnam",
class: "hdvietnam",
search: async (query) => {
return new Promise(resolve => {
setTimeout(() => {
resolve([
{
title: `HD ${query} collection`,
service: "HDVietnam",
size: "4.7 GB",
date: "2023-06-15",
views: "876",
description: `High quality ${query} files available on HDVietnam.`,
url: "http://hdvietnam.com/search?q=" + encodeURIComponent(query),
filename: `hd_${query}_collection.rar`
}
]);
}, 1200);
});
}
},
// Add similar configurations for other services...
};
// Search function
document.getElementById('searchBtn').addEventListener('click', async function() {
const query = document.getElementById('searchInput').value.trim();
if (!query) {
alert("Please enter a search term");
return;
}
// Show results section
const resultsSection = document.getElementById('resultsSection');
resultsSection.classList.remove('hidden');
// Clear previous results
const resultsContainer = document.getElementById('resultsContainer');
resultsContainer.innerHTML = '<div class="text-center py-8"><i class="fas fa-spinner fa-spin text-2xl text-blue-500"></i><p class="mt-2">Searching across services...</p></div>';
// Get selected services
const selectedServices = Array.from(document.querySelectorAll('#advancedOptions input[type="checkbox"]:checked'))
.map(checkbox => checkbox.id);
// Perform searches
let allResults = [];
const startTime = Date.now();
for (const serviceId of selectedServices) {
if (services[serviceId]) {
try {
const serviceResults = await services[serviceId].search(query);
allResults = allResults.concat(serviceResults);
// Update UI with partial results
updateResultsUI(allResults, selectedServices.length, startTime);
} catch (error) {
console.error(`Error searching ${serviceId}:`, error);
}
}
}
// Final update
updateResultsUI(allResults, selectedServices.length, startTime);
});
// Update results UI
function updateResultsUI(results, totalServices, startTime) {
const elapsedTime = ((Date.now() - startTime) / 1000).toFixed(2);
const resultsContainer = document.getElementById('resultsContainer');
// Update stats
document.getElementById('resultStats').textContent =
`About ${results.length} results from ${totalServices} services (${elapsedTime} seconds)`;
// Display results
if (results.length === 0) {
resultsContainer.innerHTML = '<div class="text-center py-8 text-gray-500">No results found. Try a different search term.</div>';
return;
}
let html = '';
results.forEach(result => {
html += `
<div class="result-card bg-white p-4 rounded-lg shadow-sm border border-gray-100">
<div class="flex flex-col md:flex-row">
<div class="flex-grow">
<div class="flex items-center mb-1">
<h3 class="text-lg font-medium text-blue-600">
<a href="${result.url}" target="_blank">${result.title}</a>
</h3>
<span class="ml-2 px-2 py-1 bg-gray-100 text-gray-800 text-xs rounded-full service-tag ${result.service.toLowerCase()}">${result.service}</span>
</div>
<div class="text-sm text-gray-500 mb-2">
<span class="mr-3"><i class="fas fa-database mr-1"></i> ${result.size}</span>
<span class="mr-3"><i class="fas fa-calendar-alt mr-1"></i> ${result.date}</span>
<span><i class="fas fa-eye mr-1"></i> ${result.views}</span>
</div>
<p class="text-gray-700 text-sm mb-3">${result.description}</p>
</div>
<div class="flex-shrink-0 mt-4 md:mt-0 md:ml-4">
<a href="${result.url}" target="_blank" class="inline-block bg-green-600 hover:bg-green-700 text-white px-4 py-2 rounded-lg">
<i class="fas fa-external-link-alt mr-2"></i> View
</a>
</div>
</div>
</div>
`;
});
resultsContainer.innerHTML = html;
}
// Toggle advanced options
document.getElementById('toggleAdvanced').addEventListener('click', function() {
const options = document.getElementById('advancedOptions');
options.classList.toggle('hidden');
this.innerHTML = options.classList.contains('hidden')
? '<i class="fas fa-cog mr-1"></i> Advanced Search Options'
: '<i class="fas fa-times mr-1"></i> Hide Options';
});
</script>
<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=floribella/teste" style="color: #fff;text-decoration: underline;" target="_blank" >Remix</a></p></body>
</html>