From 4c0c2ad7595044babf36decb195825e1cb6b80a9 Mon Sep 17 00:00:00 2001 From: fynks <75840152+fynks@users.noreply.github.com> Date: Thu, 16 Jan 2025 11:55:04 +0500 Subject: [PATCH] updated --- docs/app-min.js | 1 + docs/index.html | 12 +- docs/styles.css | 421 +----------------------------------------------- 3 files changed, 9 insertions(+), 425 deletions(-) create mode 100644 docs/app-min.js diff --git a/docs/app-min.js b/docs/app-min.js new file mode 100644 index 0000000..249dad7 --- /dev/null +++ b/docs/app-min.js @@ -0,0 +1 @@ +class TableManager{constructor(t,e,n){this.container=document.getElementById(t),this.searchInput=document.getElementById(e),this.clearIcon=document.getElementById(n),this.setupSearchFunctionality()}generateTable(t){if(!t||0===Object.keys(t).length)return void(this.container.innerHTML="

No data available.

");const e=Object.keys(t[Object.keys(t)[0]]),n=`\n \n \n \n \n ${e.map((t=>``)).join("")}\n \n \n \n ${Object.entries(t).map((([t,n])=>`\n \n \n ${e.map((t=>`\n \n `)).join("")}\n \n `)).join("")}\n \n
Service Name${t}
${t}\n ${"yes"===n[t]?"✅":"❌"}\n
\n `;this.container.innerHTML=n}setupSearchFunctionality(){this.searchInput?.addEventListener("input",(()=>{const t=this.searchInput.value.toLowerCase(),e=this.container.querySelectorAll("table tbody tr");this.clearIcon.style.display=t?"block":"none",e.forEach((e=>{const n=e.querySelector("td:first-child")?.textContent.toLowerCase();e.style.display=n?.includes(t)?"":"none"}))})),this.clearIcon?.addEventListener("click",(()=>{this.searchInput.value="",this.clearIcon.style.display="none",this.searchInput.dispatchEvent(new Event("input"))}))}}class ComparisonManager{constructor(t,e,n,a){this.container=document.getElementById(t),this.select1=document.getElementById(e),this.select2=document.getElementById(n),this.data=a,this.setupEventListeners(),this.populateDropdowns()}populateDropdowns(){const t=Object.keys(this.data[Object.keys(this.data)[0]]);[this.select1,this.select2].forEach((e=>{t.forEach((t=>{const n=document.createElement("option");n.value=t,n.textContent=t,e.appendChild(n)}))}))}generateCompareTable(){const t=this.select1.value,e=this.select2.value;if(!t||!e)return;const n=`\n \n \n \n \n \n \n \n \n \n \n ${Object.entries(this.data).map((([n,a])=>`\n \n \n \n \n \n `)).join("")}\n \n
Service Name${t}${e}
${n}${"yes"===a[t]?"✅":"❌"}${"yes"===a[e]?"✅":"❌"}
\n `;this.container.innerHTML=n,this.container.style.display="block",this.setupCloseButton()}setupEventListeners(){[this.select1,this.select2].forEach((t=>{t?.addEventListener("change",(()=>this.generateCompareTable()))}))}setupCloseButton(){document.getElementById("close-compare")?.addEventListener("click",(()=>{this.container.style.display="none"}))}}class PricingManager{constructor(t){this.container=document.getElementById(t)}generatePricingTable(t){if(!t?.plans?.length)return void(this.container.innerHTML="

Error: Invalid pricing data structure.

");const e=Object.keys(t.plans[0]).filter((t=>"name"!==t)),n=`\n \n \n \n \n ${e.map((t=>``)).join("")}\n \n \n \n ${t.plans.map((t=>`\n \n \n ${e.map((e=>``)).join("")}\n \n `)).join("")}\n \n
Plans${t}
${t.name}${t[e]}
\n `;this.container.innerHTML=n}}document.addEventListener("DOMContentLoaded",(async()=>{const t=new TableManager("file-hosts-table-container","host-search-input","clear-host-search"),e=new TableManager("adult-hosts-table-container","adult-host-search-input","clear-adult-host-search"),n=new PricingManager("pricing");try{const[a,s,i]=await Promise.all([fetch("./json/file-hosts.json").then((t=>t.json())),fetch("./json/adult-hosts.json").then((t=>t.json())),fetch("./json/pricing.json").then((t=>t.json()))]);t.generateTable(a),e.generateTable(s),n.generatePricingTable(i),new ComparisonManager("compare-table-container","provider1","provider2",a)}catch(a){const s="

Error loading data. Please try again later.

";t.container.innerHTML=s,e.container.innerHTML=s,n.container.innerHTML=s}})); \ No newline at end of file diff --git a/docs/index.html b/docs/index.html index 2ad4ee9..bc3d2de 100644 --- a/docs/index.html +++ b/docs/index.html @@ -96,9 +96,10 @@
  • Debrid-Link
  • Mega-Debrid
  • -

    Pricing

    +

    Pricing

    +
    - +

    [ * ] = 7 Days free trail at Alldebrid requires a phone verification.

    @@ -167,15 +168,16 @@
  • Mega-Debrid

  • -

    Last updated: January 14, - 2025

    +
    +

    Last updated: January 14, 2025

    +
    - + diff --git a/docs/styles.css b/docs/styles.css index 68fab05..0bc9a68 100644 --- a/docs/styles.css +++ b/docs/styles.css @@ -1,420 +1 @@ -:root { - --primary: #2563eb; - --text: #1f2937; - --text-light: #6b7280; - --bg: #ffffff; - --bg-alt: #f8fafc; - --border: #e2e8f0; - --radius: 0.5rem; - --shadow: 0 1px 3px rgba(0, 0, 0, 0.1); - --transition: all 0.2s ease; -} - -html { - scroll-behavior: smooth; -} - -/* Loading state */ -.loading { - text-align: center; - padding: 2rem; - color: var(--text-light); -} - -body { - font-family: -apple-system, BlinkMacSystemFont, 'Inter', system-ui, sans-serif; - line-height: 1.7; - max-width: 1100px; - margin: 0 auto; - padding: 2rem; - color: var(--text); - background: var(--bg); -} - -/* Typography */ -h1, -h2, -h3, -h4 { - margin-top: 2.5rem; - margin-bottom: 1.5rem; - font-weight: 600; - line-height: 1.3; - color: var(--text); -} - -h1 { - font-size: 2.25rem; -} - -h2 { - font-size: 1.875rem; -} - -h3 { - font-size: 1.5rem; -} - -/* Links */ -a { - color: var(--primary); - text-decoration: none; - transition: var(--transition); -} - -a:hover { - opacity: 0.8; - text-decoration: underline; -} - -a[href^="http"]::after { - content: " ↗"; - font-size: 0.8em; - opacity: 1; - text-decoration: none; - display: inline-block; - transition: var(--transition); - color: var(--primary); -} - -/* Tables */ -table { - width: 100%; - border-collapse: collapse; - /* Changed from separate to collapse for better visual consistency */ - margin: 2rem 0; - font-size: 0.95rem; - border: 1px solid var(--border); - border-radius: var(--radius); - overflow: hidden; - /* Prevents border-radius from being clipped by cell backgrounds */ -} - -th, -td { - padding: 1rem; - text-align: left; - border-bottom: 1px solid var(--border); -} - -th { - background-color: var(--primary); - color: white; - font-weight: 600; - position: sticky; - /* For better header visibility on scroll */ - top: 0; - z-index: 1; - /* Ensure the sticky header is above the content */ -} - -/* Improve visual separation of header cells */ -th:not(:last-child) { - border-right: 1px solid var(--border); -} - -tr:nth-child(even) { - background: var(--bg-alt); -} - -tr:hover { - background: rgba(37, 99, 235, 0.05); - transition: var(--transition); -} - -/* Style the first and last cells of the header row */ -th:first-child { - border-top-left-radius: var(--radius); -} - -th:last-child { - border-top-right-radius: var(--radius); -} - -/* Style the first and last cells of the last data row */ -tr:last-child td:first-child { - border-bottom-left-radius: var(--radius); -} - -tr:last-child td:last-child { - border-bottom-right-radius: var(--radius); -} -.pricing-tb{ - font-weight: normal; -} - - -/* Search Container */ -#search-container, -#search-container-adult { - /* Apply styles to both search containers */ - margin: 2rem auto; - /* Center the search container */ - max-width: 1000px; - /* Limit the width for better layout */ - padding: 1rem; - - border-radius: var(--radius); - - - position: relative; - display: flex; - align-items: center; -} - -#host-search-input, -#adult-host-search-input { - /* Apply styles to both search inputs */ - width: 100%; - /* Make the input take full width of its container */ - padding: 0.75rem 1rem; - border: 1px solid var(--border); - border-radius: var(--radius); - font-size: 1rem; - transition: var(--transition); - box-sizing: border-box; - /* Include padding and border in the element's total width and height */ - -} - -#host-search-input:focus, -#adult-host-search-input:focus { - outline: none; - border-color: var(--primary); -} - -/* Blockquote */ -blockquote { - margin: 2rem 0; - padding: 1rem 2rem; - border-left: 4px solid var(--primary); - background: var(--bg-alt); - -} - -/* Code Blocks */ -code { - background: var(--bg-alt); - padding: 0.2em 0.4em; - border-radius: var(--radius); - font-size: 0.875em; - font-family: ui-monospace, 'Cascadia Code', 'Source Code Pro', Menlo, monospace; -} - -/* Comparison Select Groups */ -#compare-container { - margin-top: 30px; - margin-bottom: 20px; - display: flex; - flex-direction: column; - /* Stack the select groups on smaller screens */ - align-items: center; - gap: 1rem; -} - -.compare-select-group { - display: flex; - gap: 0.5rem; - align-items: center; - width: 100%; - /* Take full width on smaller screens */ - max-width: 500px; - /* Limit width on larger screens */ - background: var(--bg-alt); - padding: 0.75rem; - border-radius: var(--radius); - border: 1px solid var(--border); - -} - -.compare-select-group label { - font-weight: 600; - flex-shrink: 0; - /* Prevent label from shrinking */ - min-width: 80px; - /* Ensure labels have some minimum width */ - text-align: right; - /* Align labels to the right */ -} - -.compare-select-group select { - padding: 0.6rem 1rem; - border: 1px solid var(--border); - border-radius: var(--radius); - font-size: 1rem; - appearance: none; - background-image: url('data:image/svg+xml;utf8,'); - background-repeat: no-repeat; - cursor: pointer; - flex-grow: 1; - box-sizing: border-box; - background-color: var(--bg); - background-position: right 8px center; - -} - -.compare-select-group select:hover { - border-color: var(--primary); -} - -.compare-select-group select:focus { - outline: none; - border-color: var(--primary); - box-shadow: 0 0 0 3px rgba(37, 99, 235, 0.1); -} - -/* Responsive adjustments */ -@media (max-width: 768px) { - body { - padding: 1rem; - } - - h1 { - font-size: 1.875rem; - } - - h2 { - font-size: 1.5rem; - } - - h3 { - font-size: 1.25rem; - } - - table { - border-radius: 0; - border-left: none; - border-right: none; - /* Enable horizontal scrolling for tables on small screens */ - display: block; - overflow-x: auto; - white-space: nowrap; - } - - th, - td { - padding: 0.75rem; - min-width: 120px; - font-size: 0.9rem; - } - - th { - white-space: nowrap; - } - - #search-container, - #search-container-adult { - margin-left: 0; - margin-right: 0; - border-radius: 0; - /* Remove border-radius on small screens for full-width feel */ - } - - #compare-container { - flex-direction: column; - /* Ensure select groups stack on smaller screens */ - align-items: stretch; - /* Make select groups take full width */ - } - - .compare-select-group { - flex-direction: column; - /* Stack label and select */ - align-items: stretch; - /* Make label and select take full width */ - } - - .compare-select-group label { - text-align: left; - /* Align label to the left when stacked */ - min-width: auto; - /* Allow label to take necessary width */ - } -} - -/* Clear icon button */ -.clear-icon { - position: absolute; - right: 12px; - top: 50%; - transform: translateY(-50%); - cursor: pointer; - font-size: 14px; - color: var(--text-light); - background: var(--bg-alt); - border: none; - border-radius: 50%; - width: 20px; - height: 20px; - display: flex; - align-items: center; - justify-content: center; - opacity: 0; - transition: var(--transition); -} - -.clear-icon:hover { - background: var(--border); - color: var(--text); -} - -.search-input:not(:placeholder-shown)+.clear-icon { - opacity: 1; -} - -#compare-table-container { - position: relative; - margin-top: 2rem; - border: 1px solid var(--border); - border-radius: var(--radius); - padding: 1rem; -} - -#close-compare { - position: absolute; - top: -12px; - right: -12px; - background-color: var(--text); - color: white; - border: 2px solid var(--bg); - border-radius: 50%; - width: 24px; - height: 24px; - font-size: 12px; - display: flex; - align-items: center; - justify-content: center; - cursor: pointer; - opacity: 0.8; - transition: var(--transition); - box-shadow: var(--shadow); -} - -#close-compare:hover { - opacity: 1; - transform: scale(1.1); -} - - - -footer { - margin-top: 4rem; - padding: 2rem 0; - border-top: 1px solid var(--border); - text-align: center; - color: var(--text-light); -} - -/* Section transitions */ -main>* { - opacity: 0; - transform: translateY(20px); - animation: fadeIn 0.5s ease forwards; -} - -@keyframes fadeIn { - to { - opacity: 1; - transform: translateY(0); - } -} \ No newline at end of file +:root{--primary:#2563eb;--text:#1f2937;--text-light:#6b7280;--bg:#ffffff;--bg-alt:#f8fafc;--border:#e2e8f0;--radius:.5rem;--shadow:0 1px 3px rgba(0,0,0,.1);--transition:all .2s ease;}html{scroll-behavior:smooth;}.loading{text-align:center;padding:2rem;color:var(--text-light);}body{font-family:-apple-system,BlinkMacSystemFont,'Inter',system-ui,sans-serif;line-height:1.7;max-width:1100px;margin:0 auto;padding:2rem;color:var(--text);background:var(--bg);}h1,h2,h3,h4{margin-top:2.5rem;margin-bottom:1.5rem;font-weight:600;line-height:1.3;color:var(--text);}h1{font-size:2.25rem;}h2{font-size:1.875rem;}h3{font-size:1.5rem;}a{color:var(--primary);text-decoration:none;transition:var(--transition);}a:hover{opacity:.8;text-decoration:underline;}a[href^="http"]::after{content:" ↗";font-size:.8em;opacity:1;text-decoration:none;display:inline-block;transition:var(--transition);color:var(--primary);}table{width:100%;border-collapse:collapse;margin:2rem 0;font-size:.95rem;border:1px solid var(--border);border-radius:var(--radius);overflow:hidden}th,td{padding:1rem;text-align:left;border-bottom:1px solid var(--border);}th{background-color:var(--primary);color:white;font-weight:600;position:sticky;top:0;z-index:1}th:not(:last-child){border-right:1px solid var(--border);}tr:nth-child(even){background:var(--bg-alt);}tr:hover{background:rgba(37,99,235,.05);transition:var(--transition);}th:first-child{border-top-left-radius:var(--radius);}th:last-child{border-top-right-radius:var(--radius);}tr:last-child td:first-child{border-bottom-left-radius:var(--radius);}tr:last-child td:last-child{border-bottom-right-radius:var(--radius);}.pricing-tb{font-weight:normal;}#search-container,#search-container-adult{margin:2rem auto;max-width:1000px;padding:1rem;border-radius:var(--radius);position:relative;display:flex;align-items:center;}#host-search-input,#adult-host-search-input{width:100%;padding:.75rem 1rem;border:1px solid var(--border);border-radius:var(--radius);font-size:1rem;transition:var(--transition);box-sizing:border-box}#host-search-input:focus,#adult-host-search-input:focus{outline:none;border-color:var(--primary);}blockquote{margin:2rem 0;padding:1rem 2rem;border-left:4px solid var(--primary);background:var(--bg-alt);}code,.last-updated-date{background:var(--bg-alt);padding:.2em .4em;border-radius:var(--radius);font-size:.875em;font-family:ui-monospace,'Cascadia Code','Source Code Pro',Menlo,monospace;}#compare-container{margin-top:30px;margin-bottom:20px;display:flex;flex-direction:column;align-items:center;gap:1rem;}.compare-select-group{display:flex;gap:.5rem;align-items:center;width:100%;max-width:500px;background:var(--bg-alt);padding:.75rem;border-radius:var(--radius);border:1px solid var(--border);}.compare-select-group label{font-weight:600;flex-shrink:0;min-width:80px;text-align:right}.compare-select-group select{padding:.6rem 1rem;border:1px solid var(--border);border-radius:var(--radius);font-size:1rem;appearance:none;background-image:url('data:image/svg+xml;utf8,');background-repeat:no-repeat;cursor:pointer;flex-grow:1;box-sizing:border-box;background-color:var(--bg);background-position:right 8px center;}.compare-select-group select:hover{border-color:var(--primary);}.compare-select-group select:focus{outline:none;border-color:var(--primary);box-shadow:0 0 0 3px rgba(37,99,235,.1);}@media (max-width:768px){body{padding:1rem}h1{font-size:1.875rem}h2{font-size:1.5rem}h3{font-size:1.25rem}table{border-radius:0;border-left:none;border-right:none;display:block;overflow-x:auto;white-space:nowrap}th,td{padding:.75rem;min-width:120px;font-size:.9rem}th{white-space:nowrap}#search-container,#search-container-adult{margin-left:0;margin-right:0;border-radius:0}#compare-container{flex-direction:column;align-items:stretch}.compare-select-group{flex-direction:column;align-items:stretch}.compare-select-group label{text-align:left;min-width:auto}}.clear-icon{position:absolute;right:12px;top:50%;transform:translateY(-50%);cursor:pointer;font-size:14px;color:var(--text-light);background:var(--bg-alt);border:none;border-radius:50%;width:20px;height:20px;display:flex;align-items:center;justify-content:center;opacity:0;transition:var(--transition);}.clear-icon:hover{background:var(--border);color:var(--text);}.search-input:not(:placeholder-shown)+.clear-icon{opacity:1;}#compare-table-container{position:relative;margin-top:2rem;border:1px solid var(--border);border-radius:var(--radius);padding:1rem;}#close-compare{position:absolute;top:-12px;right:-12px;background-color:var(--text);color:white;border:2px solid var(--bg);border-radius:50%;width:24px;height:24px;font-size:12px;display:flex;align-items:center;justify-content:center;cursor:pointer;opacity:.8;transition:var(--transition);box-shadow:var(--shadow);}#close-compare:hover{opacity:1;transform:scale(1.1);}footer{margin-top:4rem;padding:2rem 0;border-top:1px solid var(--border);text-align:center;color:var(--text-light);}main>*{opacity:0;transform:translateY(20px);animation:fadeIn .5s ease forwards;}@keyframes fadeIn{to{opacity:1;transform:translateY(0)}} \ No newline at end of file