jerrrycans commited on
Commit
1754c77
·
verified ·
1 Parent(s): 0be674e

Update bot/server/templates/player.html

Browse files
Files changed (1) hide show
  1. bot/server/templates/player.html +43 -62
bot/server/templates/player.html CHANGED
@@ -30,10 +30,10 @@ text-align: center;
30
  margin-top: 20px;
31
  }
32
 
33
- .plyr__video-wrapper .plyr-download-button,
34
- .plyr__video-wrapper .plyr-share-button,
35
- .plyr__video-wrapper .plyr-upload-button {
36
  position: absolute;
 
 
37
  width: 30px;
38
  height: 30px;
39
  background-color: rgba(0, 0, 0, 0.7);
@@ -44,24 +44,30 @@ color: white;
44
  z-index: 10;
45
  }
46
 
47
- .plyr__video-wrapper .plyr-download-button {
48
- top: 10px;
49
- left: 10px;
 
 
50
  }
51
 
52
- .plyr__video-wrapper .plyr-share-button {
53
- top: 50px;
54
- left: 10px;
55
- }
56
 
57
- .plyr__video-wrapper .plyr-upload-button {
58
- top: 90px;
 
59
  left: 10px;
 
 
 
 
 
 
 
 
60
  }
61
 
62
  .plyr__video-wrapper .plyr-download-button:hover,
63
- .plyr__video-wrapper .plyr-share-button:hover,
64
- .plyr__video-wrapper .plyr-upload-button:hover {
65
  background-color: rgba(255, 255, 255, 0.7);
66
  color: black;
67
  }
@@ -78,15 +84,10 @@ content: "\f064";
78
  font-weight: bold;
79
  }
80
 
81
- .plyr__video-wrapper .plyr-upload-button:before {
82
- font-family: "Font Awesome 5 Free";
83
- content: "\f093";
84
- font-weight: bold;
85
- }
86
-
87
  .plyr, .plyr__video-wrapper, .plyr__video-embed iframe {
88
  height: 100%;
89
  }
 
90
  </style>
91
  </head>
92
 
@@ -101,7 +102,7 @@ To view this video please enable JavaScript, and consider upgrading to a web bro
101
  <div id="error-message"></div>
102
 
103
  <script>
104
- const player = new Plyr('#stream-media', {
105
  controls:['play-large', 'rewind', 'play', 'fast-forward', 'progress', 'current-time', 'mute', 'settings', 'pip', 'fullscreen'],
106
  settings:['speed','loop'],
107
  speed:{selected:1,options:[0.25,0.5,0.75,1,1.25,1.5,1.75,2]},
@@ -109,63 +110,43 @@ seek: 10,
109
  keyboard: { focused: true, global: true },
110
  });
111
 
112
- // Get media URL from query parameter
113
- const urlParams = new URLSearchParams(window.location.search);
114
- const mediaLink = urlParams.get('mediaLink');
115
 
116
  if (mediaLink) {
117
- document.querySelector('#stream-media source').src = mediaLink;
118
- player.source = { type: 'video', sources: [{ src: mediaLink }] };
119
 
120
- // Download Button
121
- const downloadButton = document.createElement('div');
122
  downloadButton.className = 'plyr-download-button';
123
- downloadButton.onclick = () => {
124
- const link = document.createElement('a');
 
 
125
  link.href = mediaLink;
 
126
  link.click();
 
127
  };
 
128
  player.elements.container.querySelector('.plyr__video-wrapper').appendChild(downloadButton);
129
 
130
- // Share Button
131
- const shareButton = document.createElement('div');
132
  shareButton.className = 'plyr-share-button';
133
- shareButton.onclick = () => {
134
- navigator.share?.({ title: "Play", url: mediaLink });
135
- };
136
- player.elements.container.querySelector('.plyr__video-wrapper').appendChild(shareButton);
137
 
138
- // Upload Button
139
- const uploadButton = document.createElement('div');
140
- uploadButton.className = 'plyr-upload-button';
141
- uploadButton.onclick = async () => {
142
- try {
143
- const videoSrc = document.querySelector('#stream-media source').src;
144
- const response = await fetch(videoSrc);
145
- const blob = await response.blob();
146
- const formData = new FormData();
147
- formData.append('file', blob, 'video.mp4');
148
-
149
- const uploadResponse = await fetch('https://jerrrycans-file.hf.space/upload', {
150
- method: 'POST',
151
- body: formData,
152
  });
153
-
154
- if (uploadResponse.ok) {
155
- const { url } = await uploadResponse.json();
156
- const fullUrl = `https://jerrrycans-file.hf.space${url}`;
157
- alert(`Upload successful!\nURL: ${fullUrl}`);
158
- } else {
159
- throw new Error('Upload failed');
160
- }
161
- } catch (error) {
162
- alert(`Upload error: ${error.message}`);
163
  }
164
  };
165
- player.elements.container.querySelector('.plyr__video-wrapper').appendChild(uploadButton);
 
166
 
167
  } else {
168
- document.getElementById('error-message').textContent = 'Error: Missing media URL parameter';
169
  }
170
  </script>
171
 
 
30
  margin-top: 20px;
31
  }
32
 
33
+ .plyr__video-wrapper .plyr-download-button{
 
 
34
  position: absolute;
35
+ top: 10px;
36
+ left: 10px;
37
  width: 30px;
38
  height: 30px;
39
  background-color: rgba(0, 0, 0, 0.7);
 
44
  z-index: 10;
45
  }
46
 
47
+ .plyr__volume {
48
+ max-width: initial;
49
+ min-width: initial;
50
+ width: auto;
51
+ position: relative;
52
  }
53
 
 
 
 
 
54
 
55
+ .plyr__video-wrapper .plyr-share-button{
56
+ position: absolute;
57
+ top: 50px;
58
  left: 10px;
59
+ width: 30px;
60
+ height: 30px;
61
+ background-color: rgba(0, 0, 0, 0.7);
62
+ border-radius: 50%;
63
+ text-align: center;
64
+ line-height: 30px;
65
+ color: white;
66
+ z-index: 10;
67
  }
68
 
69
  .plyr__video-wrapper .plyr-download-button:hover,
70
+ .plyr__video-wrapper .plyr-share-button:hover{
 
71
  background-color: rgba(255, 255, 255, 0.7);
72
  color: black;
73
  }
 
84
  font-weight: bold;
85
  }
86
 
 
 
 
 
 
 
87
  .plyr, .plyr__video-wrapper, .plyr__video-embed iframe {
88
  height: 100%;
89
  }
90
+
91
  </style>
92
  </head>
93
 
 
102
  <div id="error-message"></div>
103
 
104
  <script>
105
+ var player = new Plyr('#stream-media', {
106
  controls:['play-large', 'rewind', 'play', 'fast-forward', 'progress', 'current-time', 'mute', 'settings', 'pip', 'fullscreen'],
107
  settings:['speed','loop'],
108
  speed:{selected:1,options:[0.25,0.5,0.75,1,1.25,1.5,1.75,2]},
 
110
  keyboard: { focused: true, global: true },
111
  });
112
 
113
+ var mediaLink = "{{ mediaLink }}";
 
 
114
 
115
  if (mediaLink) {
116
+ document.querySelector('#stream-media source').setAttribute('src', mediaLink);
117
+ player.restart();
118
 
119
+ var downloadButton = document.createElement('div');
 
120
  downloadButton.className = 'plyr-download-button';
121
+
122
+ downloadButton.onclick = function() {
123
+ event.stopPropagation();
124
+ var link = document.createElement('a');
125
  link.href = mediaLink;
126
+ document.body.appendChild(link);
127
  link.click();
128
+ document.body.removeChild(link);
129
  };
130
+
131
  player.elements.container.querySelector('.plyr__video-wrapper').appendChild(downloadButton);
132
 
133
+ var shareButton = document.createElement('div');
 
134
  shareButton.className = 'plyr-share-button';
 
 
 
 
135
 
136
+ shareButton.onclick = function() {
137
+ event.stopPropagation();
138
+ if (navigator.share) {
139
+ navigator.share({
140
+ title: "Play",
141
+ url: mediaLink
 
 
 
 
 
 
 
 
142
  });
 
 
 
 
 
 
 
 
 
 
143
  }
144
  };
145
+
146
+ player.elements.container.querySelector('.plyr__video-wrapper').appendChild(shareButton);
147
 
148
  } else {
149
+ document.getElementById('error-message').textContent = 'Error: Media URL not provided';
150
  }
151
  </script>
152