Infobeamer alpha release
This commit is contained in:
parent
4a271344cb
commit
240916aa95
File diff suppressed because it is too large
Load Diff
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
|
@ -0,0 +1,446 @@
|
|||
/*!
|
||||
Fork Awesome 1.1.7
|
||||
License - https://forkaweso.me/Fork-Awesome/license
|
||||
|
||||
Copyright 2018 Dave Gandy & Fork Awesome
|
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
|
||||
|
||||
The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||
*/
|
||||
.fas,
|
||||
.fab,
|
||||
.far {
|
||||
display: inline-block;
|
||||
font: normal normal normal 14px/1 ForkAwesome;
|
||||
font-size: inherit;
|
||||
text-rendering: auto;
|
||||
-webkit-font-smoothing: antialiased;
|
||||
-moz-osx-font-smoothing: grayscale;
|
||||
}
|
||||
.fas.fa-chart-area:before {
|
||||
content: "\f1fe";
|
||||
}
|
||||
.fas.fa-arrows-alt:before {
|
||||
content: "\f047";
|
||||
}
|
||||
.fas.fa-expand-arrows-alt:before {
|
||||
content: "\f0b2";
|
||||
}
|
||||
.fas.fa-arrows-alt-h:before {
|
||||
content: "\f07e";
|
||||
}
|
||||
.fas.fa-arrows-alt-v:before {
|
||||
content: "\f07d";
|
||||
}
|
||||
.fas.fa-calendar-alt:before {
|
||||
content: "\f073";
|
||||
}
|
||||
.fas.fa-circle-notch:before {
|
||||
content: "\f1ce";
|
||||
}
|
||||
.fas.fa-cloud-download-alt:before {
|
||||
content: "\f0ed";
|
||||
}
|
||||
.fas.fa-cloud-upload-alt:before {
|
||||
content: "\f0ee";
|
||||
}
|
||||
.fas.fa-credit-card:before {
|
||||
content: "\f283";
|
||||
}
|
||||
.fas.fa-dollar-sign:before {
|
||||
content: "\f155";
|
||||
}
|
||||
.fas.fa-euro-sign:before {
|
||||
content: "\f153";
|
||||
}
|
||||
.fas.fa-exchange-alt:before {
|
||||
content: "\f0ec";
|
||||
}
|
||||
.fas.fa-external-link-alt:before {
|
||||
content: "\f08e";
|
||||
}
|
||||
.fas.fa-external-link-square-alt:before {
|
||||
content: "\f14c";
|
||||
}
|
||||
.fas.fa-eye-dropper:before {
|
||||
content: "\f1fb";
|
||||
}
|
||||
.fas.fa-pound-sign:before {
|
||||
content: "\f154";
|
||||
}
|
||||
.fas.fa-glass-martini:before {
|
||||
content: "\f000";
|
||||
}
|
||||
.fas.fa-shekel-sign:before {
|
||||
content: "\f20b";
|
||||
}
|
||||
.fas.fa-rupee-sign:before {
|
||||
content: "\f156";
|
||||
}
|
||||
.fas.fa-won-sign:before {
|
||||
content: "\f159";
|
||||
}
|
||||
.fas.fa-level-down-alt:before {
|
||||
content: "\f149";
|
||||
}
|
||||
.fas.fa-level-up-alt:before {
|
||||
content: "\f148";
|
||||
}
|
||||
.fas.fa-chart-line:before {
|
||||
content: "\f201";
|
||||
}
|
||||
.fas.fa-long-arrow-alt-down:before {
|
||||
content: "\f175";
|
||||
}
|
||||
.fas.fa-long-arrow-alt-left:before {
|
||||
content: "\f177";
|
||||
}
|
||||
.fas.fa-long-arrow-alt-right:before {
|
||||
content: "\f178";
|
||||
}
|
||||
.fas.fa-long-arrow-alt-up:before {
|
||||
content: "\f176";
|
||||
}
|
||||
.fas.fa-map-marker-alt:before {
|
||||
content: "\f041";
|
||||
}
|
||||
.fas.fa-mobile-alt:before {
|
||||
content: "\f10b";
|
||||
}
|
||||
.fas.fa-pencil-alt:before {
|
||||
content: "\f040";
|
||||
}
|
||||
.fas.fa-pen-square:before {
|
||||
content: "\f14b";
|
||||
}
|
||||
.fas.fa-chart-pie:before {
|
||||
content: "\f200";
|
||||
}
|
||||
.fas.fa-yen-sign:before {
|
||||
content: "\f157";
|
||||
}
|
||||
.fas.fa-ruble-sign:before {
|
||||
content: "\f158";
|
||||
}
|
||||
.fas.fa-shield-alt:before {
|
||||
content: "\f132";
|
||||
}
|
||||
.fas.fa-sign-in-alt:before {
|
||||
content: "\f090";
|
||||
}
|
||||
.fas.fa-sign-out-alt:before {
|
||||
content: "\f08b";
|
||||
}
|
||||
.fas.fa-sliders-h:before {
|
||||
content: "\f1de";
|
||||
}
|
||||
.fas.fa-tablet-alt:before {
|
||||
content: "\f10a";
|
||||
}
|
||||
.fas.fa-tachometer-alt:before {
|
||||
content: "\f0e4";
|
||||
}
|
||||
.fas.fa-thumbtack:before {
|
||||
content: "\f08d";
|
||||
}
|
||||
.fas.fa-ticket-alt:before {
|
||||
content: "\f145";
|
||||
}
|
||||
.fas.fa-trash-alt:before {
|
||||
content: "\f1f8";
|
||||
}
|
||||
.fas.fa-lira-sign:before {
|
||||
content: "\f195";
|
||||
}
|
||||
.fab.fa-linkedin-in:before {
|
||||
content: "\fe01";
|
||||
}
|
||||
.fab.fa-linkedin:before {
|
||||
content: "\f08c";
|
||||
}
|
||||
.far.fa-address-book:before {
|
||||
content: "\f2ba";
|
||||
}
|
||||
.far.fa-address-card:before {
|
||||
content: "\f2bc";
|
||||
}
|
||||
.far.fa-arrow-alt-circle-down:before {
|
||||
content: "\f01a";
|
||||
}
|
||||
.far.fa-arrow-alt-circle-left:before {
|
||||
content: "\f190";
|
||||
}
|
||||
.far.fa-arrow-alt-circle-right:before {
|
||||
content: "\f18e";
|
||||
}
|
||||
.far.fa-arrow-alt-circle-up:before {
|
||||
content: "\f01b";
|
||||
}
|
||||
.far.fa-bell:before {
|
||||
content: "\f0f3";
|
||||
}
|
||||
.far.fa-bell-slash:before {
|
||||
content: "\f1f7";
|
||||
}
|
||||
.far.fa-bookmark:before {
|
||||
content: "\f097";
|
||||
}
|
||||
.far.fa-building:before {
|
||||
content: "\f0f7";
|
||||
}
|
||||
.far.fa-calendar-check:before {
|
||||
content: "\f274";
|
||||
}
|
||||
.far.fa-calendar-minus:before {
|
||||
content: "\f272";
|
||||
}
|
||||
.far.fa-calendar:before {
|
||||
content: "\f133";
|
||||
}
|
||||
.far.fa-calendar-plus:before {
|
||||
content: "\f271";
|
||||
}
|
||||
.far.fa-calendar-times:before {
|
||||
content: "\f273";
|
||||
}
|
||||
.far.fa-caret-square-down:before {
|
||||
content: "\f150";
|
||||
}
|
||||
.far.fa-caret-square-left:before {
|
||||
content: "\f191";
|
||||
}
|
||||
.far.fa-caret-square-right:before {
|
||||
content: "\f152";
|
||||
}
|
||||
.far.fa-caret-square-up:before {
|
||||
content: "\f151";
|
||||
}
|
||||
.far.fa-check-circle:before {
|
||||
content: "\f05d";
|
||||
}
|
||||
.far.fa-check-square:before {
|
||||
content: "\f046";
|
||||
}
|
||||
.far.fa-circle:before {
|
||||
content: "\f10c";
|
||||
}
|
||||
.far.fa-clock:before {
|
||||
content: "\f017";
|
||||
}
|
||||
.far.fa-comment:before {
|
||||
content: "\f0e5";
|
||||
}
|
||||
.far.fa-comment-dots:before {
|
||||
content: "\f27b";
|
||||
}
|
||||
.far.fa-comments:before {
|
||||
content: "\f0e6";
|
||||
}
|
||||
.far.fa-dot-circle:before {
|
||||
content: "\f192";
|
||||
}
|
||||
.far.fa-id-card:before {
|
||||
content: "\f2c3";
|
||||
}
|
||||
.far.fa-envelope:before {
|
||||
content: "\f003";
|
||||
}
|
||||
.far.fa-envelope-open:before {
|
||||
content: "\f2b7";
|
||||
}
|
||||
.far.fa-file-archive:before {
|
||||
content: "\f1c6";
|
||||
}
|
||||
.far.fa-file-audio:before {
|
||||
content: "\f1c7";
|
||||
}
|
||||
.far.fa-file-code:before {
|
||||
content: "\f1c9";
|
||||
}
|
||||
.far.fa-file-excel:before {
|
||||
content: "\f1c3";
|
||||
}
|
||||
.far.fa-file-image:before {
|
||||
content: "\f1c5";
|
||||
}
|
||||
.far.fa-file-video:before {
|
||||
content: "\f1c8";
|
||||
}
|
||||
.far.fa-copy:before,
|
||||
.far.fa-file:before {
|
||||
content: "\f016";
|
||||
}
|
||||
.far.fa-file-pdf:before {
|
||||
content: "\f1c1";
|
||||
}
|
||||
.far.fa-file-powerpoint:before {
|
||||
content: "\f1c4";
|
||||
}
|
||||
.far.fa-file-alt:before {
|
||||
content: "\f0f6";
|
||||
}
|
||||
.far.fa-file-word:before {
|
||||
content: "\f1c2";
|
||||
}
|
||||
.far.fa-flag:before {
|
||||
content: "\f11d";
|
||||
}
|
||||
.far.fa-save:before {
|
||||
content: "\f0c7";
|
||||
}
|
||||
.far.fa-folder:before {
|
||||
content: "\f114";
|
||||
}
|
||||
.far.fa-folder-open:before {
|
||||
content: "\f115";
|
||||
}
|
||||
.far.fa-frown:before {
|
||||
content: "\f119";
|
||||
}
|
||||
.far.fa-futbol:before {
|
||||
content: "\f1e3";
|
||||
}
|
||||
.far.fa-hand-rock:before {
|
||||
content: "\f255";
|
||||
}
|
||||
.far.fa-hand-lizard:before {
|
||||
content: "\f258";
|
||||
}
|
||||
.far.fa-hand-point-down:before {
|
||||
content: "\f0a7";
|
||||
}
|
||||
.far.fa-hand-point-left:before {
|
||||
content: "\f0a5";
|
||||
}
|
||||
.far.fa-hand-point-right:before {
|
||||
content: "\f0a4";
|
||||
}
|
||||
.far.fa-hand-point-up:before {
|
||||
content: "\f0a6";
|
||||
}
|
||||
.far.fa-hand-paper:before {
|
||||
content: "\256";
|
||||
}
|
||||
.far.fa-hand-pointer:before {
|
||||
content: "\f25a";
|
||||
}
|
||||
.far.fa-hand-scissors:before {
|
||||
content: "\f257";
|
||||
}
|
||||
.far.fa-hand-spock:before {
|
||||
content: "\f259";
|
||||
}
|
||||
.far.fa-handshake:before {
|
||||
content: "\f2b5";
|
||||
}
|
||||
.far.fa-hdd:before {
|
||||
content: "\f0a0";
|
||||
}
|
||||
.far.fa-heart:before {
|
||||
content: "\f08a";
|
||||
}
|
||||
.far.fa-hospital:before {
|
||||
content: "\f0f8";
|
||||
}
|
||||
.far.fa-hourglass:before {
|
||||
content: "\f250";
|
||||
}
|
||||
.far.fa-id-card:before {
|
||||
content: "\f2c3";
|
||||
}
|
||||
.far.fa-keyboard:before {
|
||||
content: "\f11c";
|
||||
}
|
||||
.far.fa-lemon:before {
|
||||
content: "\f094";
|
||||
}
|
||||
.far.fa-lightbulb:before {
|
||||
content: "\f0eb";
|
||||
}
|
||||
.far.fa-meh:before {
|
||||
content: "\f11a";
|
||||
}
|
||||
.far.fa-minus-square:before {
|
||||
content: "\f147";
|
||||
}
|
||||
.far.fa-money-bill-alt:before {
|
||||
content: "\f0d6";
|
||||
}
|
||||
.far.fa-moon:before {
|
||||
content: "\f186";
|
||||
}
|
||||
.far.fa-newspaper:before {
|
||||
content: "\f1ea";
|
||||
}
|
||||
.far.fa-paper-plane:before {
|
||||
content: "\f1d9";
|
||||
}
|
||||
.far.fa-pause-circle:before {
|
||||
content: "\f28c";
|
||||
}
|
||||
.far.fa-edit:before {
|
||||
content: "\f044";
|
||||
}
|
||||
.far.fa-image:before {
|
||||
content: "\f03e";
|
||||
}
|
||||
.far.fa-play-circle:before {
|
||||
content: "\f01d";
|
||||
}
|
||||
.far.fa-plus-square:before {
|
||||
content: "\f196";
|
||||
}
|
||||
.far.fa-question-circle:before {
|
||||
content: "\f92c";
|
||||
}
|
||||
.far.fa-share-square:before {
|
||||
content: "\f045";
|
||||
}
|
||||
.far.fa-smile:before {
|
||||
content: "\f118";
|
||||
}
|
||||
.far.fa-snowflake:before {
|
||||
content: "\f2dc";
|
||||
}
|
||||
.far.fa-futbol:before {
|
||||
content: "\f1e3";
|
||||
}
|
||||
.far.fa-star-half:before {
|
||||
content: "\f089";
|
||||
}
|
||||
.far.fa-star:before {
|
||||
content: "\f006";
|
||||
}
|
||||
.far.fa-sticky-note:before {
|
||||
content: "\f24a";
|
||||
}
|
||||
.far.fa-stop-circle:before {
|
||||
content: "\f28e";
|
||||
}
|
||||
.far.fa-sun:before {
|
||||
content: "\f185";
|
||||
}
|
||||
.far.fa-thumbs-down:before {
|
||||
content: "\f088";
|
||||
}
|
||||
.far.fa-thumbs-up:before {
|
||||
content: "\f087";
|
||||
}
|
||||
.far.fa-times-circle:before {
|
||||
content: "\f05c";
|
||||
}
|
||||
.far.fa-window-close:before {
|
||||
content: "\f2d4";
|
||||
}
|
||||
.far.fa-trash-alt:before {
|
||||
content: "\f014";
|
||||
}
|
||||
.far.fa-user-circle:before {
|
||||
content: "\f2be";
|
||||
}
|
||||
.far.fa-user:before {
|
||||
content: "\f2c0";
|
||||
}
|
File diff suppressed because one or more lines are too long
|
@ -0,0 +1 @@
|
|||
{"version":3,"sources":["v5-compat.css"],"names":[],"mappings":"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"}
|
Binary file not shown.
File diff suppressed because it is too large
Load Diff
After Width: | Height: | Size: 470 KiB |
Binary file not shown.
Binary file not shown.
Binary file not shown.
|
@ -3,14 +3,16 @@
|
|||
<meta charset=utf-8>
|
||||
<meta name=viewport content="width=device-width,initial-scale=1,shrink-to-fit=no">
|
||||
<title>rC3 NOWHERE</title>
|
||||
<link rel=stylesheet href=https://infobeamer.montage2.de/main.min.b9026d1f6b104105b018119cd321ea8cb03e44ce4115c7200844e5c35100a5e4.css>
|
||||
<link href=/fork-awesome/css/fork-awesome.min.css rel=stylesheet type=text/css>
|
||||
<link rel=stylesheet href=https://infobeamer.montage2.de/main.min.21ef1b380c38de9232f978ac628cfa201b1b24ab13e98c63d902331d7739a281.css>
|
||||
<script src=https://infobeamer.montage2.de/js/config.fa1a162e62b8d5f3f40c8812d30b5289c5792ff26c0843426d8c109a00621389.js integrity="sha256-+hoWLmK41fP0DIgS0wtSicV5L/JsCENCbYwQmgBiE4k="></script>
|
||||
</head>
|
||||
<body>
|
||||
<main id=main>
|
||||
</main>
|
||||
<script src=https://infobeamer.montage2.de/js/moment/moment.min.73de4254959530e4d1d9bec586379184f96b4953dacf9cd5e5e2bdd7bfeceef7.js integrity="sha256-c95CVJWVMOTR2b7FhjeRhPlrSVPaz5zV5eK917/s7vc="></script>
|
||||
<script src=https://infobeamer.montage2.de/js/preact/preact.min.0c204e20934f1e09cfe86fbcf1d069d842f988fc71efe3a923021c08892c71c8.js integrity="sha256-DCBOIJNPHgnP6G+88dBp2EL5iPxx7+OpIwIcCIksccg="></script>
|
||||
<script src=https://infobeamer.montage2.de/js/htm/htm.80e39afe20fd61183412eda89efa10532d57945e6364642aceacd50eb2384b4b.js integrity="sha256-gOOa/iD9YRg0Eu2onvoQUy1XlF5jZGQqzqzVDrI4S0s="></script>
|
||||
<script src=https://infobeamer.montage2.de/main.fca55c7bea00e5c58b9a3676e2419260d2a4218c69b9ee2299947c09dd6219ac.js integrity="sha256-/KVce+oA5cWLmjZ24kGSYNKkIYxpue4imZR8Cd1iGaw=" type=module></script>
|
||||
<script src=https://infobeamer.montage2.de/main.a208ae05cac995d43ca314d583ac22917c9997d9036985f61a269ae1f193222e.js integrity="sha256-ogiuBcrJldQ8oxTVg6wikXyZl9kDaYX2Giaa4fGTIi4=" type=module></script>
|
||||
</body>
|
||||
</html>
|
|
@ -6,14 +6,12 @@ let fetchURL;
|
|||
onmessage = function(e) {
|
||||
let msgType = e.data.msgType;
|
||||
|
||||
console.log("Configuration Message:");
|
||||
console.log(e.data);
|
||||
|
||||
fetchType = e.data.fetchType;
|
||||
fetchURL = e.data.fetchURL;
|
||||
fetchInterval = 1000 * e.data.fetchInterval;
|
||||
|
||||
console.log("Configiuration Message:");
|
||||
console.log(' Fetch type: ' + fetchType);
|
||||
console.log(' Using fetch url: ' + fetchURL);
|
||||
console.log(' Fetching data each [ms]: ' + fetchInterval);
|
||||
};
|
||||
|
||||
|
||||
|
|
File diff suppressed because one or more lines are too long
|
@ -1,45 +0,0 @@
|
|||
let scheduleFetchInterval;
|
||||
let scheduleURL;
|
||||
|
||||
|
||||
onmessage = function(e) {
|
||||
let msgType = e.data.msgType;
|
||||
|
||||
if (msgType === "ScheduleFetchConfig") {
|
||||
scheduleURL = e.data.scheduleURL;
|
||||
scheduleFetchInterval = 1000 * e.data.scheduleFetchInterval;
|
||||
|
||||
console.log("Message: " + msgType);
|
||||
console.log('Using schedule url: ' + scheduleURL);
|
||||
console.log('Fetching data each [ms]: ' + scheduleFetchInterval);
|
||||
}
|
||||
};
|
||||
|
||||
|
||||
function scheduleFetch() {
|
||||
let now = new Date();
|
||||
|
||||
if (scheduleURL) {
|
||||
fetch(scheduleURL).then(
|
||||
b => b.json()).then(
|
||||
j => postMessage({msgType: "ScheduleUpdate",
|
||||
schedule: j,
|
||||
timestamp: now}))
|
||||
.catch(e => console.log(e.message));
|
||||
}
|
||||
// TODO: Hook up schedule processing functions
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
// TODO: Fix run once and then periodic
|
||||
scheduleFetch();
|
||||
|
||||
(function periodicScheduleFetch() {
|
||||
setTimeout(function() {
|
||||
scheduleFetch();
|
||||
periodicScheduleFetch();
|
||||
}, scheduleFetchInterval);
|
||||
})();
|
|
@ -1,39 +1,172 @@
|
|||
"use strict";
|
||||
(() => {
|
||||
// ns-hugo:/home/raoul-web/rc3_2021/html-infobeamer-content/assets/js/services.js
|
||||
var social_limiter = (tweets, toots) => {
|
||||
const numberTweets = 20;
|
||||
let posts = tweets.concat(toots);
|
||||
let byDate = (fst, snd) => Date.parse(fst.time) - Date.parse(snd.time);
|
||||
let postsSorted = posts.sort(byDate);
|
||||
if (postsSorted.length > 0) {
|
||||
while (postsSorted.length < numberTweets) {
|
||||
postsSorted = postsSorted.concat(postsSorted);
|
||||
}
|
||||
}
|
||||
postsSorted = postsSorted.reverse().slice(0, numberTweets);
|
||||
return postsSorted;
|
||||
};
|
||||
var tweet_author = (data, tweet) => {
|
||||
let authorId = tweet.author_id;
|
||||
let users = data.includes.users;
|
||||
let author = users.find((item) => item.id === authorId);
|
||||
let userName = author !== void 0 ? author.username : "NoOne";
|
||||
return userName;
|
||||
};
|
||||
var tweet_profile_image = (data, tweet) => {
|
||||
const defaultProfileImageUrl = "https://abs.twimg.com/sticky/default_profile_images/default_profile_normal.png";
|
||||
let authorId = tweet.author_id;
|
||||
let users = data.includes.users;
|
||||
let author = users.find((item) => item.id === authorId);
|
||||
let profileImageUrl = author !== void 0 ? author.profile_image_url : defaultProfileImageUrl;
|
||||
return profileImageUrl;
|
||||
};
|
||||
var tweet_text = (tweet) => tweet.text;
|
||||
var tweet_time = (tweet) => tweet.created_at;
|
||||
var twitter_filter = (inputData) => {
|
||||
let tweets;
|
||||
inputData.forEach((d) => tweets = d.data.map((t) => {
|
||||
return {
|
||||
author: tweet_author(d, t),
|
||||
image: tweet_profile_image(d, t),
|
||||
text: tweet_text(t),
|
||||
time: tweet_time(t),
|
||||
source: "twitter"
|
||||
};
|
||||
}));
|
||||
return tweets;
|
||||
};
|
||||
var toot_author = (toot) => toot.account.username;
|
||||
var toot_profile_image = (toot) => toot.account.avatar_static;
|
||||
var toot_text = (toot) => toot.content;
|
||||
var toot_time = (toot) => toot.created_at;
|
||||
var html_plainify = (html2) => {
|
||||
let span = document.createElement("span");
|
||||
span.innerHTML = html2;
|
||||
let children = span.querySelectorAll("*");
|
||||
children.forEach((child) => {
|
||||
child.textContent += " ";
|
||||
});
|
||||
return span.textContent.toString().replace(/ +/g, " ");
|
||||
};
|
||||
var mastodon_filter = (idata) => {
|
||||
let toots;
|
||||
idata.forEach((d) => {
|
||||
toots = d.map((t) => {
|
||||
return {
|
||||
author: toot_author(t),
|
||||
image: toot_profile_image(t),
|
||||
text: html_plainify(toot_text(t)),
|
||||
time: toot_time(t),
|
||||
source: "mastodon"
|
||||
};
|
||||
});
|
||||
});
|
||||
return toots;
|
||||
};
|
||||
var schedule_filter = (data) => {
|
||||
let dataDays = data.schedule.conference.days;
|
||||
let talksData = dataDays.map((d) => {
|
||||
let rooms = Object.values(d.rooms);
|
||||
rooms.flat().forEach((t) => {
|
||||
t.day = d.index;
|
||||
});
|
||||
return rooms;
|
||||
}).flat(2);
|
||||
let byDate = (fst, snd) => Date.parse(fst.date) - Date.parse(snd.date);
|
||||
let talksDataSorted = talksData.sort(byDate);
|
||||
return talksDataSorted;
|
||||
};
|
||||
var future_events = (schedule, datetime) => {
|
||||
let scheduleFiltered = schedule.filter((e) => Date.parse(e.date) > datetime);
|
||||
return scheduleFiltered;
|
||||
};
|
||||
|
||||
// ns-hugo:/home/raoul-web/rc3_2021/html-infobeamer-content/assets/js/dom.js
|
||||
var html = htm.bind(preact.h);
|
||||
var speaker_names = (talk) => {
|
||||
const nameSeparator = ", ";
|
||||
let speakerNames = talk.persons.map((p) => p.public_name).join(nameSeparator);
|
||||
return speakerNames;
|
||||
var speaker_names = (talk) => talk.persons.map((p) => p.public_name);
|
||||
var speaker_dom = (talk) => {
|
||||
const separator = ", ";
|
||||
let names = speaker_names(talk);
|
||||
let inner;
|
||||
if (names.length > 0) {
|
||||
let string = names.join(separator);
|
||||
inner = html`<div class="speaker">${string}:</div>`;
|
||||
} else {
|
||||
inner = html``;
|
||||
}
|
||||
return inner;
|
||||
};
|
||||
var schedule_meta_here_dom = (schedule) => {
|
||||
var to_minutes = (duration) => {
|
||||
const timeFormat = "hh:mm";
|
||||
let dt = moment(duration, timeFormat);
|
||||
let minutes = 60 * dt.hours() + dt.minutes();
|
||||
return minutes;
|
||||
};
|
||||
var duration_dom = (duration) => {
|
||||
return html`<span class="duration">${to_minutes(duration)} minutes</span>`;
|
||||
};
|
||||
var meta_here_dom = (schedule) => {
|
||||
let inner = html`${schedule.map((talk) => html`
|
||||
<div class="talk-here-meta-box">
|
||||
<div class="speaker">${speaker_names(talk)}:</div>
|
||||
<div class="speaker">${speaker_dom(talk)}</div>
|
||||
<div class="title">${talk.title}</div>
|
||||
<div class="start-duration">
|
||||
<span class="start">Starting at ${talk.start}</span>
|
||||
<span class="duration">Duration: ${talk.duration} minutes</span>
|
||||
${duration_dom(talk.duration)}
|
||||
</div>
|
||||
</div>
|
||||
`)}`;
|
||||
return inner;
|
||||
};
|
||||
var schedule_abstract_here_dom = (schedule) => {
|
||||
let inner = html``;
|
||||
let placeHolder = "Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Donec ut urna. Curabitur lorem risus, sagittis vitae, accumsan a, iaculis id, metus. Suspendisse potenti. Fusce nonummy commodo dui. Fusce venenatis ligula in pede. Aliquam velit dui, commodo quis, porttitor eget, convallis et, nisi. Nam sed nisl nec elit suscipit ullamcorper. Cras ac enim vel dui vestibulum suscipit. Suspendisse venenatis. Nam pharetra. Pellentesque et arcu. Nam sed nisl nec elit suscipit ullamcorper. Aenean turpis ipsum, rhoncus vitae, posuere vitae, euismod sed, ligula. Integer risus velit, facilisis eget, viverra et, venenatis id, leo. Aenean ligula. Mauris sed nulla quis nisi interdum tempor. Nullam libero nunc, tristique eget, laoreet eu, sagittis id, ante. Aliquam sed erat. Vestibulum viverra varius enim. Donec at diam a tellus dignissim vestibulum. Nullam sapien mauris, venenatis at, fermentum at, tempus eu, urna.";
|
||||
schedule.forEach((talk) => {
|
||||
let abstract = talk.abstract !== void 0 ? talk.abstract : placeHolder;
|
||||
let track = talk.track !== void 0 ? talk.track : "-";
|
||||
var abstract_text_dom = (talk) => {
|
||||
const placeHolder = "\xAF_(\u30C4)_/\xAF";
|
||||
let inner;
|
||||
if (talk.abstract !== null) {
|
||||
let lang = talk.language !== void 0 ? talk.language : "en";
|
||||
inner = html`<div class="text" lang="${lang}">${talk.abstract}</div>`;
|
||||
} else {
|
||||
inner = html``;
|
||||
}
|
||||
return inner;
|
||||
};
|
||||
var track_dom = (talk) => {
|
||||
let inner;
|
||||
if (talk.track !== null) {
|
||||
inner = html`<div class="track">Track: ${talk.track}</div>`;
|
||||
} else {
|
||||
inner = html``;
|
||||
}
|
||||
return inner;
|
||||
};
|
||||
var abstract_here_dom = (schedule) => {
|
||||
let inner = html``;
|
||||
schedule.forEach((talk) => {
|
||||
inner = html`
|
||||
<div class="text" lang="${lang}">${abstract}</div>
|
||||
<div class="track">Track: ${track}</div>`;
|
||||
${abstract_text_dom(talk)}
|
||||
${track_dom(talk)}`;
|
||||
});
|
||||
return inner;
|
||||
};
|
||||
var schedule_all_list_dom = (schedule) => {
|
||||
var talk_day = (talk) => {
|
||||
const lut = {
|
||||
1: "I",
|
||||
2: "II",
|
||||
3: "III",
|
||||
4: "IV"
|
||||
};
|
||||
return lut[talk.day];
|
||||
};
|
||||
var talk_day_dom = (talk) => html`<span class="day">Day ${talk_day(talk)}</span>`;
|
||||
var list_all_dom = (schedule) => {
|
||||
let inner = html`
|
||||
${schedule.map((talk) => html`
|
||||
<div class="item">
|
||||
|
@ -42,21 +175,21 @@
|
|||
</div>
|
||||
<div class="details">
|
||||
<span class="start">${talk.start}</span>
|
||||
<span class="day">Day ${talk.day}</span>
|
||||
${talk_day_dom(talk)}
|
||||
<span class="stage">${talk.room}</span>
|
||||
</div>
|
||||
</div>`)}`;
|
||||
return inner;
|
||||
};
|
||||
var update_schedule_dom = (schedule) => {
|
||||
var schedule_dom = (schedule) => {
|
||||
const here_room = "Chaos-West TV";
|
||||
const here_number_events = 1;
|
||||
const all_number_events = 10;
|
||||
let allData = schedule.slice(0, all_number_events);
|
||||
let hereData = schedule.filter((i) => i.room === here_room).slice(0, 1);
|
||||
let nextHereMetaDom = schedule_meta_here_dom(hereData);
|
||||
let nextHereAbstractDom = schedule_abstract_here_dom(hereData);
|
||||
let nextAllMetaDom = schedule_all_list_dom(allData);
|
||||
const all_number_events = 7;
|
||||
let allTalks = schedule.slice(0, all_number_events);
|
||||
let nextTalkHere = schedule.filter((i) => i.room === here_room).slice(0, 1);
|
||||
let nextHereMetaDom = meta_here_dom(nextTalkHere);
|
||||
let nextHereAbstractDom = abstract_here_dom(nextTalkHere);
|
||||
let nextAllMetaDom = list_all_dom(allTalks);
|
||||
let inner = html`
|
||||
<div class="slide">
|
||||
<div class="schedule">
|
||||
|
@ -98,46 +231,68 @@
|
|||
</div>`;
|
||||
return inner;
|
||||
};
|
||||
var single_tweet_dom = (tweet) => {
|
||||
let date = new Date(tweet.time);
|
||||
var post_time = (date) => moment(date).format("hh:mm, D. MMMM YYYY");
|
||||
var social_network_dom = (post) => {
|
||||
let icon = "";
|
||||
if (post.source === "twitter") {
|
||||
icon = "fa-twitter";
|
||||
} else if (post.source === "mastodon") {
|
||||
icon = "fa-mastodon";
|
||||
}
|
||||
return html`<span class="source fa ${icon}"></span>`;
|
||||
};
|
||||
var single_post_dom = (post) => {
|
||||
let inner = html`
|
||||
<div class="tweet slider">
|
||||
<div class="post slider">
|
||||
<div class="container">
|
||||
<img class="profile-image" src="${tweet.image}"/>
|
||||
<img class="profile-image" src="${post.image}"/>
|
||||
<div class="content">
|
||||
<div>
|
||||
<span class="username">@${tweet.author}</span>
|
||||
<span class="time">at ${date.getHours()}:${date.getMinutes()}</span>
|
||||
<div class="meta">
|
||||
${social_network_dom(post)}
|
||||
<span class="username">@${post.author}</span>
|
||||
<span class="time">${post_time(post.time)}</span>
|
||||
</div>
|
||||
<div class="text">${tweet.text}</div>
|
||||
<div class="text">${post.text}</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>`;
|
||||
return inner;
|
||||
};
|
||||
var social_container_dom = (tweets) => {
|
||||
var social_container_dom = (posts) => {
|
||||
let inner = html`
|
||||
<div id="bottom-bar" class="visible bottom-bar">
|
||||
<div id="ticker-wrap" class="ticker-wrap">
|
||||
<div class="ticker switcher">
|
||||
${tweets.map((t) => single_tweet_dom(t))}
|
||||
${posts.map((p) => single_post_dom(p))}
|
||||
</div>
|
||||
</div>
|
||||
</div>`;
|
||||
return inner;
|
||||
};
|
||||
var hashtag_dom = () => {
|
||||
let inner = html`
|
||||
<div id="hashtags" class="visible hashtags">
|
||||
<div class="box">
|
||||
<div class="header">For Questions:</div>
|
||||
<div class="text">Please use the Hastag <span class="hashtag">#rc3cwtv</span> or join the IRC Channel <span class="irc">#rc3-cwtv</span></div>
|
||||
</div>
|
||||
</div>`;
|
||||
return inner;
|
||||
};
|
||||
function update_main_slide(data) {
|
||||
let schedule = data.schedule;
|
||||
let music = data.music;
|
||||
let twitter = data.twitter;
|
||||
let scheduleDom = update_schedule_dom(schedule);
|
||||
let postings = data.posts;
|
||||
let scheduleDom = schedule_dom(schedule);
|
||||
let hashtagDom = hashtag_dom();
|
||||
let musicDom = music_playing_now_dom(music);
|
||||
let twitterDom = social_container_dom(twitter);
|
||||
let postingsDom = social_container_dom(postings);
|
||||
let inner = html`
|
||||
${scheduleDom}
|
||||
${musicDom}
|
||||
${twitterDom}
|
||||
`;
|
||||
${scheduleDom}
|
||||
${hashtagDom}
|
||||
${musicDom}
|
||||
${postingsDom}
|
||||
`;
|
||||
const anchorElId = "main";
|
||||
const el = document.getElementById(anchorElId);
|
||||
preact.render(inner, el);
|
||||
|
@ -148,105 +303,27 @@ ${twitterDom}
|
|||
var musicData = [];
|
||||
var twitterData = [];
|
||||
var mastodonData = [];
|
||||
var social_limiter = (tweets, toots) => {
|
||||
const numberTweets = 20;
|
||||
let posts = tweets.concat(toots);
|
||||
let byDate = (fst, snd) => Date.parse(fst.time) - Date.parse(snd.time);
|
||||
let postsSorted = posts.sort(byDate);
|
||||
if (postsSorted.length > 0) {
|
||||
while (postsSorted.length < numberTweets) {
|
||||
postsSorted = postsSorted.concat(postsSorted);
|
||||
}
|
||||
}
|
||||
postsSorted = postsSorted.slice(0, numberTweets);
|
||||
return postsSorted;
|
||||
};
|
||||
var get_tweet_author = (data, tweet) => {
|
||||
let authorId = tweet.author_id;
|
||||
let users = data.includes.users;
|
||||
let author = users.find((item) => item.id === authorId);
|
||||
let userName = author !== void 0 ? author.username : "NoOne";
|
||||
return userName;
|
||||
};
|
||||
var get_tweet_text = (data, tweet) => tweet.text;
|
||||
var get_tweet_profile_image = (data, tweet) => {
|
||||
const defaultProfileImageUrl = "https://abs.twimg.com/sticky/default_profile_images/default_profile_normal.png";
|
||||
let authorId = tweet.author_id;
|
||||
let users = data.includes.users;
|
||||
let author = users.find((item) => item.id === authorId);
|
||||
let profileImageUrl = author !== void 0 ? author.profile_image_url : defaultProfileImageUrl;
|
||||
return profileImageUrl;
|
||||
};
|
||||
var get_tweet_time = (data, tweet) => tweet.created_at;
|
||||
var twitter_filter = (idata) => {
|
||||
let tweets;
|
||||
idata.forEach((d) => tweets = d.data.map((t) => {
|
||||
return {
|
||||
author: get_tweet_author(d, t),
|
||||
image: get_tweet_profile_image(d, t),
|
||||
text: get_tweet_text(d, t),
|
||||
time: get_tweet_time(d, t)
|
||||
};
|
||||
}));
|
||||
return tweets;
|
||||
};
|
||||
var mastodon_filter = (idata) => {
|
||||
let toots;
|
||||
idata.forEach((d) => {
|
||||
toots = d.map((t) => {
|
||||
return {
|
||||
author: t.account.username,
|
||||
image: t.account.avatar_static,
|
||||
text: extractContent(t.content, true),
|
||||
time: t.created_at
|
||||
};
|
||||
});
|
||||
});
|
||||
return toots;
|
||||
};
|
||||
function extractContent(string) {
|
||||
let span = document.createElement("span");
|
||||
span.innerHTML = string;
|
||||
let children = span.querySelectorAll("*");
|
||||
children.forEach((child) => {
|
||||
child.textContent += " ";
|
||||
});
|
||||
return span.textContent.toString().replace(/ +/g, " ");
|
||||
}
|
||||
var schedule_processor = (data) => {
|
||||
let dataDays = data.schedule.conference.days;
|
||||
let talksData = dataDays.map((d) => {
|
||||
return Object.values(d.rooms);
|
||||
}).flat(2);
|
||||
let byDate = (fst, snd) => Date.parse(fst.date) - Date.parse(snd.date);
|
||||
let talksDataSorted = talksData.sort(byDate);
|
||||
return talksDataSorted;
|
||||
};
|
||||
if (window.Worker) {
|
||||
const workerBaseURL = window.infoBeamerConfig.get("workerBaseURL");
|
||||
const scheduleWorkerCode = workerBaseURL + "js/schedule_worker.js";
|
||||
console.log("Loading schedule worker JS from: " + scheduleWorkerCode);
|
||||
const scheduleWorker = new Worker(scheduleWorkerCode);
|
||||
const fetchWorkerCode = workerBaseURL + "js/generic_fetch_worker.js";
|
||||
const scheduleWorker = new Worker(fetchWorkerCode);
|
||||
const scheduleType = "Schedule";
|
||||
const scheduleURL = window.infoBeamerConfig.get("scheduleURL");
|
||||
const scheduleFetchInterval = window.infoBeamerConfig.get("scheduleFetchInterval");
|
||||
scheduleWorker.postMessage({
|
||||
msgType: "ScheduleFetchConfig",
|
||||
scheduleURL,
|
||||
scheduleFetchInterval
|
||||
fetchType: scheduleType,
|
||||
fetchURL: scheduleURL,
|
||||
fetchInterval: scheduleFetchInterval
|
||||
});
|
||||
scheduleWorker.onmessage = function(e) {
|
||||
let msgType = e.data.msgType;
|
||||
if (msgType === "ScheduleUpdate") {
|
||||
scheduleData = schedule_processor(e.data.schedule);
|
||||
let time = e.data.timestamp;
|
||||
console.log("Message: " + msgType + " at " + time);
|
||||
console.log(scheduleData);
|
||||
if (e.data.msgType === scheduleType) {
|
||||
console.log("Data Message at " + Date());
|
||||
console.log(e.data);
|
||||
scheduleData = schedule_filter(e.data.json);
|
||||
update_screen();
|
||||
}
|
||||
};
|
||||
const musicWorkerCode = workerBaseURL + "js/generic_fetch_worker.js";
|
||||
console.log("Loading worker JS from: " + musicWorkerCode);
|
||||
const musicWorker = new Worker(musicWorkerCode);
|
||||
const musicWorker = new Worker(fetchWorkerCode);
|
||||
const musicType = "Music";
|
||||
const musicURL = window.infoBeamerConfig.get("musicURL");
|
||||
const musicFetchInterval = window.infoBeamerConfig.get("musicFetchInterval");
|
||||
|
@ -256,18 +333,14 @@ ${twitterDom}
|
|||
fetchInterval: musicFetchInterval
|
||||
});
|
||||
musicWorker.onmessage = function(e) {
|
||||
let msgType = e.data.msgType;
|
||||
if (msgType === musicType) {
|
||||
if (e.data.msgType === musicType) {
|
||||
console.log("Data Message at " + Date());
|
||||
console.log(e.data);
|
||||
musicData = [e.data.json];
|
||||
let time = e.data.timestamp;
|
||||
console.log("Message: " + msgType + " at " + time);
|
||||
console.log(musicData);
|
||||
update_screen();
|
||||
}
|
||||
};
|
||||
const twitterWorkerCode = workerBaseURL + "js/generic_fetch_worker.js";
|
||||
console.log("Loading worker JS from: " + twitterWorkerCode);
|
||||
const twitterWorker = new Worker(twitterWorkerCode);
|
||||
const twitterWorker = new Worker(fetchWorkerCode);
|
||||
const twitterType = "Twitter";
|
||||
const twitterURL = window.infoBeamerConfig.get("twitterURL");
|
||||
const twitterFetchInterval = window.infoBeamerConfig.get("twitterFetchInterval");
|
||||
|
@ -277,19 +350,15 @@ ${twitterDom}
|
|||
fetchInterval: twitterFetchInterval
|
||||
});
|
||||
twitterWorker.onmessage = function(e) {
|
||||
let msgType = e.data.msgType;
|
||||
if (msgType === twitterType) {
|
||||
if (e.data.msgType === twitterType) {
|
||||
console.log("Data Message at " + Date());
|
||||
console.log(e.data);
|
||||
twitterData = [e.data.json];
|
||||
twitterData = twitter_filter(twitterData);
|
||||
let time = e.data.timestamp;
|
||||
console.log("Message: " + msgType + " at " + time);
|
||||
console.log(twitterData);
|
||||
update_screen();
|
||||
}
|
||||
};
|
||||
const mastodonWorkerCode = workerBaseURL + "js/generic_fetch_worker.js";
|
||||
console.log("Loading worker JS from: " + mastodonWorkerCode);
|
||||
const mastodonWorker = new Worker(mastodonWorkerCode);
|
||||
const mastodonWorker = new Worker(fetchWorkerCode);
|
||||
const mastodonType = "Mastodon";
|
||||
const mastodonURL = window.infoBeamerConfig.get("mastodonURL");
|
||||
const mastodonFetchInterval = window.infoBeamerConfig.get("mastodonFetchInterval");
|
||||
|
@ -299,13 +368,11 @@ ${twitterDom}
|
|||
fetchInterval: mastodonFetchInterval
|
||||
});
|
||||
mastodonWorker.onmessage = function(e) {
|
||||
let msgType = e.data.msgType;
|
||||
if (msgType === mastodonType) {
|
||||
if (e.data.msgType === mastodonType) {
|
||||
console.log("Data Message at " + Date());
|
||||
console.log(e.data);
|
||||
mastodonData = [e.data.json];
|
||||
mastodonData = mastodon_filter(mastodonData);
|
||||
let time = e.data.timestamp;
|
||||
console.log("Message: " + msgType + " at " + time);
|
||||
console.log(mastodonData);
|
||||
update_screen();
|
||||
}
|
||||
};
|
||||
|
@ -313,12 +380,14 @@ ${twitterDom}
|
|||
console.log("Your browser doesn't support web workers.");
|
||||
}
|
||||
function update_screen() {
|
||||
let time = new Date();
|
||||
console.log("Updating screen at at: " + time);
|
||||
let realTime = new Date();
|
||||
console.log("Updating screen at at: " + realTime);
|
||||
let now = Date.now();
|
||||
console.log("Using 'now': " + now);
|
||||
update_main_slide({
|
||||
schedule: scheduleData,
|
||||
schedule: future_events(scheduleData, now),
|
||||
music: musicData,
|
||||
twitter: social_limiter(twitterData, mastodonData)
|
||||
posts: social_limiter(twitterData, mastodonData)
|
||||
});
|
||||
}
|
||||
function main_loop() {
|
File diff suppressed because one or more lines are too long
|
@ -1 +1 @@
|
|||
@font-face{font-family:ibm plex mono;font-style:normal;font-weight:400;src:url(./fonts/ibm-plex-mono-v7-latin-ext_latin-regular.woff2)format("woff2"),url(./fonts/ibm-plex-mono-v7-latin-ext_latin-regular.woff)format("woff")}@font-face{font-family:ibm plex mono;font-style:italic;font-weight:400;src:url(./fonts/ibm-plex-mono-v7-latin-ext_latin-italic.woff2)format("woff2"),url(./fonts/ibm-plex-mono-v7-latin-ext_latin-italic.woff)format("woff")}@font-face{font-family:ibm plex mono;font-style:normal;font-weight:700;src:url(./fonts/ibm-plex-mono-v7-latin-ext_latin-700.woff2)format("woff2"),url(./fonts/ibm-plex-mono-v7-latin-ext_latin-700.woff)format("woff")}@font-face{font-family:ibm plex mono;font-style:italic;font-weight:700;src:url(./fonts/ibm-plex-mono-v7-latin-ext_latin-700italic.woff2)format("woff2"),url(./fonts/ibm-plex-mono-v7-latin-ext_latin-700italic.woff)format("woff")}@font-face{font-family:ibm plex sans;font-style:normal;font-weight:100;src:url(./fonts/ibm-plex-sans-v9-latin-ext_latin-100.woff2)format("woff2"),url(./fonts/ibm-plex-sans-v9-latin-ext_latin-100.woff)format("woff")}@font-face{font-family:ibm plex sans;font-style:italic;font-weight:100;src:url(./fonts/ibm-plex-sans-v9-latin-ext_latin-100italic.woff2)format("woff2"),url(./fonts/ibm-plex-sans-v9-latin-ext_latin-100italic.woff)format("woff")}@font-face{font-family:ibm plex sans;font-style:normal;font-weight:200;src:url(./fonts/ibm-plex-sans-v9-latin-ext_latin-200.woff2)format("woff2"),url(./fonts/ibm-plex-sans-v9-latin-ext_latin-200.woff)format("woff")}@font-face{font-family:ibm plex sans;font-style:italic;font-weight:200;src:url(./fonts/ibm-plex-sans-v9-latin-ext_latin-200italic.woff2)format("woff2"),url(./fonts/ibm-plex-sans-v9-latin-ext_latin-200italic.woff)format("woff")}@font-face{font-family:ibm plex sans;font-style:normal;font-weight:300;src:url(./fonts/ibm-plex-sans-v9-latin-ext_latin-300.woff2)format("woff2"),url(./fonts/ibm-plex-sans-v9-latin-ext_latin-300.woff)format("woff")}@font-face{font-family:ibm plex sans;font-style:italic;font-weight:300;src:url(./fonts/ibm-plex-sans-v9-latin-ext_latin-300italic.woff2)format("woff2"),url(./fonts/ibm-plex-sans-v9-latin-ext_latin-300italic.woff)format("woff")}@font-face{font-family:ibm plex sans;font-style:normal;font-weight:400;src:url(./fonts/ibm-plex-sans-v9-latin-ext_latin-regular.woff2)format("woff2"),url(./fonts/ibm-plex-sans-v9-latin-ext_latin-regular.woff)format("woff")}@font-face{font-family:ibm plex sans;font-style:italic;font-weight:400;src:url(./fonts/ibm-plex-sans-v9-latin-ext_latin-italic.woff2)format("woff2"),url(./fonts/ibm-plex-sans-v9-latin-ext_latin-italic.woff)format("woff")}@font-face{font-family:ibm plex sans;font-style:normal;font-weight:500;src:url(./fonts/ibm-plex-sans-v9-latin-ext_latin-500.woff2)format("woff2"),url(./fonts/ibm-plex-sans-v9-latin-ext_latin-500.woff)format("woff")}@font-face{font-family:ibm plex sans;font-style:italic;font-weight:500;src:url(./fonts/ibm-plex-sans-v9-latin-ext_latin-500italic.woff2)format("woff2"),url(./fonts/ibm-plex-sans-v9-latin-ext_latin-500italic.woff)format("woff")}@font-face{font-family:ibm plex sans;font-style:normal;font-weight:600;src:url(./fonts/ibm-plex-sans-v9-latin-ext_latin-600.woff2)format("woff2"),url(./fonts/ibm-plex-sans-v9-latin-ext_latin-600.woff)format("woff")}@font-face{font-family:ibm plex sans;font-style:italic;font-weight:600;src:url(./fonts/ibm-plex-sans-v9-latin-ext_latin-600italic.woff2)format("woff2"),url(./fonts/ibm-plex-sans-v9-latin-ext_latin-600italic.woff)format("woff")}@font-face{font-family:ibm plex sans;font-style:normal;font-weight:700;src:url(./fonts/ibm-plex-sans-v9-latin-ext_latin-700.woff2)format("woff2"),url(./fonts/ibm-plex-sans-v9-latin-ext_latin-700.woff)format("woff")}@font-face{font-family:ibm plex sans;font-style:italic;font-weight:700;src:url(./fonts/ibm-plex-sans-v9-latin-ext_latin-700italic.woff2)format("woff2"),url(./fonts/ibm-plex-sans-v9-latin-ext_latin-700italic.woff)format("woff")}*{box-sizing:border-box}body{color:#fff;background:#646464}#main{position:absolute;top:0;left:0}.slide{width:1920px;height:1080px;overflow:hidden}.schedule{display:none}.bottom-bar{display:none}.music-box{position:absolute;top:60px;left:60px;margin-left:30px;padding:10px 20px;width:800px;background-color:rgba(0,0,0,.6);box-shadow:2px 2px 8px 8px rgba(0,0,0,.6);font-family:ibm plex sans;font-weight:400;font-size:35px;color:#eee;text-shadow:0 0 6px #000}.music{padding-left:20px;white-space:nowrap;border-left:6px solid #309aca;border-top:6px solid #309aca;background:linear-gradient(110deg,rgba(26,115,150,.6) 0%,rgba(26,115,150,.2) 85%,rgba(26,115,150,0) 100%)}.music .line1{display:flex;justify-content:space-between}.music .line2{overflow:hidden;text-overflow:ellipsis}.music .header{font-weight:700;white-space:normal}.music .title{margin-left:20px}.music .artist{font-style:italic}.music .by{margin-left:15px;margin-right:12px;font-style:italic}.music .license{font-size:25px;color:#ccc}
|
||||
@font-face{font-family:ibm plex mono;font-style:normal;font-weight:400;src:url(./fonts/ibm-plex-mono-v7-latin-ext_latin-regular.woff2)format("woff2"),url(./fonts/ibm-plex-mono-v7-latin-ext_latin-regular.woff)format("woff")}@font-face{font-family:ibm plex mono;font-style:italic;font-weight:400;src:url(./fonts/ibm-plex-mono-v7-latin-ext_latin-italic.woff2)format("woff2"),url(./fonts/ibm-plex-mono-v7-latin-ext_latin-italic.woff)format("woff")}@font-face{font-family:ibm plex mono;font-style:normal;font-weight:700;src:url(./fonts/ibm-plex-mono-v7-latin-ext_latin-700.woff2)format("woff2"),url(./fonts/ibm-plex-mono-v7-latin-ext_latin-700.woff)format("woff")}@font-face{font-family:ibm plex mono;font-style:italic;font-weight:700;src:url(./fonts/ibm-plex-mono-v7-latin-ext_latin-700italic.woff2)format("woff2"),url(./fonts/ibm-plex-mono-v7-latin-ext_latin-700italic.woff)format("woff")}@font-face{font-family:ibm plex sans;font-style:normal;font-weight:100;src:url(./fonts/ibm-plex-sans-v9-latin-ext_latin-100.woff2)format("woff2"),url(./fonts/ibm-plex-sans-v9-latin-ext_latin-100.woff)format("woff")}@font-face{font-family:ibm plex sans;font-style:italic;font-weight:100;src:url(./fonts/ibm-plex-sans-v9-latin-ext_latin-100italic.woff2)format("woff2"),url(./fonts/ibm-plex-sans-v9-latin-ext_latin-100italic.woff)format("woff")}@font-face{font-family:ibm plex sans;font-style:normal;font-weight:200;src:url(./fonts/ibm-plex-sans-v9-latin-ext_latin-200.woff2)format("woff2"),url(./fonts/ibm-plex-sans-v9-latin-ext_latin-200.woff)format("woff")}@font-face{font-family:ibm plex sans;font-style:italic;font-weight:200;src:url(./fonts/ibm-plex-sans-v9-latin-ext_latin-200italic.woff2)format("woff2"),url(./fonts/ibm-plex-sans-v9-latin-ext_latin-200italic.woff)format("woff")}@font-face{font-family:ibm plex sans;font-style:normal;font-weight:300;src:url(./fonts/ibm-plex-sans-v9-latin-ext_latin-300.woff2)format("woff2"),url(./fonts/ibm-plex-sans-v9-latin-ext_latin-300.woff)format("woff")}@font-face{font-family:ibm plex sans;font-style:italic;font-weight:300;src:url(./fonts/ibm-plex-sans-v9-latin-ext_latin-300italic.woff2)format("woff2"),url(./fonts/ibm-plex-sans-v9-latin-ext_latin-300italic.woff)format("woff")}@font-face{font-family:ibm plex sans;font-style:normal;font-weight:400;src:url(./fonts/ibm-plex-sans-v9-latin-ext_latin-regular.woff2)format("woff2"),url(./fonts/ibm-plex-sans-v9-latin-ext_latin-regular.woff)format("woff")}@font-face{font-family:ibm plex sans;font-style:italic;font-weight:400;src:url(./fonts/ibm-plex-sans-v9-latin-ext_latin-italic.woff2)format("woff2"),url(./fonts/ibm-plex-sans-v9-latin-ext_latin-italic.woff)format("woff")}@font-face{font-family:ibm plex sans;font-style:normal;font-weight:500;src:url(./fonts/ibm-plex-sans-v9-latin-ext_latin-500.woff2)format("woff2"),url(./fonts/ibm-plex-sans-v9-latin-ext_latin-500.woff)format("woff")}@font-face{font-family:ibm plex sans;font-style:italic;font-weight:500;src:url(./fonts/ibm-plex-sans-v9-latin-ext_latin-500italic.woff2)format("woff2"),url(./fonts/ibm-plex-sans-v9-latin-ext_latin-500italic.woff)format("woff")}@font-face{font-family:ibm plex sans;font-style:normal;font-weight:600;src:url(./fonts/ibm-plex-sans-v9-latin-ext_latin-600.woff2)format("woff2"),url(./fonts/ibm-plex-sans-v9-latin-ext_latin-600.woff)format("woff")}@font-face{font-family:ibm plex sans;font-style:italic;font-weight:600;src:url(./fonts/ibm-plex-sans-v9-latin-ext_latin-600italic.woff2)format("woff2"),url(./fonts/ibm-plex-sans-v9-latin-ext_latin-600italic.woff)format("woff")}@font-face{font-family:ibm plex sans;font-style:normal;font-weight:700;src:url(./fonts/ibm-plex-sans-v9-latin-ext_latin-700.woff2)format("woff2"),url(./fonts/ibm-plex-sans-v9-latin-ext_latin-700.woff)format("woff")}@font-face{font-family:ibm plex sans;font-style:italic;font-weight:700;src:url(./fonts/ibm-plex-sans-v9-latin-ext_latin-700italic.woff2)format("woff2"),url(./fonts/ibm-plex-sans-v9-latin-ext_latin-700italic.woff)format("woff")}*{box-sizing:border-box}body{color:#fff;background:#646464}#main{position:absolute;top:0;left:0}.slide{width:1920px;height:1080px;overflow:hidden}.schedule{display:none}.bottom-bar{display:none}.music-box{position:absolute;top:60px;left:60px;margin-left:30px;padding:10px 20px;width:800px;background-color:rgba(0,0,0,.8);box-shadow:2px 2px 8px 8px rgba(0,0,0,.8);font-family:ibm plex sans;font-weight:400;font-size:35px;color:#eee;text-shadow:0 0 6px #000}.music{padding-left:20px;white-space:nowrap;border-left:6px solid #98adb0;border-top:6px solid #98adb0;background:linear-gradient(110deg,rgba(95,124,125,.6) 0%,rgba(33,106,99,.2) 85%,rgba(77,120,18,0) 100%)}.music .line1{display:flex;justify-content:space-between}.music .line2{overflow:hidden;text-overflow:ellipsis}.music .header{font-weight:700;white-space:normal}.music .title{margin-left:20px}.music .artist{font-style:italic}.music .by{margin-left:15px;margin-right:12px;font-style:italic}.music .license{font-size:25px;color:#ccc}
|
File diff suppressed because one or more lines are too long
|
@ -3,14 +3,16 @@
|
|||
<meta charset=utf-8>
|
||||
<meta name=viewport content="width=device-width,initial-scale=1,shrink-to-fit=no">
|
||||
<title>rC3 NOWHERE</title>
|
||||
<link rel=stylesheet href=https://infobeamer.montage2.de/main.min.46824b40ea7e6045e38c26d5edc560058cfb56cdfb2e42722fdd288b62f38250.css>
|
||||
<link href=/fork-awesome/css/fork-awesome.min.css rel=stylesheet type=text/css>
|
||||
<link rel=stylesheet href=https://infobeamer.montage2.de/main.min.83cb606bbe2d0a652fef9ce6fd283c081becbdbc566b2796a585ce3e9522a68c.css>
|
||||
<script src=https://infobeamer.montage2.de/js/config.fa1a162e62b8d5f3f40c8812d30b5289c5792ff26c0843426d8c109a00621389.js integrity="sha256-+hoWLmK41fP0DIgS0wtSicV5L/JsCENCbYwQmgBiE4k="></script>
|
||||
</head>
|
||||
<body>
|
||||
<main id=main>
|
||||
</main>
|
||||
<script src=https://infobeamer.montage2.de/js/moment/moment.min.73de4254959530e4d1d9bec586379184f96b4953dacf9cd5e5e2bdd7bfeceef7.js integrity="sha256-c95CVJWVMOTR2b7FhjeRhPlrSVPaz5zV5eK917/s7vc="></script>
|
||||
<script src=https://infobeamer.montage2.de/js/preact/preact.min.0c204e20934f1e09cfe86fbcf1d069d842f988fc71efe3a923021c08892c71c8.js integrity="sha256-DCBOIJNPHgnP6G+88dBp2EL5iPxx7+OpIwIcCIksccg="></script>
|
||||
<script src=https://infobeamer.montage2.de/js/htm/htm.80e39afe20fd61183412eda89efa10532d57945e6364642aceacd50eb2384b4b.js integrity="sha256-gOOa/iD9YRg0Eu2onvoQUy1XlF5jZGQqzqzVDrI4S0s="></script>
|
||||
<script src=https://infobeamer.montage2.de/main.fca55c7bea00e5c58b9a3676e2419260d2a4218c69b9ee2299947c09dd6219ac.js integrity="sha256-/KVce+oA5cWLmjZ24kGSYNKkIYxpue4imZR8Cd1iGaw=" type=module></script>
|
||||
<script src=https://infobeamer.montage2.de/main.a208ae05cac995d43ca314d583ac22917c9997d9036985f61a269ae1f193222e.js integrity="sha256-ogiuBcrJldQ8oxTVg6wikXyZl9kDaYX2Giaa4fGTIi4=" type=module></script>
|
||||
</body>
|
||||
</html>
|
Loading…
Reference in New Issue