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