Merge branch 'dev/1.1.x' into main
@ -1,7 +1,7 @@
|
||||
<?xml version="1.0"?>
|
||||
<Container version="2">
|
||||
<Name>dizquetv</Name>
|
||||
<Repository>vexorian/dizquetv:latest</Repository>
|
||||
<Repository>vexorian/dizquetv:latest-nvidia</Repository>
|
||||
<Registry>https://hub.docker.com/r/vexorian/dizquetv</Registry>
|
||||
<Network>host</Network>
|
||||
<MyIP/>
|
||||
|
||||
8
index.js
@ -171,12 +171,8 @@ app.get('/version.js', (req, res) => {
|
||||
app.use('/images', express.static(path.join(process.env.DATABASE, 'images')))
|
||||
app.use(express.static(path.join(__dirname, 'web/public')))
|
||||
app.use('/images', express.static(path.join(process.env.DATABASE, 'images')))
|
||||
|
||||
app.use('/favicon-16.png', express.static(
|
||||
path.join(__dirname, 'resources/favicon-16.png')
|
||||
) );
|
||||
app.use('/favicon-32.png', express.static(
|
||||
path.join(__dirname, 'resources/favicon-32.png')
|
||||
app.use('/favicon.svg', express.static(
|
||||
path.join(__dirname, 'resources/favicon.svg')
|
||||
) );
|
||||
|
||||
app.use(api.router(db, channelDB, fillerDB, xmltvInterval, guideService ))
|
||||
|
||||
|
Before Width: | Height: | Size: 19 KiB After Width: | Height: | Size: 14 KiB |
|
Before Width: | Height: | Size: 532 B |
|
Before Width: | Height: | Size: 903 B |
@ -16,9 +16,9 @@
|
||||
id="svg8"
|
||||
inkscape:version="0.92.5 (2060ec1f9f, 2020-04-08)"
|
||||
sodipodi:docname="favicon.svg"
|
||||
inkscape:export-filename="/home/vx/dev/pseudotv/resources/favicon-32.png"
|
||||
inkscape:export-xdpi="15.36"
|
||||
inkscape:export-ydpi="15.36">
|
||||
inkscape:export-filename="/home/vx/dev/pseudotv/resources/favicon-16.png"
|
||||
inkscape:export-xdpi="7.6799998"
|
||||
inkscape:export-ydpi="7.6799998">
|
||||
<defs
|
||||
id="defs2" />
|
||||
<sodipodi:namedview
|
||||
@ -28,9 +28,9 @@
|
||||
borderopacity="1.0"
|
||||
inkscape:pageopacity="0.0"
|
||||
inkscape:pageshadow="2"
|
||||
inkscape:zoom="2.8284271"
|
||||
inkscape:cx="167.97182"
|
||||
inkscape:cy="117.8445"
|
||||
inkscape:zoom="3.0547013"
|
||||
inkscape:cx="173.01248"
|
||||
inkscape:cy="84.726326"
|
||||
inkscape:document-units="mm"
|
||||
inkscape:current-layer="layer1"
|
||||
showgrid="false"
|
||||
@ -48,7 +48,7 @@
|
||||
<dc:format>image/svg+xml</dc:format>
|
||||
<dc:type
|
||||
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
|
||||
<dc:title />
|
||||
<dc:title></dc:title>
|
||||
</cc:Work>
|
||||
</rdf:RDF>
|
||||
</metadata>
|
||||
@ -57,10 +57,18 @@
|
||||
inkscape:groupmode="layer"
|
||||
id="layer1"
|
||||
transform="translate(0,-244.08278)">
|
||||
<rect
|
||||
style="opacity:1;fill:#e6e6e6;fill-opacity:1;stroke:none;stroke-width:1.46508551;stroke-linecap:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
|
||||
id="rect4712"
|
||||
width="52.211964"
|
||||
height="51.512306"
|
||||
x="-0.85796964"
|
||||
y="245.32475"
|
||||
transform="matrix(0.99980416,-0.01978974,0.00448328,0.99998995,0,0)" />
|
||||
<g
|
||||
id="g4581"
|
||||
style="fill:#1f1f1f;fill-opacity:1;stroke-width:0.45839298"
|
||||
transform="matrix(2.1815344,0,0,2.1815344,-157.46714,-279.05712)">
|
||||
style="fill:#1f1f1f;fill-opacity:1;stroke-width:0.68901283"
|
||||
transform="matrix(1.2119871,0,0,1.7379906,-82.577875,-167.18505)">
|
||||
<rect
|
||||
transform="rotate(-0.94645665)"
|
||||
y="239.28041"
|
||||
@ -73,49 +81,56 @@
|
||||
<rect
|
||||
style="opacity:1;fill:#9cbc28;fill-opacity:1;stroke:#000000;stroke-width:0;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
|
||||
id="rect4518"
|
||||
width="17.452276"
|
||||
height="39.267612"
|
||||
x="2.9063668"
|
||||
y="251.19781"
|
||||
transform="rotate(0.52601413)" />
|
||||
<rect
|
||||
y="250.82713"
|
||||
x="24.506426"
|
||||
height="39.267612"
|
||||
width="17.452272"
|
||||
id="rect4520"
|
||||
style="opacity:1;fill:#289bbc;fill-opacity:1;stroke:#000000;stroke-width:0;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
|
||||
transform="rotate(1.4727573)" />
|
||||
<rect
|
||||
style="opacity:1;fill:#bc289b;fill-opacity:1;stroke:#000000;stroke-width:0;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
|
||||
id="rect4522"
|
||||
width="17.452271"
|
||||
height="39.267616"
|
||||
x="18.553907"
|
||||
y="253.31032"
|
||||
transform="rotate(-3.2986122)" />
|
||||
<circle
|
||||
style="opacity:1;fill:#6a6a6a;fill-opacity:0.86792453;stroke:none;stroke-width:1.46499991;stroke-linecap:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
|
||||
width="10.338528"
|
||||
height="23.042738"
|
||||
x="8.726779"
|
||||
y="258.22861"
|
||||
transform="matrix(0.99995865,0.00909414,-0.00926779,0.99995705,0,0)" />
|
||||
<ellipse
|
||||
style="opacity:1;fill:#a1a1a1;fill-opacity:0.86792453;stroke:none;stroke-width:1.46499991;stroke-linecap:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
|
||||
id="path4568"
|
||||
cx="68.087334"
|
||||
cy="255.99945"
|
||||
r="5.4538355" />
|
||||
<circle
|
||||
r="5.4538355"
|
||||
cy="277.56085"
|
||||
cx="70.664635"
|
||||
cx="44.118061"
|
||||
cy="261.20392"
|
||||
rx="2.4216392"
|
||||
ry="2.3988426" />
|
||||
<ellipse
|
||||
cy="272.90894"
|
||||
cx="44.765343"
|
||||
id="circle4570"
|
||||
style="opacity:1;fill:#6a6a6a;fill-opacity:0.86792453;stroke:none;stroke-width:1.46499991;stroke-linecap:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
|
||||
style="opacity:1;fill:#a1a1a1;fill-opacity:0.86792453;stroke:none;stroke-width:1.46499991;stroke-linecap:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
|
||||
rx="2.4216392"
|
||||
ry="2.3988426" />
|
||||
<g
|
||||
id="g1705"
|
||||
transform="translate(0,-2.116672)">
|
||||
<rect
|
||||
transform="matrix(0.99967585,0.02545985,-0.02594573,0.99966335,0,0)"
|
||||
style="opacity:1;fill:#289bbc;fill-opacity:1;stroke:#000000;stroke-width:0;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
|
||||
id="rect4520"
|
||||
width="10.338468"
|
||||
height="23.042864"
|
||||
x="23.424755"
|
||||
y="259.99872" />
|
||||
</g>
|
||||
<rect
|
||||
transform="matrix(0.99837418,-0.05699994,0.05808481,0.99831165,0,0)"
|
||||
y="259.69229"
|
||||
x="10.517879"
|
||||
height="23.043449"
|
||||
width="10.33821"
|
||||
id="rect4522"
|
||||
style="opacity:1;fill:#bc289b;fill-opacity:1;stroke:#000000;stroke-width:0;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
|
||||
<text
|
||||
xml:space="preserve"
|
||||
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:56.4507103px;line-height:125%;font-family:'Liberation Serif';-inkscape-font-specification:'Liberation Serif';letter-spacing:0px;word-spacing:0px;fill:#1f1f1f;fill-opacity:1;stroke:none;stroke-width:0.26458403px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
|
||||
x="10.669483"
|
||||
y="290.47122"
|
||||
id="text922"><tspan
|
||||
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:2.03992438px;line-height:125%;font-family:'Liberation Serif';-inkscape-font-specification:'Liberation Serif';letter-spacing:0px;word-spacing:0px;fill:#e6e6e6;fill-opacity:1;stroke:none;stroke-width:0.264584px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
|
||||
x="16.979799"
|
||||
y="286.34747"
|
||||
id="text1730"
|
||||
transform="rotate(-1.2296789)"><tspan
|
||||
sodipodi:role="line"
|
||||
id="tspan920"
|
||||
x="10.669483"
|
||||
y="290.47122"
|
||||
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-family:'Liberation Serif';-inkscape-font-specification:'Liberation Serif';fill:#1f1f1f;fill-opacity:1;stroke-width:0.26458403px">d</tspan></text>
|
||||
id="tspan1728"
|
||||
x="16.979799"
|
||||
y="286.34747"
|
||||
style="fill:#e6e6e6;fill-opacity:1;stroke-width:0.264584px">dizqueTV</tspan></text>
|
||||
</g>
|
||||
</svg>
|
||||
|
Before Width: | Height: | Size: 4.6 KiB After Width: | Height: | Size: 5.1 KiB |
@ -52,6 +52,9 @@ class PlexPlayer {
|
||||
throw Error(`Unable to find server "${lineupItem.serverKey}" specied by program.`);
|
||||
}
|
||||
server = server[0];
|
||||
if (server.uri.endsWith("/")) {
|
||||
server.uri = server.uri.slice(0, server.uri.length - 1);
|
||||
}
|
||||
|
||||
try {
|
||||
let plexSettings = db['plex-settings'].find()[0];
|
||||
|
||||
@ -2,8 +2,15 @@ const request = require('request')
|
||||
class Plex {
|
||||
constructor(opts) {
|
||||
this._accessToken = typeof opts.accessToken !== 'undefined' ? opts.accessToken : ''
|
||||
let uri = "http://127.0.0.1:32400";
|
||||
if ( (typeof opts.uri) !== 'undefined' ) {
|
||||
uri = opts.uri;
|
||||
if (uri.endsWith("/")) {
|
||||
uri = uri.slice(0, uri.length - 1);
|
||||
}
|
||||
}
|
||||
this._server = {
|
||||
uri: typeof opts.uri !== 'undefined' ? opts.uri : 'http://127.0.0.1:32400',
|
||||
uri: uri,
|
||||
host: typeof opts.host !== 'undefined' ? opts.host : '127.0.0.1',
|
||||
port: typeof opts.port !== 'undefined' ? opts.port : '32400',
|
||||
protocol: typeof opts.protocol !== 'undefined' ? opts.protocol : 'http'
|
||||
|
||||
@ -15,7 +15,10 @@
|
||||
version="1.1"
|
||||
id="svg8"
|
||||
inkscape:version="0.92.5 (2060ec1f9f, 2020-04-08)"
|
||||
sodipodi:docname="dizquetv.svg">
|
||||
sodipodi:docname="dizquetv.svg"
|
||||
inkscape:export-filename="/home/vx/dev/dizqueanimation/01.png"
|
||||
inkscape:export-xdpi="245.75999"
|
||||
inkscape:export-ydpi="245.75999">
|
||||
<defs
|
||||
id="defs2" />
|
||||
<sodipodi:namedview
|
||||
@ -25,9 +28,9 @@
|
||||
borderopacity="1.0"
|
||||
inkscape:pageopacity="0.0"
|
||||
inkscape:pageshadow="2"
|
||||
inkscape:zoom="2.5768297"
|
||||
inkscape:cx="-44.708187"
|
||||
inkscape:cy="32.377644"
|
||||
inkscape:zoom="1"
|
||||
inkscape:cx="-91.800821"
|
||||
inkscape:cy="221.87049"
|
||||
inkscape:document-units="mm"
|
||||
inkscape:current-layer="layer1"
|
||||
showgrid="false"
|
||||
@ -55,29 +58,17 @@
|
||||
id="layer1"
|
||||
transform="translate(0,-244.08278)">
|
||||
<rect
|
||||
style="opacity:1;fill:#e6e6e6;fill-opacity:1;stroke:none;stroke-width:1.46499991;stroke-linecap:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
|
||||
style="opacity:1;fill:#e6e6e6;fill-opacity:1;stroke:none;stroke-width:1.46501946;stroke-linecap:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
|
||||
id="rect4712"
|
||||
width="51.087337"
|
||||
height="48.801544"
|
||||
x="3.6474326"
|
||||
y="245.61409"
|
||||
transform="rotate(0.63279348)" />
|
||||
<text
|
||||
xml:space="preserve"
|
||||
style="font-style:normal;font-weight:normal;font-size:7.93639898px;line-height:125%;font-family:Sans;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:0.81132076;stroke:none;stroke-width:0.26458332px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
|
||||
x="16.805246"
|
||||
y="257.03284"
|
||||
id="text4692"
|
||||
transform="rotate(0.63279348)"><tspan
|
||||
sodipodi:role="line"
|
||||
id="tspan4690"
|
||||
x="16.805246"
|
||||
y="257.03284"
|
||||
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:5.29093266px;font-family:'Liberation Serif';-inkscape-font-specification:'Liberation Serif';fill:#000000;fill-opacity:0.81132076;stroke-width:0.26458332px">dizqueT</tspan></text>
|
||||
width="52.206699"
|
||||
height="35.866219"
|
||||
x="-1.3992016"
|
||||
y="254.87126"
|
||||
transform="matrix(0.99990505,-0.01378015,0.00643904,0.99997927,0,0)" />
|
||||
<g
|
||||
id="g4581"
|
||||
style="fill:#1f1f1f;fill-opacity:1;stroke-width:0.85952657"
|
||||
transform="matrix(1.1634312,0,0,1.1634312,-78.839147,-18.96312)">
|
||||
style="fill:#1f1f1f;fill-opacity:1;stroke-width:0.82573813"
|
||||
transform="matrix(1.2119871,0,0,1.2100891,-82.577875,-32.337926)">
|
||||
<rect
|
||||
transform="rotate(-0.94645665)"
|
||||
y="239.28041"
|
||||
@ -90,44 +81,55 @@
|
||||
<rect
|
||||
style="opacity:1;fill:#9cbc28;fill-opacity:1;stroke:#000000;stroke-width:0;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
|
||||
id="rect4518"
|
||||
width="9.3074493"
|
||||
height="20.941759"
|
||||
x="7.8814092"
|
||||
y="263.77377"
|
||||
transform="rotate(0.52601423)" />
|
||||
<rect
|
||||
y="263.45377"
|
||||
x="21.544861"
|
||||
height="20.941759"
|
||||
width="9.3074484"
|
||||
id="rect4520"
|
||||
style="opacity:1;fill:#289bbc;fill-opacity:1;stroke:#000000;stroke-width:0;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
|
||||
transform="rotate(1.4727576)" />
|
||||
<rect
|
||||
style="opacity:1;fill:#bc289b;fill-opacity:1;stroke:#000000;stroke-width:0;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
|
||||
id="rect4522"
|
||||
width="9.3074474"
|
||||
height="20.941761"
|
||||
x="7.5537415"
|
||||
y="265.03363"
|
||||
transform="rotate(-3.2986122)" />
|
||||
<circle
|
||||
style="opacity:1;fill:#6a6a6a;fill-opacity:0.86792453;stroke:none;stroke-width:1.46499991;stroke-linecap:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
|
||||
width="10.338528"
|
||||
height="23.042738"
|
||||
x="8.7463942"
|
||||
y="260.34518"
|
||||
transform="matrix(0.99995865,0.00909414,-0.00926779,0.99995705,0,0)" />
|
||||
<ellipse
|
||||
style="opacity:1;fill:#a1a1a1;fill-opacity:0.86792453;stroke:none;stroke-width:1.46499991;stroke-linecap:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
|
||||
id="path4568"
|
||||
cx="41.451012"
|
||||
cy="266.38718"
|
||||
r="2.9085779" />
|
||||
<circle
|
||||
r="2.9085779"
|
||||
cy="277.88605"
|
||||
cx="42.825504"
|
||||
cx="44.118061"
|
||||
cy="263.32062"
|
||||
rx="2.4216392"
|
||||
ry="2.3988426" />
|
||||
<ellipse
|
||||
cy="275.02563"
|
||||
cx="44.765343"
|
||||
id="circle4570"
|
||||
style="opacity:1;fill:#6a6a6a;fill-opacity:0.86792453;stroke:none;stroke-width:1.46499991;stroke-linecap:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
|
||||
<path
|
||||
style="fill:none;fill-rule:evenodd;stroke:#1f1f1f;stroke-width:0.86500216;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
|
||||
d="m 28.843321,248.69894 5.63385,9.46891 1.848035,-5.42662"
|
||||
id="path5993"
|
||||
inkscape:connector-curvature="0"
|
||||
sodipodi:nodetypes="ccc" />
|
||||
style="opacity:1;fill:#a1a1a1;fill-opacity:0.86792453;stroke:none;stroke-width:1.46499991;stroke-linecap:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
|
||||
rx="2.4216392"
|
||||
ry="2.3988426" />
|
||||
<g
|
||||
id="g1705">
|
||||
<rect
|
||||
transform="matrix(0.99967585,0.02545985,-0.02594573,0.99966335,0,0)"
|
||||
style="opacity:1;fill:#289bbc;fill-opacity:1;stroke:#000000;stroke-width:0;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
|
||||
id="rect4520"
|
||||
width="10.338468"
|
||||
height="23.042864"
|
||||
x="23.424755"
|
||||
y="259.99872" />
|
||||
</g>
|
||||
<rect
|
||||
transform="matrix(0.99837418,-0.05699994,0.05808481,0.99831165,0,0)"
|
||||
y="261.80557"
|
||||
x="10.394932"
|
||||
height="23.043449"
|
||||
width="10.33821"
|
||||
id="rect4522"
|
||||
style="opacity:1;fill:#bc289b;fill-opacity:1;stroke:#000000;stroke-width:0;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
|
||||
<text
|
||||
xml:space="preserve"
|
||||
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:2.03992438px;line-height:125%;font-family:'Liberation Serif';-inkscape-font-specification:'Liberation Serif';letter-spacing:0px;word-spacing:0px;fill:#e6e6e6;fill-opacity:1;stroke:none;stroke-width:0.264584px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
|
||||
x="16.934374"
|
||||
y="288.46368"
|
||||
id="text1730"
|
||||
transform="rotate(-1.2296789)"><tspan
|
||||
sodipodi:role="line"
|
||||
id="tspan1728"
|
||||
x="16.934374"
|
||||
y="288.46368"
|
||||
style="fill:#e6e6e6;fill-opacity:1;stroke-width:0.264584px">dizqueTV</tspan></text>
|
||||
</g>
|
||||
</svg>
|
||||
|
||||
|
Before Width: | Height: | Size: 5.2 KiB After Width: | Height: | Size: 5.1 KiB |
@ -113,6 +113,7 @@ class TVGuideService
|
||||
let playing = {};
|
||||
if (
|
||||
(typeof(previousKnown) !== 'undefined')
|
||||
&& (previousKnown.index !== -1)
|
||||
&& (previousKnown.program.duration == channel.programs[previousKnown.index].duration )
|
||||
&& (previousKnown.start + previousKnown.program.duration == t)
|
||||
) {
|
||||
@ -126,6 +127,17 @@ class TVGuideService
|
||||
} else {
|
||||
playing = await this.getCurrentPlayingIndex(channel, t);
|
||||
}
|
||||
if ( (playing.program == null) || (typeof(playing) === 'undefined') ) {
|
||||
console.log("There is a weird issue with the TV guide generation. A placeholder program is placed to prevent further issues. Please report this.");
|
||||
playing = {
|
||||
index: -1,
|
||||
program: {
|
||||
isOffline: true,
|
||||
duration: 30*60*1000,
|
||||
},
|
||||
start: t
|
||||
}
|
||||
}
|
||||
if ( playing.program.isOffline && playing.program.type === 'redirect') {
|
||||
let ch2 = playing.program.channel;
|
||||
|
||||
@ -189,13 +201,15 @@ class TVGuideService
|
||||
) {
|
||||
y.program.duration -= melded;
|
||||
programs[ programs.length - 1] = y;
|
||||
programs.push( {
|
||||
start: y.start + y.program.duration,
|
||||
program: {
|
||||
isOffline : true,
|
||||
duration: melded,
|
||||
},
|
||||
} );
|
||||
if (y.start + y.program.duration < t1) {
|
||||
programs.push( {
|
||||
start: y.start + y.program.duration,
|
||||
program: {
|
||||
isOffline : true,
|
||||
duration: melded,
|
||||
},
|
||||
} );
|
||||
}
|
||||
melded = 0;
|
||||
} else {
|
||||
programs[ programs.length - 1] = y;
|
||||
@ -216,7 +230,14 @@ class TVGuideService
|
||||
};
|
||||
while (x.start < t1) {
|
||||
await push(x);
|
||||
x = await this.getChannelPlaying(channel, x, x.start + x.program.duration);
|
||||
let t2 = x.start + x.program.duration;
|
||||
x = await this.getChannelPlaying(channel, x, t2);
|
||||
if (x.start < t2) {
|
||||
let d = t2 - x.start;
|
||||
x.start = t2;
|
||||
x.program = clone(x.program);
|
||||
x.program.duration -= d;
|
||||
}
|
||||
if (x.program.duration == 0) throw Error("D");
|
||||
}
|
||||
result.programs = [];
|
||||
|
||||
@ -3,8 +3,7 @@
|
||||
<head>
|
||||
<title>dizqueTV</title>
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
<link rel="icon" type="image/png" href="/favicon-16.png" sizes="16x16"></link>
|
||||
<link rel="icon" type="image/png" href="/favicon-32.png" sizes="32x32"></link>
|
||||
<link rel="icon" type="image/png" href="/favicon.svg" ></link>
|
||||
<link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.4.1/css/bootstrap.min.css">
|
||||
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/5.14.0/css/all.min.css">
|
||||
<link href="style.css" rel="stylesheet">
|
||||
|
||||
@ -249,6 +249,17 @@ table.tvguide {
|
||||
text-align: right;
|
||||
}
|
||||
|
||||
.filler-list .list-group-item {
|
||||
min-height: 1.5em;
|
||||
}
|
||||
|
||||
.filler-list .list-group-item .title {
|
||||
margin-right: 5px;
|
||||
white-space: nowrap;
|
||||
overflow: hidden;
|
||||
text-overflow: ellipsis;
|
||||
}
|
||||
|
||||
/* Safari */
|
||||
@-webkit-keyframes spin {
|
||||
0% { -webkit-transform: rotate(0deg); }
|
||||
|
||||
@ -62,14 +62,13 @@
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
<div class="modal-body container list-group list-group-root" vs-repeat="options" dnd-list="content" ng-if="showList()">
|
||||
<div class="modal-body container list-group list-group-root filler-list" vs-repeat="options" dnd-list="content" ng-if="showList()">
|
||||
<div class="list-group-item flex-container" style="cursor: default;" ng-repeat="x in content" dnd-draggable="x" dnd-moved="content.splice($index, 1)" dnd-effect-allowed="move">
|
||||
<div class="program-start" >
|
||||
{{durationString(x.duration)}}
|
||||
</div>
|
||||
<div ng-style="programSquareStyle(x, false)" />
|
||||
<div style="margin-right: 5px;">
|
||||
<div class="title" >
|
||||
{{x.title}}
|
||||
</div>
|
||||
<div class="flex-pull-right">
|
||||
|
||||