forked from juice-shop/juice-shop
-
Notifications
You must be signed in to change notification settings - Fork 0
/
promotionVideo.pug
116 lines (112 loc) · 5.19 KB
/
promotionVideo.pug
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
doctype html
html(lang='en')
head
title _title_
meta(charset='utf-8')
meta(name='description', content='')
meta(name='keywords', content='')
meta(name='viewport' content='width=device-width, initial-scale=1.0')
link(rel='icon', type='image/x-icon', href='./assets/public/_favicon_')
link(rel='stylesheet', href='https://code.getmdl.io/1.3.0/material.min.css')
link(rel='stylesheet', href='https://fonts.googleapis.com/icon?family=Material+Icons')
link(rel='stylesheet', href='http://fonts.googleapis.com/css?family=Roboto:300,400,500,700', type='text/css')
script(src='//ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js')
script(defer='', src='https://code.getmdl.io/1.3.0/material.min.js')
style.
video {
min-width: 320px;
width: 44vw;
display: block;
margin-left: auto;
margin-right:auto;
margin-bottom: 5px;
height: 50vh;
outline: none;
}
@media (max-width: 900px) {
.mdl-layout-title {
display: none !important;
}
}
body(style='background: _bgColor_;color:_textColor_;')
.mdl-layout.mdl-js-layout.mdl-layout--fixed-header
header.mdl-layout__header.mdl-shadow--8dp(style= 'background: _navColor_; height: auto; min-width: 100%; padding-bottom: 5px; width: 100%;')
.mdl-layout__header-row
a(href='./#/' style='color: _textColor_; text-decoration:none; margin-left: -50px;')
i(class='material-icons', style='display: block;margin-bottom: auto;margin-top: auto; margin-right: 10px;') arrow_back
a(href='./#/' style='color: _textColor_; text-decoration:none;')
span(style='margin-right: 20px;')
| Back
// Logo
a(href='./#/')
img(src='assets/public/images/JuiceShop_Logo.png', style='max-height: 60px; width: auto;', alt='_title_ Logo')
// Title
a(href='./#/' style='color: _textColor_; text-decoration:none;')
span.mdl-layout-title(style='font: 500 20px/32px Roboto,"Helvetica Neue",sans-serif;')
| _title_
section.section--center.mdl-grid.mdl-grid--no-spacing
.mdl-card#card.mdl-cell.mdl-cell--12-col.mdl-shadow--8dp(style='width: 45vw; min-width: 320px; height: 58vh; background: _primLight_; margin-bottom: 50px; margin-top: 110px; display: block; margin-left: auto; margin-right:auto; ')
h1(style='color: _textColor_; font-size: 24px; line-height: 32px; margin-top: 16px; margin-bottom: 16px; font-weight: 400; margin-left: 16px;') Promotion Video
video(width='85vw', height='240', controls='controls')
source(src='./video', type='video/mp4')
script#subtitle.
script.
function parse_timestamp(s) {
var match = s.match(/^(?:([0-9]+):)?([0-5][0-9]):([0-5][0-9](?:[.,][0-9]{0,3})?)/);
if (match == null) {
throw 'Invalid timestamp format: ' + s;
}
var hours = parseInt(match[1] || "0", 10);
var minutes = parseInt(match[2], 10);
var seconds = parseFloat(match[3].replace(',', '.'));
return seconds + 60 * minutes + 60 * 60 * hours;
}
function quick_and_dirty_vtt_or_srt_parser(vtt) {
var lines = vtt.trim().replace('\\r\n', '\n').split(/[\r\n]/).map(function(line) {
return line.trim();
});
var cues = [];
var start = null;
var end = null;
var payload = null;
for (var i = 0; i < lines.length; i++) {
if (lines[i].indexOf('-->') >= 0) {
var splitted = lines[i].split(/[ \\t]+-->[ \t]+/);
if (splitted.length != 2) {
throw 'Error when splitting "-->": ' + lines[i];
}
// Already ignoring anything past the "end" timestamp (i.e. cue settings).
start = parse_timestamp(splitted[0]);
end = parse_timestamp(splitted[1]);
} else if (lines[i] == '') {
if (start && end) {
var cue = new VTTCue(start, end, payload);
cues.push(cue);
start = null;
end = null;
payload = null;
}
} else if(start && end) {
if (payload == null) {
payload = lines[i];
} else {
payload += '\\n' + lines[i];
}
}
}
if (start && end) {
var cue = new VTTCue(start, end, payload);
cues.push(cue);
}
return cues;
}
function init() {
var video = document.querySelector('video');
var subtitle = document.getElementById('subtitle');
var track = video.addTextTrack('subtitles', subtitle.dataset.label, subtitle.dataset.lang);
track.mode = "showing";
quick_and_dirty_vtt_or_srt_parser(subtitle.innerHTML).map(function(cue) {
track.addCue(cue);
});
}
init();