(() => { if (!(window.Options && localStorage && document.querySelector ('div.post.op') && Options.get_tab ('webm'))) { return; } const setloopsto = (root, loop) => { if (typeof setupVideosIn === "function") { // expand-video.js const label = loop ? '[loop]' : '[play once]' $(root).find ('p.fileinfo > span').filter ((k, e) => e.innerText === label).each ((k, e) => e.click ()) } else { const flag = loop ? '1' : '0' Array.from (root.querySelectorAll ("div.file > a.file")).filter (e => e.hasAttribute ("href")).map (e => [e, e.getAttribute ("href").match (/^(\/player[.]php[?].+&loop=)([01])$/)]).filter (e_match => e_match [1] != null).forEach (e_match => e_match [0].setAttribute ("href", e_match [1] [1] + flag)) } } const prefix = 'videoloop-' const getcb = (name) => document.getElementById (prefix + name) const checked = (name) => getcb (name).checked const cbset = (name, flag) => { getcb (name).checked = flag; } const addgui = () => { const vlautoset = ((localStorage [prefix + "autoset"] || "false") === "true") const vlonoff = ((localStorage [prefix + "onoff" ] || "true" ) === "true") const gui = '' + _('Loop:') + ' ' + ' ' + ' ' + ''; Options.extend_tab ("webm", gui) cbset ('autoset', vlautoset) cbset ('onoff', vlonoff) $('#' + prefix + 'autoset, #' + prefix + 'onoff').on("change", (ev) => { const cb = ev.target localStorage [cb.getAttribute ("id")] = cb.checked ? "true" : "false" }) $('#' + prefix + 'setnow').on("click", () => { setloopsto (document, checked ('onoff')) }) } addgui() if (checked ('autoset')) { setloopsto (document, checked ('onoff')) } })()