diff --git a/public/index.html b/public/index.html index 8786a2e..ade381a 100644 --- a/public/index.html +++ b/public/index.html @@ -4,8 +4,8 @@ rC3 NOWHERE - - + +
@@ -13,6 +13,6 @@ - + \ No newline at end of file diff --git a/public/js/config.fa1a162e62b8d5f3f40c8812d30b5289c5792ff26c0843426d8c109a00621389.js b/public/js/config.c3055781f00111fd050e1e5732c9e6dbd2dce21204e90b02975e9983a4c367f7.js similarity index 75% rename from public/js/config.fa1a162e62b8d5f3f40c8812d30b5289c5792ff26c0843426d8c109a00621389.js rename to public/js/config.c3055781f00111fd050e1e5732c9e6dbd2dce21204e90b02975e9983a4c367f7.js index fabb109..39e0705 100644 --- a/public/js/config.fa1a162e62b8d5f3f40c8812d30b5289c5792ff26c0843426d8c109a00621389.js +++ b/public/js/config.c3055781f00111fd050e1e5732c9e6dbd2dce21204e90b02975e9983a4c367f7.js @@ -5,11 +5,11 @@ 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("twitterFetchInterval", 120); window.infoBeamerConfig.set("mastodonURL", "/toots-rc3-chaos.social.json"); - window.infoBeamerConfig.set("mastodonFetchInterval", 60); + window.infoBeamerConfig.set("mastodonFetchInterval", 120); window.infoBeamerConfig.set("musicURL", "/music.json"); - window.infoBeamerConfig.set("musicFetchInterval", 3); + window.infoBeamerConfig.set("musicFetchInterval", 5); console.log("Info Beamer Configuration: "); console.log(window.infoBeamerConfig); })(); diff --git a/public/main.c6cb62188f7b5dc001704b60fcb1a1b0b38510b5bed7b27311053c13fc63333d.js b/public/main.7b9386a5aed538c367cecbb578d8b458be6fcb679fa7b83c00402918b7b123aa.js similarity index 73% rename from public/main.c6cb62188f7b5dc001704b60fcb1a1b0b38510b5bed7b27311053c13fc63333d.js rename to public/main.7b9386a5aed538c367cecbb578d8b458be6fcb679fa7b83c00402918b7b123aa.js index fee9b11..d4fad47 100644 --- a/public/main.c6cb62188f7b5dc001704b60fcb1a1b0b38510b5bed7b27311053c13fc63333d.js +++ b/public/main.7b9386a5aed538c367cecbb578d8b458be6fcb679fa7b83c00402918b7b123aa.js @@ -1,29 +1,26 @@ "use strict"; (() => { // ns-hugo:/home/raoul-web/rc3_2021/html-infobeamer-content/assets/js/services.js + var delay = 3 * 5 * 60 * 1e3; + var postsLimit = 20; + var defaultUrlSet = [ + "https://abs.twimg.com/sticky/default_profile_images/default_profile_normal.png", + "https://chaos.social/avatars/original/missing.png" + ]; + var default_profile_image_url = () => "./nounicorn.png"; 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) { + while (postsSorted.length < postsLimit) { postsSorted = postsSorted.concat(postsSorted); } } - postsSorted = postsSorted.reverse().slice(0, numberTweets); + postsSorted = postsSorted.reverse().slice(0, postsLimit); return postsSorted; }; - var default_profile_image = () => "./nounicorn.png"; - var replace_default_image = (url) => { - let newUrl; - if (url === "https://abs.twimg.com/sticky/default_profile_images/default_profile_normal.png" || url === "https://chaos.social/avatars/original/missing.png") { - newUrl = default_profile_image(); - } else { - newUrl = url; - } - return newUrl; - }; + var replace_default_image_url = (url) => defaultUrlSet.includes(url) === true ? default_profile_image_url() : url; var tweet_author = (data, tweet) => { let authorId = tweet.author_id; let users = data.includes.users; @@ -35,7 +32,7 @@ let authorId = tweet.author_id; let users = data.includes.users; let author = users.find((item) => item.id === authorId); - let profileImageUrl = replace_default_image(author.profile_image_url); + let profileImageUrl = replace_default_image_url(author.profile_image_url); return profileImageUrl; }; var tweet_text = (tweet) => tweet.text; @@ -54,7 +51,7 @@ return tweets; }; var toot_author = (toot) => toot.account.username; - var toot_profile_image = (toot) => replace_default_image(toot.account.avatar_static); + var toot_profile_image = (toot) => replace_default_image_url(toot.account.avatar_static); var toot_text = (toot) => toot.content; var toot_time = (toot) => toot.created_at; var html_plainify = (html2) => { @@ -94,24 +91,21 @@ let talksDataSorted = talksData.sort(byDate); return talksDataSorted; }; - var future_events = (schedule, datetime) => { - let scheduleFiltered = schedule.filter((e) => Date.parse(e.date) > datetime); - return scheduleFiltered; - }; + var future_events = (schedule, now) => schedule.filter((e) => Date.parse(e.date) >= now - delay); + var same_music_track = (track1, track2) => track1.artist === track2.artist && track1.title === track2.title; var is_new_music = (musicA, musicB) => { - let isSame; + let isNewMusic; if (musicA.length !== 0 && musicB.length !== 0) { - isSame = musicA[0].artist === musicB[0].artist && musicA[0].title === musicB[0].title; + isNewMusic = same_music_track(musicA[0], musicB[0]); } else if (musicA.length === 0 && musicB.length === 0) { - isSame = true; + isNewMusic = true; } else { - isSame = false; + isNewMusic = false; } - return !isSame; + return !isNewMusic; }; var music_update = (musicA, musicB) => { - let isNew = is_new_music(musicA, musicB); - if (isNew === true) { + if (is_new_music(musicA, musicB) === true) { musicB.forEach((m) => m.since = Date.now()); } return musicB; @@ -119,16 +113,38 @@ // ns-hugo:/home/raoul-web/rc3_2021/html-infobeamer-content/assets/js/dom.js var html = htm.bind(preact.h); - var here_room = "Chaos-West TV"; + var hereRoom = "Chaos-West TV"; + var number_events_all = 7; var musicAge = 5 * 1e3; - var urgency = 5 * 60 * 1e3; - var is_own_talk = (talk) => talk.room === here_room; + var urgent = 5 * 60 * 1e3; + var stale = 3 * 5 * 60 * 1e3; + var lapse = 5 * 1e3; + var talk_day = (talk) => { + const lut = { + 1: "I", + 2: "II", + 3: "III", + 4: "IV" + }; + return lut[talk.day]; + }; + var is_own_talk = (talk) => talk.room === hereRoom; + var talk_start_time = (talk) => Date.parse(talk.date); var is_urgent = (talk, time) => { - let talkStart = Date.parse(talk.date); - let timeDelta = talkStart - time; - return timeDelta <= urgency; + let timeDelta = talk_start_time(talk) - time; + return timeDelta >= 0 && timeDelta <= urgent; + }; + var is_stale = (talk, time) => { + let timeDelta = talk_start_time(talk) - time; + return timeDelta < 0; + }; + var is_lapse = (talk, time) => { + let timeDelta = talk_start_time(talk) - time; + return timeDelta <= -(stale - lapse); }; var urgent_class = (talk, time) => is_urgent(talk, time) ? "urgent" : ""; + var stale_class = (talk, time) => is_stale(talk, time) ? "stale" : ""; + var lapse_class = (talk, time) => is_lapse(talk, time) ? "lapse" : ""; var speaker_names = (talk) => talk.persons.map((p) => p.public_name); var speaker_dom = (talk) => { const separator = ", "; @@ -142,23 +158,48 @@ } return inner; }; + var starting_dom = (talk, time) => { + const hrs3 = 3 * 60 * 60 * 1e3; + const min15 = 3 * 5 * 60 * 1e3; + const min2 = 2 * 60 * 1e3; + const min1 = 60 * 1e3; + let timeDelta = talk_start_time(talk) - time; + let minutes = Math.ceil(Math.abs(timeDelta / 1e3 / 60)); + let inner; + if (timeDelta > hrs3) { + inner = html`Day ${talk_day(talk)} at ${talk.start}`; + } else if (timeDelta > min15) { + inner = html`Starting at ${talk.start}`; + } else if (timeDelta <= min15 && timeDelta > min1) { + inner = html`Starting in ${minutes} minutes`; + } else if (timeDelta <= min1 && timeDelta >= 0) { + inner = html`Starting now!`; + } else if (timeDelta < 0 && timeDelta >= -min1) { + inner = html`Just started!`; + } else if (timeDelta < -min1 && timeDelta >= -min15) { + inner = html`Started ${minutes} minutes ago`; + } else if (timeDelta < -min15) { + inner = html`Seriously missed`; + } + return inner; + }; 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`${to_minutes(duration)} minutes`; + var duration_dom = (talk) => { + return html`${to_minutes(talk.duration)} minutes`; }; var meta_here_dom = (schedule, time) => { let inner = html`${schedule.map((talk) => html` -
+
${speaker_dom(talk)}
${talk.title}
- Starting at ${talk.start} - ${duration_dom(talk.duration)} + ${starting_dom(talk, time)} + ${duration_dom(talk)}
`)}`; @@ -193,17 +234,8 @@ }); return inner; }; - var talk_day = (talk) => { - const lut = { - 1: "I", - 2: "II", - 3: "III", - 4: "IV" - }; - return lut[talk.day]; - }; var talk_day_dom = (talk) => html`Day ${talk_day(talk)}`; - var highlight_class = (talk) => is_own_talk(talk) === true ? "item-highlight" : ""; + var highlight_class = (talk) => is_own_talk(talk) === true ? "highlight" : ""; var do_not_record_dom = (talk) => { let icon = "fa-microphone-slash"; let inner; @@ -217,7 +249,7 @@ var list_all_dom = (schedule, time) => { let inner = html` ${schedule.map((talk) => html` -
+
${talk.title}
@@ -230,41 +262,71 @@
`)}`; return inner; }; + var next_up_here_dom = (talks, time) => { + let inner; + if (talks.length > 0) { + inner = html` +
+
Next Up Here
+
${meta_here_dom(talks, time)}
+
`; + } else { + inner = html` +
+
Next Up Here
+
`; + } + return inner; + }; + var next_up_abstract_dom = (talks, time) => { + let inner; + if (talks.length > 0) { + inner = html` +
+
Abstract
+
${abstract_here_dom(talks)}
+
`; + } else { + inner = html``; + } + return inner; + }; + var next_up_list_all_dom = (talks, time) => { + let inner; + if (talks.length > 0) { + inner = html` +
+
Next Up at rC3
+
${list_all_dom(talks, time)}
+
`; + } else { + inner = html` +
+
Next Up at rC3
+
`; + } + return inner; + }; var schedule_dom = (schedule, time) => { - const here_number_events = 1; - const all_number_events = 7; - let allTalks = schedule.slice(0, all_number_events); + let allTalks = schedule.slice(0, number_events_all); let nextTalkHere = schedule.filter(is_own_talk).slice(0, 1); - let nextHereMetaDom = meta_here_dom(nextTalkHere, time); - let nextHereAbstractDom = abstract_here_dom(nextTalkHere); - let nextAllMetaDom = list_all_dom(allTalks, time); - let inner = html` + return html`
-
-
Next Up Here
-
${nextHereMetaDom}
-
-
-
Abstract
-
${nextHereAbstractDom}
-
+ ${next_up_here_dom(nextTalkHere, time)} + ${next_up_abstract_dom(nextTalkHere, time)}
-
-
Next Up at rC3
-
${nextAllMetaDom}
-
+ ${next_up_list_all_dom(allTalks, time)}
`; - return inner; }; var music_changed = (current, time) => time - current.since <= musicAge; var changed_music_class = (current, time) => music_changed(current, time) ? "changed" : ""; var music_playing_now_dom = (music, time) => { - let inner = html` + return html`
${music.map((current) => html`
@@ -284,7 +346,6 @@
`)}
`; - return inner; }; var post_time = (date) => moment(date).format("H:mm, D. MMMM YYYY"); var social_network_dom = (post) => { @@ -338,15 +399,11 @@ let schedule = data.schedule; let music = data.music; let postings = data.posts; - let scheduleDom = schedule_dom(schedule, time); - let hashtagDom = hashtag_dom(); - let musicDom = music_playing_now_dom(music, time); - let postingsDom = social_container_dom(postings); let inner = html` - ${scheduleDom} - ${hashtagDom} - ${musicDom} - ${postingsDom} + ${schedule_dom(schedule, time)} + ${hashtag_dom()} + ${music_playing_now_dom(music, time)} + ${social_container_dom(postings)} `; const anchorElId = "main"; const el = document.getElementById(anchorElId); @@ -435,10 +492,12 @@ } else { console.log("Your browser doesn't support web workers."); } + var fakeNow = 0; + var fakeTimeDelta = fakeNow - Date.now(); function update_screen() { let realTime = new Date(); console.log("Updating screen at at: " + realTime); - let now = Date.now(); + let now = Date.now() + fakeTimeDelta; console.log("Using 'now': " + now); update_main_slide({ schedule: future_events(scheduleData, now), @@ -448,7 +507,7 @@ } function main_loop() { update_screen(); - setTimeout(main_loop, 10 * 1e3); + setTimeout(main_loop, 5 * 1e3); } main_loop(); })(); diff --git a/public/main.min.818792ab7049f79cb65101e4c8c34d90986ecabe38b739d82ab5b7be19d1923e.css b/public/main.min.818792ab7049f79cb65101e4c8c34d90986ecabe38b739d82ab5b7be19d1923e.css deleted file mode 100644 index fde9a3a..0000000 --- a/public/main.min.818792ab7049f79cb65101e4c8c34d90986ecabe38b739d82ab5b7be19d1923e.css +++ /dev/null @@ -1 +0,0 @@ -@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}.left,.right{background-color:rgba(0,0,0,.8);box-shadow:0 0 12px 12px rgba(0,0,0,.8)}.schedule .left{position:absolute;top:30px;left:60px;width:900px;height:930px}.schedule .right{position:absolute;top:30px;right:60px;margin-top:200px;width:800px;height:730px}.schedule .panel{padding:20px 30px}.schedule .header{width:100%;max-height:100px;margin-bottom:10px;color:#bdc7cc;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}.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;border-bottom:4px solid #6fad1a;padding-left:20px;padding-top:10px;padding-bottom:15px}.meta .urgent .title{animation-name:leri-anim;animation-duration:12s;animation-iteration-count:infinite;animation-timing-function:linear}.meta .urgent .start{animation-name:popup-anim;animation-duration:6s;animation-iteration-count:infinite;animation-timing-function:linear}.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:20px;padding-top:5px;padding-bottom:8px}.abstract .text{display:-webkit-box;-webkit-line-clamp:5;-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}.list .item-highlight{border-left:6px solid #7fff00;background:linear-gradient(110deg,rgba(127,255,0,.6) 0%,rgba(127,255,0,.2) 85%,rgba(127,255,0,0) 100%)}.list .urgent{background-size:200% 200%;animation-name:popup-anim,urgent-anim;animation-duration:8s,6s;animation-iteration-count:infinite,infinite;animation-timing-function:linear,ease-in-out}.item .title{color:#fff;font-size:30px;overflow:hidden;text-overflow:ellipsis}.item .details{font-size:25px;color:#eee;white-space:normal}.item .day{position:absolute;left:150px}.item .do-not-record{position:absolute;left:250px;display:inline;color:crimson;vertical-align:bottom;text-shadow:1px 1px 2px #000}.item .stage{float:right;text-align:right;font-style:italic}.item .stage:before{padding-right:5px;content:"@"}@keyframes leri-anim{4%{transform:translateX(-5px)}8%{transform:translateX(5px)}12%{transform:translateX(-5px)}16%{transform:translateX(5px)}20%{transform:translateX(-5px)}24%{transform:translateX(5px)}0%,30%,100%{transform:translateX(0)}}@keyframes popup-anim{2%{transform:scale(1.02,1.02)}4%{transform:scale(.98,.98)}6%{transform:scale(1.01,1.01)}0%,7.5%,100%{transform:scale(1)}}@keyframes urgent-anim{0%{background-position:0 0}55%{background-position:90% 90%}100%{background-position:0 0}}.hashtags{position:absolute;left:60px;bottom:195px;width:900px;height:140px;padding:20px 30px}.hashtags .box{padding-left:10px;background:linear-gradient(110deg,rgba(95,124,125,.6) 0%,rgba(33,106,99,.2) 85%,rgba(77,120,18,0) 100%);border-left:6px solid #98adb0;text-shadow:0 0 6px #000;padding-top:10px;font-family:ibm plex sans;font-weight:300;font-size:25px;white-space:nowrap}.hashtags .box .text{padding-bottom:5px;margin:0}.hashtags .box .text .hashtag,.hashtags .box .text .irc{font-weight:500}.hashtags .box .header{font-weight:600}.music-box{position:absolute;bottom:140px;left:60px;width:860px;margin-left:20px;padding-left:10px;padding-top:5px;padding-right:10px;padding-bottom:5px;font-family:ibm plex sans;font-weight:300;font-size:25px;color:#eee}.music{padding-left:10px;background:linear-gradient(110deg,rgba(95,124,125,.6) 0%,rgba(33,106,99,.2) 85%,rgba(77,120,18,0) 100%);border-left:6px solid;animation-name:border-color-anim;animation-duration:6s;animation-direction:alternate;animation-iteration-count:infinite;animation-timing-function:ease-in-out;text-shadow:0 0 6px #000;white-space:nowrap;overflow:hidden}.note{animation-name:color-anim;animation-duration:6s;animation-direction:alternate;animation-iteration-count:infinite;animation-timing-function:ease-in-out}.music .line1{display:flex;justify-content:space-between}.music .line2{overflow:hidden;text-overflow:ellipsis;padding-bottom:5px}.music .header{font-weight:600;white-space:normal;margin-left:.5rem}.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}.music.changed .glyph{animation-name:wiggle-anim;animation-duration:.1s;animation-iteration-count:50;animation-direction:alternate;animation-timing-function:linear}.music.changed .license{animation-name:opacity-anim;animation-duration:3s;animation-iteration-count:1;animation-timing-function:easy-out}.music.changed .line2{animation-name:slidein-anim;animation-duration:3s;animation-iteration-count:1;animation-timing-function:easy-out}@keyframes color-anim{0%{color:#ccd7d8}50%{color:#98adb0}100%{color:#80bec8}}@keyframes border-color-anim{0%{border-color:#ccd7d8}50%{border-color:#98adb0}100%{border-color:#80bec8}}@keyframes wiggle-anim{0%{transform:rotate(10deg)}100%{transform:rotate(-10deg)}}@keyframes slidein-anim{0%{transform:translateX(800px);opacity:0}40%{opacity:.6}100%{transform:translateX(0);opacity:1}}@keyframes opacity-anim{0%{opacity:0}100%{opacity:1}}.bottom-bar{position:absolute;bottom:0;margin-bottom:8px;width:100%;height:90px;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}.post{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}.post .container{background:linear-gradient(5deg,rgba(95,124,125,.5) 0%,rgba(33,106,99,.4) 42%,rgba(77,120,18,0) 65%,rgba(77,120,18,0) 100%);white-space:nowrap;display:flex}.post .profile-image{height:72px;width:72px;margin-right:18px;vertical-align:middle}.post .meta{height:30px;padding-top:1px;font-size:18px;line-height:1.1}.post .source{padding-right:5px}.post .username{vertical-align:top;font-weight:500}.post .time{padding-left:35px;vertical-align:top}.post .text{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;max-width:1680px;font-size:24px;vertical-align:bottom;line-height:1.2;word-break:break-word;line-break:normal;overflow:hidden;text-overflow:ellipsis;white-space:normal} \ No newline at end of file diff --git a/public/main.min.b34cf8f32ebf8158101dc492d21641a7a52c484c65ce5c4bfbd0df55d3455d1d.css b/public/main.min.b34cf8f32ebf8158101dc492d21641a7a52c484c65ce5c4bfbd0df55d3455d1d.css new file mode 100644 index 0000000..2893327 --- /dev/null +++ b/public/main.min.b34cf8f32ebf8158101dc492d21641a7a52c484c65ce5c4bfbd0df55d3455d1d.css @@ -0,0 +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}.left,.right{background-color:rgba(0,0,0,.8);box-shadow:0 0 12px 12px rgba(0,0,0,.8)}.schedule .left{position:absolute;top:30px;left:60px;width:900px;height:930px}.schedule .right{position:absolute;top:30px;right:60px;margin-top:200px;width:800px;height:730px}.schedule .panel{padding:20px 30px}.schedule .header{width:100%;max-height:100px;margin-bottom:10px;color:#bdc7cc;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}.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;border-bottom:4px 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}.meta .urgent .title{animation-name:leri-anim;animation-duration:12s;animation-iteration-count:infinite;animation-timing-function:linear}.meta .urgent .start{animation-name:popup-anim;animation-duration:6s;animation-iteration-count:infinite;animation-timing-function:linear}.meta .stale .start{color:gray}.meta .stale .duration{display:none;color:gray}.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:20px;padding-top:5px;padding-bottom:8px}.abstract .text{display:-webkit-box;-webkit-line-clamp:5;-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}.list .highlight{border-left:6px solid #7fff00;background:linear-gradient(110deg,rgba(127,255,0,.6) 0%,rgba(127,255,0,.2) 85%,rgba(127,255,0,0) 100%)}.item .title{color:#fff;font-size:30px;overflow:hidden;text-overflow:ellipsis}.item .details{font-size:25px;color:#eee;white-space:normal}.item .day{position:relative;left:45px}.item .do-not-record{position:relative;left:80px;display:inline;color:crimson;vertical-align:bottom;text-shadow:1px 1px 2px #000}.item .stage{float:right;text-align:right;font-style:italic}.item .stage:before{padding-right:5px;content:"@"}.list .urgent{background-size:200% 200%;transform-origin:center;animation-name:popup-anim,urgent-anim;animation-duration:8s,6s;animation-iteration-count:infinite,infinite;animation-timing-function:linear,ease-in-out}.item.stale{border-left:6px solid #475337;background:linear-gradient(110deg,rgba(72,90,48,.6) 0%,rgba(72,90,48,.2) 85%,rgba(72,90,48,0) 100%)}.item.stale .details{color:gray}.item.stale .title{color:gray}.item.stale .do-not-record{color:gray}.list .lapse{animation-name:fadeout-anim;animation-duration:5s;animation-iteration-count:1;animation-timing-function:linear}@keyframes leri-anim{4%{transform:translateX(-5px)}8%{transform:translateX(5px)}12%{transform:translateX(-5px)}16%{transform:translateX(5px)}20%{transform:translateX(-5px)}24%{transform:translateX(5px)}0%,30%,100%{transform:translateX(0)}}@keyframes popup-anim{2%{transform:scale(1.02,1.02)}4%{transform:scale(.98,.98)}6%{transform:scale(1.01,1.01)}0%,7.5%,100%{transform:scale(1,1)}}@keyframes urgent-anim{0%{background-position:0 0}55%{background-position:90% 90%}100%{background-position:0 0}}@keyframes fadeout-anim{0%{opacity:100%}100%{opacity:0%}}.hashtags{position:absolute;left:60px;bottom:195px;width:900px;height:140px;padding:20px 30px}.hashtags .box{padding-left:10px;background:linear-gradient(110deg,rgba(95,124,125,.6) 0%,rgba(33,106,99,.2) 85%,rgba(77,120,18,0) 100%);border-left:6px solid #98adb0;text-shadow:0 0 6px #000;padding-top:10px;font-family:ibm plex sans;font-weight:300;font-size:25px;white-space:nowrap}.hashtags .box .text{padding-bottom:5px;margin:0}.hashtags .box .text .hashtag,.hashtags .box .text .irc{font-weight:500}.hashtags .box .header{font-weight:600}.music-box{position:absolute;bottom:140px;left:60px;width:860px;margin-left:20px;padding-left:10px;padding-top:5px;padding-right:10px;padding-bottom:5px;font-family:ibm plex sans;font-weight:300;font-size:25px;color:#eee}.music{padding-left:10px;background:linear-gradient(110deg,rgba(95,124,125,.6) 0%,rgba(33,106,99,.2) 85%,rgba(77,120,18,0) 100%);border-left:6px solid;animation-name:border-color-anim;animation-duration:6s;animation-direction:alternate;animation-iteration-count:infinite;animation-timing-function:ease-in-out;text-shadow:0 0 6px #000;white-space:nowrap;overflow:hidden}.note{animation-name:color-anim;animation-duration:6s;animation-direction:alternate;animation-iteration-count:infinite;animation-timing-function:ease-in-out}.music .line1{display:flex;justify-content:space-between}.music .line2{overflow:hidden;text-overflow:ellipsis;padding-bottom:5px}.music .header{font-weight:600;white-space:normal;margin-left:.5rem}.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}.music.changed .glyph{animation-name:wiggle-anim;animation-duration:.1s;animation-iteration-count:50;animation-direction:alternate;animation-timing-function:linear}.music.changed .license{animation-name:opacity-anim;animation-duration:3s;animation-iteration-count:1;animation-timing-function:easy-out}.music.changed .line2{animation-name:slidein-anim;animation-duration:3s;animation-iteration-count:1;animation-timing-function:easy-out}@keyframes color-anim{0%{color:#ccd7d8}50%{color:#98adb0}100%{color:#80bec8}}@keyframes border-color-anim{0%{border-color:#ccd7d8}50%{border-color:#98adb0}100%{border-color:#80bec8}}@keyframes wiggle-anim{0%{transform:rotate(10deg)}100%{transform:rotate(-10deg)}}@keyframes slidein-anim{0%{transform:translateX(800px);opacity:0}40%{opacity:.6}100%{transform:translateX(0);opacity:1}}@keyframes opacity-anim{0%{opacity:0}100%{opacity:1}}.bottom-bar{position:absolute;bottom:0;margin-bottom:8px;width:100%;height:90px;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}.post{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}.post .container{background:linear-gradient(5deg,rgba(95,124,125,.5) 0%,rgba(33,106,99,.4) 42%,rgba(77,120,18,0) 65%,rgba(77,120,18,0) 100%);white-space:nowrap;display:flex}.post .profile-image{height:72px;width:72px;margin-right:18px;vertical-align:middle}.post .meta{height:30px;padding-top:1px;font-size:18px;line-height:1.1}.post .source{padding-right:5px}.post .username{vertical-align:top;font-weight:500}.post .time{padding-left:35px;vertical-align:top}.post .text{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;max-width:1680px;font-size:24px;vertical-align:bottom;line-height:1.2;word-break:break-word;line-break:normal;overflow:hidden;text-overflow:ellipsis;white-space:normal} \ No newline at end of file diff --git a/public/music/index.html b/public/music/index.html index e426c14..6728478 100644 --- a/public/music/index.html +++ b/public/music/index.html @@ -5,7 +5,7 @@ rC3 NOWHERE - +
@@ -13,6 +13,6 @@ - + \ No newline at end of file