forked from jon/glowers-radio
685 lines
33 KiB
JavaScript
Executable File
685 lines
33 KiB
JavaScript
Executable File
#!/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 notNullElse = (a, fallback) => a != null && a != undefined ? a : fallback
|
||
|
||
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, extra) { objBulkSet(this, "metadata", { title, artist, href, extra }); return this }
|
||
RadioItem.prototype.addTags = function (tags) { this.tags = this.tags ? [ ...(this.tags), ...tags ] : tags; return this }
|
||
RadioItem.prototype.addStyleTags = function (tags) { return this.addTags(tags.map(a => `radio-media-style-${a}`)); 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" ])
|
||
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.uri = null
|
||
this.previews = []
|
||
return this
|
||
}
|
||
|
||
RadioSource.new = type => new RadioSource(type)
|
||
RadioSource.prototype.setURI = function (uri) { this.uri = uri; return this }
|
||
RadioSource.prototype.addPreview = function (uri, type, size, displayType) {
|
||
this.previews.push(RadioPreview.new(uri, type, size, displayType))
|
||
return this
|
||
}
|
||
|
||
RadioSource.prototype.serialize = function () {
|
||
return objSerialize(this, [
|
||
"type",
|
||
"uri"
|
||
], obj => ({ ...obj, "previews": this.previews.map(preview => preview.serialize(obj)) }))
|
||
}
|
||
|
||
const RadioPreview = function (uri, type, size, displayType=null) {
|
||
this.uri = uri
|
||
this.type = type
|
||
this.size = size.replace(/x/g, "×")
|
||
this.display_type = displayType
|
||
return this
|
||
}
|
||
|
||
RadioPreview.new = (uri, type, size, displayType) => new RadioPreview(uri, type, size, displayType)
|
||
RadioPreview.prototype.serialize = function (radioSource) {
|
||
this.display_type = notNullElse(this.display_type, radioSource.type.startsWith("video/") ? EDisplayType.NATIVE : EDisplayType.SQUARE)
|
||
return objSerialize(this, [
|
||
"display_type",
|
||
"uri",
|
||
"type",
|
||
"size"
|
||
])
|
||
}
|
||
|
||
const mediaItems = [
|
||
|
||
RadioItem.new("nightinjunitaki")
|
||
.setMetadata("Night In Junitaki", "Wünsche")
|
||
.addTags([ "splash-song" ])
|
||
.addSource(RadioSource.new("audio/mp3")
|
||
.setURI("x-gwm://wiki/night_in_junitaki_-_waves.mp3")
|
||
.addPreview("mxc://glowers.club/HCiiIVMOekjPZtiEaexDdUsD", "image/jpg", "400x400")),
|
||
|
||
RadioItem.new("goodbyeautumn")
|
||
.setMetadata("Goodbye Autumn", "Tomppabeats")
|
||
.addTags([ "splash-song" ])
|
||
.addSource(RadioSource.new("audio/mp3")
|
||
.setURI("x-gwm://wiki/goodbye_autumn.mp3")
|
||
.addPreview("mxc://glowers.club/HCiiIVMOekjPZtiEaexDdUsD", "image/jpg", "400x400")),
|
||
|
||
RadioItem.new("balmy")
|
||
.setMetadata("Balmy", "90sFlav")
|
||
.addTags([ "splash-song" ])
|
||
.addSource(RadioSource.new("audio/mp3")
|
||
.setURI("x-gwm://wiki/balmy90sblav.mp3")
|
||
.addPreview("mxc://glowers.club/kDNCBjvQxfPvtJVmfEMmcdov", "image/jpg", "999x999")),
|
||
|
||
RadioItem.new("springletter")
|
||
.setMetadata("Spring Letter", "90sFlav")
|
||
.addTags([ "splash-song" ])
|
||
.addSource(RadioSource.new("audio/mp3")
|
||
.setURI("x-gwm://wiki/spring_letter.mp3")
|
||
.addPreview("mxc://glowers.club/wTLwzrymoDeNGdJLEpDoEBtZ", "image/jpg", "500x500")),
|
||
|
||
RadioItem.new("weep")
|
||
.setMetadata("Weep", "90sFlav")
|
||
.addTags([ "splash-song" ])
|
||
.addSource(RadioSource.new("audio/mp3")
|
||
.setURI("x-gwm://wiki/weep.mp3")
|
||
.addPreview("mxc://glowers.club/jIkXGOSECsPPyJTvgrxPhRoq", "image/jpg", "500x500")),
|
||
|
||
RadioItem.new("whenimetyou")
|
||
.setMetadata("When I Met You", "90sFlav")
|
||
.addTags([ "splash-song" ])
|
||
.addSource(RadioSource.new("audio/mp3")
|
||
.setURI("x-gwm://wiki/when_i_met_you.mp3")
|
||
.addPreview("mxc://glowers.club/ntDKDFtqeQCmIVoRtzRQdvEC", "image/jpg", "500x500")),
|
||
|
||
RadioItem.new("sevenofnine")
|
||
.setMetadata("Seven of Nine", "90sFlav")
|
||
.addTags([ "splash-song" ])
|
||
.addSource(RadioSource.new("audio/mp3")
|
||
.setURI("x-gwm://wiki/seven_of_nine.mp3")
|
||
.addPreview("mxc://glowers.club/kDNCBjvQxfPvtJVmfEMmcdov", "image/jpg", "999x999")),
|
||
|
||
RadioItem.new("callme")
|
||
.setMetadata("Call Me", "90sFlav")
|
||
.addTags([ "splash-song" ])
|
||
.addSource(RadioSource.new("audio/mp3")
|
||
.setURI("x-gwm://wiki/call_me.mp3")
|
||
.addPreview("mxc://glowers.club/kDNCBjvQxfPvtJVmfEMmcdov", "image/jpg", "999x999")),
|
||
|
||
RadioItem.new("midnightsession")
|
||
.setMetadata("Midnight Session", "90sFlav")
|
||
.addTags([ "splash-song" ])
|
||
.addSource(RadioSource.new("audio/mp3")
|
||
.setURI("x-gwm://wiki/полуночная_сессия.mp3")
|
||
.addPreview("mxc://glowers.club/pLexnITqTOhJUXBOKtDAiZzv", "image/jpg", "288x288")),
|
||
|
||
RadioItem.new("southdakota")
|
||
.setMetadata("South Dakota", "Keeloh", "https://soundcloud.com/keelohproducer/southdakota")
|
||
.addTags([ "splash-song" ])
|
||
.addSource(RadioSource.new("audio/mp3")
|
||
.setURI("x-gwm://wiki/southdakota.mp3")
|
||
.addPreview("mxc://glowers.club/FJfFhscJavurBvoEuRbykpmM", "image/jpg", "500x500")),
|
||
|
||
RadioItem.new("dobson")
|
||
.addSource(RadioSource.new("video/mp4")
|
||
.setURI("mxc://glowers.club/mRtnfcoHYkyAOXSkYvrnbZgX")
|
||
.addPreview("mxc://glowers.club/eHKVfIITgdRKERhVOPSTDQAc", "image/jpg", "432x426")),
|
||
|
||
// FIXME: Original source found, not remix source
|
||
RadioItem.new("poljacked")
|
||
.setMetadata("BLACK BLADE", "Seyit Akbas", "https://youtu.be/6RnNXLZ2rfw", "1.15%, pitched up")
|
||
.addSource(RadioSource.new("video/mp4")
|
||
.setURI("mxc://glowers.club/stlNnyEIUVGluyhpPSGhtjJg")
|
||
.addPreview("mxc://glowers.club/BczfFtojBhwMxTNjoZfhemam", "image/jpg", "638x360")
|
||
.addPreview("mxc://glowers.club/wVLvTOIodRqOcasDAFxkqHaG", "video/mp4", "358x360", EDisplayType.SQUARE)
|
||
.addPreview("mxc://glowers.club/EBQRprvJmkNfsZTzCzDkPVTv", "image/gif", "320x320", EDisplayType.SQUARE))
|
||
.addSource(RadioSource.new("video/webm")
|
||
.setURI("mxc://glowers.club/xnYQdrroEheIZBfigHGZferu")
|
||
.addPreview("mxc://glowers.club/BczfFtojBhwMxTNjoZfhemam", "image/jpg", "638x360")
|
||
.addPreview("mxc://glowers.club/wVLvTOIodRqOcasDAFxkqHaG", "video/mp4", "358x360", EDisplayType.SQUARE)
|
||
.addPreview("mxc://glowers.club/EBQRprvJmkNfsZTzCzDkPVTv", "image/gif", "320x320", EDisplayType.SQUARE)),
|
||
|
||
RadioItem.new("femalecops")
|
||
.addTags([ "misc" ])
|
||
.addSource(RadioSource.new("video/mp4")
|
||
.setURI("mxc://glowers.club/ZSyUyEGvOLOoUaqFVoCYPTif")
|
||
.addPreview("mxc://glowers.club/BVQhXkWSYbvFcSerzVZFgfrn", "image/jpg", "600x600"))
|
||
.addSource(RadioSource.new("video/webm")
|
||
.setURI("mxc://glowers.club/RYjIfTiZKSKBdYBvjGtyBILa")
|
||
.addPreview("mxc://glowers.club/BVQhXkWSYbvFcSerzVZFgfrn", "image/jpg", "600x600")),
|
||
|
||
RadioItem.new("autisticclowns")
|
||
.addTags([ "misc" ])
|
||
.addSource(RadioSource.new("video/mp4")
|
||
.setURI("mxc://glowers.club/fGszYTUkpyWsKuxphzJSfAZk")
|
||
.addPreview("mxc://glowers.club/esDPBgpoTvTtqekHAQJRwqtK", "image/jpg", "480x272"))
|
||
.addSource(RadioSource.new("video/webm")
|
||
.setURI("mxc://glowers.club/WqYtubpqVplLjSxxmaxNeQir")
|
||
.addPreview("mxc://glowers.club/esDPBgpoTvTtqekHAQJRwqtK", "image/jpg", "480x272")),
|
||
|
||
RadioItem.new("ifuckinglovescience")
|
||
.setMetadata("I FUCKING LOVE SCIENCE", "Hank Green")
|
||
.addSource(RadioSource.new("video/webm")
|
||
.setURI("mxc://glowers.club/abgQasVrghOSkpRZTIfHMFyF")
|
||
.addPreview("mxc://glowers.club/IhivpcDssjnjSDHBdMEGGwVp", "image/jpg", "320x180"))
|
||
.addSource(RadioSource.new("video/mp4")
|
||
.setURI("mxc://glowers.club/ieQlfAlPPGeXLsvevolcQKqO")
|
||
.addPreview("mxc://glowers.club/IhivpcDssjnjSDHBdMEGGwVp", "image/jpg", "320x180")),
|
||
|
||
RadioItem.new("dootnukem")
|
||
.setMetadata("Doot Nukem", "Sylva", "https://youtu.be/cHJQ6LqZ4ks")
|
||
.addSource(RadioSource.new("audio/mp3")
|
||
.setURI("mxc://glowers.club/xsuBJwyAUwuDoASbmqjZWrLO")
|
||
.addPreview("mxc://glowers.club/ymWgXucYRzhsgdiecjBkFvmz", "image/jpg", "1600x1800", EDisplayType.STRETCH)),
|
||
|
||
RadioItem.new("hyperborea")
|
||
.setMetadata("Somebody That I Used to Know", "VelvetCasca")
|
||
.addSource(RadioSource.new("video/mp4")
|
||
.setURI("mxc://glowers.club/egAyPBuGNFPYyvnMWMxySLiX")
|
||
.addPreview("mxc://glowers.club/dOxJvUWRlGqRRxJdpDRZyeko", "image/jpg", "640x360")),
|
||
|
||
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")
|
||
.setURI("mxc://glowers.club/fVKJZgWpIHRmilhZLboFXOIK")
|
||
.addPreview("mxc://glowers.club/EuYQZnqLjRGPMocgqGqtKFpJ", "image/jpg", "366x240"))
|
||
.addSource(RadioSource.new("video/webm")
|
||
.setURI("mxc://glowers.club/EVRGpqeefZdsjVawOvSkOdvZ")
|
||
.addPreview("mxc://glowers.club/GywrCPMpcpsLFJQAuYoZRuzq", "image/jpg", "366x240")),
|
||
|
||
RadioItem.new("breathe")
|
||
.setMetadata("Breathe (in the Air)", "Pink Floyd")
|
||
.addSource(RadioSource.new("video/mp4")
|
||
.setURI("mxc://glowers.club/MOyzIHtapiyrpxaYRoiQqMqf")
|
||
.addPreview("mxc://glowers.club/KytvUDmLWCFKQWwHemdDTksd", "image/jpg", "640x360"))
|
||
.addSource(RadioSource.new("video/webm")
|
||
.setURI("mxc://glowers.club/HAGTNySLRemaDfjZMSmpktDj")
|
||
.addPreview("mxc://glowers.club/KytvUDmLWCFKQWwHemdDTksd", "image/jpg", "640x360")),
|
||
|
||
RadioItem.new("fuckjuice")
|
||
.setMetadata("Fuck Jannies and Fuck Juice", "The Crystal Crypt")
|
||
.addSource(RadioSource.new("audio/mp3")
|
||
.setURI("mxc://glowers.club/bxMoRJmYFteVNNntNhqrniNJ")
|
||
.addPreview("mxc://glowers.club/YgeFvRPLguZOCGtUJFJednNj", "image/jpg", "276x240")),
|
||
|
||
RadioItem.new("onegame")
|
||
.setMetadata("ONE GAME", "Chris Voiceman")
|
||
.addSource(RadioSource.new("audio/mp3")
|
||
.setURI("mxc://glowers.club/iejQiyaVtnqhuSSCuXqviAIN")
|
||
.addPreview("mxc://glowers.club/bZonXMZjhadXyazpKscvRBiP", "image/jpg", "255x255")),
|
||
|
||
RadioItem.new("imaginebeingdruckmann")
|
||
.setMetadata("Imagine Being Druckmann", "Chris Voiceman")
|
||
.addSource(RadioSource.new("audio/mp3")
|
||
.setURI("mxc://glowers.club/wRsCVvtUiLzFnDjwwgkCnXzN")
|
||
.addPreview("mxc://glowers.club/ipWDVreHeWKOqefUBuvyFxjj", "image/jpg", "255x255")),
|
||
|
||
RadioItem.new("copeacabana")
|
||
.setMetadata("Cope-a-Cabana", "Chris Voiceman")
|
||
.addSource(RadioSource.new("audio/mp3")
|
||
.setURI("mxc://glowers.club/zEmMFUyaIBmuqAeogVZAMrmO")
|
||
.addPreview("mxc://glowers.club/WBhXYzFgTyMVTTEWKwzDfsgF", "image/jpg", "512x512")),
|
||
|
||
RadioItem.new("jihad")
|
||
.setMetadata("Heyaw Rijal Al Qassam", "Inshad Ensemble")
|
||
.addStyleTags([ "artwork-box-no-shadow" ])
|
||
.addSource(RadioSource.new("audio/mp3")
|
||
.setURI("x-gwm://gnujihad.mp3")
|
||
.addPreview("x-gwm://chromiumjihad.gif", "image/gif", "420x236")),
|
||
|
||
RadioItem.new("thisistheinfowar")
|
||
.setMetadata("In the House, In a Heartbeat", "John Murphy")
|
||
.addTags([ "metadata-prefer-id" ])
|
||
.addSource(RadioSource.new("video/mp4")
|
||
.setURI("mxc://glowers.club/HVZUugkUhbJEPDncuTpAnOfh")
|
||
.addPreview("mxc://glowers.club/klXuXEwYNmYvsZhNOaXsDGJq", "image/jpg", "640x360"))
|
||
.addSource(RadioSource.new("video/webm")
|
||
.setURI("mxc://glowers.club/znoCPlczXEXaEAVaiKHopnAV")
|
||
.addPreview("mxc://glowers.club/klXuXEwYNmYvsZhNOaXsDGJq", "image/jpg", "640x360")),
|
||
|
||
RadioItem.new("floyd")
|
||
.setMetadata("Paralyzer", "Finger Seven")
|
||
.addTags([ "misc" ])
|
||
.addSource(RadioSource.new("video/mp4")
|
||
.setURI("mxc://glowers.club/qtBuqQBqBrpyusCsWYXlgmtE")
|
||
.addPreview("mxc://glowers.club/JjsGuJkEGAbudLaYvbAcxryQ", "image/jpg", "600x600"))
|
||
.addSource(RadioSource.new("video/webm")
|
||
.setURI("mxc://glowers.club/IusHmBCOyJZFGHxsGjRkYqXf")
|
||
.addPreview("mxc://glowers.club/JjsGuJkEGAbudLaYvbAcxryQ", "image/jpg", "600x600")),
|
||
|
||
RadioItem.new("amd")
|
||
.setMetadata("Svetovid", "Jan Janko Močnik")
|
||
.addTags([ "misc" ])
|
||
.addSource(RadioSource.new("video/mp4")
|
||
.setURI("mxc://glowers.club/wgQPrdTCUUTnKgpnwDVlEakc")
|
||
.addPreview("mxc://glowers.club/GccquMupQGvDXYNeifUbxfuy", "image/jpg", "800x450"))
|
||
.addSource(RadioSource.new("video/webm")
|
||
.setURI("mxc://glowers.club/RBvSWrEWiFtIuDUCoxZbCDTW")
|
||
.addPreview("mxc://glowers.club/GccquMupQGvDXYNeifUbxfuy", "image/jpg", "800x450")),
|
||
|
||
// TODO: Add thumbnail
|
||
RadioItem.new("israel")
|
||
.setMetadata("Shake Israel's Security", "National Radio")
|
||
.addSource(RadioSource.new("audio/mp3")
|
||
.setURI("mxc://glowers.club/cJMVPnPpkSZFHIRHtzXRrvna")),
|
||
|
||
RadioItem.new("honorary")
|
||
.setMetadata("Erika", "Major Han Friess")
|
||
.addTags([ "metadata-prefer-id" ])
|
||
.addSource(RadioSource.new("video/mp4")
|
||
.setURI("mxc://glowers.club/cQgzwWXtxDSqqOlwGZYShVXS")
|
||
.addPreview("mxc://glowers.club/aENkwWEKXIztqyBTJrBHCmRQ", "image/jpg", "800x450"))
|
||
.addSource(RadioSource.new("video/webm")
|
||
.setURI("mxc://glowers.club/qMkbHHunSgPzkFpcoOuYeIuE")
|
||
.addPreview("mxc://glowers.club/aENkwWEKXIztqyBTJrBHCmRQ", "image/jpg", "800x450")),
|
||
|
||
RadioItem.new("bashar")
|
||
.setMetadata("God, Syria, and Bashar", "Rami Kazour")
|
||
.addSource(RadioSource.new("audio/mp3")
|
||
.setURI("mxc://glowers.club/egmaXMIHsNmblfDjyTGHdyas")
|
||
.addPreview("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")
|
||
.setURI("mxc://glowers.club/kYKpgAelvgRjDOVHJYKIYwdS")
|
||
.addPreview("mxc://glowers.club/IbShqtSWZksFbnOdFiVDFwqD", "image/jpg", "609x600"))
|
||
.addSource(RadioSource.new("audio/ogg")
|
||
.setURI("mxc://glowers.club/wdflEjUfqAkoyOyCDBXebDkw")
|
||
.addPreview("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")
|
||
.setURI("mxc://glowers.club/TWmjcXRxqaVOfYnWPItiPAcd")
|
||
.addPreview("mxc://glowers.club/OKTbfAlagYXulaeBmgwkNwii", "image/jpg", "352x288", EDisplayType.STRETCH))
|
||
.addSource(RadioSource.new("audio/ogg")
|
||
.setURI("mxc://glowers.club/uaxDKxCUtRVXMWAJgoKeiNcJ")
|
||
.addPreview("mxc://glowers.club/OKTbfAlagYXulaeBmgwkNwii", "image/jpg", "352x288", EDisplayType.STRETCH)),
|
||
|
||
RadioItem.new("negromancy")
|
||
.setMetadata(undefined, undefined, "https://youtu.be/PxjA-jq1e7E")
|
||
.addTags([ "misc" ])
|
||
.addSource(RadioSource.new("video/mp4")
|
||
.setURI("mxc://glowers.club/kYDmqwhymAidlTbdFHHliXrk")
|
||
.addPreview("mxc://glowers.club/qAtvGoVERlYfFnNWeizoYiGP", "image/jpg", "640x360"))
|
||
.addSource(RadioSource.new("video/webm")
|
||
.setURI("mxc://glowers.club/hRDjowdyaPRkdrRkHtCeqGug")
|
||
.addPreview("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")
|
||
.setURI("mxc://glowers.club/CIwbaGcPmsbqvZtdILxJxdHN")
|
||
.addPreview("mxc://glowers.club/ITHVCToEENFZhXGKaYuHplFV", "image/jpg", "500x500")),
|
||
|
||
RadioItem.new("tapeworms")
|
||
.setMetadata("I Staple Tapeworms on my Penis", "SillyJenny9000", "https://youtu.be/v21iDJeWfVE")
|
||
.setNiggadata("tapeworms", "570550d318f3c6dc5677b9b0")
|
||
.addSource(RadioSource.new("audio/mp3")
|
||
.setURI("mxc://glowers.club/NnrVJeWXXzqEUDhDQazMDYrr")
|
||
.addPreview("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")
|
||
.setURI("mxc://glowers.club/ERjkVBvKLvTIBEhOsEkWHENM")
|
||
.addPreview("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")
|
||
.addTags([ "metadata-prefer-id" ])
|
||
.addSource(RadioSource.new("audio/mp3")
|
||
.setURI("mxc://glowers.club/XZGliHHOkhcxCSUxKoIkgUlI")
|
||
.addPreview("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")
|
||
.addTags([ "splash-song", "sus" ])
|
||
.addStyleTags([ "background-noblur-nobgsize", "artwork-nobox", "artwork-box-no-shadow" ])
|
||
.addSource(RadioSource.new("audio/mp3")
|
||
.setURI("x-gwm://include/imposterd.mp3")
|
||
.addPreview("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")
|
||
.addTags([ "splash-song", "sus" ])
|
||
.addSource(RadioSource.new("audio/mp3")
|
||
.setURI("mxc://glowers.club/DyboACFryZTCDeIgHtcRaBpL")
|
||
.addPreview("mxc://glowers.club/VFehbVZaCVcNhQTYWuWRYTiM", "image/jpg", "500x500")),
|
||
|
||
RadioItem.new("loneimposter")
|
||
.setMetadata("Lone Impostor", "maki ligon", "https://youtu.be/QbIckU4sXBM")
|
||
.addTags([ "splash-song", "sus" ])
|
||
.addSource(RadioSource.new("audio/mp3")
|
||
.setURI("mxc://glowers.club/oswdiINtTUUbQYEMEKpVmsHN")
|
||
.addPreview("mxc://glowers.club/jYlptPwURJXVMBNivxlBFPuP", "image/jpg", "1440x1440")),
|
||
|
||
RadioItem.new("amogusdrip")
|
||
.setMetadata("Among Us Drip Theme Song", "Leonz", "https://youtu.be/grd-K33tOSM")
|
||
.addTags([ "splash-song", "sus" ])
|
||
.addSource(RadioSource.new("audio/mp3")
|
||
.setURI("mxc://glowers.club/xQHxUgpRUMtIkiBaszXiGAvh")
|
||
.addPreview("mxc://glowers.club/erMHzidVOoqoWFXIxXAcozqW", "image/jpg", "512x512")),
|
||
|
||
RadioItem.new("crewmate")
|
||
.setMetadata("Among Us (Lofi Hip Hop Remix)", "Leonz", "https://youtu.be/gU39w8s54_Q")
|
||
.addTags([ "splash-song", "sus" ])
|
||
.addSource(RadioSource.new("audio/mp3")
|
||
.setURI("mxc://glowers.club/txMHzslGxRyDmNVsUCObJRzc")
|
||
.addPreview("mxc://glowers.club/PfEBpatFHatQubohkgQThOor", "image/jpg", "632x632")),
|
||
|
||
RadioItem.new("GETOUTOFMYHEAD")
|
||
.setMetadata("GETOUTOFMYHEAD", "placeboing", "https://youtu.be/Xnv38FnLkbM")
|
||
.addTags([ "splash-song", "sus" ])
|
||
.addSource(RadioSource.new("video/mp4")
|
||
.setURI("mxc://glowers.club/sEtheeOyZlztUtQuHOzOJpOk")
|
||
.addPreview("mxc://glowers.club/bJveZSEIXFsnEKdjDvwmmENo", "image/jpg", "800x450")),
|
||
|
||
RadioItem.new("gay")
|
||
.setMetadata("I Am Gay", "Holland Boys", "https://youtu.be/cZs_nP1WufE")
|
||
.addTags([ "gay" ])
|
||
.addSource(RadioSource.new("audio/mp3")
|
||
.setURI("mxc://glowers.club/FAaatrvlEjJFljvNHhDhcNGl")
|
||
.addPreview("mxc://glowers.club/KrefLQCybeCNwLIFZwzWVolF", "image/png", "489x512")),
|
||
|
||
RadioItem.new("floydtrix")
|
||
.setMetadata("Clubbed to Death", "Rob Dougan", "https://youtu.be/pFS4zYWxzNA")
|
||
.addTags([ "metadata-prefer-id" ])
|
||
.addSource(RadioSource.new("audio/mp3")
|
||
.setURI("mxc://glowers.club/YUqRzRddNWuXQaAlPPMpwvse")
|
||
.addPreview("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")
|
||
.setURI("mxc://glowers.club/gnZElBwskTnBXkeZPiINVtSB")
|
||
.addPreview("mxc://glowers.club/iPoGcvVbhmElZgaZuEdNQDBJ", "image/jpg", "480x356")),
|
||
|
||
RadioItem.new("bldm")
|
||
.setMetadata("Black Lives (Don't) Matter", "Moonman")
|
||
.addTags([ "moonman" ])
|
||
.addSource(RadioSource.new("audio/mp3")
|
||
.setURI("mxc://glowers.club/OXoYKzSBuKWHXcHDzZIaMfja")
|
||
.addPreview("mxc://glowers.club/SYLXjGHjuXzBnReqrfoRnuhg", "image/jpg", "1024x966")),
|
||
|
||
RadioItem.new("amogusfloyd")
|
||
.setMetadata(undefined, undefined, "https://www.bitchute.com/video/PJXAu4xA4SUt/")
|
||
.addTags([ "misc" ])
|
||
.addSource(RadioSource.new("audio/mp3")
|
||
.setURI("mxc://glowers.club/SzqNmhQOxaReaTmOegUItcHY")
|
||
.addPreview("mxc://glowers.club/aHWNIqMTUjXZRGZUqZCuOgbi", "image/jpg", "898x480", 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")
|
||
.addTags([ "sus", "metadata-prefer-id" ])
|
||
.addSource(RadioSource.new("audio/mp3")
|
||
.setURI("mxc://glowers.club/VDXDeYltzQOhTChQtmsZaybu")
|
||
.addPreview("mxc://glowers.club/JAWtHKTIefGJzYadLOUofaWl", "image/jpg", "1080x1080")),
|
||
|
||
RadioItem.new("doot")
|
||
.setMetadata("Knee Deep in the Doot", "Nick Ino", "https://youtu.be/hzPpWInAiOg")
|
||
.addTags([ "metadata-prefer-id" ])
|
||
.addSource(RadioSource.new("audio/mp3")
|
||
.setURI("mxc://glowers.club/HvYByMgvFKONqIPmujCGaIIp")
|
||
.addPreview("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", "metadata-prefer-id" ])
|
||
.addSource(RadioSource.new("video/mp4")
|
||
.setURI("mxc://glowers.club/qYCbeFblMeBUMDZEiuBWuFnX")
|
||
.addPreview("mxc://glowers.club/dDbuzhpAoewNQoKHCejeQqdk", "image/jpg", "800x450")),
|
||
|
||
RadioItem.new("feedandseed")
|
||
.addTags([ "misc" ])
|
||
.addSource(RadioSource.new("video/mp4")
|
||
.setURI("mxc://glowers.club/vsMepElCpNKFgLltczQRjxfJ")
|
||
.addPreview("mxc://glowers.club/zUXbbLOCCxZoZDRIwVCzHFYC", "image/jpg", "654x480")),
|
||
|
||
RadioItem.new("yatta")
|
||
.setMetadata("YATTA!", "HAPPATAI!", "https://youtu.be/rW6M8D41ZWU")
|
||
.setNiggadata("yatta", "570550d318f3c6dc5677b9bc")
|
||
.addSource(RadioSource.new("audio/mp3")
|
||
.setURI("mxc://glowers.club/oKXrDvGUNQJWzBsmwYwjsCZs")
|
||
.addPreview("mxc://glowers.club/dBJtIlaEcsZoflXYqPnihooO", "image/jpg", "374x374")),
|
||
|
||
RadioItem.new("alexjones")
|
||
.setMetadata("Alex Jones Remix: Renai Circulation", "Triple-Q", "https://youtu.be/ODZE5peUfWQ")
|
||
.setNiggadata("alexjones", "5796ca3646f17bf005a01be3")
|
||
.addTags([ "metadata-prefer-id" ])
|
||
.addSource(RadioSource.new("video/mp4")
|
||
.setURI("mxc://glowers.club/vADMHcSVAzikHdjSRXKsmllx")
|
||
.addPreview("mxc://glowers.club/igLcLQjIYWSzTCRAPDMxSAmh", "image/jpg", "853x480")
|
||
.addPreview("mxc://glowers.club/dcqgSxtEyYBQNpYLfpXkxADL", "image/jpg", "500x500", EDisplayType.SQUARE)),
|
||
|
||
RadioItem.new("avemaria")
|
||
.setMetadata("Ave Maria", "Daniel Perret", "https://youtu.be/4swAeQGBvAs")
|
||
.addSource(RadioSource.new("audio/mp3")
|
||
.setURI("x-gwm://wiki/avemaria.mp3")
|
||
.addPreview("mxc://glowers.club/UvQPlQTYoDjufDtdjZnPShmm", "image/png", "546x546")),
|
||
|
||
RadioItem.new("thelinuxexperience")
|
||
.addTags([ "misc" ])
|
||
.addSource(RadioSource.new("video/mp4")
|
||
.setURI("mxc://glowers.club/kzIdHQbGtQIdEitOruQHrXnM")
|
||
.addPreview("mxc://glowers.club/wKPEYlKdaZiSdCDbImBInvxm", "image/jpg", "936x558")),
|
||
|
||
RadioItem.new("mywifesblackson")
|
||
.setMetadata("My Wife's Black Son", "Morrakiu", "https://youtu.be/7NpfbX5coqA")
|
||
.addSource(RadioSource.new("video/mp4")
|
||
.setURI("mxc://glowers.club/aJsmUUQuUDQMVbtKfagCjFQi")
|
||
.addPreview("mxc://glowers.club/JbyoUSTYQcQaLbEspdRcDhpM", "image/jpg", "936x558"))
|
||
.addSource(RadioSource.new("audio/mp3")
|
||
.setURI("mxc://glowers.club/aQgNmIbxNluQUxtMXBHMScQK")
|
||
.addPreview("mxc://glowers.club/yTuLtqURfBNcQdUOzDYrndAa", "image/jpg", "720x720", EDisplayType.SQUARE)),
|
||
|
||
RadioItem.new("papermoms")
|
||
.setMetadata("paper moms", "DOGGIFY", "https://youtu.be/J1rREd1Mx30")
|
||
.addSource(RadioSource.new("audio/mp3")
|
||
.setURI("mxc://glowers.club/roFLNfJtjRcySTTKorwTnUXE")
|
||
.addPreview("mxc://glowers.club/YOWZcLaAVpfhvbJWkPIviEJG", "image/jpg", "500x500")),
|
||
|
||
RadioItem.new("dngyamom")
|
||
.setMetadata("Dynamite by BTS but it's Doin' Your Mom", "DOGGIFY", "https://youtu.be/P5UHstVXfTo")
|
||
.addTags([ "metadata-prefer-id" ])
|
||
.addSource(RadioSource.new("audio/mp3")
|
||
.setURI("mxc://glowers.club/hYvOhMKYzPMDsFuxLAmRzgyt")
|
||
.addPreview("mxc://glowers.club/jJdYBFoiPzJIApBvxsPtgkiy", "image/jpg", "500x500")),
|
||
|
||
RadioItem.new("doinurmom")
|
||
.setMetadata("around your mom", "DOGGIFY", "https://youtu.be/HOZaPGzUVfE")
|
||
.addSource(RadioSource.new("audio/mp3")
|
||
.setURI("mxc://glowers.club/IDOxAAnfqKDqaPwRRHTOCfiG")
|
||
.addPreview("mxc://glowers.club/TrqWMwgxFtAZYkwmwzzAQzwa", "image/jpg", "500x500")),
|
||
|
||
RadioItem.new("morshufugue")
|
||
.setMetadata("Morshu Fugue", "DOGGIFY", "https://youtu.be/jxEA1rdQacQ")
|
||
.addSource(RadioSource.new("audio/mp3")
|
||
.setURI("mxc://glowers.club/zPHRyVPopUarJWZrZVdKRZfu")
|
||
.addPreview("mxc://glowers.club/aaRfbfVYHCmYGzGIGMpGOFvJ", "image/jpg", "500x500")),
|
||
|
||
RadioItem.new("letsgetittoya")
|
||
.setMetadata("Let's Get It To Ya", "DOGGIFY", "https://youtu.be/04f5Kb2iznA")
|
||
.addSource(RadioSource.new("audio/mp3")
|
||
.setURI("mxc://glowers.club/rWlzEKkPIxxpkRPDnouLijPm")
|
||
.addPreview("mxc://glowers.club/WFtHpbtgVSNjqnfwZpvwaPgo", "image/jpg", "500x500")),
|
||
|
||
RadioItem.new("indialexjones")
|
||
.setMetadata("INDIALEX JONES", "LENNOZ", "https://youtu.be/Vhzzt4SK7zw")
|
||
.addSource(RadioSource.new("video/mp4")
|
||
.setURI("mxc://glowers.club/abqGBuacMfwsfTBBONIyPpGt")
|
||
.addPreview("mxc://glowers.club/ScZuHjnVjYmIWYTuoTMsYnPh", "image/jpg", "853x480")
|
||
.addPreview("mxc://glowers.club/GiGkhVoVXtPHWYXrTICNDOho", "image/jpg", "500x500", EDisplayType.SQUARE))
|
||
.addSource(RadioSource.new("audio/mp3")
|
||
.setURI("mxc://glowers.club/xYyAOUmNYGLmLQGtLalyaawr")
|
||
.addPreview("mxc://glowers.club/GiGkhVoVXtPHWYXrTICNDOho", "image/jpg", "500x500", EDisplayType.SQUARE)),
|
||
|
||
RadioItem.new("nothinwrongwithme")
|
||
.setMetadata("nothin wrong with me", "LENNOZ", "https://soundcloud.com/mistalenoz/nothin-wrong-with-me")
|
||
.addSource(RadioSource.new("audio/mp3")
|
||
.setURI("mxc://glowers.club/wCaKTMGjInkxJZlDHOvmVvQj")
|
||
.addPreview("mxc://glowers.club/LyHkbBYYHEfWZaDqDSLcJhFG", "image/jpg", "500x500")),
|
||
|
||
RadioItem.new("cutecute")
|
||
.setMetadata("cutecute", "LENNOZ", "https://soundcloud.com/mistalenoz/cutecute")
|
||
.addSource(RadioSource.new("audio/mp3")
|
||
.setURI("mxc://glowers.club/yBTztNIxTznUNQiXyNlVEOwW")
|
||
.addPreview("mxc://glowers.club/QtptSXlBkUgsKYIhcksFFZwn", "image/jpg", "500x500")),
|
||
|
||
RadioItem.new("humbletower")
|
||
.setMetadata("Humble Tower", "LENNOZ", "https://soundcloud.com/mistalenoz/humble-tower")
|
||
.addSource(RadioSource.new("audio/mp3")
|
||
.setURI("mxc://glowers.club/hovFlQXesRfzhwuvXauxuvYj")
|
||
.addPreview("mxc://glowers.club/hRwuxtUsNhXPuQLITioKvbTt", "image/jpg", "500x500")),
|
||
|
||
// FIXME: Dead source, highest quality was nigge.rs
|
||
RadioItem.new("lowbrawl")
|
||
.setMetadata("How Low Can You Brawl", "DatNiggaOvaDer", "https://soundcloud.com/datniggaovader/how-low-can-you-brawl")
|
||
.setNiggadata("lowbrawl", "570550d318f3c6dc5677b9c7")
|
||
.addSource(RadioSource.new("audio/mp3")
|
||
.setURI("mxc://glowers.club/JInznJPrTfiXUvQflZYAjsEt")
|
||
.addPreview("mxc://glowers.club/mieZMZQsCToujzcFnnsRMnfP", "image/jpg", "500x500")),
|
||
|
||
RadioItem.new("smokeonme")
|
||
.setMetadata("Smoke On Me", "RedScreen", "https://soundcloud.com/alexmashup/smoke-on-me")
|
||
.setNiggadata("smokeonme", "570550d318f3c6dc5677b9c1")
|
||
.addSource(RadioSource.new("audio/mp3")
|
||
.setURI("mxc://glowers.club/YknxSPlNxSIoyAdRPhtxoJpM")
|
||
.addPreview("mxc://glowers.club/yjsnEeACeyLtDPiGNgVYEoKS", "image/jpg", "500x500")),
|
||
|
||
RadioItem.new("slamtris")
|
||
.setMetadata("Slamtris - Quad City DJs vs Hirokazu Tanaka", "comeonandslam", "https://youtu.be/TZv71qYVoJM")
|
||
.setNiggadata("slamtris", "570550d318f3c6dc5677b9a6")
|
||
.addTags([ "metadata-prefer-id" ])
|
||
.addSource(RadioSource.new("audio/mp3")
|
||
.setURI("mxc://glowers.club/bFBMRKTVpzrscifHWtiEIEQO")
|
||
.addPreview("mxc://glowers.club/SNTFtMEjYkqarTVlZYRxvFUn", "image/jpg", "500x500")),
|
||
|
||
// TODO: Better artwork
|
||
RadioItem.new("selonlud")
|
||
.setMetadata("It's My Life", "Село і Люди", "https://youtu.be/d-VVnhwB4Gw")
|
||
.setNiggadata("selonlud", "570550d318f3c6dc5677b9a2")
|
||
.addSource(RadioSource.new("audio/mp3")
|
||
.setURI("mxc://glowers.club/QbPYwLTBToYdNySFTWqlPcYA")
|
||
.addPreview("mxc://glowers.club/leiVVHimwUdzqExdgGAenVjH", "image/jpg", "480x480")),
|
||
|
||
RadioItem.new("hymn")
|
||
.setMetadata("TempleOS Hymn Risen (Remix)", "Dave Eddy", "https://youtu.be/IdYMA6hY_74")
|
||
.addSource(RadioSource.new("audio/mp3")
|
||
.setURI("mxc://glowers.club/xEceAHSVDIhMgZMEIOhJZlmS")
|
||
.addPreview("mxc://glowers.club/IQiMcCemNZIvtlbXIkxPyXty", "image/jpg", "720x720")),
|
||
|
||
RadioItem.new("smokezelda")
|
||
.setMetadata("Play Zelda Everyday", "MC Fresh Dawg 3000", "https://soundcloud.com/mcfreshdawg3000/play-zelda-everyday")
|
||
.setNiggadata("smokezelda", "570550d318f3c6dc5677b9c2")
|
||
.addSource(RadioSource.new("audio/mp3")
|
||
.setURI("mxc://glowers.club/nGtHiLaIQgTLsmSGFqsuqkST")
|
||
.addPreview("mxc://glowers.club/BmEUsNOXaNKSrXdLRcVaLqoa", "image/jpg", "500x500")),
|
||
|
||
RadioItem.new("katyusha")
|
||
.setMetadata("カチューシャ", "浜口史郎", "https://youtu.be/NGkXEGH0V1Y")
|
||
.setNiggadata("panzer", "570550d318f3c6dc5677b99a")
|
||
.addSource(RadioSource.new("audio/mp3")
|
||
.setURI("mxc://glowers.club/aJJKZCrBvRDcbrUQXoWiSLfL")
|
||
.addPreview("mxc://glowers.club/KGlWUXAnjOQOfnaGGaGMbdnz", "image/jpg", "500x500")),
|
||
|
||
RadioItem.new("ohshitimfeelingit")
|
||
.setMetadata("OH SHIT I'M FEELING IT", "yung wenli", "https://soundcloud.com/yung_wenli/oh-shit-im-feeling-it")
|
||
.addSource(RadioSource.new("audio/mp3")
|
||
.setURI("mxc://glowers.club/OoDDxMutNpVzlTMbPiBfIvSp")
|
||
.addPreview("mxc://glowers.club/VrEtpPvDRBhlrxevPuIMAQLp", "image/jpg", "500x500")),
|
||
|
||
RadioItem.new("killallthe")
|
||
.setMetadata("KILL ALL THE GAYS AND THE FAGGOTS", "Mike David", "https://archive.org/details/killallthegaysandthefaggots451904565")
|
||
.setNiggadata("killallthe", "570550d318f3c6dc5677ba01")
|
||
.addSource(RadioSource.new("audio/mp3")
|
||
.setURI("mxc://glowers.club/CbLUdYNkCDzYrgwzszgfQBsk")
|
||
.addPreview("mxc://glowers.club/nLDctbZmHSuexqLlvytJoUoB", "image/png", "907x948"))
|
||
|
||
].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) {
|
||
const source = item.sources[index]
|
||
|
||
if (source.type.startsWith("video/") && !source.previews.some(item => item.display_type != EDisplayType.NATIVE))
|
||
console.warn(`${item.tags?.includes("misc") ? "BAD" : "ERR"}: No audio fallback preview set for source ${index} of ${item.id}`)
|
||
|
||
for (const p_index in source.previews) {
|
||
const preview = item.sources[index].previews[p_index]
|
||
if (!preview.type)
|
||
console.warn(`W: No type set for preview ${p_index} source ${index} of ${item.id}`)
|
||
if (!preview.size)
|
||
console.warn(`W: No size set for preview ${p_index} source ${index} of ${item.id}`)
|
||
}
|
||
}
|
||
}
|
||
|
||
const radioObj = {
|
||
"version": 5,
|
||
"songs": mediaItems
|
||
}
|
||
|
||
//console.info(require("util").inspect(mediaItems[0], { colors: true, depth: Infinity }))
|
||
|
||
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>`)
|