MisoPretty commited on
Commit
224907e
·
verified ·
1 Parent(s): 6a51fc3

undefined - Follow Up Deployment

Browse files
Files changed (1) hide show
  1. index.html +110 -414
index.html CHANGED
@@ -1,432 +1,128 @@
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>Digital Asset Indicators Tracker</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
- <script>
10
- tailwind.config = {
11
- theme: {
12
- extend: {
13
- colors: {
14
- primary: '#2563eb',
15
- secondary: '#7c3aed',
16
- dark: '#1e293b',
17
- light: '#f8fafc'
18
- }
19
- }
20
- }
21
- }
22
- </script>
23
- <style>
24
- .gradient-bg {
25
- background: linear-gradient(135deg, #2563eb 0%, #7c3aed 100%);
26
- }
27
- .asset-card:hover {
28
- transform: translateY(-5px);
29
- box-shadow: 0 20px 25px -5px rgba(0, 0, 0, 0.1), 0 10px 10px -5px rgba(0, 0, 0, 0.04);
30
- }
31
- .pulse {
32
- animation: pulse 2s infinite;
33
- }
34
- @keyframes pulse {
35
- 0% { opacity: 1; }
36
- 50% { opacity: 0.5; }
37
- 100% { opacity: 1; }
38
- }
39
- </style>
40
  </head>
41
  <body class="bg-gray-50 min-h-screen">
42
- <header class="gradient-bg text-white">
43
- <div class="container mx-auto px-4 py-8">
44
- <div class="flex justify-between items-center">
45
- <div>
46
- <h1 class="text-3xl font-bold">Digital Asset Indicators Tracker</h1>
47
- <p class="mt-2 opacity-90">Real-time tracking of assets with the most bullish indicators</p>
48
- </div>
49
- <div class="hidden md:block">
50
- <span class="px-4 py-2 bg-white bg-opacity-20 rounded-full flex items-center">
51
- <span class="w-3 h-3 bg-green-400 rounded-full mr-2 pulse"></span>
52
- <span>Live Data</span>
53
- </span>
54
- </div>
55
- </div>
56
- </div>
57
- </header>
58
 
59
- <main class="container mx-auto px-4 py-8">
60
- <div class="mb-8 bg-white rounded-xl shadow-md p-6">
61
- <h2 class="text-xl font-semibold text-gray-800 mb-4">Current Market Overview</h2>
62
- <div class="grid grid-cols-2 md:grid-cols-4 gap-4">
63
- <div class="bg-blue-50 p-4 rounded-lg">
64
- <p class="text-sm text-gray-600">Total Market Cap</p>
65
- <p class="text-xl font-bold">$1.42T <span class="text-green-500 text-sm">+2.4%</span></p>
66
- </div>
67
- <div class="bg-purple-50 p-4 rounded-lg">
68
- <p class="text-sm text-gray-600">24h Volume</p>
69
- <p class="text-xl font-bold">$48.7B <span class="text-green-500 text-sm">+15.2%</span></p>
70
- </div>
71
- <div class="bg-green-50 p-4 rounded-lg">
72
- <p class="text-sm text-gray-600">BTC Dominance</p>
73
- <p class="text-xl font-bold">48.3% <span class="text-red-500 text-sm">-0.8%</span></p>
74
- </div>
75
- <div class="bg-yellow-50 p-4 rounded-lg">
76
- <p class="text-sm text-gray-600">Fear & Greed</p>
77
- <p class="text-xl font-bold">72 <span class="text-yellow-500">(Greed)</span></p>
78
- </div>
79
- </div>
80
- </div>
81
 
82
- <div class="mb-6 flex justify-between items-center">
83
- <h2 class="text-2xl font-bold text-gray-800">Top Assets by Indicators</h2>
84
- <div class="text-sm text-gray-500">
85
- <span>Last updated: <span id="updateTime" class="font-medium">Just now</span></span>
86
- <button onclick="refreshData()" class="ml-2 text-blue-500 hover:text-blue-700">
87
- <i class="fas fa-sync-alt"></i> Refresh
88
- </button>
89
- </div>
90
- </div>
91
 
92
- <div class="grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3 gap-6 mb-8">
93
- <!-- Asset cards will be dynamically inserted here -->
94
- </div>
 
 
 
95
 
96
- <div class="bg-white rounded-xl shadow-md p-6">
97
- <h2 class="text-xl font-semibold text-gray-800 mb-4">Indicator Legend</h2>
98
- <div class="grid grid-cols-2 md:grid-cols-3 lg:grid-cols-5 gap-4">
99
- <div class="flex items-center">
100
- <span class="w-3 h-3 bg-blue-500 rounded-full mr-2"></span>
101
- <span class="text-sm">Exchange Listing</span>
102
- </div>
103
- <div class="flex items-center">
104
- <span class="w-3 h-3 bg-purple-500 rounded-full mr-2"></span>
105
- <span class="text-sm">Partnership</span>
106
- </div>
107
- <div class="flex items-center">
108
- <span class="w-3 h-3 bg-green-500 rounded-full mr-2"></span>
109
- <span class="text-sm">Network Upgrade</span>
110
- </div>
111
- <div class="flex items-center">
112
- <span class="w-3 h-3 bg-yellow-500 rounded-full mr-2"></span>
113
- <span class="text-sm">Regulatory Win</span>
114
- </div>
115
- <div class="flex items-center">
116
- <span class="w-3 h-3 bg-red-500 rounded-full mr-2"></span>
117
- <span class="text-sm">Supply Shock</span>
118
- </div>
119
- <div class="flex items-center">
120
- <span class="w-3 h-3 bg-indigo-500 rounded-full mr-2"></span>
121
- <span class="text-sm">Whale Activity</span>
122
- </div>
123
- <div class="flex items-center">
124
- <span class="w-3 h-3 bg-pink-500 rounded-full mr-2"></span>
125
- <span class="text-sm">Social Hype</span>
126
- </div>
127
- <div class="flex items-center">
128
- <span class="w-3 h-3 bg-teal-500 rounded-full mr-2"></span>
129
- <span class="text-sm">Ecosystem Growth</span>
130
- </div>
131
- <div class="flex items-center">
132
- <span class="w-3 h-3 bg-orange-500 rounded-full mr-2"></span>
133
- <span class="text-sm">Airdrop/Rewards</span>
134
- </div>
135
- <div class="flex items-center">
136
- <span class="w-3 h-3 bg-gray-500 rounded-full mr-2"></span>
137
- <span class="text-sm">Institutional</span>
138
- </div>
139
- </div>
140
- </div>
141
- </main>
142
 
143
- <footer class="bg-gray-100 py-8">
144
- <div class="container mx-auto px-4">
145
- <div class="flex flex-col md:flex-row justify-between items-center">
146
- <div class="mb-4 md:mb-0">
147
- <h3 class="text-lg font-semibold text-gray-800">Digital Asset Indicators Tracker</h3>
148
- <p class="text-gray-600 text-sm">Tracking the most promising assets in real-time</p>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
149
  </div>
150
- <div class="flex space-x-4">
151
- <a href="#" class="text-gray-600 hover:text-blue-500"><i class="fab fa-twitter"></i></a>
152
- <a href="#" class="text-gray-600 hover:text-blue-700"><i class="fab fa-telegram"></i></a>
153
- <a href="#" class="text-gray-600 hover:text-gray-800"><i class="fab fa-github"></i></a>
154
  </div>
155
  </div>
156
- <div class="mt-6 pt-6 border-t border-gray-200 text-center text-sm text-gray-500">
157
- <p>This is for informational purposes only. Not financial advice.</p>
158
- <p class="mt-2">Data updates automatically every 5 minutes.</p>
159
- </div>
160
- </div>
161
- </footer>
162
 
163
- <script>
164
- // Sample data - in a real app this would come from an API
165
- const assets = [
166
- {
167
- name: "Bitcoin",
168
- symbol: "BTC",
169
- price: "$42,850",
170
- change: "+3.2%",
171
- indicators: ["Exchange Listing", "Whale Activity", "Institutional", "Social Hype", "Regulatory Win", "Ecosystem Growth"],
172
- link: "https://bitcoin.org",
173
- icon: "fab fa-bitcoin"
174
- },
175
- {
176
- name: "Ethereum",
177
- symbol: "ETH",
178
- price: "$2,380",
179
- change: "+5.7%",
180
- indicators: ["Network Upgrade", "Exchange Listing", "Ecosystem Growth", "Airdrop/Rewards", "Social Hype"],
181
- link: "https://ethereum.org",
182
- icon: "fab fa-ethereum"
183
- },
184
- {
185
- name: "Solana",
186
- symbol: "SOL",
187
- price: "$102.50",
188
- change: "+12.3%",
189
- indicators: ["Partnership", "Exchange Listing", "Social Hype", "Ecosystem Growth", "Whale Activity"],
190
- link: "https://solana.com",
191
- icon: "fas fa-bolt"
192
- },
193
- {
194
- name: "Cardano",
195
- symbol: "ADA",
196
- price: "$0.62",
197
- change: "+8.1%",
198
- indicators: ["Network Upgrade", "Regulatory Win", "Social Hype", "Ecosystem Growth"],
199
- link: "https://cardano.org",
200
- icon: "fas fa-chart-line"
201
- },
202
- {
203
- name: "Polygon",
204
- symbol: "MATIC",
205
- price: "$0.85",
206
- change: "+4.5%",
207
- indicators: ["Partnership", "Exchange Listing", "Ecosystem Growth", "Institutional"],
208
- link: "https://polygon.technology",
209
- icon: "fas fa-project-diagram"
210
- },
211
- {
212
- name: "Avalanche",
213
- symbol: "AVAX",
214
- price: "$36.20",
215
- change: "+7.8%",
216
- indicators: ["Partnership", "Exchange Listing", "Ecosystem Growth", "Whale Activity"],
217
- link: "https://www.avax.network",
218
- icon: "fas fa-snowflake"
219
- },
220
- {
221
- name: "Chainlink",
222
- symbol: "LINK",
223
- price: "$15.75",
224
- change: "+6.2%",
225
- indicators: ["Partnership", "Exchange Listing", "Ecosystem Growth", "Institutional"],
226
- link: "https://chain.link",
227
- icon: "fas fa-link"
228
- },
229
- {
230
- name: "Polkadot",
231
- symbol: "DOT",
232
- price: "$6.90",
233
- change: "+3.9%",
234
- indicators: ["Network Upgrade", "Exchange Listing", "Ecosystem Growth"],
235
- link: "https://polkadot.network",
236
- icon: "fas fa-circle"
237
- },
238
- {
239
- name: "Cosmos",
240
- symbol: "ATOM",
241
- price: "$9.45",
242
- change: "+5.1%",
243
- indicators: ["Network Upgrade", "Exchange Listing", "Ecosystem Growth"],
244
- link: "https://cosmos.network",
245
- icon: "fas fa-atom"
246
- },
247
- {
248
- name: "Uniswap",
249
- symbol: "UNI",
250
- price: "$6.20",
251
- change: "+9.3%",
252
- indicators: ["Exchange Listing", "Ecosystem Growth", "Airdrop/Rewards"],
253
- link: "https://uniswap.org",
254
- icon: "fas fa-exchange-alt"
255
- },
256
- {
257
- name: "Filecoin",
258
- symbol: "FIL",
259
- price: "$5.80",
260
- change: "+11.7%",
261
- indicators: ["Partnership", "Exchange Listing", "Ecosystem Growth"],
262
- link: "https://filecoin.io",
263
- icon: "fas fa-file"
264
- },
265
- {
266
- name: "Tezos",
267
- symbol: "XTZ",
268
- price: "$1.05",
269
- change: "+4.8%",
270
- indicators: ["Partnership", "Exchange Listing", "Ecosystem Growth"],
271
- link: "https://tezos.com",
272
- icon: "fas fa-code"
273
- },
274
- {
275
- name: "Algorand",
276
- symbol: "ALGO",
277
- price: "$0.18",
278
- change: "+3.2%",
279
- indicators: ["Partnership", "Exchange Listing", "Ecosystem Growth"],
280
- link: "https://www.algorand.com",
281
- icon: "fas fa-cubes"
282
- },
283
- {
284
- name: "Fantom",
285
- symbol: "FTM",
286
- price: "$0.42",
287
- change: "+7.5%",
288
- indicators: ["Exchange Listing", "Ecosystem Growth", "Whale Activity"],
289
- link: "https://fantom.foundation",
290
- icon: "fas fa-magic"
291
- },
292
- {
293
- name: "Hedera",
294
- symbol: "HBAR",
295
- price: "$0.08",
296
- change: "+5.9%",
297
- indicators: ["Partnership", "Exchange Listing", "Institutional"],
298
- link: "https://hedera.com",
299
- icon: "fas fa-network-wired"
300
- },
301
- {
302
- name: "VeChain",
303
- symbol: "VET",
304
- price: "$0.028",
305
- change: "+6.4%",
306
- indicators: ["Partnership", "Exchange Listing", "Ecosystem Growth"],
307
- link: "https://www.vechain.org",
308
- icon: "fas fa-boxes"
309
- },
310
- {
311
- name: "Stellar",
312
- symbol: "XLM",
313
- price: "$0.12",
314
- change: "+3.7%",
315
- indicators: ["Partnership", "Exchange Listing", "Regulatory Win"],
316
- link: "https://www.stellar.org",
317
- icon: "fas fa-star"
318
- },
319
- {
320
- name: "Theta Network",
321
- symbol: "THETA",
322
- price: "$1.25",
323
- change: "+8.9%",
324
- indicators: ["Partnership", "Exchange Listing", "Ecosystem Growth"],
325
- link: "https://www.thetatoken.org",
326
- icon: "fas fa-video"
327
- },
328
- {
329
- name: "Axie Infinity",
330
- symbol: "AXS",
331
- price: "$7.80",
332
- change: "+14.2%",
333
- indicators: ["Ecosystem Growth", "Exchange Listing", "Social Hype"],
334
- link: "https://axieinfinity.com",
335
- icon: "fas fa-gamepad"
336
- },
337
- {
338
- name: "Decentraland",
339
- symbol: "MANA",
340
- price: "$0.45",
341
- change: "+5.6%",
342
- indicators: ["Ecosystem Growth", "Exchange Listing", "Social Hype"],
343
- link: "https://decentraland.org",
344
- icon: "fas fa-globe"
345
- }
346
- ];
347
 
348
- // Function to render asset cards
349
- function renderAssets() {
350
- const container = document.querySelector('.grid');
351
- container.innerHTML = '';
352
-
353
- assets.forEach(asset => {
354
- const card = document.createElement('div');
355
- card.className = 'asset-card bg-white rounded-xl shadow-md overflow-hidden transition-all duration-300 hover:shadow-lg';
356
-
357
- // Indicator dots
358
- const indicatorDots = asset.indicators.map(ind => {
359
- let color = 'gray';
360
- if (ind.includes('Exchange')) color = 'blue';
361
- else if (ind.includes('Partnership')) color = 'purple';
362
- else if (ind.includes('Network')) color = 'green';
363
- else if (ind.includes('Regulatory')) color = 'yellow';
364
- else if (ind.includes('Supply')) color = 'red';
365
- else if (ind.includes('Whale')) color = 'indigo';
366
- else if (ind.includes('Social')) color = 'pink';
367
- else if (ind.includes('Ecosystem')) color = 'teal';
368
- else if (ind.includes('Airdrop')) color = 'orange';
369
- else if (ind.includes('Institutional')) color = 'gray';
370
-
371
- return `<span class="w-2 h-2 bg-${color}-500 rounded-full mr-1"></span>`;
372
- }).join('');
373
-
374
- card.innerHTML = `
375
- <a href="${asset.link}" target="_blank" class="block">
376
- <div class="p-6">
377
- <div class="flex justify-between items-start">
378
- <div>
379
- <div class="flex items-center">
380
- <i class="${asset.icon} text-2xl text-gray-700 mr-3"></i>
381
- <div>
382
- <h3 class="text-lg font-semibold text-gray-800">${asset.name}</h3>
383
- <p class="text-gray-500">${asset.symbol}</p>
384
- </div>
385
- </div>
386
- <div class="mt-4 flex items-center">
387
- <span class="text-xl font-bold">${asset.price}</span>
388
- <span class="ml-2 px-2 py-1 text-xs rounded-full ${parseFloat(asset.change) > 0 ? 'bg-green-100 text-green-800' : 'bg-red-100 text-red-800'}">${asset.change}</span>
389
- </div>
390
- </div>
391
- <div class="text-right">
392
- <span class="inline-block px-2 py-1 text-xs font-semibold rounded-full bg-blue-100 text-blue-800">${asset.indicators.length} indicators</span>
393
- </div>
394
- </div>
395
- <div class="mt-4 flex flex-wrap">
396
- ${indicatorDots}
397
- <span class="text-xs text-gray-500 ml-2">${asset.indicators.length} bullish signals</span>
398
- </div>
399
- </div>
400
- </a>
401
- `;
402
-
403
- container.appendChild(card);
404
- });
405
-
406
- // Update timestamp
407
- const now = new Date();
408
- document.getElementById('updateTime').textContent = now.toLocaleTimeString();
409
- }
410
 
411
- // Simulate data refresh
412
- function refreshData() {
413
- document.querySelectorAll('.asset-card').forEach(card => {
414
- card.classList.add('opacity-50');
415
- });
416
-
417
- setTimeout(() => {
418
- renderAssets();
419
- }, 800);
420
- }
421
 
422
- // Initial render
423
- document.addEventListener('DOMContentLoaded', renderAssets);
424
-
425
- // Simulate live updates every 30 seconds
426
- setInterval(() => {
427
- // In a real app, this would fetch new data from an API
428
- refreshData();
429
- }, 30000);
430
- </script>
431
  <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=MisoPretty/indicator-tracker" style="color: #fff;text-decoration: underline;" target="_blank" >Remix</a></p></body>
432
- </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>Digital Asset Indicators Tracker</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
+ .gradient-bg { background: linear-gradient(135deg, #2563eb 0%, #7c3aed 100%); }
11
+ .asset-card:hover { transform: translateY(-5px); box-shadow: 0 20px 25px -5px rgba(0, 0, 0, 0.1), 0 10px 10px -5px rgba(0, 0, 0, 0.04); }
12
+ .pulse { animation: pulse 2s infinite; }
13
+ @keyframes pulse { 0% { opacity: 1; } 50% { opacity: 0.5; } 100% { opacity: 1; } }
14
+ </style>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
15
  </head>
16
  <body class="bg-gray-50 min-h-screen">
17
+ <header class="gradient-bg text-white">
18
+ <div class="container mx-auto px-4 py-8">
19
+ <div class="flex justify-between items-center">
20
+ <div>
21
+ <h1 class="text-3xl font-bold">Digital Asset Indicators Tracker</h1>
22
+ <p class="mt-2 opacity-90">Real-time tracking of assets with the most bullish indicators</p>
23
+ </div>
24
+ <div class="hidden md:block">
25
+ <span class="px-4 py-2 bg-white bg-opacity-20 rounded-full flex items-center">
26
+ <span class="w-3 h-3 bg-green-400 rounded-full mr-2 pulse"></span>
27
+ <span>Live Data</span>
28
+ </span>
29
+ </div>
30
+ </div>
31
+ </div>
32
+ </header>
33
 
34
+ <main class="container mx-auto px-4 py-8">
35
+ <div class="mb-6 flex justify-between items-center">
36
+ <h2 class="text-2xl font-bold text-gray-800">Top Assets by Indicators</h2>
37
+ <div class="text-sm text-gray-500">
38
+ <span>Last updated: <span id="updateTime" class="font-medium">Just now</span></span>
39
+ <button onclick="refreshData()" class="ml-2 text-blue-500 hover:text-blue-700"><i class="fas fa-sync-alt"></i> Refresh</button>
40
+ </div>
41
+ </div>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
42
 
43
+ <div id="asset-grid" class="grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3 gap-6 mb-8"></div>
44
+ </main>
 
 
 
 
 
 
 
45
 
46
+ <footer class="bg-gray-100 py-8">
47
+ <div class="container mx-auto px-4 text-center text-sm text-gray-500">
48
+ <p>This is for informational purposes only. Not financial advice.</p>
49
+ <p class="mt-2">Data updates automatically every 60 seconds.</p>
50
+ </div>
51
+ </footer>
52
 
53
+ <script>
54
+ // Your list of 18 indicators (simplified for CoinGecko data mapping)
55
+ const indicatorsList = [
56
+ 'market_cap', 'volume_24h', 'price_change_24h', 'price_change_7d', 'total_supply',
57
+ 'max_supply', 'circulating_supply', 'ath', 'atl', 'high_24h', 'low_24h', 'price',
58
+ 'dominance', 'roi', 'change_pct', 'liquidity', 'social_score', 'developer_score'
59
+ ];
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
60
 
61
+ async function fetchCoinData() {
62
+ try {
63
+ // Fetch top 50 coins by market cap
64
+ const response = await fetch('https://api.coingecko.com/api/v3/coins/markets?vs_currency=usd&order=market_cap_desc&per_page=50&page=1&sparkline=false');
65
+ const data = await response.json();
66
+ return data;
67
+ } catch (error) {
68
+ console.error('Error fetching CoinGecko data:', error);
69
+ return [];
70
+ }
71
+ }
72
+
73
+ function countIndicators(coin) {
74
+ // Count how many of our indicators are 'available' or positive
75
+ let count = 0;
76
+ indicatorsList.forEach(ind => {
77
+ if (coin[ind] !== null && coin[ind] !== undefined) count++;
78
+ });
79
+ return count;
80
+ }
81
+
82
+ function renderAssets(coins) {
83
+ const container = document.getElementById('asset-grid');
84
+ container.innerHTML = '';
85
+
86
+ coins.forEach((coin, index) => {
87
+ const card = document.createElement('div');
88
+ card.className = 'asset-card bg-white rounded-xl shadow-md overflow-hidden p-6 transition-all duration-300 hover:shadow-lg';
89
+
90
+ card.innerHTML = `
91
+ <div class="flex justify-between items-start">
92
+ <div>
93
+ <h3 class="text-lg font-semibold text-gray-800">#${index + 1} ${coin.name} (${coin.symbol.toUpperCase()})</h3>
94
+ <p class="text-xl font-bold text-green-600">$${coin.current_price.toLocaleString()}</p>
95
+ <p class="text-sm ${coin.price_change_percentage_24h >=0 ? 'text-green-500' : 'text-red-500'}">24h Change: ${coin.price_change_percentage_24h.toFixed(2)}%</p>
96
  </div>
97
+ <div class="text-right">
98
+ <span class="inline-block px-2 py-1 text-xs font-semibold rounded-full bg-blue-100 text-blue-800">${coin.indicatorCount} indicators</span>
 
 
99
  </div>
100
  </div>
101
+ `;
102
+
103
+ container.appendChild(card);
104
+ });
 
 
105
 
106
+ // Update timestamp
107
+ document.getElementById('updateTime').textContent = new Date().toLocaleTimeString();
108
+ }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
109
 
110
+ async function refreshData() {
111
+ const coins = await fetchCoinData();
112
+ // Add indicator count
113
+ coins.forEach(coin => {
114
+ coin.indicatorCount = countIndicators(coin);
115
+ });
116
+ // Sort descending by indicator count
117
+ coins.sort((a,b) => b.indicatorCount - a.indicatorCount);
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
118
 
119
+ renderAssets(coins);
120
+ }
 
 
 
 
 
 
 
 
121
 
122
+ // Initial load
123
+ refreshData();
124
+ // Refresh every 60 seconds
125
+ setInterval(refreshData, 60000);
126
+ </script>
 
 
 
 
127
  <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=MisoPretty/indicator-tracker" style="color: #fff;text-decoration: underline;" target="_blank" >Remix</a></p></body>
128
+ </html>