glowers-radio/generate.js
2022-11-17 18:23:34 +00:00

459 lines
21 KiB
JavaScript
Executable File
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

#!/usr/bin/env node
"use-strict";
const fs = require("fs")
const objSerialize = (obj, keys, cb) => {
let a = Object.create(null)
for (const key of keys)
a[key] = obj[key]
if (cb)
return cb(a)
return a
}
const objBulkSet = (obj, target, pairs) => {
if (typeof obj[target] != "object")
obj[target] = Object.create(null)
for (const key in pairs)
if (pairs[key] != undefined)
obj[target][key] = pairs[key]
}
const RadioItem = function (id) {
this.id = id
this.metadata = undefined
this.tags = undefined
this.sources = []
return this
}
RadioItem.new = id => new RadioItem(id)
RadioItem.prototype.setMetadata = function (title, artist, href) { objBulkSet(this, "metadata", { title, artist, href }); return this }
RadioItem.prototype.addTags = function (tags) { this.tags = this.tags ? [ ...(this.tags), ...tags ] : tags; return this }
RadioItem.prototype.setTags = function (tags) { this.tags = tags; return this }
RadioItem.prototype.addSource = function (source) { this.sources.push(source); return this }
RadioItem.prototype.setNiggadata = function (nigid, nigkey) {
this.setMetadata()
this.metadata._nigid = nigid
this.metadata._nigkey = nigkey
this.addTags([ "niggers" ])
//.setThumbnailType(EThumbnailType.STRETCH))
return this
}
RadioItem.prototype.serialize = function () {
return objSerialize(this, [
"id",
"tags",
"metadata"
], obj => ({ ...obj, "sources": this.sources.map(source => source.serialize()) }))
}
const EDisplayType = {
"NATIVE": -1,
"LANDSCAPE": 0,
"SQUARE": 1,
"STRETCH": 2
}
const RadioSource = function (type) {
this.type = type
this.url = null
this.display_type = type.startsWith("video/") ? EDisplayType.NATIVE : EDisplayType.SQUARE
this.thumbnail_url = undefined
return this
}
RadioSource.new = type => new RadioSource(type)
RadioSource.prototype.setDisplayType = function (display_type) { this.display_type = display_type; return this }
RadioSource.prototype.setURL = function (uri) { this.url = uri; return this }
RadioSource.prototype.setThumbnailURL = function (uri, type, size) {
this.thumbnail_url = uri
this.thumbnail_type = type
this.thumbnail_size = size ? size.replace(/x/g, "×") : undefined
return this
}
RadioSource.prototype.serialize = function () {
return objSerialize(this, [
"type",
"url",
"display_type",
"thumbnail_url",
"thumbnail_type",
"thumbnail_size"
])
}
const mediaItems = [
RadioItem.new("nightinjunitaki")
.setMetadata("Night In Junitaki", "Wünsche")
.addSource(RadioSource.new("audio/mp3")
.setURL("x-gwm://wiki/night_in_junitaki_-_waves.mp3")
.setThumbnailURL("mxc://glowers.club/HCiiIVMOekjPZtiEaexDdUsD", "image/jpg", "400x400")),
RadioItem.new("goodbyeautumn")
.setMetadata("Goodbye Autumn", "Tomppabeats")
.addSource(RadioSource.new("audio/mp3")
.setURL("x-gwm://wiki/goodbye_autumn.mp3")
.setThumbnailURL("mxc://glowers.club/HCiiIVMOekjPZtiEaexDdUsD", "image/jpg", "400x400")),
RadioItem.new("balmy")
.setMetadata("Balmy", "90sFlav")
.addSource(RadioSource.new("audio/mp3")
.setURL("x-gwm://wiki/balmy90sblav.mp3")
.setThumbnailURL("mxc://glowers.club/kDNCBjvQxfPvtJVmfEMmcdov", "image/jpg", "999x999")),
RadioItem.new("springletter")
.setMetadata("Spring Letter", "90sFlav")
.addSource(RadioSource.new("audio/mp3")
.setURL("x-gwm://wiki/spring_letter.mp3")
.setThumbnailURL("mxc://glowers.club/wTLwzrymoDeNGdJLEpDoEBtZ", "image/jpg", "500x500")),
RadioItem.new("weep")
.setMetadata("Weep", "90sFlav")
.addSource(RadioSource.new("audio/mp3")
.setURL("x-gwm://wiki/weep.mp3")
.setThumbnailURL("mxc://glowers.club/jIkXGOSECsPPyJTvgrxPhRoq", "image/jpg", "500x500")),
RadioItem.new("whenimetyou")
.setMetadata("When I Met You", "90sFlav")
.addSource(RadioSource.new("audio/mp3")
.setURL("x-gwm://wiki/when_i_met_you.mp3")
.setThumbnailURL("mxc://glowers.club/ntDKDFtqeQCmIVoRtzRQdvEC", "image/jpg", "500x500")),
RadioItem.new("sevenofnine")
.setMetadata("Seven of Nine", "90sFlav")
.addSource(RadioSource.new("audio/mp3")
.setURL("x-gwm://wiki/seven_of_nine.mp3")
.setThumbnailURL("mxc://glowers.club/kDNCBjvQxfPvtJVmfEMmcdov", "image/jpg", "999x999")),
RadioItem.new("callme")
.setMetadata("Call Me", "90sFlav")
.addSource(RadioSource.new("audio/mp3")
.setURL("x-gwm://wiki/call_me.mp3")
.setThumbnailURL("mxc://glowers.club/kDNCBjvQxfPvtJVmfEMmcdov", "image/jpg", "999x999")),
RadioItem.new("midnightsession")
.setMetadata("Midnight Session", "90sFlav")
.addSource(RadioSource.new("audio/mp3")
.setURL("x-gwm://wiki/полуночная_сессия.mp3")
.setThumbnailURL("mxc://glowers.club/pLexnITqTOhJUXBOKtDAiZzv", "image/jpg", "288x288")),
RadioItem.new("southdakota")
.setMetadata("South Dakota", "Keeloh", "https://soundcloud.com/keelohproducer/southdakota")
.addSource(RadioSource.new("audio/mp3")
.setURL("x-gwm://wiki/southdakota.mp3")
.setThumbnailURL("mxc://glowers.club/FJfFhscJavurBvoEuRbykpmM", "image/jpg", "500x500")),
RadioItem.new("dobson")
.addSource(RadioSource.new("video/mp4")
.setURL("mxc://glowers.club/mRtnfcoHYkyAOXSkYvrnbZgX")
.setThumbnailURL("mxc://glowers.club/eHKVfIITgdRKERhVOPSTDQAc", "image/jpg", "432x426")),
RadioItem.new("poljacked")
.addSource(RadioSource.new("video/webm")
.setURL("mxc://glowers.club/xnYQdrroEheIZBfigHGZferu")
.setThumbnailURL("mxc://glowers.club/BczfFtojBhwMxTNjoZfhemam", "image/jpg", "638x360")),
RadioItem.new("femalecops")
.setTags([ "misc" ])
.addSource(RadioSource.new("video/webm")
.setURL("mxc://glowers.club/RYjIfTiZKSKBdYBvjGtyBILa")
.setThumbnailURL("mxc://glowers.club/BVQhXkWSYbvFcSerzVZFgfrn", "image/jpg", "600x600")),
RadioItem.new("autisticclowns")
.setTags([ "misc" ])
.addSource(RadioSource.new("video/webm")
.setURL("mxc://glowers.club/WqYtubpqVplLjSxxmaxNeQir")
.setThumbnailURL("mxc://glowers.club/esDPBgpoTvTtqekHAQJRwqtK", "image/jpg", "480x272")),
RadioItem.new("ifuckinglovescience")
.setMetadata("I FUCKING LOVE SCIENCE", "Hank Green")
.addSource(RadioSource.new("video/webm")
.setURL("mxc://glowers.club/abgQasVrghOSkpRZTIfHMFyF")
.setThumbnailURL("mxc://glowers.club/IhivpcDssjnjSDHBdMEGGwVp", "image/jpg", "320x180"))
.addSource(RadioSource.new("video/mp4")
.setURL("mxc://glowers.club/ieQlfAlPPGeXLsvevolcQKqO")
.setThumbnailURL("mxc://glowers.club/IhivpcDssjnjSDHBdMEGGwVp", "image/jpg", "320x180")),
RadioItem.new("dootnukem")
.setMetadata("Grabbag", "Lee Jackson")
.addSource(RadioSource.new("audio/mp3")
.setURL("mxc://glowers.club/xsuBJwyAUwuDoASbmqjZWrLO")
.setThumbnailURL("mxc://glowers.club/ymWgXucYRzhsgdiecjBkFvmz", "image/jpg", "1600x1800")
.setDisplayType(EDisplayType.STRETCH)),
RadioItem.new("hyperborea")
.setMetadata("Somebody That I Used to Know", "VelvetCasca")
.addSource(RadioSource.new("video/mp4")
.setURL("mxc://glowers.club/egAyPBuGNFPYyvnMWMxySLiX")
.setThumbnailURL("mxc://glowers.club/dOxJvUWRlGqRRxJdpDRZyeko", "image/jpg", "640x360")),
// TODO: Add metadata
RadioItem.new("feizhou")
.setMetadata("Without the Communist Party, There Would Be No New China", "Brother Hao", "https://youtu.be/5tCMI0uKbBE")
.addSource(RadioSource.new("video/mp4")
.setURL("mxc://glowers.club/fVKJZgWpIHRmilhZLboFXOIK")
.setThumbnailURL("mxc://glowers.club/EuYQZnqLjRGPMocgqGqtKFpJ", "image/jpg", "366x240"))
.addSource(RadioSource.new("video/webm")
.setURL("mxc://glowers.club/EVRGpqeefZdsjVawOvSkOdvZ")
.setThumbnailURL("mxc://glowers.club/GywrCPMpcpsLFJQAuYoZRuzq", "image/jpg", "366x240")),
RadioItem.new("breathe")
.setMetadata("Breathe (in the Air)", "Pink Floyd")
.addSource(RadioSource.new("video/webm")
.setURL("mxc://glowers.club/HAGTNySLRemaDfjZMSmpktDj")
.setThumbnailURL("mxc://glowers.club/KytvUDmLWCFKQWwHemdDTksd", "image/jpg", "640x360")),
RadioItem.new("fuckjuice")
.setMetadata("Fuck Jannies and Fuck Juice", "The Crystal Crypt")
.addSource(RadioSource.new("audio/mp3")
.setURL("mxc://glowers.club/bxMoRJmYFteVNNntNhqrniNJ")
.setThumbnailURL("mxc://glowers.club/YgeFvRPLguZOCGtUJFJednNj", "image/jpg", "276x240")),
RadioItem.new("onegame")
.setMetadata("ONE GAME", "Chris Voiceman")
.addSource(RadioSource.new("audio/mp3")
.setURL("mxc://glowers.club/iejQiyaVtnqhuSSCuXqviAIN")
.setThumbnailURL("mxc://glowers.club/bZonXMZjhadXyazpKscvRBiP", "image/jpg", "255x255")),
RadioItem.new("imaginebeingdruckmann")
.setMetadata("Imagine Being Druckmann", "Chris Voiceman")
.addSource(RadioSource.new("audio/mp3")
.setURL("mxc://glowers.club/wRsCVvtUiLzFnDjwwgkCnXzN")
.setThumbnailURL("mxc://glowers.club/ipWDVreHeWKOqefUBuvyFxjj", "image/jpg", "255x255")),
RadioItem.new("copeacabana")
.setMetadata("Cope-a-Cabana", "Chris Voiceman")
.addSource(RadioSource.new("audio/mp3")
.setURL("mxc://glowers.club/zEmMFUyaIBmuqAeogVZAMrmO")
.setThumbnailURL("mxc://glowers.club/WBhXYzFgTyMVTTEWKwzDfsgF", "image/jpg", "512x512")),
RadioItem.new("jihad")
.setMetadata("Heyaw Rijal Al Qassam", "Inshad Ensemble")
.addSource(RadioSource.new("audio/mp3")
.setURL("x-gwm://gnujihad.mp3")
.setThumbnailURL("x-gwm://chromiumjihad.gif", "image/gif", "420x236")),
RadioItem.new("thisistheinfowar")
.setMetadata("In the House, In a Heartbeat", "John Murphy")
.addSource(RadioSource.new("video/webm")
.setURL("mxc://glowers.club/znoCPlczXEXaEAVaiKHopnAV")
.setThumbnailURL("mxc://glowers.club/klXuXEwYNmYvsZhNOaXsDGJq", "image/jpg", "640x360")),
RadioItem.new("floyd")
.setMetadata("Paralyzer", "Finger Seven")
.setTags([ "misc" ])
.addSource(RadioSource.new("video/webm")
.setURL("mxc://glowers.club/IusHmBCOyJZFGHxsGjRkYqXf")
.setThumbnailURL("mxc://glowers.club/JjsGuJkEGAbudLaYvbAcxryQ", "image/jpg", "600x600")),
RadioItem.new("amd")
.setMetadata("Svetovid", "Jan Janko Močnik")
.setTags([ "misc" ])
.addSource(RadioSource.new("video/webm")
.setURL("mxc://glowers.club/RBvSWrEWiFtIuDUCoxZbCDTW")
.setThumbnailURL("mxc://glowers.club/GccquMupQGvDXYNeifUbxfuy", "image/jpg", "800x450")),
// TODO: Add thumbnail
RadioItem.new("israel")
.setMetadata("Shake Israel's Security", "National Radio")
.setTags([ "misc" ])
.addSource(RadioSource.new("audio/mp3")
.setURL("mxc://glowers.club/cJMVPnPpkSZFHIRHtzXRrvna")),
RadioItem.new("honorary")
.setMetadata("Erika", "Major Han Friess")
.addSource(RadioSource.new("video/webm")
.setURL("mxc://glowers.club/qMkbHHunSgPzkFpcoOuYeIuE")
.setThumbnailURL("mxc://glowers.club/aENkwWEKXIztqyBTJrBHCmRQ", "image/jpg", "800x450")),
RadioItem.new("bashar")
.setMetadata("God, Syria, and Bashar", "Rami Kazour")
.addSource(RadioSource.new("audio/mp3")
.setURL("mxc://glowers.club/egmaXMIHsNmblfDjyTGHdyas")
.setThumbnailURL("mxc://glowers.club/wpwHKoSFsxkNttaNyaNFzhMk", "image/jpg", "794x582")),
RadioItem.new("hatethem")
.setMetadata("Niggerz Bop", "Mike David", "https://youtu.be/VkcAXS9IKdc")
.setNiggadata("hatethem", "585a286c042231244a73b19e")
.addSource(RadioSource.new("audio/mp3")
.setURL("mxc://glowers.club/kYKpgAelvgRjDOVHJYKIYwdS")
.setThumbnailURL("mxc://glowers.club/IbShqtSWZksFbnOdFiVDFwqD", "image/jpg", "609x600"))
.addSource(RadioSource.new("audio/ogg")
.setURL("mxc://glowers.club/wdflEjUfqAkoyOyCDBXebDkw")
.setThumbnailURL("mxc://glowers.club/IbShqtSWZksFbnOdFiVDFwqD", "image/jpg", "609x600")),
RadioItem.new("wishmaster")
.setMetadata("Wishmaster", "Van Canto", "https://youtu.be/XCGQiGEYl4Y")
.setNiggadata("wishmaster", "570550d318f3c6dc5677b9f6")
.addSource(RadioSource.new("audio/mp3")
.setURL("mxc://glowers.club/TWmjcXRxqaVOfYnWPItiPAcd")
.setThumbnailURL("mxc://glowers.club/OKTbfAlagYXulaeBmgwkNwii", "image/jpg", "352x288")
.setDisplayType(EDisplayType.STRETCH))
.addSource(RadioSource.new("audio/ogg")
.setURL("mxc://glowers.club/uaxDKxCUtRVXMWAJgoKeiNcJ")
.setThumbnailURL("mxc://glowers.club/OKTbfAlagYXulaeBmgwkNwii", "image/jpg", "352x288")
.setDisplayType(EDisplayType.STRETCH)),
RadioItem.new("negromancy")
.setMetadata(undefined, undefined, "https://youtu.be/PxjA-jq1e7E")
.setTags([ "misc" ])
.addSource(RadioSource.new("video/webm")
.setURL("mxc://glowers.club/hRDjowdyaPRkdrRkHtCeqGug")
.setThumbnailURL("mxc://glowers.club/qAtvGoVERlYfFnNWeizoYiGP", "image/jpg", "640x360")),
RadioItem.new("crocodilechop")
.setMetadata("Crocodile Chop", "Neil Cicierega", "https://soundcloud.com/neilcic/crocodile-chop")
.setNiggadata("crocodilechop", "570550d318f3c6dc5677b9d1")
.addSource(RadioSource.new("audio/mp3")
.setURL("mxc://glowers.club/CIwbaGcPmsbqvZtdILxJxdHN")
.setThumbnailURL("mxc://glowers.club/ITHVCToEENFZhXGKaYuHplFV", "image/jpg", "500x500")),
RadioItem.new("tapeworms")
.setMetadata("I Staple Tapeworms on my Penis", "SillyJenny9000", "https://www.youtube.com/watch?v=v21iDJeWfVE")
.setNiggadata("tapeworms", "570550d318f3c6dc5677b9b0")
.addSource(RadioSource.new("audio/mp3")
.setURL("mxc://glowers.club/NnrVJeWXXzqEUDhDQazMDYrr")
.setThumbnailURL("mxc://glowers.club/jKmUwOLJMGPAhdJGusuWCJgQ", "image/jpg", "652x619")),
RadioItem.new("withoutcosby")
.setMetadata("without cosby", "bong iguana", "https://soundcloud.com/bong-iguana/without-cosby")
.setNiggadata("withoutcosby", "570550d318f3c6dc5677b9e9")
.addSource(RadioSource.new("audio/mp3")
.setURL("mxc://glowers.club/ERjkVBvKLvTIBEhOsEkWHENM")
.setThumbnailURL("mxc://glowers.club/xgoxdfvMRtmobnPMTrdqsQic", "image/jpg", "500x500")),
RadioItem.new("niggatorial")
.setMetadata("I'm The 2007 YouTube Tutorial", "▲A▲", "https://soundcloud.com/kraiqyttyj/im-the-2007-youtube-tutorial")
.setNiggadata("tutorial", "570550d318f3c6dc5677b9d7")
.addSource(RadioSource.new("audio/mp3")
.setURL("mxc://glowers.club/XZGliHHOkhcxCSUxKoIkgUlI")
.setThumbnailURL("mxc://glowers.club/nAaKRXuNBjltAYJbsLnjGusH", "image/jpg", "899x715")),
RadioItem.new("imposterd")
.setMetadata("Among Us Eurobeat Remix", "maki ligon", "https://soundcloud.com/maki-ligon-deez-nutz/among-us-drip-eurobeat-remix")
.setTags([ "sus" ])
.addSource(RadioSource.new("audio/mp3")
.setURL("x-gwm://include/imposterd.mp3")
.setThumbnailURL("x-gwm://include/crewmate.gif", "image/gif", "128x108")),
RadioItem.new("dripmachine")
.setMetadata("Amogus Drip Machine", "maki ligon", "https://soundcloud.com/maki-ligon-deez-nutz/amogus-drip-machine")
.setTags([ "sus" ])
.addSource(RadioSource.new("audio/mp3")
.setURL("mxc://glowers.club/DyboACFryZTCDeIgHtcRaBpL")
.setThumbnailURL("mxc://glowers.club/VFehbVZaCVcNhQTYWuWRYTiM", "image/jpg", "500x500")),
RadioItem.new("loneimposter")
.setMetadata("Lone Impostor", "maki ligon", "https://www.youtube.com/watch?v=QbIckU4sXBM")
.setTags([ "sus" ])
.addSource(RadioSource.new("audio/mp3")
.setURL("mxc://glowers.club/oswdiINtTUUbQYEMEKpVmsHN")
.setThumbnailURL("mxc://glowers.club/jYlptPwURJXVMBNivxlBFPuP", "image/jpg", "1440x1440")),
RadioItem.new("amogusdrip")
.setMetadata("Among Us Drip Theme Song", "Leonz", "https://youtu.be/grd-K33tOSM")
.setTags([ "sus" ])
.addSource(RadioSource.new("audio/mp3")
.setURL("mxc://glowers.club/xQHxUgpRUMtIkiBaszXiGAvh")
.setThumbnailURL("mxc://glowers.club/erMHzidVOoqoWFXIxXAcozqW", "image/jpg", "512x512")),
RadioItem.new("crewmate")
.setMetadata("Among Us (Lofi Hip Hop Remix)", "Leonz", "https://youtu.be/gU39w8s54_Q")
.setTags([ "sus" ])
.addSource(RadioSource.new("audio/mp3")
.setURL("mxc://glowers.club/txMHzslGxRyDmNVsUCObJRzc")
.setThumbnailURL("mxc://glowers.club/PfEBpatFHatQubohkgQThOor", "image/jpg", "632x632")),
RadioItem.new("GETOUTOFMYHEAD")
.setMetadata("GETOUTOFMYHEAD", "placeboing", "https://youtu.be/Xnv38FnLkbM")
.setTags([ "sus" ])
.addSource(RadioSource.new("video/mp4")
.setURL("mxc://glowers.club/sEtheeOyZlztUtQuHOzOJpOk")
.setThumbnailURL("mxc://glowers.club/bJveZSEIXFsnEKdjDvwmmENo", "image/jpg", "800x450")),
RadioItem.new("gay")
.setMetadata("I Am Gay", "Holland Boys", "https://youtu.be/cZs_nP1WufE")
.setTags([ "gay" ])
.addSource(RadioSource.new("audio/mp3")
.setURL("mxc://glowers.club/FAaatrvlEjJFljvNHhDhcNGl")
.setThumbnailURL("mxc://glowers.club/KrefLQCybeCNwLIFZwzWVolF", "image/png", "489x512")),
RadioItem.new("floydtrix")
.setMetadata("Clubbed to Death", "Rob Dougan", "https://youtu.be/pFS4zYWxzNA")
.addSource(RadioSource.new("audio/mp3")
.setURL("mxc://glowers.club/YUqRzRddNWuXQaAlPPMpwvse")
.setThumbnailURL("mxc://glowers.club/mFyOeCDaBRhxZCXeeMxDmZhD", "image/jpg", "588x634")),
RadioItem.new("hotline")
.setMetadata("Gangster Party Line", "Brent Weinbach", "https://youtu.be/Cx1J2CzNnS8")
.setNiggadata("hotline", undefined)
.addTags([ "misc" ])
.addSource(RadioSource.new("video/mp4")
.setURL("mxc://glowers.club/gnZElBwskTnBXkeZPiINVtSB")
.setThumbnailURL("mxc://glowers.club/iPoGcvVbhmElZgaZuEdNQDBJ", "image/jpg", "480x356")),
RadioItem.new("bldm")
.setMetadata("Black Lives (Don't) Matter", "Moonman")
.setTags([ "moonman" ])
.addSource(RadioSource.new("audio/mp3")
.setURL("mxc://glowers.club/OXoYKzSBuKWHXcHDzZIaMfja")
.setThumbnailURL("mxc://glowers.club/SYLXjGHjuXzBnReqrfoRnuhg", "image/jpg", "1024x966")),
RadioItem.new("amogusfloyd")
.setMetadata(undefined, undefined, "https://www.bitchute.com/video/PJXAu4xA4SUt/")
.setTags([ "misc" ])
.addSource(RadioSource.new("audio/mp3")
.setURL("mxc://glowers.club/SzqNmhQOxaReaTmOegUItcHY")
.setThumbnailURL("mxc://glowers.club/aHWNIqMTUjXZRGZUqZCuOgbi", "image/jpg", "898x480")
.setDisplayType(EDisplayType.LANDSCAPE)),
RadioItem.new("whenblackissus")
.setMetadata("Among Us theme song but it's in the style of Metallica's Black Album", "rex", "https://youtu.be/tA2Sr6GgbWo")
.setTags([ "sus" ])
.addSource(RadioSource.new("audio/mp3")
.setURL("mxc://glowers.club/VDXDeYltzQOhTChQtmsZaybu")
.setThumbnailURL("mxc://glowers.club/JAWtHKTIefGJzYadLOUofaWl", "image/jpg", "1080x1080")),
RadioItem.new("doot")
.setMetadata("Knee Deep in the Doot", "Nick Ino", "https://youtu.be/hzPpWInAiOg")
.addSource(RadioSource.new("audio/mp3")
.setURL("mxc://glowers.club/HvYByMgvFKONqIPmujCGaIIp")
.setThumbnailURL("mxc://glowers.club/dXELpQnsrrcwHuElSQHEPaRn", "image/jpg", "512x512")),
RadioItem.new("ywnbaw")
.setMetadata("Professor proves SICKS are the best weapons", "Shadiversity", "https://youtu.be/mPnscZFUuog")
.addTags([ "misc" ])
.addSource(RadioSource.new("video/mp4")
.setURL("mxc://glowers.club/qYCbeFblMeBUMDZEiuBWuFnX")
.setThumbnailURL("mxc://glowers.club/dDbuzhpAoewNQoKHCejeQqdk", "image/jpg", "800x450")),
RadioItem.new("feedandseed")
.addTags([ "misc" ])
.addSource(RadioSource.new("video/mp4")
.setURL("mxc://glowers.club/vsMepElCpNKFgLltczQRjxfJ")
.setThumbnailURL("mxc://glowers.club/zUXbbLOCCxZoZDRIwVCzHFYC", "image/jpg", "654x480")),
].filter(Boolean).map(a => a.serialize()).sort((a,b) => a.id.localeCompare(b.id))
for (const item of mediaItems) {
for (const index in item.sources) {
if (!item.sources[index].thumbnail_type)
console.warn(`W: No thumbnail type set for source ${index} of ${item.id}`)
if (!item.sources[index].thumbnail_size)
console.warn(`W: No thumbnail size set for source ${index} of ${item.id}`)
}
}
const radioObj = {
"version": 4,
"songs": mediaItems
}
fs.writeFileSync("./data/songs.json", JSON.stringify(radioObj))
//fs.writeFileSync("./data/songs.js", `glowersRadioSongsCallback(${JSON.stringify(radioObj)})`)
//fs.writeFileSync("./data/songs.html", `<html><script>glowersRadioSongsCallback(${JSON.stringify(radioObj)})</script></html>`)