Spaces:
Running
Running
Update index.html
Browse files- index.html +0 -120
index.html
CHANGED
|
@@ -1559,126 +1559,6 @@
|
|
| 1559 |
// Share clips with Bluetooth group
|
| 1560 |
async function shareClipsWithGroup() {
|
| 1561 |
if (!isBluetoothConnected) {
|
| 1562 |
-
showNotification("Not Connected", "Please connect to Bluetooth first");
|
| 1563 |
-
return;
|
| 1564 |
-
}
|
| 1565 |
-
|
| 1566 |
-
if (recordedClips.length === 0) {
|
| 1567 |
-
showNotification("No Clips", "Please record some clips first");
|
| 1568 |
-
return;
|
| 1569 |
-
}
|
| 1570 |
-
|
| 1571 |
-
// In a real app, this would actually send the clips over Bluetooth
|
| 1572 |
-
// For this demo, we'll simulate the sharing process
|
| 1573 |
-
|
| 1574 |
-
showNotification("Sharing Clips", "Sharing your clips with the group...");
|
| 1575 |
-
|
| 1576 |
-
// Simulate sharing delay
|
| 1577 |
-
setTimeout(() => {
|
| 1578 |
-
// Add metadata to clips and add to shared clips
|
| 1579 |
-
recordedClips.forEach(clip => {
|
| 1580 |
-
const sharedClip = {
|
| 1581 |
-
...clip,
|
| 1582 |
-
sharedBy: username,
|
| 1583 |
-
category: currentCategory,
|
| 1584 |
-
timestamp: new Date().toLocaleTimeString(),
|
| 1585 |
-
likes: Math.floor(Math.random() * 10),
|
| 1586 |
-
views: Math.floor(Math.random() * 50)
|
| 1587 |
-
};
|
| 1588 |
-
sharedClips.push(sharedClip);
|
| 1589 |
-
});
|
| 1590 |
-
|
| 1591 |
-
// Update shared clips display
|
| 1592 |
-
updateSharedClipsList();
|
| 1593 |
-
|
| 1594 |
-
showNotification("Clips Shared", `Shared ${recordedClips.length} clips with ${groupMembers.length} group members`);
|
| 1595 |
-
}, 2000);
|
| 1596 |
-
}
|
| 1597 |
-
|
| 1598 |
-
// Update shared clips list
|
| 1599 |
-
function updateSharedClipsList() {
|
| 1600 |
-
const container = document.getElementById('shared-clips-container');
|
| 1601 |
-
container.innerHTML = '';
|
| 1602 |
-
|
| 1603 |
-
if (sharedClips.length === 0) {
|
| 1604 |
-
container.innerHTML = '<p class="text-gray-500 text-sm">Shared clips will appear here...</p>';
|
| 1605 |
-
return;
|
| 1606 |
-
}
|
| 1607 |
-
|
| 1608 |
-
sharedClips.forEach((clip, index) => {
|
| 1609 |
-
const clipItem = document.createElement('div');
|
| 1610 |
-
clipItem.className = 'clip-item';
|
| 1611 |
-
clipItem.innerHTML = `
|
| 1612 |
-
<i class="fas fa-video text-gray-500 mr-2"></i>
|
| 1613 |
-
<span class="text-sm flex-1">Clip ${index + 1}</span>
|
| 1614 |
-
<span class="user-tag">${clip.sharedBy}</span>
|
| 1615 |
-
<span class="category-tag">${clip.category}</span>
|
| 1616 |
-
`;
|
| 1617 |
-
|
| 1618 |
-
// Add click handler to preview clip
|
| 1619 |
-
clipItem.addEventListener('click', () => {
|
| 1620 |
-
const preview = document.getElementById('clip-preview');
|
| 1621 |
-
preview.innerHTML = '<video controls></video>';
|
| 1622 |
-
const previewVideo = preview.querySelector('video');
|
| 1623 |
-
previewVideo.src = clip.url;
|
| 1624 |
-
});
|
| 1625 |
-
|
| 1626 |
-
container.appendChild(clipItem);
|
| 1627 |
-
});
|
| 1628 |
-
}
|
| 1629 |
|
| 1630 |
-
// Benchmarking algorithm to rank clips
|
| 1631 |
-
function benchmarkClips() {
|
| 1632 |
-
if (sharedClips.length === 0) return [];
|
| 1633 |
-
|
| 1634 |
-
// Calculate scores for each clip
|
| 1635 |
-
sharedClips.forEach(clip => {
|
| 1636 |
-
// Composite score is weighted average of all metrics
|
| 1637 |
-
clip.compositeScore = (
|
| 1638 |
-
clip.engagementScore * 0.4 +
|
| 1639 |
-
clip.qualityScore * 0.3 +
|
| 1640 |
-
clip.consistencyScore * 0.3
|
| 1641 |
-
);
|
| 1642 |
-
|
| 1643 |
-
// Add some randomness to simulate different algorithms
|
| 1644 |
-
clip.engagementScore = Math.min(5, clip.engagementScore + Math.random() * 0.5 - 0.25);
|
| 1645 |
-
clip.qualityScore = Math.min(5, clip.qualityScore + Math.random() * 0.5 - 0.25);
|
| 1646 |
-
clip.consistencyScore = Math.min(5, clip.consistencyScore + Math.random() * 0.5 - 0.25);
|
| 1647 |
-
});
|
| 1648 |
-
|
| 1649 |
-
// Sort based on selected algorithm
|
| 1650 |
-
const algorithm = document.getElementById('ranking-algorithm').value;
|
| 1651 |
-
let sortedClips = [...sharedClips];
|
| 1652 |
-
|
| 1653 |
-
switch (algorithm) {
|
| 1654 |
-
case 'engagement':
|
| 1655 |
-
sortedClips.sort((a, b) => b.engagementScore - a.engagementScore);
|
| 1656 |
-
break;
|
| 1657 |
-
case 'quality':
|
| 1658 |
-
sortedClips.sort((a, b) => b.qualityScore - a.qualityScore);
|
| 1659 |
-
break;
|
| 1660 |
-
case 'consistency':
|
| 1661 |
-
sortedClips.sort((a, b) => b.consistencyScore - a.consistencyScore);
|
| 1662 |
-
break;
|
| 1663 |
-
case 'composite':
|
| 1664 |
-
default:
|
| 1665 |
-
sortedClips.sort((a, b) => b.compositeScore - a.compositeScore);
|
| 1666 |
-
break;
|
| 1667 |
-
}
|
| 1668 |
-
|
| 1669 |
-
return sortedClips;
|
| 1670 |
-
}
|
| 1671 |
-
|
| 1672 |
-
// Update rankings display
|
| 1673 |
-
function updateRankings() {
|
| 1674 |
-
const container = document.getElementById('rankings-container');
|
| 1675 |
-
container.innerHTML = '';
|
| 1676 |
-
|
| 1677 |
-
const rankedClips = benchmarkClips();
|
| 1678 |
-
|
| 1679 |
-
if (rankedClips.length === 0) {
|
| 1680 |
-
container.innerHTML = '<p class="text-gray-500 text-sm">Rankings will appear here when available...</p>';
|
| 1681 |
-
return;
|
| 1682 |
-
}
|
| 1683 |
|
| 1684 |
</html>
|
|
|
|
| 1559 |
// Share clips with Bluetooth group
|
| 1560 |
async function shareClipsWithGroup() {
|
| 1561 |
if (!isBluetoothConnected) {
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1562 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1563 |
|
| 1564 |
</html>
|