{"version":3,"sources":["webpack:///webpack/bootstrap","webpack:///./vendor/green-audio-player/src/js/main.js","webpack:///./app/javascript/packs/search/summary_builder.js","webpack:///./app/javascript/packs/search/history_manager.js","webpack:///./app/javascript/packs/search/results_builder.js","webpack:///./app/javascript/packs/search/patreon_tooltip.js","webpack:///./app/javascript/packs/search/patreon_rss.js","webpack:///./app/javascript/packs/search/upside_down.js","webpack:///./app/javascript/packs/search/easter_eggs.js","webpack:///./app/javascript/packs/search/youtube_player.js","webpack:///./app/javascript/packs/search/patreon_player.js","webpack:///./app/javascript/packs/search/prankcast_player.js","webpack:///./app/javascript/packs/search/notla_player.js","webpack:///./app/javascript/packs/search/players.js","webpack:///./app/javascript/packs/search.js"],"names":["installedModules","__webpack_require__","moduleId","exports","module","i","l","modules","call","m","c","d","name","getter","o","Object","defineProperty","enumerable","get","r","Symbol","toStringTag","value","t","mode","__esModule","ns","create","key","bind","n","object","property","prototype","hasOwnProperty","p","s","GreenAudioPlayer","player","options","this","audioPlayer","document","querySelector","opts","audioElement","innerHTML","classList","add","getTemplate","isDevice","test","window","navigator","userAgent","toLowerCase","MSStream","playPauseBtn","loading","sliders","querySelectorAll","progress","volumeBtn","volumeControls","volumeProgress","currentTime","totalTime","speaker","download","downloadLink","span","svg","getElementsByTagName","img","draggableClasses","currentlyDragged","stopOthersOnPlay","enableKeystrokes","showTooltips","formatTime","textContent","self","labels","volume","open","close","pause","play","addEventListener","pressKb","unPressKb","setAttribute","j","length","k","outerHTML","outlineControls","showDownloadButton","showDownload","initEvents","directionAware","hideVolumeOnMobile","overcomeIosLimitations","attributes","promise","undefined","then","parentElement","hasSetAttribute","catch","console","error","preload","style","visibility","selector","forEach","event","isDraggable","target","handleMethod","dataset","method","listener","paused","togglePlay","removeEventListener","targetTouches","preventDefault","updateProgress","updateVolume","duration","showLoadingIndicator","hideLoadingIndicator","pausePlayer","showHideVolume","pin","downloadAudio","display","marginRight","el","canDrag","contains","touch","rangeBox","getRangeBox","sliderPositionAndDimensions","getBoundingClientRect","direction","min","max","x","width","clientX","touches","top","height","clientY","current","percent","type","slider","K","offsetX","left","seekable","inRange","getCoefficient","getAttribute","remove","toggle","Math","round","time","floor","sec","preloadNone","stopOtherPlayers","playPlayer","a","v","hasAttribute","pos","end","vol","evt","seeking","keyCode","activeElement","parentNode","children","focus","setCurrentTime","setVolume","showVolume","players","src","currentSrc","split","reverse","innerHeight","SummaryBuilder","summary","patreonCheckbox","sums","words","not_patreon_words","seconds","not_patreon_seconds","checked","patreon_words","patreon_seconds","wordsLocale","toLocaleString","hours","notPatreonSum","not_patreon_sum","patreonSum","patreon_sum","summaryText","results","quoteSum","result","content_type","timestamps","quotePlural","videosAndPatreon","HistoryManager","search","searchForm","playerWrapper","loadVideoResults","summaryBuilder","easterEggs","siteName","currentResults","setTitle","state","searchedText","patreon","initialLoad","contentType","remoteId","hidden","replaceInitialHistory","totalsSummary","tryEasterEgg","detail","xhr","JSON","parse","response","setHistory","errorSummary","replaceHistory","skipSearchedText","url","encodeURIComponent","history","replaceState","pushState","title","ResultsBuilder","contentItems","contentItemTemplate","contentItemClass","contentItemLinkClass","contentItemLinkTextClass","contentItemUploadDateClass","transcriptLocationsClass","transcriptLocationClass","transcriptLocationReadyClass","transcriptLocationLoadingClass","transcriptLocationNewTabClass","transcriptLocationTimestampClass","transcriptLocationPreviewClass","transcriptLocationSelectedClass","patreonRss","historyManager","playResult","closest","mediaUrl","getElementsByClassName","transcriptLocation","mediaUrlForRemoteId","replacePlayingItem","cue","link","locationStatuses","playingItem","searchedTextRegex","replace","replaceAll","RegExp","selectedContentType","selectedRemoteId","selectedSeconds","renderSearchedTextRegex","addResult","newResult","cloneNode","removeAttribute","resultDiv","remote_id","media_url","videoLink","href","onclick","metadata","urls","updateRss","videoDate","date","Date","uploaded_at","zoneAbbreviation","toLocaleTimeString","timeZoneName","dateFormatted","substr","transcriptLocations","originalTranscriptLocation","timestamp","enabled","setTranscriptLocationStatus","formattedPreview","preview","prefix","appendChild","patreonResult","visibleStatus","locationStatus","PatreonTooltip","inputs","hover","tooltip","playerOverlay","playerOverlayEnabledClass","tooltipHoverClass","outsidePatreonInputsHover","cursorOutsideElement","outsidePatreonTooltip","element","rect","right","bottom","PatreonRss","patreonRssUrl","rssStatus","resetMetadataCallback","updatePatreonResults","statuses","reading","active","noLink","notPlaLink","connectionError","unauthorized","serverError","storageKeys","rssUrl","lastRequestId","localStorage","getItem","onkeydown","removeItem","ignoreCurrentMetadata","ignoreCurrentRequests","updateCheckbox","requestId","setItem","resetMetadata","authMatch","match","auth","requestUrl","xmlHttp","XMLHttpRequest","onreadystatechange","readyState","status","responseText","send","UpsideDown","selectors","upsideDownClass","getMonth","getDate","isAprilFools","flip","EasterEggs","unhidePlayer","nastyWords","nastyVideoId","videoId","isNasty","encode","youtube","switchToPlayer","trim","word","encodedWord","includes","text","btoa","e","YoutubePlayer","playerId","hiddenClass","youtubePlayer","script","createElement","firstScriptTag","insertBefore","startPlayback","YT","Player","playerVars","start","autoplay","events","unMute","pauseVideo","getPlayerState","getElementById","_mediaUrl","_title","playerInfo","videoData","video_id","seekTo","playVideo","loadVideoById","cueVideoById","secondsRemainder","minutes","PatreonPlayer","logo","audioPlayerDummy","overlayHint","greenAudioPlayer","greenAudioPlayerDummy","audio","lastRemoteId","lastSeconds","overlayHints","disabled","disable","hideDummy","isPaused","enable","updateOverlayHint","updateDummyLoading","showDummy","hint","PrankcastPlayer","toISOString","NotlaPlayer","Players","currentPlayer","playerKey","show","hide","postId","require","greet","videoResults","selectedTimestamp","upsideDown","flipIfAprilFools","location","pathname","getTime","timestampToSeconds","onYouTubeIframeAPIReady","showPlayer","resultsBuilder","addResults","resultsSummary","patreonPlayer","isVisible","updatePatreonLocationStatuses","updateEnabled","prankcastPlayer","notlaPlayer","prankcast","notla","unhide","selectedResult","find","youtubeRemoteId","youtubeSeconds","youtubePlayerCreated","isPlaying"],"mappings":"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","file":"js/search-2e3ca8698c341dbf1333.js","sourcesContent":[" \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n \t\t}\n \t};\n\n \t// define __esModule on exports\n \t__webpack_require__.r = function(exports) {\n \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n \t\t}\n \t\tObject.defineProperty(exports, '__esModule', { value: true });\n \t};\n\n \t// create a fake namespace object\n \t// mode & 1: value is a module id, require it\n \t// mode & 2: merge all properties of value into the ns\n \t// mode & 4: return value when already ns object\n \t// mode & 8|1: behave like require\n \t__webpack_require__.t = function(value, mode) {\n \t\tif(mode & 1) value = __webpack_require__(value);\n \t\tif(mode & 8) return value;\n \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n \t\tvar ns = Object.create(null);\n \t\t__webpack_require__.r(ns);\n \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n \t\treturn ns;\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"/packs/\";\n\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(__webpack_require__.s = 19);\n","class GreenAudioPlayer {\n constructor(player, options) {\n this.audioPlayer = typeof player === 'string' ? document.querySelector(player) : player;\n const opts = options || {};\n\n const audioElement = this.audioPlayer.innerHTML;\n this.audioPlayer.classList.add('green-audio-player');\n this.audioPlayer.innerHTML = GreenAudioPlayer.getTemplate() + audioElement;\n\n this.isDevice = /ipad|iphone|ipod|android/i.test(window.navigator.userAgent.toLowerCase()) && !window.MSStream;\n this.playPauseBtn = this.audioPlayer.querySelector('.play-pause-btn');\n this.loading = this.audioPlayer.querySelector('.loading');\n this.sliders = this.audioPlayer.querySelectorAll('.slider');\n this.progress = this.audioPlayer.querySelector('.controls__progress');\n this.volumeBtn = this.audioPlayer.querySelector('.volume__button');\n this.volumeControls = this.audioPlayer.querySelector('.volume__controls');\n this.volumeProgress = this.volumeControls.querySelector('.volume__progress');\n this.player = this.audioPlayer.querySelector('audio');\n this.currentTime = this.audioPlayer.querySelector('.controls__current-time');\n this.totalTime = this.audioPlayer.querySelector('.controls__total-time');\n this.speaker = this.audioPlayer.querySelector('.volume__speaker');\n this.download = this.audioPlayer.querySelector('.download');\n this.downloadLink = this.audioPlayer.querySelector('.download__link');\n this.span = this.audioPlayer.querySelectorAll('.message__offscreen');\n this.svg = this.audioPlayer.getElementsByTagName('svg');\n this.img = this.audioPlayer.getElementsByTagName('img');\n this.draggableClasses = ['pin'];\n this.currentlyDragged = null;\n this.stopOthersOnPlay = opts.stopOthersOnPlay || false;\n this.enableKeystrokes = opts.enableKeystrokes || false;\n this.showTooltips = opts.showTooltips || false;\n this.formatTime = opts.formatTime || GreenAudioPlayer.formatTime;\n\n this.currentTime.textContent = this.formatTime(0);\n this.totalTime.textContent = this.formatTime(0);\n\n const self = this;\n\n this.labels = {\n volume: {\n open: 'Open Volume Controls',\n close: 'Close Volume Controls',\n },\n pause: 'Pause',\n play: 'Play',\n download: 'Download',\n };\n\n if (!this.enableKeystrokes) {\n for (let i = 0; i < this.span.length; i++) {\n this.span[i].outerHTML = '';\n }\n } else {\n window.addEventListener('keydown', this.pressKb.bind(self), false);\n window.addEventListener('keyup', this.unPressKb.bind(self), false);\n this.sliders[0].setAttribute('tabindex', 0);\n this.sliders[1].setAttribute('tabindex', 0);\n this.download.setAttribute('tabindex', -1);\n this.downloadLink.setAttribute('tabindex', -1);\n for (let j = 0; j < this.svg.length; j++) {\n this.svg[j].setAttribute('tabindex', 0);\n this.svg[j].setAttribute('focusable', true);\n }\n for (let k = 0; k < this.img.length; k++) {\n this.img[k].setAttribute('tabindex', 0);\n }\n }\n\n if (this.showTooltips) {\n this.playPauseBtn.setAttribute('title', this.labels.play);\n this.volumeBtn.setAttribute('title', this.labels.volume.open);\n this.downloadLink.setAttribute('title', this.labels.download);\n }\n\n if (opts.outlineControls || false) {\n this.audioPlayer.classList.add('player-accessible');\n }\n\n if (opts.showDownloadButton || false) {\n this.showDownload();\n }\n\n this.initEvents();\n this.directionAware();\n\n if (opts.hideVolumeOnMobile !== false) {\n this.overcomeIosLimitations();\n }\n\n if ('autoplay' in this.player.attributes) {\n const promise = this.player.play();\n if (promise !== undefined) {\n promise.then(() => {\n const playPauseButton = self.player.parentElement.querySelector('.play-pause-btn__icon');\n playPauseButton.attributes.d.value = 'M0 0h6v24H0zM12 0h6v24h-6z';\n self.playPauseBtn.setAttribute('aria-label', self.labels.pause);\n self.hasSetAttribute(self.playPauseBtn, 'title', self.labels.pause);\n }).catch(() => {\n // eslint-disable-next-line no-console\n console.error('Green Audio Player Error: Autoplay has been prevented, because it is not allowed by this browser.');\n });\n }\n }\n if ('preload' in this.player.attributes && this.player.attributes.preload.value === 'none') {\n this.playPauseBtn.style.visibility = 'visible';\n this.loading.style.visibility = 'hidden';\n }\n }\n\n static init(options) {\n const players = document.querySelectorAll(options.selector);\n\n players.forEach((player) => {\n /* eslint-disable no-new */\n new GreenAudioPlayer(player, options);\n });\n }\n\n static getTemplate() {\n return `\n
$1
\");\n\n if (timestamp.prefix != \"\") {\n formattedPreview = timestamp.prefix + \" \" + formattedPreview;\n }\n\n transcriptLocation.getElementsByClassName(this.transcriptLocationPreviewClass)[0].innerHTML = formattedPreview;\n\n if (\n result.content_type == selectedContentType &&\n result.remote_id == selectedRemoteId &&\n timestamp.seconds == selectedSeconds\n ) {\n this.replacePlayingItem(transcriptLocation);\n }\n\n transcriptLocations.appendChild(transcriptLocation);\n }\n\n this.contentItems.appendChild(newResult);\n }\n\n updatePatreonLocationStatuses() {\n const patreonResults = this.contentItems.querySelectorAll(\n \".\" + this.contentItemClass + \"[data-content-type='patreon']\"\n );\n\n for (const patreonResult of patreonResults) {\n const remoteId = patreonResult.dataset.remoteId;\n\n let visibleStatus;\n\n if (!this.patreonRss.enabled) {\n visibleStatus = this.transcriptLocationNewTabClass;\n } else if (!this.patreonRss.mediaUrlForRemoteId(remoteId)) {\n visibleStatus = this.transcriptLocationLoadingClass;\n } else {\n visibleStatus = this.transcriptLocationReadyClass;\n }\n\n const transcriptLocations = patreonResult.getElementsByClassName(this.transcriptLocationClass);\n\n for (const transcriptLocation of transcriptLocations) {\n this.setTranscriptLocationStatus(transcriptLocation, visibleStatus);\n }\n }\n }\n\n setTranscriptLocationStatus(transcriptLocation, visibleStatus) {\n for (const locationStatus of this.locationStatuses) {\n transcriptLocation.getElementsByClassName(locationStatus)[0].hidden = locationStatus !== visibleStatus;\n }\n }\n}\n\nexport default ResultsBuilder;\n","class PatreonTooltip {\n constructor({ inputs, hover, tooltip, playerOverlay, playerOverlayEnabledClass, tooltipHoverClass }) {\n this.inputs = document.querySelector(inputs);\n this.hover = document.querySelector(hover);\n this.tooltip = document.querySelector(tooltip);\n this.playerOverlay = document.querySelector(playerOverlay);\n this.playerOverlayEnabledClass = playerOverlayEnabledClass;\n this.tooltipHoverClass = tooltipHoverClass;\n\n this.inputs.addEventListener(\"mouseenter\", () => {\n this.tooltip.classList.add(this.tooltipHoverClass);\n this.playerOverlay.classList.add(this.playerOverlayEnabledClass);\n });\n\n document.addEventListener(\"mousemove\", () => {\n if (!this.tooltip.classList.contains(this.tooltipHoverClass)) {\n return;\n }\n\n const outsidePatreonInputsHover = this.cursorOutsideElement(this.hover, event);\n const outsidePatreonTooltip = this.cursorOutsideElement(this.tooltip, event);\n\n if (outsidePatreonInputsHover && outsidePatreonTooltip) {\n this.tooltip.classList.remove(this.tooltipHoverClass);\n this.playerOverlay.classList.remove(this.playerOverlayEnabledClass);\n }\n });\n }\n\n cursorOutsideElement(element, event) {\n const rect = element.getBoundingClientRect();\n\n return (\n event.clientX < rect.left ||\n event.clientX > rect.right ||\n event.clientY < rect.top ||\n event.clientY > rect.bottom\n );\n }\n}\n\nexport default PatreonTooltip;\n","class PatreonRss {\n constructor({ patreonCheckbox, patreonRssUrl, rssStatus, resetMetadataCallback, updatePatreonResults }) {\n this.patreonCheckbox = document.querySelector(patreonCheckbox);\n this.patreonRssUrl = document.querySelector(patreonRssUrl);\n this.rssStatus = document.querySelector(rssStatus);\n this.resetMetadataCallback = resetMetadataCallback;\n this.updatePatreonResults = updatePatreonResults;\n\n this.statuses = {\n reading: \"Reading RSS feed...\",\n active: \"RSS feed active!\",\n noLink: \"No RSS link, you hobo!\",\n notPlaLink: \"Not a PLA RSS link!\",\n connectionError: \"Connection error!\",\n unauthorized: \"Unauthorized!\",\n serverError: \"Server error!\"\n };\n\n this.storageKeys = {\n metadata: \"patreonMetadata\",\n rssUrl: \"patreonRssUrl\"\n };\n\n this.metadata = null;\n this.lastRequestId = 0;\n this.enabled = false;\n this.loading = false;\n\n this.patreonRssUrl.value = localStorage.getItem(this.storageKeys.rssUrl);\n\n this.patreonRssUrl.onkeydown = function(event) {\n return event.key != \"Enter\";\n };\n\n this.patreonRssUrl.addEventListener(\"input\", () => {\n this.updateRss(true, true, true);\n });\n }\n\n resetMetadata() {\n localStorage.removeItem(this.storageKeys.metadata);\n\n this.metadata = null;\n this.enabled = false;\n\n this.resetMetadataCallback();\n }\n\n mediaUrlForRemoteId(remoteId) {\n if (!this.metadata) {\n return null;\n }\n\n return this.metadata.urls[remoteId];\n }\n\n updateRss(ignoreCurrentMetadata, ignoreCurrentRequests, updateCheckbox) {\n if (this.loading && !ignoreCurrentRequests) {\n return;\n }\n\n this.loading = true;\n\n this.lastRequestId += 1;\n const requestId = this.lastRequestId;\n\n const patreonRssUrl = this.patreonRssUrl.value;\n\n if (patreonRssUrl != localStorage.getItem(this.storageKeys.rssUrl)) {\n localStorage.setItem(this.storageKeys.rssUrl, patreonRssUrl);\n\n this.resetMetadata();\n }\n\n if (patreonRssUrl == \"\") {\n this.rssStatus.innerHTML = this.statuses.noLink;\n\n this.resetMetadata();\n this.updatePatreonResults();\n\n this.loading = false;\n\n return;\n }\n\n const authMatch = patreonRssUrl.match(/^https:\\/\\/www\\.patreon\\.com\\/rss\\/phonelosers\\?auth=(.{32})$/, \"$1\");\n\n if (authMatch === null) {\n this.rssStatus.innerHTML = this.statuses.notPlaLink;\n\n this.resetMetadata();\n this.updatePatreonResults();\n\n this.loading = false;\n\n return;\n }\n\n this.enabled = true;\n this.metadata = JSON.parse(localStorage.getItem(this.storageKeys.metadata));\n\n if (this.metadata && !ignoreCurrentMetadata) {\n this.rssStatus.innerHTML = this.statuses.active;\n\n this.updatePatreonResults();\n\n this.loading = false;\n\n return;\n }\n\n this.updatePatreonResults();\n\n this.rssStatus.innerHTML = this.statuses.reading;\n\n const auth = authMatch[1];\n const requestUrl = \"/patreon?auth=\" + encodeURIComponent(auth);\n const xmlHttp = new XMLHttpRequest();\n\n xmlHttp.onreadystatechange = () => {\n if (xmlHttp.readyState == 4) {\n if (requestId != this.lastRequestId) {\n return;\n }\n\n switch (xmlHttp.status) {\n case 0:\n this.rssStatus.innerHTML = this.statuses.connectionError;\n\n break;\n\n case 200:\n localStorage.setItem(this.storageKeys.metadata, xmlHttp.responseText);\n this.metadata = JSON.parse(xmlHttp.responseText);\n this.rssStatus.innerHTML = this.statuses.active;\n\n if (updateCheckbox) {\n this.patreonCheckbox.checked = true;\n }\n\n break;\n\n case 403:\n this.rssStatus.innerHTML = this.statuses.unauthorized;\n\n this.resetMetadata();\n\n break;\n\n case 500:\n this.rssStatus.innerHTML = this.statuses.serverError;\n\n break;\n }\n\n this.updatePatreonResults();\n this.loading = false;\n }\n }\n\n xmlHttp.open(\"GET\", requestUrl, true);\n xmlHttp.send(null);\n }\n}\n\nexport default PatreonRss;\n","class UpsideDown {\n constructor({ selectors, upsideDownClass }) {\n this.selectors = selectors;\n this.upsideDownClass = upsideDownClass;\n }\n\n isAprilFools() {\n var date = new Date();\n\n return date.getMonth() == 3 && date.getDate() == 1;\n }\n\n flip() {\n for (const selector of this.selectors) {\n const element = document.querySelector(selector);\n\n element.classList.add(this.upsideDownClass);\n }\n }\n\n flipIfAprilFools() {\n if (this.isAprilFools()) {\n this.flip();\n }\n }\n}\n\nexport default UpsideDown;\n","class EasterEggs {\n constructor({ unhidePlayer, players }) {\n this.unhidePlayer = unhidePlayer;\n this.players = players;\n\n this.nastyWords = [\"bmln\", \"bmlnZw==\", \"bmlnZ2U=\", \"bmlnZ2Vy\", \"bmlnZ2Vycw==\", \"bmlnZ2E=\", \"bmlnZ2Fz\"];\n this.nastyVideoId = \"dQw4w9WgXcQ\";\n\n this.easterEggs = {\n \"bXkgZG9nIGF0ZSB0aGUgYmlzY290dGk=\": \"gtfretW34oU\",\n \"ZGV2b24gaXMgcG9vcGluIGFuZCBwZWVpbiBvdXQgdGhlcmU=\": \"EyoIgl-WQH8\",\n \"dGhlcmUgaXMgYSBkb2cgbWFkZSBvZiBsZXR0dWNlIG9uIHRoZSByb29m\": \"x48LxBFhdu4\",\n [\n \"VGhhdCBvbmUgc29uZyB0aGF0IEJyYWQgcGxheXMgdGhhdCdzIGxpa2UgQnVtIGJ1bS4gSHVtIGJ1bSBkZSBkZWVlIGRlIGRvb29vb29vLiBC\" +\n \"ZWUgYnVtIGJ1IGJ1bSBidW0gYmFhYWFhYWEuIEFuZCB0aGUgbHlyaWNzIGFyZSBhbGwgY3Jhenku\"\n ]: \"cUgiMulY42g\",\n [\n \"VGhhdCBvbmUgZXBpc29kZSB3aGVyZSBCcmFkIGNhbGxlZCBhIGd1eSB3aXRoIGEgZnVubnkgdm9pY2UuIEkgdGhpbmsgaGUgd2FzIGZyb20g\" +\n \"YSBwaGFybWFjeSBvciBhIHBpenphIHBsYWNlIG9yIHNvbWV0aGluZy4gSSBkb24ndCByZW1lbWJlciB3aGF0IHRoZSBwcmVtaXNlIG9mIHRo\" +\n \"ZSBjYWxsIHdhcywgYnV0IEJyYWQgc2FpZCBzb21ldGhpbmcgdG8gdGhlIGd1eSBhbmQgdGhlIGd1eSB3YXMgYWxsIHBpc3NlZCBvZmYuIEhl\" +\n \"IHNhaWQgc29tZXRoaW5nIGJhY2sgdG8gQnJhZCBpbiBoaXMgd2VpcmQgdm9pY2UuIEl0IHdhcyBzbyBmdW5ueS4gSSBjYW4ndCBldmVuIGRl\" +\n \"c2NyaWJlIGl0LiBXaGF0IHdhcyB0aGF0IGVwaXNvZGU/\"\n ]: \"akZT4TYB7wA\",\n \"ZG9nIGVnZ3MgdGhhdCBtaWdodCBiZSBmcm9tIGRlc3BpY2FibGUncyBidXR0\": \"ezSIF3hIf80\"\n };\n }\n\n tryEasterEgg(search) {\n const videoId = this.isNasty(search) ? this.nastyVideoId : this.easterEggs[this.encode(search)];\n\n if (!videoId) {\n return false;\n }\n\n const youtubePlayerCreated = this.players.players.youtube.create(videoId, 0, true);\n\n if (youtubePlayerCreated) {\n this.players.switchToPlayer(\"youtube\");\n } else {\n this.players.cue(\"youtube\", videoId, null, null, 0, true);\n }\n\n this.unhidePlayer(true);\n\n return true;\n }\n\n isNasty(search) {\n const words = search.trim().toLowerCase().split(/ +/);\n\n for (let word of words) {\n const encodedWord = this.encode(word);\n\n if (this.nastyWords.includes(encodedWord)) {\n return true;\n }\n }\n\n return false;\n }\n\n encode(text) {\n try {\n return btoa(text.trim());\n } catch(e) {\n return \"\";\n }\n }\n}\n\nexport default EasterEggs;\n","class YoutubePlayer {\n constructor({ playerId, hiddenClass }) {\n this.playerId = playerId;\n this.hiddenClass = hiddenClass;\n\n this.youtubePlayer = null;\n\n const script = document.createElement(\"script\");\n script.src = \"https://www.youtube.com/iframe_api\";\n\n const firstScriptTag = document.getElementsByTagName(\"script\")[0];\n firstScriptTag.parentNode.insertBefore(script, firstScriptTag);\n }\n\n create(remoteId, seconds, startPlayback) {\n if (this.youtubePlayer) {\n return false;\n }\n\n this.youtubePlayer = new YT.Player(this.playerId, {\n videoId: remoteId,\n playerVars: {\n start: seconds,\n autoplay: startPlayback\n },\n events: {\n \"onReady\": function(event) {\n event.target.unMute();\n event.target.setVolume(100);\n }\n }\n });\n\n return true;\n }\n\n pause() {\n try {\n this.youtubePlayer.pauseVideo();\n } catch(e) {}\n }\n\n isPaused() {\n try {\n const state = this.youtubePlayer.getPlayerState()\n\n if (state == 1 || state == 3) {\n return false;\n }\n } catch(e) {}\n\n return true;\n }\n\n hide() {\n document.getElementById(this.playerId).classList.add(this.hiddenClass);\n }\n\n show() {\n document.getElementById(this.playerId).classList.remove(this.hiddenClass);\n }\n\n cue(remoteId, _mediaUrl, _title, seconds, startPlayback) {\n try {\n if (startPlayback && this.youtubePlayer.playerInfo.videoData.video_id == remoteId) {\n this.youtubePlayer.seekTo(seconds);\n this.youtubePlayer.playVideo();\n\n return;\n }\n\n if (startPlayback) {\n this.youtubePlayer.loadVideoById(remoteId, seconds);\n } else {\n this.youtubePlayer.cueVideoById(remoteId, seconds);\n }\n } catch(e) {}\n }\n\n link(remoteId, seconds) {\n let link = \"https://www.youtube.com/watch?v=\" + remoteId;\n\n if (seconds) {\n link += \"&t=\";\n\n let secondsRemainder = seconds;\n\n const hours = Math.floor(secondsRemainder / 3600);\n secondsRemainder -= hours * 3600;\n\n const minutes = Math.floor(secondsRemainder / 60);\n secondsRemainder -= minutes * 60;\n\n if (hours) {\n link += hours + \"h\";\n }\n\n if (minutes) {\n link += minutes + \"m\";\n }\n\n link += secondsRemainder + \"s\";\n }\n\n return link;\n }\n}\n\nexport default YoutubePlayer;\n","class PatreonPlayer {\n constructor({ title, logo, player, audioPlayer, audioPlayerDummy, overlayHint, hiddenClass, patreonRss, formatTime, GreenAudioPlayer }) {\n this.title = document.querySelector(title);\n this.logo = document.querySelector(logo);\n this.player = document.querySelector(player);\n this.greenAudioPlayer = new GreenAudioPlayer(audioPlayer, { formatTime: formatTime, hideVolumeOnMobile: false });\n this.audioPlayerDummy = document.querySelector(audioPlayerDummy);\n this.greenAudioPlayerDummy = new GreenAudioPlayer(audioPlayerDummy, { formatTime: formatTime, hideVolumeOnMobile: false });\n this.overlayHint = document.querySelector(overlayHint);\n this.hiddenClass = hiddenClass;\n this.patreonRss = patreonRss;\n this.formatTime = formatTime;\n this.GreenAudioPlayer = GreenAudioPlayer;\n\n this.audio = this.greenAudioPlayer.player;\n this.lastRemoteId = null;\n this.lastSeconds = null;\n this.startPlayback = false;\n\n this.greenAudioPlayer.player.volume = 1;\n\n this.overlayHints = {\n disabled: \"Add your Patreon RSS link to use this player\",\n loading: \"Updating Patreon RSS data...\"\n };\n\n this.audio.addEventListener(\"error\", () => {\n this.disable();\n this.patreonRss.updateRss(true, false, false);\n });\n }\n\n pause() {\n this.GreenAudioPlayer.pausePlayer(this.audio);\n\n this.startPlayback = false;\n }\n\n play() {\n this.GreenAudioPlayer.playPlayer(this.audio);\n }\n\n isPaused() {\n return this.audio.paused;\n }\n\n isVisible() {\n return !this.player.classList.contains(this.hiddenClass);\n }\n\n hide() {\n this.player.classList.add(this.hiddenClass);\n }\n\n show() {\n this.player.classList.remove(this.hiddenClass);\n }\n\n hideDummy() {\n this.audioPlayerDummy.classList.add(this.hiddenClass);\n }\n\n showDummy() {\n this.audioPlayerDummy.classList.remove(this.hiddenClass);\n }\n\n cue(remoteId, _mediaUrl, title, seconds, startPlayback) {\n this.lastRemoteId = remoteId;\n this.lastSeconds = seconds;\n this.startPlayback = startPlayback;\n\n const mediaUrl = this.patreonRss.mediaUrlForRemoteId(remoteId);\n\n if (mediaUrl === null || this.audio.src != mediaUrl) {\n const href = this.link(remoteId, null);\n\n this.title.innerHTML = title;\n\n this.title.href = href;\n this.logo.href = href;\n }\n\n if (mediaUrl) {\n this.audio.src = mediaUrl;\n this.audio.currentTime = seconds;\n\n this.hideDummy();\n }\n\n if (startPlayback && this.isPaused()) {\n this.play();\n }\n }\n\n updateEnabled() {\n const mediaUrl = this.patreonRss.mediaUrlForRemoteId(this.lastRemoteId);\n\n mediaUrl ? this.enable(mediaUrl) : this.disable();\n }\n\n enable(mediaUrl) {\n this.audio.src = mediaUrl;\n this.audio.currentTime = this.lastSeconds;\n\n this.hideDummy();\n\n if (this.startPlayback) {\n this.play();\n }\n }\n\n disable() {\n if (this.audio.src) {\n this.lastSeconds = this.audio.currentTime;\n }\n\n this.updateOverlayHint();\n this.updateDummyLoading();\n this.showDummy();\n }\n\n updateOverlayHint() {\n const hint = this.patreonRss.enabled ? this.overlayHints.loading : this.overlayHints.disabled;\n\n this.overlayHint.innerHTML = hint;\n }\n\n updateDummyLoading() {\n if (this.patreonRss.enabled) {\n this.greenAudioPlayerDummy.loading.style = \"visibility: visible\";\n this.greenAudioPlayerDummy.playPauseBtn.style = \"visibility: hidden\";\n } else {\n this.greenAudioPlayerDummy.loading.style = \"visibility: hidden\";\n this.greenAudioPlayerDummy.playPauseBtn.style = \"visibility: visible\";\n }\n }\n\n link(remoteId, seconds) {\n let link = \"https://www.patreon.com/posts/\" + remoteId;\n\n if (seconds) {\n link += \"#quote_at=\" + this.formatTime(seconds);\n }\n\n return link;\n }\n}\n\nexport default PatreonPlayer;\n","class PrankcastPlayer {\n constructor({ title, logo, player, audioPlayer, hiddenClass, formatTime, GreenAudioPlayer }) {\n this.title = document.querySelector(title);\n this.logo = document.querySelector(logo);\n this.player = document.querySelector(player);\n this.greenAudioPlayer = new GreenAudioPlayer(audioPlayer, { formatTime: formatTime, hideVolumeOnMobile: false });\n this.hiddenClass = hiddenClass;\n this.GreenAudioPlayer = GreenAudioPlayer;\n\n this.audio = this.greenAudioPlayer.player;\n this.greenAudioPlayer.player.volume = 1;\n }\n\n pause() {\n this.GreenAudioPlayer.pausePlayer(this.audio);\n }\n\n isPaused() {\n return this.audio.paused;\n }\n\n hide() {\n this.player.classList.add(this.hiddenClass);\n }\n\n show() {\n this.player.classList.remove(this.hiddenClass);\n }\n\n cue(remoteId, mediaUrl, title, seconds, startPlayback) {\n if (this.audio.src != mediaUrl) {\n this.audio.src = mediaUrl;\n\n const href = this.link(remoteId, null);\n\n this.title.innerHTML = title;\n\n this.title.href = href;\n this.logo.href = href;\n }\n\n this.audio.currentTime = seconds;\n\n if (startPlayback && this.isPaused()) {\n this.GreenAudioPlayer.playPlayer(this.audio);\n }\n }\n\n link(remoteId, seconds) {\n let link = \"https://prankcast.com/phonelosers/posts/\" + remoteId;\n\n if (seconds) {\n let quoteAt = new Date(seconds * 1000).toISOString().substr(11, 8);\n link += \"#quote_at=\" + quoteAt;\n }\n\n return link;\n }\n}\n\nexport default PrankcastPlayer;\n","class NotlaPlayer {\n constructor({ title, logo, player, audioPlayer, hiddenClass, formatTime, GreenAudioPlayer }) {\n this.title = document.querySelector(title);\n this.logo = document.querySelector(logo);\n this.player = document.querySelector(player);\n this.greenAudioPlayer = new GreenAudioPlayer(audioPlayer, { formatTime: formatTime, hideVolumeOnMobile: false });\n this.hiddenClass = hiddenClass;\n this.GreenAudioPlayer = GreenAudioPlayer;\n\n this.audio = this.greenAudioPlayer.player;\n this.greenAudioPlayer.player.volume = 1;\n }\n\n pause() {\n this.GreenAudioPlayer.pausePlayer(this.audio);\n }\n\n isPaused() {\n return this.audio.paused;\n }\n\n hide() {\n this.player.classList.add(this.hiddenClass);\n }\n\n show() {\n this.player.classList.remove(this.hiddenClass);\n }\n\n cue(remoteId, mediaUrl, title, seconds, startPlayback) {\n if (this.audio.src != mediaUrl) {\n this.audio.src = mediaUrl;\n\n const href = this.link(remoteId, null);\n\n this.title.innerHTML = title;\n\n this.title.href = href;\n this.logo.href = href;\n }\n\n this.audio.currentTime = seconds;\n\n if (startPlayback && this.isPaused()) {\n this.GreenAudioPlayer.playPlayer(this.audio);\n }\n }\n\n link(remoteId, seconds) {\n let link = \"https://www.notla.com/?p=\" + remoteId;\n\n if (seconds) {\n let quoteAt = new Date(seconds * 1000).toISOString().substr(11, 8);\n link += \"#quote_at=\" + quoteAt;\n }\n\n return link;\n }\n}\n\nexport default NotlaPlayer;\n","class Players {\n constructor(players) {\n this.players = players;\n this.currentPlayer = null;\n }\n\n switchToPlayer(playerKey) {\n for (let key in this.players) {\n const player = this.players[key];\n\n if (key == playerKey) {\n player.show();\n\n this.currentPlayer = player;\n } else {\n player.pause();\n player.hide();\n }\n }\n }\n\n isPlaying() {\n for (let key in this.players) {\n if (!this.players[key].isPaused()) {\n return true;\n }\n }\n\n return false;\n }\n\n cue(playerKey, remoteId, mediaUrl, title, seconds, startPlayback) {\n this.switchToPlayer(playerKey);\n\n this.currentPlayer.cue(remoteId, mediaUrl, title, seconds, startPlayback);\n }\n\n link(playerKey, postId, seconds) {\n return this.players[playerKey].link(postId, seconds);\n }\n}\n\nexport default Players;\n","const SummaryBuilder = require(\"packs/search/summary_builder\").default;\nconst HistoryManager = require(\"packs/search/history_manager\").default;\nconst ResultsBuilder = require(\"packs/search/results_builder\").default;\nconst PatreonTooltip = require(\"packs/search/patreon_tooltip\").default;\nconst PatreonRss = require(\"packs/search/patreon_rss\").default;\nconst UpsideDown = require(\"packs/search/upside_down\").default;\nconst EasterEggs = require(\"packs/search/easter_eggs\").default;\n\nconst GreenAudioPlayer = require(\"packs/green-audio-player/main\").default;\nconst YoutubePlayer = require(\"packs/search/youtube_player\").default;\nconst PatreonPlayer = require(\"packs/search/patreon_player\").default;\nconst PrankcastPlayer = require(\"packs/search/prankcast_player\").default;\nconst NotlaPlayer = require(\"packs/search/notla_player\").default;\nconst Players = require(\"packs/search/players\").default;\n\nwindow.greet = loadInitialResults;\n\nconst summaryBuilder = new SummaryBuilder({\n summary: \"#summary\",\n patreonCheckbox: \"#patreon-checkbox\"\n});\n\nconst patreonRss = new PatreonRss({\n patreonCheckbox: \"#patreon-checkbox\",\n patreonRssUrl: \"#patreon-rss-url\",\n rssStatus: \"#patreon-rss-status\",\n resetMetadataCallback: resetMetadataCallback,\n updatePatreonResults: updatePatreonResults\n});\n\nconst youtubePlayer = new YoutubePlayer({\n playerId: \"youtube-player\",\n hiddenClass: \"hidden\"\n});\n\nconst patreonPlayer = new PatreonPlayer({\n title: \"#patreon-title\",\n logo: \"#patreon-logo\",\n player: \"#patreon-player\",\n audioPlayer: \"#patreon-audio-player\",\n audioPlayerDummy: \"#patreon-audio-player-dummy\",\n overlayHint: \"#patreon-audio-player-overlay-hint\",\n hiddenClass: \"hidden\",\n patreonRss: patreonRss,\n formatTime: formatTime,\n GreenAudioPlayer: GreenAudioPlayer\n});\n\nconst prankcastPlayer = new PrankcastPlayer({\n title: \"#prankcast-title\",\n logo: \"#prankcast-logo\",\n player: \"#prankcast-player\",\n audioPlayer: \"#prankcast-audio-player\",\n hiddenClass: \"hidden\",\n formatTime: formatTime,\n GreenAudioPlayer: GreenAudioPlayer\n});\n\nconst notlaPlayer = new NotlaPlayer({\n title: \"#notla-title\",\n logo: \"#notla-logo\",\n player: \"#notla-player\",\n audioPlayer: \"#notla-audio-player\",\n hiddenClass: \"hidden\",\n formatTime: formatTime,\n GreenAudioPlayer: GreenAudioPlayer\n});\n\nconst players = new Players({\n youtube: youtubePlayer,\n patreon: patreonPlayer,\n prankcast: prankcastPlayer,\n notla: notlaPlayer\n});\n\nconst easterEggs = new EasterEggs({\n unhidePlayer: unhidePlayer,\n players: players\n});\n\nconst historyManager = new HistoryManager({\n search: \"#search\",\n patreonCheckbox: \"#patreon-checkbox\",\n searchForm: \"#search-form\",\n playerWrapper: \"#player-wrapper\",\n loadVideoResults: loadVideoResults,\n summaryBuilder: summaryBuilder,\n formatTime: formatTime,\n easterEggs: easterEggs\n});\n\nconst patreonTooltip = new PatreonTooltip({\n inputs: \"#patreon-inputs\",\n hover: \"#patreon-inputs-hover\",\n tooltip: \"#patreon-tooltip\",\n playerOverlay: \"#player-wrapper-overlay\",\n playerOverlayEnabledClass: \"enabled\",\n tooltipHoverClass: \"hover\",\n});\n\nconst resultsBuilder = new ResultsBuilder({\n contentItems: \"#content-items\",\n contentItemTemplate: \"#content-item-template\",\n search: \"#search\",\n contentItemClass: \"content-item\",\n contentItemLinkClass: \"content-item-link\",\n contentItemLinkTextClass: \"content-item-link-text\",\n contentItemUploadDateClass: \"content-item-upload-date\",\n transcriptLocationsClass: \"transcript-locations\",\n transcriptLocationClass: \"transcript-location\",\n transcriptLocationReadyClass: \"ready\",\n transcriptLocationLoadingClass: \"loading\",\n transcriptLocationNewTabClass: \"new-tab\",\n transcriptLocationTimestampClass: \"timestamp\",\n transcriptLocationPreviewClass: \"preview\",\n transcriptLocationSelectedClass: \"selected\",\n players: players,\n patreonRss: patreonRss,\n historyManager: historyManager,\n formatTime: formatTime\n});\n\nconst upsideDown = new UpsideDown({\n selectors: [\"#shit-brad-says-logo\", \"#search-container\", \"#summary\", \"#player-wrapper\", \".content-item\"],\n upsideDownClass: \"upside-down\"\n});\n\nfunction formatTime(seconds) {\n return new Date(seconds * 1000).toISOString().substr(11, 8);\n}\n\nfunction resetMetadataCallback() {\n if (patreonPlayer.isVisible()) {\n patreonPlayer.pause();\n resultsBuilder.replacePlayingItem();\n }\n}\n\nfunction updatePatreonResults() {\n resultsBuilder.updatePatreonLocationStatuses();\n patreonPlayer.updateEnabled();\n}\n\npatreonRss.updateRss();\n\nfunction loadVideoResults(videoResults, initialLoad, contentType, remoteId, seconds) {\n resultsBuilder.addResults(videoResults, contentType, remoteId, seconds);\n\n if (!videoResults.length && initialLoad) {\n resetHomeView();\n\n youtubePlayer.pause();\n\n var searchedText = document.getElementById(\"search\").value;\n\n if (searchedText) {\n summaryBuilder.resultsSummary(videoResults);\n } else {\n summaryBuilder.totalsSummary();\n }\n\n return;\n }\n\n showPlayer(videoResults, contentType, remoteId, seconds);\n unhidePlayer(videoResults.length);\n summaryBuilder.resultsSummary(videoResults);\n}\n\nfunction timestampToSeconds(timestamp) {\n if (timestamp && timestamp.match(/([0-1][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9]/)) {\n return new Date(\"1970-01-01T\" + timestamp + \"Z\").getTime() / 1000;\n }\n}\n\nfunction loadInitialResults(videoResults, sums, patreon, selectedContentType, selectedRemoteId, selectedTimestamp) {\n summaryBuilder.sums = sums;\n upsideDown.flipIfAprilFools();\n\n if (location.pathname === \"/\" && patreonRss.enabled) {\n patreon = true;\n }\n\n document.getElementById(\"patreon-checkbox\").checked = patreon;\n\n const selectedSeconds = timestampToSeconds(selectedTimestamp);\n\n historyManager.setHistory(videoResults, true, true, false, selectedContentType, selectedRemoteId, selectedSeconds);\n\n if (!document.getElementById(\"search\").value) {\n summaryBuilder.totalsSummary();\n\n return;\n }\n\n if (videoResults.length) {\n window.onYouTubeIframeAPIReady = function() {\n showPlayer(videoResults, selectedContentType, selectedRemoteId, selectedSeconds);\n }\n\n unhidePlayer(videoResults.length);\n resultsBuilder.addResults(videoResults, selectedContentType, selectedRemoteId, selectedSeconds);\n }\n\n summaryBuilder.resultsSummary(videoResults);\n}\n\nfunction unhidePlayer(unhide) {\n if (!unhide) {\n return;\n }\n\n document.getElementById(\"outer-container\").classList.remove(\"center-search\");\n document.getElementById(\"player-wrapper\").hidden = false;\n}\n\nfunction resetHomeView() {\n document.getElementById(\"outer-container\").classList.add(\"center-search\");\n document.getElementById(\"player-wrapper\").hidden = true;\n document.getElementById(\"summary\").innerHTML = \" \"\n}\n\nfunction showPlayer(results, selectedContentType, selectedRemoteId, selectedSeconds) {\n if (results.length == 0) {\n return;\n }\n\n let selectedResult = undefined;\n let seconds = undefined;\n\n if (selectedContentType && selectedRemoteId) {\n selectedResult = results.find(\n result => result.content_type == selectedContentType && result.remote_id == selectedRemoteId\n );\n\n if (selectedResult) {\n seconds = selectedSeconds;\n }\n }\n\n selectedResult ??= results[0];\n const remoteId = selectedResult ? selectedResult.remote_id : null;\n seconds ??= selectedResult ? selectedResult.timestamps[0].seconds : null;\n\n let youtubeRemoteId = null;\n let youtubeSeconds = null;\n\n if (selectedResult.content_type == \"youtube\") {\n youtubeRemoteId = remoteId;\n youtubeSeconds = seconds;\n }\n\n const youtubePlayerCreated = youtubePlayer.create(youtubeRemoteId, youtubeSeconds);\n\n if (players.isPlaying()) {\n return;\n }\n\n if (selectedResult.content_type == \"youtube\" && youtubePlayerCreated) {\n players.switchToPlayer(\"youtube\");\n } else {\n players.cue(selectedResult.content_type, remoteId, selectedResult.media_url, selectedResult.title, seconds, false);\n }\n}\n"],"sourceRoot":""}