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>
|