mirror of https://github.com/ekimekim/wubloader
You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
165 lines
9.1 KiB
HTML
165 lines
9.1 KiB
HTML
|
|
<!--
|
|
TODOs:
|
|
Move Google sign-in/out buttons, and make it clear when you're not signed in.
|
|
Move "Reset" and "Manual Link" options in here.
|
|
Clean up the Options/Input header, move parts of it into a hidden "Advanced" menu.
|
|
Create a cleaner player-only version of the page, or find a way to make it a version of this one via URL switch.
|
|
-->
|
|
<!DOCTYPE html>
|
|
<html lang="en-US">
|
|
<head>
|
|
<meta charset="utf-8">
|
|
<meta http-equiv="X-UA-Compatible" content="IE=edge">
|
|
<title>Thrimbletrimmer Goes Forth</title>
|
|
<meta name="description" content="">
|
|
<meta name="viewport" content="width=device-width, initial-scale=1">
|
|
<meta name="google-signin-client_id" content="345276493482-r84m2giavk10glnmqna0lbq8e1hdaus0.apps.googleusercontent.com">
|
|
|
|
<link href="/thrimbletrimmer/plugins/video.js/dist/video-js.min.css" rel="stylesheet">
|
|
<link href="/thrimbletrimmer/plugins/videojs-hls-quality-selector/dist/videojs-hls-quality-selector.css" rel="stylesheet">
|
|
<link href="/thrimbletrimmer/plugins/videojs-trimming-controls/dist/videojs-trimming-controls.css" rel="stylesheet">
|
|
<link href="https://fonts.googleapis.com/icon?family=Material+Icons" rel="stylesheet">
|
|
<!-- <script src="https://code.jquery.com/jquery-3.3.1.min.js" integrity="sha256-FgpCb/KJQlLNfOu91ta32o/NMZxltwRo8QtmkMRdAu8=" crossorigin="anonymous"></script> -->
|
|
<script src="/thrimbletrimmer/plugins/video.js/dist/video.min.js"></script>
|
|
<script src="/thrimbletrimmer/plugins/videojs-contrib-quality-levels/dist/videojs-contrib-quality-levels.min.js"></script>
|
|
<script src="/thrimbletrimmer/plugins/videojs-hls-quality-selector/dist/videojs-hls-quality-selector.min.js"></script>
|
|
<script src="/thrimbletrimmer/plugins/videojs-trimming-controls/dist/videojs-trimming-controls.js"></script>
|
|
|
|
<script src="https://apis.google.com/js/platform.js?onload=onGLoad" async defer></script>
|
|
|
|
<link href="/thrimbletrimmer/styles/style.css" rel="stylesheet">
|
|
</head>
|
|
<body>
|
|
<div style="max-width:1280px;margin:auto;padding-top:25px;">
|
|
<table id="wubloaderInputTable">
|
|
<tr>
|
|
<th>Stream</th>
|
|
<th>Start Time</th>
|
|
<th>End Time</th>
|
|
<th></th>
|
|
</tr>
|
|
<tr>
|
|
<td><input id="StreamName" value="desertbus" /></td>
|
|
<td><input id="StreamStart" value="0:10:00" />
|
|
<td><input id="StreamEnd" value="" />
|
|
<td><input type="button" value="Load Playlist" onclick="loadPlaylist(true)" /></td>
|
|
</tr>
|
|
<tr>
|
|
<td></td>
|
|
<td></td>
|
|
<td>
|
|
<input type="radio" id="BusTimeToggleUTC" name="BusTimeToggle" value="UTC" onclick="toggleTimeInput(this.value)"> UTC
|
|
<input type="radio" id="BusTimeToggleBus" name="BusTimeToggle" value="BUSTIME" onclick="toggleTimeInput(this.value)" checked="checked"> Bustime
|
|
<input type="radio" id="BusTimeToggleDelay" name="BusTimeToggle" value="AGO" onclick="toggleTimeInput(this.value)" > Time Ago
|
|
</td>
|
|
<td><a id="AdvancedOptionsButton" href="JavaScript:toggleHiddenPane('wubloaderAdvancedInputTable');">Advanced Submit Options</a></td>
|
|
</tr>
|
|
</table>
|
|
<table id="wubloaderAdvancedInputTable" style="display:none;">
|
|
<tr>
|
|
<td><a href="#" onclick="window.open('/files');">Streams</a></td>
|
|
<td><a href="#" onclick="window.open('/files/' + document.getElementById('StreamName').value + '/source', '_blank');">Hours</a></td>
|
|
</tr>
|
|
<tr><td>Allow Holes: </td><td><input id="AllowHoles" type="checkbox" /></td></tr>
|
|
<tr><td>Quality Level: </td><td><select id="qualityLevel"></select></td></tr>
|
|
<tr><td>Upload Location: </td><td><select id="uploadLocation"></select></td></tr>
|
|
<tr><td>Uploader Whitelist: </td><td><input id="uploaderWhitelist" title="Uploader Whitelist" /></td></tr>
|
|
<tr>
|
|
<td>ThrimShim ID:</td>
|
|
<td><input id="hiddenSubmissionID" value="" /></td>
|
|
<td><input type="button" value="Load Event" onclick="window.location.search = '?id='+document.getElementById('hiddenSubmissionID').value"/></td>
|
|
</tr>
|
|
</table>
|
|
|
|
<div id="EditorContainer">
|
|
<video id="my-player" class="video-js" controls preload="auto" style="display:none">
|
|
<p class="vjs-no-js">To view this video please enable JavaScript, and consider upgrading to a web browser that <a href="http://videojs.com/html5-video-support/" target="_blank">supports HTML5 video</a></p>
|
|
</video>
|
|
</div>
|
|
|
|
<div id="EditorDetailsPane">
|
|
<img id="Waveform" style="width: 100%">
|
|
<div id="EditNotesPane" style="display:none">
|
|
Edit Notes: <br/>
|
|
<textarea id="EditNotes" disabled ></textarea>
|
|
</div>
|
|
<div>
|
|
Title: <br />
|
|
<input type="text" id="VideoTitlePrefix" value="DB2019 - " disabled />
|
|
<input type="text" id="VideoTitle" value="" maxlength="82" />
|
|
</div>
|
|
<div>
|
|
Description:<br/>
|
|
<textarea id="VideoDescription" ></textarea>
|
|
</div>
|
|
<div>
|
|
Tags (comma-seperated):
|
|
<input type="text" id="VideoTags" onblur="round_trip_tag_string()" />
|
|
<br/>
|
|
Note that tag edits made here apply only to the uploaded video. Playlists are populated based on the tags in the sheet.
|
|
</div>
|
|
<input type="button" id="SubmitButton" value="Submit" onclick="thrimbletrimmerSubmit('EDITED')"/>
|
|
<input type="button" id="DraftButton" value="Save Draft" onclick="thrimbletrimmerSubmit('UNEDITED')"/>
|
|
<input type="button" id="DownloadButton" value="Create download link" onclick="thrimbletrimmerDownload(true)"/>
|
|
<a href="/thrimbletrimmer/dashboard.html">Go To Dashboard</a> |
|
|
<a href="/thrimbletrimmer/stream.html">Go to Re-stream View</a> |
|
|
<a id="ManualLinkButton" href="JavaScript:toggleHiddenPane('ManualLinkPane');">Manual Link</a> |
|
|
<a id="CancelButton" href="JavaScript:thrimbletrimmerResetLink(false);">Cancel Upload</a> |
|
|
<a id="ResetButton" href="JavaScript:thrimbletrimmerResetLink(true);">Force Reset Row</a>
|
|
<a id="HelpButton" style="float:right;" href="JavaScript:toggleHiddenPane('HelpPane');">Help</a>
|
|
<a id="UltrawideButton" style="float:right;margin-right:10px;" href="JavaScript:toggleUltrawide();">Ultrawide</a>
|
|
<br/>
|
|
Download type:
|
|
<select id="DownloadType">
|
|
<option value="rough" selected>Rough (fastest, pads start and end by a few seconds)</option>
|
|
<option value="fast">Fast (may have artifacts a few seconds in from start and end)</option>
|
|
<option value="mpegts">MPEG-TS (slow, consumes server resources)</option>
|
|
</select>
|
|
<a id="DownloadLink" href="" style="display:none">Right click here and Save Link As to Download</a>
|
|
</div>
|
|
<div id="ManualLinkPane" style="display:none">
|
|
<input id="ManualLink" /> <input type="button" id="ManualButton" onclick="thrimbletrimmerManualLink()" value="Set Link" />
|
|
Is Youtube Upload (add to playlists)? <input id="ManualYoutube" type="checkbox" />
|
|
<div id="HelpPane" style="display:none;">
|
|
<ul>
|
|
<li>J/K/L - Back 10 seconds, Play/Pause, Advance 10 seconds</li>
|
|
<li>LeftArrow/RightArrow - Back 5 seconds, Advance 5 seconds</li>
|
|
<li>,/. - Back 0.1 seconds, Advance 0.1 seconds</li>
|
|
<li>I/O - Set start of trim at playhead, set end of trim at playhead</li>
|
|
<li>0-9 - Jump to 0% - 90% through the video.</li>
|
|
<li>-/+ - Slow Down, Speed Up</li>
|
|
</ul>
|
|
</div>
|
|
</div>
|
|
|
|
<script src="/thrimbletrimmer/scripts/playerSetup.js"></script>
|
|
<script src="/thrimbletrimmer/scripts/keyboardShortcuts.js"></script>
|
|
<script src="/thrimbletrimmer/scripts/IO.js"></script>
|
|
|
|
<script>pageSetup(true);</script>
|
|
|
|
<div class="g-signin2" data-onsuccess="onSignIn"></div>
|
|
<a href="#" onclick="signOut();">Sign out</a>
|
|
<script>
|
|
var user;
|
|
function onSignIn(googleUser) {
|
|
user = googleUser;
|
|
var profile = googleUser.getBasicProfile();
|
|
console.log('ID: ' + profile.getId()); // Do not send to your backend! Use an ID token instead.
|
|
console.log('Name: ' + profile.getName());
|
|
console.log('Image URL: ' + profile.getImageUrl());
|
|
console.log('Email: ' + profile.getEmail()); // This is null if the 'email' scope is not present.
|
|
console.log('ID Token: ' + googleUser.getAuthResponse().id_token);
|
|
}
|
|
function signOut() {
|
|
user = null;
|
|
var auth2 = gapi.auth2.getAuthInstance();
|
|
auth2.signOut().then(function () {
|
|
console.log('User signed out.');
|
|
});
|
|
}
|
|
</script>
|
|
</body>
|
|
</html>
|