diff --git a/public/index.html b/public/index.html index 36d4179..401aa4d 100644 --- a/public/index.html +++ b/public/index.html @@ -3,14 +3,14 @@ rC3 NOWHERE - - + +
- + \ No newline at end of file diff --git a/public/js/config.3dd54e14cd5782968f2fb18dc72b3074a90c0b8713e2a166f88b500d2aa19e09.js b/public/js/config.fa1a162e62b8d5f3f40c8812d30b5289c5792ff26c0843426d8c109a00621389.js similarity index 62% rename from public/js/config.3dd54e14cd5782968f2fb18dc72b3074a90c0b8713e2a166f88b500d2aa19e09.js rename to public/js/config.fa1a162e62b8d5f3f40c8812d30b5289c5792ff26c0843426d8c109a00621389.js index f094d65..fabb109 100644 --- a/public/js/config.3dd54e14cd5782968f2fb18dc72b3074a90c0b8713e2a166f88b500d2aa19e09.js +++ b/public/js/config.fa1a162e62b8d5f3f40c8812d30b5289c5792ff26c0843426d8c109a00621389.js @@ -2,10 +2,12 @@ // window.infoBeamerConfig = /* @__PURE__ */ new Map(); window.infoBeamerConfig.set("workerBaseURL", "/"); - window.infoBeamerConfig.set("scheduleURL", "/fahrplan.json"); - window.infoBeamerConfig.set("scheduleFetchInterval", 10); + window.infoBeamerConfig.set("scheduleURL", "/everything.schedule.json"); + window.infoBeamerConfig.set("scheduleFetchInterval", 60); window.infoBeamerConfig.set("twitterURL", "/tweets-rc3.json"); window.infoBeamerConfig.set("twitterFetchInterval", 60); + window.infoBeamerConfig.set("mastodonURL", "/toots-rc3-chaos.social.json"); + window.infoBeamerConfig.set("mastodonFetchInterval", 60); window.infoBeamerConfig.set("musicURL", "/music.json"); window.infoBeamerConfig.set("musicFetchInterval", 3); console.log("Info Beamer Configuration: "); diff --git a/public/main.ed70c487a33840a79f8f30be2914947b7075c79656362b0f07f1b33aacc1254a.js b/public/main.fca55c7bea00e5c58b9a3676e2419260d2a4218c69b9ee2299947c09dd6219ac.js similarity index 68% rename from public/main.ed70c487a33840a79f8f30be2914947b7075c79656362b0f07f1b33aacc1254a.js rename to public/main.fca55c7bea00e5c58b9a3676e2419260d2a4218c69b9ee2299947c09dd6219ac.js index 48704c1..b20986a 100644 --- a/public/main.ed70c487a33840a79f8f30be2914947b7075c79656362b0f07f1b33aacc1254a.js +++ b/public/main.fca55c7bea00e5c58b9a3676e2419260d2a4218c69b9ee2299947c09dd6219ac.js @@ -2,10 +2,15 @@ (() => { // 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 schedule_meta_here_dom = (schedule) => { let inner = html`${schedule.map((talk) => html`
-
${talk.personnames}:
+
${speaker_names(talk)}:
${talk.title}
Starting at ${talk.start} @@ -20,7 +25,11 @@ 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; - inner = html`${abstract}`; + let track = talk.track !== void 0 ? talk.track : "-"; + let lang = talk.language !== void 0 ? talk.language : "en"; + inner = html` +
${abstract}
+
Track: ${track}
`; }); return inner; }; @@ -40,7 +49,6 @@ return inner; }; var update_schedule_dom = (schedule) => { - const here_roomguid = ""; const here_room = "Chaos-West TV"; const here_number_events = 1; const all_number_events = 10; @@ -74,7 +82,8 @@ }; var music_playing_now_dom = (music) => { let inner = html` -
+
+
${music.map((current) => html`
Now playing: @@ -85,54 +94,36 @@ by ${current.artist}
`)} +
`; return inner; }; - 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 single_tweet_dom = (data, tweet) => { - let userName = get_tweet_author(data, tweet); - let profileImageUrl = get_tweet_profile_image(data, tweet); - let text = get_tweet_text(data, tweet); + var single_tweet_dom = (tweet) => { + let date = new Date(tweet.time); let inner = html`
- +
-
@${userName}
-
${text}
+
+ @${tweet.author} + at ${date.getHours()}:${date.getMinutes()} +
+
${tweet.text}
`; return inner; }; - var social_container_dom = (data) => { - let inner = html``; - data.forEach((d) => { - let tweets = d.data; - inner = html` + var social_container_dom = (tweets) => { + let inner = html`
- ${tweets.map((t) => single_tweet_dom(d, t))} + ${tweets.map((t) => single_tweet_dom(t))}
`; - }); return inner; }; function update_main_slide(data) { @@ -156,19 +147,80 @@ ${twitterDom} var scheduleData = []; var musicData = []; var twitterData = []; - var twitter_limiter = (idata) => { + var mastodonData = []; + var social_limiter = (tweets, toots) => { const numberTweets = 20; - let dataCopy = JSON.parse(JSON.stringify(idata)); - dataCopy.forEach((d) => { - let tweets = d.data; - if (tweets.length > 0) { - while (tweets.length < 20) { - tweets = tweets.concat(tweets); - } + 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); } - d.data = tweets.slice(0, numberTweets); + } + 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 dataCopy; + 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"); @@ -185,7 +237,7 @@ ${twitterDom} scheduleWorker.onmessage = function(e) { let msgType = e.data.msgType; if (msgType === "ScheduleUpdate") { - scheduleData = e.data.schedule; + scheduleData = schedule_processor(e.data.schedule); let time = e.data.timestamp; console.log("Message: " + msgType + " at " + time); console.log(scheduleData); @@ -228,20 +280,46 @@ ${twitterDom} let msgType = e.data.msgType; if (msgType === twitterType) { twitterData = [e.data.json]; - twitterData = twitter_limiter(twitterData); + 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 mastodonType = "Mastodon"; + const mastodonURL = window.infoBeamerConfig.get("mastodonURL"); + const mastodonFetchInterval = window.infoBeamerConfig.get("mastodonFetchInterval"); + mastodonWorker.postMessage({ + fetchType: mastodonType, + fetchURL: mastodonURL, + fetchInterval: mastodonFetchInterval + }); + mastodonWorker.onmessage = function(e) { + let msgType = e.data.msgType; + if (msgType === mastodonType) { + mastodonData = [e.data.json]; + mastodonData = mastodon_filter(mastodonData); + let time = e.data.timestamp; + console.log("Message: " + msgType + " at " + time); + console.log(mastodonData); + update_screen(); + } + }; } else { console.log("Your browser doesn't support web workers."); } function update_screen() { let time = new Date(); console.log("Updating screen at at: " + time); - update_main_slide({ schedule: scheduleData, music: musicData, twitter: twitterData }); + update_main_slide({ + schedule: scheduleData, + music: musicData, + twitter: social_limiter(twitterData, mastodonData) + }); } function main_loop() { update_screen(); diff --git a/public/main.min.5eb5d61a35a33d65dda7e3d9ffb360573a0bc74558b45e0913773b348bb0fe58.css b/public/main.min.46824b40ea7e6045e38c26d5edc560058cfb56cdfb2e42722fdd288b62f38250.css similarity index 83% rename from public/main.min.5eb5d61a35a33d65dda7e3d9ffb360573a0bc74558b45e0913773b348bb0fe58.css rename to public/main.min.46824b40ea7e6045e38c26d5edc560058cfb56cdfb2e42722fdd288b62f38250.css index fc89ecf..5572a19 100644 --- a/public/main.min.5eb5d61a35a33d65dda7e3d9ffb360573a0bc74558b45e0913773b348bb0fe58.css +++ b/public/main.min.46824b40ea7e6045e38c26d5edc560058cfb56cdfb2e42722fdd288b62f38250.css @@ -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{position:absolute;top:60px;left:60px;margin-left:30px;padding-left:20px;padding-top:10px;padding-bottom:10px;width:800px;background-color:rgba(0,0,0,.8);box-shadow:2px 2px 4px 2px rgba(0,0,0,.6);font-family:ibm plex sans;font-weight:400;font-size:35px;color:#eee;text-shadow:0 0 6px #000;background:linear-gradient(110deg,rgba(26,115,150,.6) 0%,rgba(26,115,150,.2) 85%,rgba(26,115,150,0) 100%);white-space:nowrap;border-left:6px solid #309aca;border-top:6px solid #309aca}.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} \ No newline at end of file +@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} \ No newline at end of file diff --git a/public/main.min.a6a58de74ac0c424e02c892a0e91930638ad2d1088bde3d4cf113a27569fb32f.css b/public/main.min.b9026d1f6b104105b018119cd321ea8cb03e44ce4115c7200844e5c35100a5e4.css similarity index 55% rename from public/main.min.a6a58de74ac0c424e02c892a0e91930638ad2d1088bde3d4cf113a27569fb32f.css rename to public/main.min.b9026d1f6b104105b018119cd321ea8cb03e44ce4115c7200844e5c35100a5e4.css index e7ea42d..08dcd7f 100644 --- a/public/main.min.a6a58de74ac0c424e02c892a0e91930638ad2d1088bde3d4cf113a27569fb32f.css +++ b/public/main.min.b9026d1f6b104105b018119cd321ea8cb03e44ce4115c7200844e5c35100a5e4.css @@ -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 .left{position:absolute;top:30px;left:60px;width:850px;height:980px}.schedule .right{position:absolute;top:30px;right:60px;width:800px;height:980px}.schedule .panel{background-color:rgba(0,0,0,.6);box-shadow:2px 2px 4px 2px rgba(0,0,0,.6);padding:20px 30px}.schedule .header{width:100%;max-height:100px;margin-bottom:10px;color:#309aca;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-family:ibm plex mono;font-weight:700;font-size:45px;text-shadow:1px 1px 1px #000,2px 2px 8px rgba(0,0,0,.8)}.schedule .content{font-family:ibm plex sans;font-weight:400;font-size:25px;text-shadow:1px 1px 6px #000;color:#eee}.panel.meta{height:300px;width:85%;margin-bottom:30px}.meta .header{margin-bottom:20px}.meta .content{background:linear-gradient(110deg,rgba(77,120,18,.6) 0%,rgba(77,120,18,.2) 85%,rgba(77,120,18,0) 100%);border-left:6px solid #6fad1a;padding-left:20px;padding-top:10px;padding-bottom:15px}.meta .speaker{margin-bottom:10px;font-style:italic;font-size:30px;font-weight:500}.meta .title{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;margin-bottom:20px;padding-left:20px;overflow:hidden;text-overflow:ellipsis;white-space:normal;font-size:45px;font-weight:600}.meta .start-duration{display:flex;justify-content:space-between;font-size:25px;font-weight:400}.meta .start-duration .duration{font-style:italic}.abstract .header{margin-bottom:20px}.abstract .content{background:linear-gradient(110deg,rgba(77,120,18,.6) 0%,rgba(77,120,18,.2) 85%,rgba(77,120,18,0) 100%);border-left:6px solid #6fad1a;border-bottom:4px solid #6fad1a;padding-left:10px;padding-top:5px;padding-bottom:8px}.abstract .text{display:-webkit-box;-webkit-line-clamp:10;-webkit-box-orient:vertical;overflow:hidden;text-overflow:ellipsis;white-space:normal;word-break:break-word;line-break:anywhere}.list .header{margin-bottom:20px}.list .item{margin-bottom:10px;padding:2px 10px;background:linear-gradient(110deg,rgba(77,120,18,.6) 0%,rgba(77,120,18,.2) 85%,rgba(77,120,18,0) 100%);white-space:nowrap;border-left:6px solid #6fad1a}.item .title{color:#fff;font-size:30px;overflow:hidden;text-overflow:ellipsis}.item .details{font-size:25px;color:#eee}.item .day{position:absolute;left:150px}.item .stage{float:right;text-align:right;font-style:italic}.item .stage:before{padding-right:5px;content:"@"}.music{position:absolute;bottom:140px;left:60px;margin-left:30px;padding-left:10px;padding-top:5px;padding-bottom:5px;width:600px;font-family:ibm plex sans;font-weight:300;font-size:25px;color:#eee;text-shadow:0 0 6px #000;background:linear-gradient(110deg,rgba(26,115,150,.6) 0%,rgba(26,115,150,.2) 85%,rgba(26,115,150,0) 100%);white-space:nowrap;border-left:6px solid #309aca}.music .line1{display:flex;justify-content:space-between}.music .line2{overflow:hidden;text-overflow:ellipsis}.music .header{font-weight:600;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:20px;color:#ccc}.bottom-bar{position:absolute;bottom:0;margin-bottom:10px;width:100%;overflow:hidden;z-index:-100}.ticker-wrap{width:100%;overflow:hidden}@keyframes switch-anim{0%{transform:translate3d(0%,0,0)}100%{transform:translate3d(-100%,0,0)}}@keyframes slide-anim{0%{transform:translate3d(0,100%,0)}10%{transform:translate3d(0,0%,0)}90%{transform:translate3d(0,0%,0)}100%{transform:translate3d(0,-100%,0)}}@keyframes fadeout-anim{0%{opacity:1}90%{opacity:1}100%{opacity:0}}.switcher{display:inline-block;white-space:nowrap;overflow:hidden;animation-name:switch-anim;animation-duration:200s;animation-iteration-count:infinite;animation-timing-function:steps(20)}.slider{display:inline-block;white-space:nowrap;animation-name:slide-anim,fadeout-anim;animation-duration:10s;animation-iteration-count:infinite;animation-timing-function:linear}.tweet{width:1920px;padding-left:90px;padding-right:60px;display:inline-block;white-space:nowrap;color:#fff;text-shadow:0 0 6px #000;font-family:ibm plex sans;font-size:30px}.tweet .container{background:linear-gradient(60deg,rgba(48,154,202,.6) 0%,rgba(48,154,202,.4) 50%,rgba(48,154,202,0) 60%,rgba(48,154,202,0) 100%);white-space:nowrap;display:flex}.tweet .content{height:72px;display:flex;flex-direction:column;justify-content:space-between}.tweet .profile-image{height:72px;width:72px;margin-right:18px;vertical-align:middle}.tweet .username{font-size:20px;vertical-align:top}.tweet .text{max-width:1710px;font-size:25px;vertical-align:bottom;overflow:hidden;text-overflow:ellipsis;white-space:nowrap} \ No newline at end of file +@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 .left{position:absolute;top:30px;left:60px;width:850px;height:980px}.schedule .right{position:absolute;top:30px;right:60px;width:800px;height:980px}.schedule .panel{background-color:rgba(0,0,0,.6);box-shadow:2px 2px 4px 2px rgba(0,0,0,.6);padding:20px 30px}.schedule .header{width:100%;max-height:100px;margin-bottom:10px;color:#309aca;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-family:ibm plex mono;font-weight:700;font-size:45px;text-shadow:1px 1px 1px #000,2px 2px 8px rgba(0,0,0,.8)}.schedule .content{font-family:ibm plex sans;font-weight:400;font-size:25px;text-shadow:1px 1px 6px #000;color:#eee}.panel.meta{height:300px;width:85%;margin-bottom:30px}.meta .header{margin-bottom:20px}.meta .content{background:linear-gradient(110deg,rgba(77,120,18,.6) 0%,rgba(77,120,18,.2) 85%,rgba(77,120,18,0) 100%);border-left:6px solid #6fad1a;padding-left:20px;padding-top:10px;padding-bottom:15px}.meta .speaker{display:-webkit-box;-webkit-line-clamp:1;-webkit-box-orient:vertical;margin-bottom:10px;overflow:hidden;text-overflow:ellipsis;white-space:normal;font-style:italic;font-size:30px;font-weight:500}.meta .title{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;margin-bottom:20px;padding-left:20px;overflow:hidden;text-overflow:ellipsis;white-space:normal;font-size:45px;font-weight:600}.meta .start-duration{display:flex;justify-content:space-between;font-size:25px;font-weight:400}.meta .start-duration .duration{font-style:italic}.abstract .header{margin-bottom:20px}.abstract .content{background:linear-gradient(110deg,rgba(77,120,18,.6) 0%,rgba(77,120,18,.2) 85%,rgba(77,120,18,0) 100%);border-left:6px solid #6fad1a;border-bottom:4px solid #6fad1a;padding-left:10px;padding-top:5px;padding-bottom:8px}.abstract .text{display:-webkit-box;-webkit-line-clamp:6;-webkit-box-orient:vertical;overflow:hidden;text-overflow:ellipsis;white-space:normal;word-break:break-word;line-break:normal}.abstract .track{padding-top:10px;font-style:italic;font-size:20px;font-weight:400}.list .header{margin-bottom:20px}.list .item{margin-bottom:10px;padding:2px 10px;background:linear-gradient(110deg,rgba(77,120,18,.6) 0%,rgba(77,120,18,.2) 85%,rgba(77,120,18,0) 100%);white-space:nowrap;border-left:6px solid #6fad1a}.item .title{color:#fff;font-size:30px;overflow:hidden;text-overflow:ellipsis}.item .details{font-size:25px;color:#eee}.item .day{position:absolute;left:150px}.item .stage{float:right;text-align:right;font-style:italic}.item .stage:before{padding-right:5px;content:"@"}.music-box{position:absolute;bottom:140px;left:60px;margin-left:20px;padding-left:10px;padding-top:5px;padding-right:10px;padding-bottom:5px;width:600px;font-family:ibm plex sans;font-weight:300;font-size:25px;color:#eee;background:rgba(0,0,0,.6);box-shadow:2px 2px 4px 2px rgba(0,0,0,.6)}.music{padding-left:10px;background:linear-gradient(110deg,rgba(26,115,150,.6) 0%,rgba(26,115,150,.2) 85%,rgba(26,115,150,0) 100%);border-left:6px solid #309aca;text-shadow:0 0 6px #000;white-space:nowrap}.music .line1{display:flex;justify-content:space-between}.music .line2{overflow:hidden;text-overflow:ellipsis}.music .header{font-weight:600;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:20px;color:#ccc}.bottom-bar{position:absolute;bottom:0;margin-bottom:10px;width:100%;overflow:hidden;z-index:-100}.ticker-wrap{width:100%;overflow:hidden}@keyframes switch-anim{0%{transform:translate3d(0%,0,0)}100%{transform:translate3d(-100%,0,0)}}@keyframes slide-anim{0%{transform:translate3d(0,100%,0)}10%{transform:translate3d(0,0%,0)}90%{transform:translate3d(0,0%,0)}100%{transform:translate3d(0,-100%,0)}}@keyframes fadeout-anim{0%{opacity:1}90%{opacity:1}100%{opacity:0}}.switcher{display:inline-block;white-space:nowrap;overflow:hidden;animation-name:switch-anim;animation-duration:200s;animation-iteration-count:infinite;animation-timing-function:steps(20)}.slider{display:inline-block;white-space:nowrap;animation-name:slide-anim,fadeout-anim;animation-duration:10s;animation-iteration-count:infinite;animation-timing-function:linear}.tweet{width:1920px;padding-left:90px;padding-right:60px;display:inline-block;white-space:nowrap;color:#fff;text-shadow:0 0 6px #000;font-family:ibm plex sans;font-size:30px}.tweet .container{background:linear-gradient(5deg,rgba(48,154,202,.5) 0%,rgba(48,154,202,.4) 42%,rgba(48,154,202,0) 65%,rgba(48,154,202,0) 100%);white-space:nowrap;display:flex}.tweet .content{height:72px;display:flex;flex-direction:column;justify-content:space-between}.tweet .profile-image{height:72px;width:72px;margin-right:18px;vertical-align:middle}.tweet .username{font-size:20px;vertical-align:top}.tweet .time{padding-left:15px;font-size:20px;vertical-align:top}.tweet .text{max-width:1680px;font-size:25px;vertical-align:bottom;overflow:hidden;text-overflow:ellipsis;white-space:nowrap} \ No newline at end of file diff --git a/public/music/index.html b/public/music/index.html index 35b9602..9218da7 100644 --- a/public/music/index.html +++ b/public/music/index.html @@ -3,14 +3,14 @@ rC3 NOWHERE - - + +
- + \ No newline at end of file