UNPKG

@dynamic-data/twitch-mockups

Version:
1,750 lines (1,709 loc) 176 kB
import { toIsoString, getRandomInt, getNewDate, getSleepDate, } from "@dynamic-data/utils"; import MOCK from "@dynamic-data/twitch-data"; const VideosModel = { id: () => { let id = getRandomInt(0,999999999) return id.toString() }, stream_id: () => { switch(getRandomInt(1,2)){ case 1: return null case 2: let id = getRandomInt(0,999999999) return id.toString() } }, user_id: () => { let id = getRandomInt(0,999999999) return id.toString() }, user_login: () => { let string = "" let characters = "0123456789abcdefghijklmnopqrstuvwxyz" let length = getRandomInt(10,32) for (var i = 0; i<length; i++){ string += characters.charAt(Math.floor(Math.random() * characters.length)); } return string }, user_name: () => { let string = "" let characters = "0123456789abcdefghijklmnopqrstuvwxyz" let length = getRandomInt(10,32) for (var i = 0; i<length; i++){ string += characters.charAt(Math.floor(Math.random() * characters.length)); } return string }, title: () => { let string = "" let characters = "0123456789abcdefghijklmnopqrstuvwxyz " let length = getRandomInt(10,32) for (var i = 0; i<length; i++){ string += characters.charAt(Math.floor(Math.random() * characters.length)); } return string }, description: () => { let string = "" let characters = "0123456789abcdefghijklmnopqrstuvwxyz !?.,|#" let length = getRandomInt(20,50) for (var i = 0; i<length; i++){ string += characters.charAt(Math.floor(Math.random() * characters.length)); } return string }, created_at: () => { let finalDate = new Date(0); let maxMonthDate = new Date(0); finalDate.setFullYear(getRandomInt(2020,2050)); finalDate.setMonth(getRandomInt(0,11)); finalDate.setDate(1) maxMonthDate = finalDate maxMonthDate.setMonth(maxMonthDate.getMonth() + 1); maxMonthDate.setDate(0) finalDate.setDate(getRandomInt(1,maxMonthDate.getDate())); finalDate.setHours(getRandomInt(0,23),getRandomInt(0,59),getRandomInt(0,59),getRandomInt(0,999)) return finalDate.toISOString(); }, published_at: (created_at) => { let createdDate = new Date(created_at) let publishedDate = new Date(createdDate.getTime()+getRandomInt(1,432000)) return publishedDate.toISOString() }, url: (id) => { return "https://www.twitch.tv/videos/" + id }, thumbnail_url: () => { return "https://static-cdn.jtvnw.net/cf_vods/d2nvs31859zcd8/twitchdev/335921245/ce0f3a7f-57a3-4152-bc06-0c6610189fb3/thumb/index-0000000000-%{width}x%{height}.jpg" }, viewable: () => { let types = ["public","private"] return types[getRandomInt(0, types.length-1)] }, view_count: () => { return getRandomInt(0,9999999999) }, language: () => { let languages = ["en", "id", "ca", "da", "de", "es", "fr", "it", "hu", "nl", "no","pl", "pt", "ro", "sk", "fi", "sv", "tl", "vi", "tr", "cs", "el", "bg", "ru", "uk", "ar", "ms", "hi", "th", "zh", "ja", "zh-hk", "ko", "asl", "other"] return languages[getRandomInt(0, languages.length-1)] }, type: () => { let types = ["upload", "archive", "highlight"] return types[getRandomInt(0,types.length-1)] }, duration: () => { let time = getRandomInt(0,36000) let string = "" if (time / 3600 > 1){ string += Math.floor(time / 3600) + "h" } if ((time % 3600)/60 > 1){ string += Math.floor((time % 3600)/60) + "m" } if ((time % 3600)%60 > 1){ string += Math.floor((time % 3600)%60) + "s" } return string }, muted_segments: (duration) => { let array = [] let finalReturn =[] let numOfSegments = getRandomInt(0,6)-1 let durationInSeconds = 0; let durationLeftover = duration if (durationLeftover.includes("h")){ durationInSeconds += (parseInt(duration.split("h")[0]) * 60 * 60) durationLeftover = durationLeftover.split("h")[1] } if (durationLeftover.includes("m")){ durationInSeconds += (parseInt(duration.split("m")[0]) * 60) durationLeftover = durationLeftover.split("m")[1] } if (durationLeftover.includes("s")){ durationInSeconds += parseInt(duration.split("s")[0]) durationLeftover = durationLeftover.split("s")[1] } for (let i = 0; i<numOfSegments;){ var random = getRandomInt(0,durationInSeconds)-1 if (!array.includes(random)){ array.push(random) i++ } } array.sort(function(a, b){return a - b}) for (let i = 0; i<array.length;i++){ let durationSeg = 0 if (i===array.length-1){ if (array[i]+durationSeg+300>durationInSeconds){ durationSeg = getRandomInt(0,durationInSeconds-array[i]) } else { durationSeg = getRandomInt(0,300) } } else { durationSeg = getRandomInt(0,300) if (array[i] + durationSeg > array[i+1]) { durationSeg = getRandomInt(0,array[i+1] - array[i]) } } finalReturn.push({ duration: durationSeg, offset: array[i] }) } return finalReturn }, } const UserSubscriptionModel = { broadcaster_id: () => { let id = getRandomInt(0,999999999) return id.toString() }, broadcaster_name: () => { let string = "" let characters = "0123456789abcdefghijklmnopqrstuvwxyz" let length = getRandomInt(10,32) for (var i = 0; i<length; i++){ string += characters.charAt(Math.floor(Math.random() * characters.length)); } return string }, broadcaster_login: () => { let string = "" let characters = "0123456789abcdefghijklmnopqrstuvwxyz" let length = getRandomInt(10,32) for (var i = 0; i<length; i++){ string += characters.charAt(Math.floor(Math.random() * characters.length)); } return string }, user_login: () => { let string = "" let characters = "0123456789abcdefghijklmnopqrstuvwxyz" let length = getRandomInt(10,32) for (var i = 0; i<length; i++){ string += characters.charAt(Math.floor(Math.random() * characters.length)); } return string }, is_gift: () => { switch(getRandomInt(1,2)){ case 1: return true case 2: return false } }, tier: () => { return (getRandomInt(0,3)*1000).toString() }, gifter_login: () => { let string = "" let characters = "0123456789abcdefghijklmnopqrstuvwxyz" let length = getRandomInt(10,32) for (var i = 0; i<length; i++){ string += characters.charAt(Math.floor(Math.random() * characters.length)); } return string }, gifter_name: () => { let string = "" let characters = "0123456789abcdefghijklmnopqrstuvwxyz" let length = getRandomInt(10,32) for (var i = 0; i<length; i++){ string += characters.charAt(Math.floor(Math.random() * characters.length)); } return string }, } const UsersFollowsModel = { from_id: () => { let id = getRandomInt(0,999999999) return id.toString() }, from_login: () => { let string = "" let characters = "0123456789abcdefghijklmnopqrstuvwxyz" let length = getRandomInt(10,32) for (var i = 0; i<length; i++){ string += characters.charAt(Math.floor(Math.random() * characters.length)); } return string }, from_name: () => { let string = "" let characters = "0123456789abcdefghijklmnopqrstuvwxyz" let length = getRandomInt(10,32) for (var i = 0; i<length; i++){ string += characters.charAt(Math.floor(Math.random() * characters.length)); } return string }, to_id: () => { let id = getRandomInt(0,999999999) return id.toString() }, to_name: () => { let string = "" let characters = "0123456789abcdefghijklmnopqrstuvwxyz" let length = getRandomInt(10,32) for (var i = 0; i<length; i++){ string += characters.charAt(Math.floor(Math.random() * characters.length)); } return string }, to_login: () => { let string = "" let characters = "0123456789abcdefghijklmnopqrstuvwxyz" let length = getRandomInt(10,32) for (var i = 0; i<length; i++){ string += characters.charAt(Math.floor(Math.random() * characters.length)); } return string }, followed_at: () => { let finalDate = new Date(0); let maxMonthDate = new Date(0); finalDate.setFullYear(getRandomInt(2020,2050)); finalDate.setMonth(getRandomInt(0,12)-1); finalDate.setDate(1) maxMonthDate = finalDate maxMonthDate.setMonth(maxMonthDate.getMonth() + 1); maxMonthDate.setDate(0) finalDate.setDate(getRandomInt(1,maxMonthDate.getDate())); finalDate.setHours(getRandomInt(0,24)-1,getRandomInt(0,60)-1,getRandomInt(0,60)-1,getRandomInt(0,1000)-1) return finalDate.toISOString(); }, } const UsersModel = { id: ()=>{ let id = getRandomInt(0,999999999) return id.toString() }, login: ()=>{ let string = "" let characters = "0123456789abcdefghijklmnopqrstuvwxyz" let length = getRandomInt(10,32) for (var i = 0; i<length; i++){ string += characters.charAt(Math.floor(Math.random() * characters.length)); } return string }, display_name: ()=>{ let string = "" let characters = "0123456789abcdefghijklmnopqrstuvwxyz" let length = getRandomInt(10,32) for (var i = 0; i<length; i++){ string += characters.charAt(Math.floor(Math.random() * characters.length)); } return string }, type: ()=>{ let types = ["staff", "admin", "global_mod", ""] return types[getRandomInt(0,types.length-1)] }, broadcaster_type: ()=>{ let types = ["partner", "affiliate", ""] return types[getRandomInt(0,types.length-1)] }, description: ()=>{ let string = "" let characters = "0123456789abcdefghijklmnopqrstuvwxyz" let length = getRandomInt(10,32) for (var i = 0; i<length; i++){ string += characters.charAt(Math.floor(Math.random() * characters.length)); } return string }, profile_image_url: ()=>{ return "https://static-cdn.jtvnw.net/jtv_user_pictures/8a6381c7-d0c0-4576-b179-38bd5ce1d6af-profile_image-300x300.png" }, offline_image_url: ()=>{ return "https://static-cdn.jtvnw.net/jtv_user_pictures/3f13ab61-ec78-4fe6-8481-8682cb3b0ac2-channel_offline_image-1920x1080.png" }, view_count: ()=>{ return getRandomInt(0,99999999) }, email: ()=>{ let string = "" let characters = "0123456789abcdefghijklmnopqrstuvwxyz" let alphabet = "abcdefghijklmnopqrstuvwxyz" let length1 = getRandomInt(5,12) let length2 = getRandomInt(5,12) let endings = [".com", ".co.uk"] for (var i = 0; i<length1; i++){ string += characters.charAt(Math.floor(Math.random() * characters.length)); } string+="@" for (var i = 0; i<length2; i++){ string += alphabet.charAt(Math.floor(Math.random() * alphabet.length)); } string+=endings[getRandomInt(0,endings.length-1)] return string }, created_at: ()=>{ let finalDate = new Date(0); let maxMonthDate = new Date(0); finalDate.setFullYear(getRandomInt(2020,2050)); finalDate.setMonth(getRandomInt(0,12)-1); finalDate.setDate(1) maxMonthDate = finalDate maxMonthDate.setMonth(maxMonthDate.getMonth() + 1); maxMonthDate.setDate(0) finalDate.setDate(getRandomInt(1,maxMonthDate.getDate())); finalDate.setHours(getRandomInt(0,24)-1,getRandomInt(0,60)-1,getRandomInt(0,60)-1,getRandomInt(0,1000)-1) return finalDate.toISOString(); }, } const ExtensionModel = { id: ()=>{ let string = "" let characters = "0123456789abcdefghijklmnopqrstuvwxyz" for (var i = 0; i<30; i++){ string += characters.charAt(Math.floor(Math.random() * characters.length)); } return string }, version: ()=>{ return (getRandomInt(0,12)-1).toString() + "." + (getRandomInt(0,12)-1).toString() + "." + (getRandomInt(0,12)-1).toString() }, name: ()=>{ let string = "" let characters = "0123456789abcdefghijklmnopqrstuvwxyz" let length = getRandomInt(10,32) for (var i = 0; i<length; i++){ string += characters.charAt(Math.floor(Math.random() * characters.length)); } return string }, can_activate: ()=>{ switch(getRandomInt(1,2)){ case 1: return true case 2: return false } }, type: ()=>{ let types = ["panel", "overlay", "mobile", "component"] let amount = getRandomInt(0,types.length) let final = [] for (var i = 0; i<amount;){ let random = getRandomInt(0,types.length-1) if (!final.includes(types[random])){ final.push(types[random]) i++ } } return final }, } const UserBlockListModel = { user_id: () => { let id = getRandomInt(0,999999999) return id.toString() }, user_login: () => { let string = "" let characters = "0123456789abcdefghijklmnopqrstuvwxyz" let length = getRandomInt(10,32) for (var i = 0; i<length; i++){ string += characters.charAt(Math.floor(Math.random() * characters.length)); } return string }, display_name: () => { let string = "" let characters = "0123456789abcdefghijklmnopqrstuvwxyz" let length = getRandomInt(10,32) for (var i = 0; i<length; i++){ string += characters.charAt(Math.floor(Math.random() * characters.length)); } return string }, } const UserActiveExtensionsModel = { active: () => { switch(getRandomInt(1,2)){ case 1: return true case 2: return false } }, id: () => { let string = "" let characters = "0123456789abcdefghijklmnopqrstuvwxyz" for (var i = 0; i<30; i++){ string += characters.charAt(Math.floor(Math.random() * characters.length)); } return string }, version: () => { return (getRandomInt(0,12)-1).toString() + "." + (getRandomInt(0,12)-1).toString() + "." + (getRandomInt(0,12)-1).toString() }, name: () => { let string = "" let characters = "0123456789abcdefghijklmnopqrstuvwxyz" let length = getRandomInt(10,32) for (var i = 0; i<length; i++){ string += characters.charAt(Math.floor(Math.random() * characters.length)); } return string } } const TopGamesModel = { id: () => { let id = getRandomInt(0,999999999) return id.toString() }, name: () => { let string = "" let characters = "0123456789abcdefghijklmnopqrstuvwxyz" let length = getRandomInt(10,32) for (var i = 0; i<length; i++){ string += characters.charAt(Math.floor(Math.random() * characters.length)); } return string }, box_art_url: () => { return "https://static-cdn.jtvnw.net/ttv-boxart/PLAYERUNKNOWN%27S%20BATTLEGROUNDS-{width}x{height}.jpg" }, } const TeamsModel = { user_id: () => { let string = "" let characters = "0123456789abcdefghijklmnopqrstuvwxyz" let length = getRandomInt(10,32) for (var i = 0; i<length; i++){ string += characters.charAt(Math.floor(Math.random() * characters.length)); } return string }, user_name: () => { let string = "" let characters = "0123456789abcdefghijklmnopqrstuvwxyz" let length = getRandomInt(10,32) for (var i = 0; i<length; i++){ string += characters.charAt(Math.floor(Math.random() * characters.length)); } return string }, user_login: () => { let string = "" let characters = "0123456789abcdefghijklmnopqrstuvwxyz" let length = getRandomInt(10,32) for (var i = 0; i<length; i++){ string += characters.charAt(Math.floor(Math.random() * characters.length)); } return string }, background_image_url: () => { return "https://static-cdn.jtvnw.net/jtv_user_pictures/team-livecoders-team_logo_image-bf1d9a87ca81432687de60e24ad9593d-600x600.png" }, banner: () => { return "https://static-cdn.jtvnw.net/jtv_user_pictures/team-livecoders-team_logo_image-bf1d9a87ca81432687de60e24ad9593d-600x600.png" }, created_at: () => { let finalDate = new Date(0); let maxMonthDate = new Date(0); finalDate.setFullYear(getRandomInt(2020,2050)); finalDate.setMonth(getRandomInt(0,12)-1); finalDate.setDate(1) maxMonthDate = finalDate maxMonthDate.setMonth(maxMonthDate.getMonth() + 1); maxMonthDate.setDate(0) finalDate.setDate(getRandomInt(1,maxMonthDate.getDate())); finalDate.setHours(getRandomInt(0,24)-1,getRandomInt(0,60)-1,getRandomInt(0,60)-1,getRandomInt(0,1000)-1) return finalDate.toISOString(); }, updated_at: (created_at) => { let createdAt = new Date (created_at) createdAt.setTime(createdAt.getTime() + getRandomInt(0,630720000)) return createdAt.toISOString() }, info: () => { let string = "" let characters = "0123456789abcdefghijklmnopqrstuvwxyz" let length = getRandomInt(10,32) for (var i = 0; i<length; i++){ string += characters.charAt(Math.floor(Math.random() * characters.length)); } return string }, thumbnail_url: () => { return "https://static-cdn.jtvnw.net/jtv_user_pictures/team-livecoders-team_logo_image-bf1d9a87ca81432687de60e24ad9593d-600x600.png" }, team_name: () => { let string = "" let characters = "0123456789abcdefghijklmnopqrstuvwxyz" let length = getRandomInt(10,32) for (var i = 0; i<length; i++){ string += characters.charAt(Math.floor(Math.random() * characters.length)); } return string }, team_display_name: () => { let string = "" let characters = "0123456789abcdefghijklmnopqrstuvwxyz" let length = getRandomInt(10,32) for (var i = 0; i<length; i++){ string += characters.charAt(Math.floor(Math.random() * characters.length)); } return string }, id: () => { let id = getRandomInt(0,999999999) return id.toString() }, } const StreamsMarkersModel = { user_id : () => { let id = getRandomInt(0,999999999) return id.toString() }, user_name : () => { let string = "" let characters = "0123456789abcdefghijklmnopqrstuvwxyz" let length = getRandomInt(10,32) for (var i = 0; i<length; i++){ string += characters.charAt(Math.floor(Math.random() * characters.length)); } return string }, user_login : () => { let string = "" let characters = "0123456789abcdefghijklmnopqrstuvwxyz" let length = getRandomInt(10,32) for (var i = 0; i<length; i++){ string += characters.charAt(Math.floor(Math.random() * characters.length)); } return string }, video_id : () => { let id = getRandomInt(0,999999999) return id.toString() }, id : () => { let id = getRandomInt(0,999999999) return id.toString() }, created_at : () => { let finalDate = new Date(0); let maxMonthDate = new Date(0); finalDate.setFullYear(getRandomInt(2020,2050)); finalDate.setMonth(getRandomInt(0,12)-1); finalDate.setDate(1) maxMonthDate = finalDate maxMonthDate.setMonth(maxMonthDate.getMonth() + 1); maxMonthDate.setDate(0) finalDate.setDate(getRandomInt(1,maxMonthDate.getDate())); finalDate.setHours(getRandomInt(0,24)-1,getRandomInt(0,60)-1,getRandomInt(0,60)-1,getRandomInt(0,1000)-1) return finalDate.toISOString(); }, description : () => { let string = "" let characters = "0123456789abcdefghijklmnopqrstuvwxyz" let length = getRandomInt(10,32) for (var i = 0; i<length; i++){ string += characters.charAt(Math.floor(Math.random() * characters.length)); } return string }, position_seconds : () => { return getRandomInt(0,32400) }, URL : (video_id, position_seconds) => { let stringTime = "" stringTime += Math.floor(position_seconds/3600)+"h" stringTime += Math.floor((position_seconds-(Math.floor(position_seconds/3600)*3600))/60)+"m" stringTime += Math.floor(position_seconds%60)+"s" return "https://twitch.tv/videos/"+video_id+"?t=" + stringTime }, } const StreamsModel = { id: ()=>{ return getRandomInt(0,99999999999).toString() }, user_id: ()=>{ return getRandomInt(0,99999999999).toString() }, user_login: ()=>{ let string = "" let characters = "abcdefghijklmnopqrstuvwxyz" let length = getRandomInt(10,32) for (var i = 0; i<length; i++){ string += characters.charAt(Math.floor(Math.random() * characters.length)); } return string }, user_name: ()=>{ let string = "" let characters = "abcdefghijklmnopqrstuvwxyz" let length = getRandomInt(10,32) for (var i = 0; i<length; i++){ string += characters.charAt(Math.floor(Math.random() * characters.length)); } return string }, game_id: ()=>{ return getRandomInt(0,99999999999).toString() }, game_name: ()=>{ let string = "" let characters = "0123456789abcdefghijklmnopqrstuvwxyz" let length = getRandomInt(10,32) for (var i = 0; i<length; i++){ string += characters.charAt(Math.floor(Math.random() * characters.length)); } return string }, type: ()=>{ switch (getRandomInt(0,10)){ case 1: return "" default: return "live" } }, title: ()=>{ let string = "" let characters = "0123456789abcdefghijklmnopqrstuvwxyz" let length = getRandomInt(10,32) for (var i = 0; i<length; i++){ string += characters.charAt(Math.floor(Math.random() * characters.length)); } return string }, viewer_count: ()=>{ return getRandomInt(0,9999999) }, started_at: ()=>{ let finalDate = new Date(0); let maxMonthDate = new Date(0); finalDate.setFullYear(getRandomInt(2020,2050)); finalDate.setMonth(getRandomInt(0,11)); finalDate.setDate(1) maxMonthDate = finalDate maxMonthDate.setMonth(maxMonthDate.getMonth() + 1); maxMonthDate.setDate(0) finalDate.setDate(getRandomInt(1,maxMonthDate.getDate())); finalDate.setHours(getRandomInt(0,23),getRandomInt(0,59),getRandomInt(0,59),getRandomInt(0,999)) return finalDate.toISOString(); }, language: ()=>{ let languages = ["en", "id", "ca", "da", "de", "es", "fr", "it", "hu", "nl", "no","pl", "pt", "ro", "sk", "fi", "sv", "tl", "vi", "tr", "cs", "el", "bg", "ru", "uk", "ar", "ms", "hi", "th", "zh", "ja", "zh-hk", "ko", "asl", "other"] return languages[getRandomInt(0, languages.length-1)] }, thumbnail_url: ()=>{ return "https://static-cdn.jtvnw.net/previews-ttv/live_user_amar-{width}x{height}.jpg" }, tag_ids: ()=>{ let array = [] let numOfTags = getRandomInt(0,5)-1 for (var i=0; i<numOfTags;i++){ let string = "" let characters = "0123456789abcdef" for (var i = 0; i<32; i++){ string += characters.charAt(Math.floor(Math.random() * characters.length)); switch (i){ case 7: case 11: case 15: case 19: string+="-" } } array.push(string) } }, is_mature: ()=>{ switch (getRandomInt(0,2)){ case 1: return true; case 2: return false; } }, } const StreamKeyModel = { stream_key: () => { let string = "live_" string += getRandomInt(9999999,99999999) string += "_" let characters = "0123456789abcdefghijklmnopqrstuvwxyz" for (var i = 0; i<16; i++){ string += characters.charAt(Math.floor(Math.random() * characters.length)); } return string } } const SoundtrackPlaylistModel = { title: () => { let string = "" let characters = "abcdefghijklmnopqrstuvwxyz" let length = getRandomInt(10,32) for (var i = 0; i<length; i++){ string += characters.charAt(Math.floor(Math.random() * characters.length)); } return string }, id: () => { let string = "" let characters = "ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789" for (var i = 0; i<10; i++){ string += characters.charAt(Math.floor(Math.random() * characters.length)); } return string }, image_url: () => { return "https://m.media-amazon.com/images/I/517kGzeaRhL.jpg" }, description: () => { let string = "" let characters = "abcdefghijklmnopqrstuvwxyz" let length = getRandomInt(10,32) for (var i = 0; i<length; i++){ string += characters.charAt(Math.floor(Math.random() * characters.length)); } return string }, } const SoundtrackArtistModel = { id: () => { let string = "" let characters = "ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789" for (var i = 0; i<10; i++){ string += characters.charAt(Math.floor(Math.random() * characters.length)); } return string }, name: () => { let string = "" let characters = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ" let length = getRandomInt(10,32) for (var i = 0; i<length; i++){ string += characters.charAt(Math.floor(Math.random() * characters.length)); } return string }, creator_channel_id: () => { switch(getRandomInt(1,2)){ case 1: return getRandomInt(0,999999999).toString() case 2: return "" } }, } const SoundtrackAlbumModel = { id: () => { let string = "" let characters = "ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789" for (var i = 0; i<10; i++){ string += characters.charAt(Math.floor(Math.random() * characters.length)); } return string }, name: (title) => { let string = "" let characters = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ" let length = getRandomInt(10,32) for (var i = 0; i<length; i++){ string += characters.charAt(Math.floor(Math.random() * characters.length)); } if (title.includes("[Explicit]")){ string += " [Explicit]" } return string }, image_url: () => { return "https://m.media-amazon.com/images/I/316SDaD-XQL.jpg" }, } const SoundtrackTrackModel = { id: () => { let string = "" let characters = "ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789" for (var i = 0; i<10; i++){ string += characters.charAt(Math.floor(Math.random() * characters.length)); } return string }, isrc: () => { let string = "" let characters = "ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789" for (var i = 0; i<10; i++){ string += characters.charAt(Math.floor(Math.random() * characters.length)); } return string }, duration: () => { return getRandomInt(30,600) }, title: () => { let string = "" let characters = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ" let length = getRandomInt(10,32) for (var i = 0; i<length; i++){ string += characters.charAt(Math.floor(Math.random() * characters.length)); } switch(getRandomInt(1,2)){ case 1: string += " [Explicit]" } return string }, } const SoundtrackTrackSourceModel = { id: () => { let string = "" let characters = "ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789" for (var i = 0; i<10; i++){ string += characters.charAt(Math.floor(Math.random() * characters.length)); } return string }, content_type: () => { let types = ["PLAYLIST", "STATION"] return types[getRandomInt(0,types.length-1)] }, title: () => { let string = "" let characters = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ" let length = getRandomInt(10,32) for (var i = 0; i<length; i++){ string += characters.charAt(Math.floor(Math.random() * characters.length)); } return string }, image_url: () => { return "https://m.media-amazon.com/images/I/419WuvMXzEL.jpg" }, soundtrack_url: () => { return "https://soundtrack.twitch.tv/playlist?playlistID=B08HCW84SF" }, spotify_url: () => { return "https://open.spotify.com/playlist/1LOP14236oTUscowY3NvYN" }, } const ReleasedExtensionsModel = { author_name : () => { let string = "" let characters = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ" let length = getRandomInt(10,32) for (var i = 0; i<length; i++){ string += characters.charAt(Math.floor(Math.random() * characters.length)); } return string }, bits_enabled : () => { switch(getRandomInt(1,2)){ case 1: return true case 2: return false } }, can_install : () => { switch(getRandomInt(1,2)){ case 1: return true case 2: return false } }, configuration_location : () => { let locations = ["hosted"] return locations[getRandomInt(0,locations.length-1)] }, description : () => { let string = "" let characters = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ" let length = getRandomInt(10,32) for (var i = 0; i<length; i++){ string += characters.charAt(Math.floor(Math.random() * characters.length)); } return string }, eula_tos_url : () => { return "" }, has_chat_support : () => { switch(getRandomInt(1,2)){ case 1: return true case 2: return false } }, icon_url : () => { return "https://extensions-discovery-images.twitch.tv/pgn0bjv51epi7eaekt53tovjnc82qo/0.0.8/logob6c995d8-8b45-48cc-a748-b256e92ac1cd" }, icon_urls : () => { return { "24x24": "https://extensions-discovery-images.twitch.tv/pgn0bjv51epi7eaekt53tovjnc82qo/0.0.8/logob6c995d8-8b45-48cc-a748-b256e92ac1cd", "100x100": "https://extensions-discovery-images.twitch.tv/pgn0bjv51epi7eaekt53tovjnc82qo/0.0.8/logob6c995d8-8b45-48cc-a748-b256e92ac1cd", "300x200": "https://extensions-discovery-images.twitch.tv/pgn0bjv51epi7eaekt53tovjnc82qo/0.0.8/logob6c995d8-8b45-48cc-a748-b256e92ac1cd", } }, id : () => { let string = "" let characters = "0123456789abcdefghijklmnopqrstuvwxyz" let length = getRandomInt(10,32) for (var i = 0; i<length; i++){ string += characters.charAt(Math.floor(Math.random() * characters.length)); } return string }, name : () => { let string = "" let characters = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ" let length = getRandomInt(10,32) for (var i = 0; i<length; i++){ string += characters.charAt(Math.floor(Math.random() * characters.length)); } return string }, privacy_policy_url : () => { return "" }, request_identity_link : () => { switch(getRandomInt(1,2)){ case 1: return true case 2: return false } }, screenshot_urls : () => { let array =[] let numOfUrls = getRandomInt(0,5)-1 for (var i = 0; i< numOfUrls; i++){ array.push("https://extensions-discovery-images.twitch.tv/pgn0bjv51epi7eaekt53tovjnc82qo/0.0.8/screenshotbdec475d-3d2f-4378-b334-941dfddc897a") } return array }, state : () => { let types = ["InTest", "InReview", "Rejected", "Approved", "Released", "Deprecated", "PendingAction", "AssetsUploaded", "Deleted"] return types[getRandomInt(0,types.length-1)] }, subscriptions_support_level : () => { let levels = ["optional"] return levels[getRandomInt(0, levels.length-1)] }, summary : () => { let string = "" let characters = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ" let length = getRandomInt(10,32) for (var i = 0; i<length; i++){ string += characters.charAt(Math.floor(Math.random() * characters.length)); } return string }, support_email : () => { let string = "" let characters = "abcdefghijklmnopqrstuvwxyz123456789" let alphabet = "abcdefghijklmnopqrstuvwxyz" let length = getRandomInt(10,20) let domain = getRandomInt(5,10) let endings = [".com", ".co.uk"] for (var i = 0; i<length; i++){ string += characters.charAt(Math.floor(Math.random() * characters.length)); } string+="@" for (var i = 0; i<domain; i++){ string += alphabet.charAt(Math.floor(Math.random() * alphabet.length)); } string+=endings[getRandomInt(0,endings.length-1)] return string }, version : () => { return (getRandomInt(0,12)-1).toString() + "." + (getRandomInt(0,12)-1).toString() + "." + (getRandomInt(0,12)-1).toString() }, viewer_summary : () => { let string = "" let characters = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ" let length = getRandomInt(10,32) for (var i = 0; i<length; i++){ string += characters.charAt(Math.floor(Math.random() * characters.length)); } return string }, views : () => { return {} }, allowlisted_config_urls : () => { return [] }, allowlisted_panel_urls : () => { return [] }, } const PredictionsModel = { id: () => { let string = "" let characters = "0123456789abcdef" for (var i = 0; i<32; i++){ string += characters.charAt(Math.floor(Math.random() * characters.length)); switch (i){ case 7: case 11: case 15: case 19: string+="-" } } return string }, broadcaster_id: () => { return getRandomInt(0,99999999).toString() }, broadcaster_name: () => { let string = "" let characters = "abcdefghijklmnopqrstuvwxyz" let length = getRandomInt(10,32) for (var i = 0; i<length; i++){ string += characters.charAt(Math.floor(Math.random() * characters.length)); } return string }, broadcaster_login: () => { let string = "" let characters = "abcdefghijklmnopqrstuvwxyz" let length = getRandomInt(10,32) for (var i = 0; i<length; i++){ string += characters.charAt(Math.floor(Math.random() * characters.length)); } return string }, title: () => { let string = "" let characters = "abcdefghijklmnopqrstuvwxyz" let length = getRandomInt(10,45) for (var i = 0; i<length; i++){ string += characters.charAt(Math.floor(Math.random() * characters.length)); } return string }, winning_outcome_id: (status) => { switch(status){ case "RESOLVED": let string = "" let characters = "0123456789abcdef" for (var i = 0; i<32; i++){ string += characters.charAt(Math.floor(Math.random() * characters.length)); switch (i){ case 7: case 11: case 15: case 19: string+="-" } } return string default: return null } }, prediction_window: () => { return getRandomInt(0,99999) }, status: () => { let status = ["RESOLVED","ACTIVE","CANCELED","LOCKED"] return status[getRandomInt(0,status.length-1)] }, created_at: () => { let finalDate = new Date(0); let maxMonthDate = new Date(0); finalDate.setFullYear(getRandomInt(2020,2050)); finalDate.setMonth(getRandomInt(0,11)); finalDate.setDate(1) maxMonthDate = finalDate maxMonthDate.setMonth(maxMonthDate.getMonth() + 1); maxMonthDate.setDate(0) finalDate.setDate(getRandomInt(1,maxMonthDate.getDate())); finalDate.setHours(getRandomInt(0,23),getRandomInt(0,59),getRandomInt(0,59),getRandomInt(0,999)) return finalDate.toISOString(); }, ended_at: (status, created_at) => { switch(status){ case "ACTIVE": return null default: let lockedAt = new Date(created_at) lockedAt.setTime(lockedAt.getTime() + getRandomInt(0,3600)) return lockedAt.toISOString() } }, locked_at: (status, created_at) => { switch(status){ case "LOCKED": let lockedAt = new Date(created_at) lockedAt.setTime(lockedAt.getTime() + getRandomInt(0,3600)) return lockedAt.toISOString() default: return null } }, } const PredictionsOutcomeModel = { id: () => { let string = "" let characters = "0123456789abcdef" for (var i = 0; i<32; i++){ string += characters.charAt(Math.floor(Math.random() * characters.length)); switch (i){ case 7: case 11: case 15: case 19: string+="-" } } return string }, title: () => { let string = "" let characters = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ" let length = getRandomInt(10,32) for (var i = 0; i<length; i++){ string += characters.charAt(Math.floor(Math.random() * characters.length)); } return string }, users: () => { return getRandomInt(0, 99999) }, channel_points: () => { return getRandomInt(0,999999999) }, color: (number, i) => { switch (number) { case 2: switch (i) { case 0: return "BLUE" case 1: return "PINK" } default: return "BLUE" } }, } const TopPredictorModel = { id: () => { let string = "" let characters = "0123456789abcdefghijklmnopqrstuvwxyz" let length = getRandomInt(10,32) for (var i = 0; i<length; i++){ string += characters.charAt(Math.floor(Math.random() * characters.length)); } return string }, name: () => { let string = "" let characters = "0123456789abcdefghijklmnopqrstuvwxyz" let length = getRandomInt(10,32) for (var i = 0; i<length; i++){ string += characters.charAt(Math.floor(Math.random() * characters.length)); } return string }, login: () => { let string = "" let characters = "0123456789abcdefghijklmnopqrstuvwxyz" let length = getRandomInt(10,32) for (var i = 0; i<length; i++){ string += characters.charAt(Math.floor(Math.random() * characters.length)); } return string }, channel_points_used: (used) => { return used }, channel_points_won: (status, won) => { switch(status){ case "RESOLVED": return won default: return null } } } const PollModel = { id: () => { let string = "" let characters = "0123456789abcdef" for (var i = 0; i<32; i++){ string += characters.charAt(Math.floor(Math.random() * characters.length)); switch (i){ case 7: case 11: case 15: case 19: string+="-" } } return string }, broadcaster_id: () => { return getRandomInt(0,99999999).toString() }, broadcaster_name: () => { let string = "" let characters = "abcdefghijklmnopqrstuvwxyz" let length = getRandomInt(10,32) for (var i = 0; i<length; i++){ string += characters.charAt(Math.floor(Math.random() * characters.length)); } return string }, broadcaster_login: () => { let string = "" let characters = "abcdefghijklmnopqrstuvwxyz" let length = getRandomInt(10,32) for (var i = 0; i<length; i++){ string += characters.charAt(Math.floor(Math.random() * characters.length)); } return string }, title: () => { let string = "" let characters = "abcdefghijklmnopqrstuvwxyz" let length = getRandomInt(10,32) for (var i = 0; i<length; i++){ string += characters.charAt(Math.floor(Math.random() * characters.length)); } return string }, bits_voting_enabled: () => { switch (getRandomInt(0,2)){ case 1: return true case 2: return false } }, bits_per_vote: (bits_enabled) => { switch (bits_enabled){ case false: return 0 case true: return getRandomInt(0,9999999) } }, channel_points_voting_enabled: () => { switch (getRandomInt(0,2)){ case 1: return true case 2: return false } }, channel_points_per_vote: (points_enabled) => { switch (points_enabled){ case false: return 0 case true: return getRandomInt(0,9999999) } }, status: () => { let statuses = ["ACTIVE","COMPLETED","TERMINATED","ARCHIVED","MODERATED","INVALID"] return statuses[getRandomInt(0, statuses.length-1)] }, duration: () => { return getRandomInt(0,99999999) }, started_at: () => { let finalDate = new Date(0); let maxMonthDate = new Date(0); finalDate.setFullYear(getRandomInt(2020,2050)); finalDate.setMonth(getRandomInt(0,11)); finalDate.setDate(1) maxMonthDate = finalDate maxMonthDate.setMonth(maxMonthDate.getMonth() + 1); maxMonthDate.setDate(0) finalDate.setDate(getRandomInt(1,maxMonthDate.getDate())); finalDate.setHours(getRandomInt(0,23),getRandomInt(0,59),getRandomInt(0,59),getRandomInt(0,999)) return finalDate.toISOString(); }, } const PollChoiceModel = { id: () => { let string = "" let characters = "0123456789abcdef" for (var i = 0; i<32; i++){ string += characters.charAt(Math.floor(Math.random() * characters.length)); switch (i){ case 7: case 11: case 15: case 19: string+="-" } } return string }, title: () => { let string = "" let characters = "abcdefghijklmnopqrstuvwxyz" let length = getRandomInt(10,32) for (var i = 0; i<length; i++){ string += characters.charAt(Math.floor(Math.random() * characters.length)); } return string }, votes: (channel_points_votes, bits_votes) => { return channel_points_votes + bits_votes + getRandomInt(0,99999) }, channel_points_votes: (channel_points_voting_enabled) => { switch (channel_points_voting_enabled){ case true: return getRandomInt(0,100) case false: return 0 } }, bits_votes: (bits_voting_enabled) => { switch (bits_voting_enabled){ case true: return getRandomInt(0,100) case false: return 0 } }, } const ModeratorsModel = { user_id: () => { return getRandomInt(0,99999999).toString() }, user_login: () => { let string = "" let characters = "abcdefghijklmnopqrstuvwxyz" let length = getRandomInt(10,32) for (var i = 0; i<length; i++){ string += characters.charAt(Math.floor(Math.random() * characters.length)); } return string }, user_name: () => { let string = "" let characters = "abcdefghijklmnopqrstuvwxyz" let length = getRandomInt(10,32) for (var i = 0; i<length; i++){ string += characters.charAt(Math.floor(Math.random() * characters.length)); } return string }, } const HypeTrainEventsModel = { id: () => { let string = "" let characters = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789" let length = 27 for (var i = 0; i<length; i++){ string += characters.charAt(Math.floor(Math.random() * characters.length)); } return string }, event_type: () => { let types = ["progression"] let string = "hypetrain." return string + types[getRandomInt(0,types.length-1)] }, event_timestamp: (started_at) => { let event_timestamp = new Date(started_at) event_timestamp.setTime(event_timestamp.getTime()+getRandomInt(0,9999)) return event_timestamp.toISOString() }, version: ()=>{ return (getRandomInt(0,12)-1).toString() + "." + (getRandomInt(0,12)-1).toString() + "." + (getRandomInt(0,12)-1).toString() }, } const HypeTrainEventDataModel = { broadcaster_id: () => { return getRandomInt(0, 999999999).toString() }, cooldown_end_time: (expires_at) => { let cooldown_end_time = new Date(expires_at) cooldown_end_time.setTime(cooldown_end_time.getTime()+getRandomInt(0,9999)) return cooldown_end_time.toISOString() }, expires_at: (started_at) => { let expires_at = new Date(started_at) expires_at.setTime(expires_at.getTime()+getRandomInt(0,9999)) return expires_at.toISOString() }, goal: () => { return getRandomInt(0,999999) }, id: () => { let string = "" let characters = "0123456789abcdef" for (var i = 0; i<32; i++){ string += characters.charAt(Math.floor(Math.random() * characters.length)); switch (i){ case 7: case 11: case 15: case 19: string+="-" } } return string }, level: () => { return getRandomInt(0,5) }, started_at: () => { let finalDate = new Date(0); let maxMonthDate = new Date(0); finalDate.setFullYear(getRandomInt(2020,2050)); finalDate.setMonth(getRandomInt(0,11)); finalDate.setDate(1) maxMonthDate = finalDate maxMonthDate.setMonth(maxMonthDate.getMonth() + 1); maxMonthDate.setDate(0) finalDate.setDate(getRandomInt(1,maxMonthDate.getDate())); finalDate.setHours(getRandomInt(0,23),getRandomInt(0,59),getRandomInt(0,59),getRandomInt(0,999)) return finalDate.toISOString(); }, total: () => { return getRandomInt(0,999999) }, } const HypeTrainEventContributionModel = { total: (type) => { switch(type){ case "BITS": return getRandomInt(0,99999) case "SUBS": let subTotal = [500,1000,2500] switch (getRandomInt(0,3)){ case 1: return subTotal[getRandomInt(0,subTotal.length-1)] case 2: let num1 = subTotal[getRandomInt(0,subTotal.length-1)] let num2 = num1 do { num2 = subTotal[getRandomInt(0,subTotal.length-1)] } while (num2 === num1) return num1 + num2 case 3: return 4000 } } }, type: () => { let types = ["BITS", "SUBS"] return types[getRandomInt(0,types.length-1)] }, user: () => { return getRandomInt(0,999999999).toString() }, } const GlobalEmotesModel = { id: () => { return getRandomInt(0,999999).toString() }, name: () => { let string = "" let characters = "abcdefghijklmnopqrstuvwxyz" let length = getRandomInt(10,32) for (var i = 0; i<length; i++){ string += characters.charAt(Math.floor(Math.random() * characters.length)); } return string }, format: () => { let formats = ["static", "animated"] switch(getRandomInt(1,2)){ case 1: return [formats[getRandomInt(0,formats.length-1)]] case 2: return formats } }, images: (scales, id) => { let obj = {} if (scales.includes("1.0")){ obj["url_1x"]="https://static-cdn.jtvnw.net/emoticons/v2/"+id+"/static/light/1.0" } if (scales.includes("2.0")){ obj["url_2x"]="https://static-cdn.jtvnw.net/emoticons/v2/"+id+"/static/light/2.0" } if (scales.includes("3.0")){ obj["url_4x"]="https://static-cdn.jtvnw.net/emoticons/v2/"+id+"/static/light/3.0" } return obj }, scale: () => { let scales = ["1.0", "2.0", "3.0"] let array = [] switch(getRandomInt(1,3)){ case 1: return [scales[getRandomInt(0,scales.length-1)]] case 2: array.push(scales[getRandomInt(0,scales.length-1)]) let newScale; do { newScale = scales[getRandomInt(0,scales.length-1)] } while (array.includes(newScale)) array.push(newScale) return array case 3: return scales } }, theme_mode: () => { let themes = ["light", "dark"] switch(getRandomInt(1,2)){ case 1: return [themes[getRandomInt(0,themes.length-1)]] case 2: return themes } }, } const GlobalChatBadgesModel = { set_id: () => { const sets = ["vip"] return sets[getRandomInt(0,sets.length-1)] }, id: () => { return getRandomInt(0,9999999999).toString() }, image_url_1x: () => { return "https://static-cdn.jtvnw.net/badges/v1/b817aba4-fad8-49e2-b88a-7cc744dfa6ec/1" }, image_url_2x: () => { return "https://static-cdn.jtvnw.net/badges/v1/b817aba4-fad8-49e2-b88a-7cc744dfa6ec/2" }, image_url_4x: () => { return "https://static-cdn.jtvnw.net/badges/v1/b817aba4-fad8-49e2-b88a-7cc744dfa6ec/3" }, } const GamesModel = { box_art_url: (name) => { return "https://static-cdn.jtvnw.net/ttv-boxart/"+name+"-52x72.jpg" }, id: () => { return getRandomInt(0,9999999999).toString() }, name: () => { let string = "" let characters = "abcdefghijklmnopqrstuvwxyz" let length = getRandomInt(10,32) for (var i = 0; i<length; i++){ string += characters.charAt(Math.floor(Math.random() * characters.length)); } return string }, } const AnalyticsModel = { game_id: () => { return getRandomInt(0,9999999999).toString() }, extension_id: () => { let string = "" let characters = "abcdefghijklmnopqrstuvwxyz" let length = getRandomInt(5,10) for (var i = 0; i<length; i++){ string += characters.charAt(Math.floor(Math.random() * characters.length)); } return string }, URL: () => { return "https://twitch-piper-reports.s3-us-west-2.amazonaws.com/games/9821/overview/1526428800000.csv?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=ASIAJQ4MLJCNPIYDOZ4Q%2F20180517%2Fus-west-2%2Fs3%2Faws4_request&X-Amz-Date=20180517T231129Z&X-Amz-Expires=60&X-Amz-Security-Token=FQoDYXdzEK7%2F%2F%2F%2F%2F%2F%2F%2F%2F%2FwEaDD0JCM06UswayN4iVyK3AzIiwI0Qf4KRs2yk9nCiocQOwmMWa7FPJnJEd%2FIxljnmZy%2BphQEEWN3%2Bt8k06wZysfPHvW71zcrIeclv11kNtXaYojC%2FHVKJWO8EnicIQE73kokr16fkf1Q4eglQBuu56jJQoTsEn2UkgZff9XHx69LyFvLYf33ue10CjeJE1bY65%2B6LtcPKciJK%2FNRS1TyUsz%2FiQjyxMEUpAKm39HxNtNKFM5xehjAoWC1KfJc52XVQGFO%2Fm2EQiJj6RoifNkiIQKb4m7nGr86zvIQKDQcxcpVbiGNEcC8UugZgCnuspSPjuJLARb%2BNT%2FjLKopd2%2FUKDlIY%2BAoyEk%2B%2FGIWL5TgvjjmT5uaJ5AcnTm4b7DlV%2FkmDsYHFQez0Mu4%2BwoujZEqR0K%2BtDSyAvva2nUUGabZuDeaaiQD4JfrokXC5GWtninHQCAoPiC4q%2FMYkHS82wxPjJp0l4cStwzEDQ5LJ4cehKm4tCoY1m1whWIJsNuyfLtIUH2rBTuF9D5DFmsmpXiKc4LE9saQgSlLwNBEGASqAbRuy7Tc2ZlcIp1lBllioxhoYL3XcjaXOX3qluWGMwgXdV2Odq0L03MkoxuL31wU%3D&X-