From 9262e8a7afaee6967a64cf6955d9d9314f30d249 Mon Sep 17 00:00:00 2001 From: Zixaphir Date: Thu, 26 Dec 2013 15:50:02 -0700 Subject: [PATCH 1/3] Messing around with some syntax --- LICENSE | 2 +- builds/4chan-X.user.js | 2 +- builds/crx/script.js | 2 +- src/Filtering/PostHiding.coffee | 18 ++++++++++++++++-- src/General/Header.coffee | 26 +++++++++++++++++--------- 5 files changed, 36 insertions(+), 14 deletions(-) diff --git a/LICENSE b/LICENSE index f3beefff8..bd01cdbb0 100755 --- a/LICENSE +++ b/LICENSE @@ -1,5 +1,5 @@ /* -* 4chan X - Version 1.2.44 - 2013-12-25 +* 4chan X - Version 1.2.44 - 2013-12-26 * * Licensed under the MIT license. * https://github.com/seaweedchan/4chan-x/blob/master/LICENSE diff --git a/builds/4chan-X.user.js b/builds/4chan-X.user.js index 972736f1e..d4e243afb 100644 --- a/builds/4chan-X.user.js +++ b/builds/4chan-X.user.js @@ -22,7 +22,7 @@ // ==/UserScript== /* -* 4chan X - Version 1.2.44 - 2013-12-25 +* 4chan X - Version 1.2.44 - 2013-12-26 * * Licensed under the MIT license. * https://github.com/seaweedchan/4chan-x/blob/master/LICENSE diff --git a/builds/crx/script.js b/builds/crx/script.js index c2a1a120b..e954eb0ae 100644 --- a/builds/crx/script.js +++ b/builds/crx/script.js @@ -1,6 +1,6 @@ // Generated by CoffeeScript /* -* 4chan X - Version 1.2.44 - 2013-12-25 +* 4chan X - Version 1.2.44 - 2013-12-26 * * Licensed under the MIT license. * https://github.com/seaweedchan/4chan-x/blob/master/LICENSE diff --git a/src/Filtering/PostHiding.coffee b/src/Filtering/PostHiding.coffee index 1c13a0c0a..d6499e054 100755 --- a/src/Filtering/PostHiding.coffee +++ b/src/Filtering/PostHiding.coffee @@ -51,7 +51,15 @@ PostHiding = return false PostHiding.menu.post = post true - subEntries: [{el: apply}, {el: thisPost}, {el: replies}, {el: makeStub}] + subEntries: [ + el: apply + , + el: thisPost + , + el: replies + , + el: makeStub + ] # Show div = $.el 'div', @@ -85,7 +93,13 @@ PostHiding = thisPost.firstChild.checked = post.isHidden replies.firstChild.checked = if data?.hideRecursively? then data.hideRecursively else Conf['Recursive Hiding'] true - subEntries: [{el: apply}, {el: thisPost}, {el: replies}] + subEntries: [ + el: apply + , + el: thisPost + , + el: replies + ] $.event 'AddMenuEntry', type: 'post' diff --git a/src/General/Header.coffee b/src/General/Header.coffee index 5d221cae3..18c3eb810 100755 --- a/src/General/Header.coffee +++ b/src/General/Header.coffee @@ -68,15 +68,23 @@ Header = textContent: 'Header' order: 107 subEntries: [ - {el: barFixedToggler} - {el: headerToggler} - {el: scrollHeaderToggler} - {el: barPositionToggler} - {el: linkJustifyToggler} - {el: footerToggler} - {el: shortcutToggler} - {el: customNavToggler} - {el: editCustomNav} + el: barFixedToggler + , + el: headerToggler + , + el: scrollHeaderToggler + , + el: barPositionToggler + , + el: linkJustifyToggler + , + el: footerToggler + , + el: shortcutToggler + , + el: customNavToggler + , + el: editCustomNav ] $.on window, 'load hashchange', Header.hashScroll From bab50e61ae0f76fef7ed05fc8a537d6a4985ae2c Mon Sep 17 00:00:00 2001 From: Zixaphir Date: Thu, 26 Dec 2013 15:53:03 -0700 Subject: [PATCH 2/3] Update deps, recompile --- builds/4chan-X.user.js | 475 ----------------------------------------- builds/crx/script.js | 474 ---------------------------------------- 2 files changed, 949 deletions(-) diff --git a/builds/4chan-X.user.js b/builds/4chan-X.user.js index d4e243afb..06b3ddda6 100644 --- a/builds/4chan-X.user.js +++ b/builds/4chan-X.user.js @@ -113,7 +113,6 @@ Array.prototype.indexOf = function(val) { var i; - i = this.length; while (i--) { if (this[i] === val) { @@ -375,7 +374,6 @@ $.extend = function(obj, prop) { var key, val; - for (key in prop) { val = prop[key]; if (prop.hasOwnProperty(key)) { @@ -392,7 +390,6 @@ $.ready = function(fc) { var cb; - if (d.readyState !== 'loading') { $.queueTask(fc); return; @@ -406,7 +403,6 @@ $.formData = function(form) { var fd, key, val; - if (form instanceof HTMLFormElement) { return new FormData(form); } @@ -426,7 +422,6 @@ $.extend = function(object, properties) { var key, val; - for (key in properties) { val = properties[key]; object[key] = val; @@ -435,11 +430,9 @@ $.ajax = (function() { var lastModified; - lastModified = {}; return function(url, options, extra) { var form, r, sync, type, upCallbacks, whenModified; - if (extra == null) { extra = {}; } @@ -464,11 +457,9 @@ $.cache = (function() { var reqs; - reqs = {}; return function(url, cb, options) { var err, req, rm; - if (req = reqs[url]) { if (req.readyState === 4) { cb.call(req, req.evt); @@ -488,7 +479,6 @@ } $.on(req, 'load', function(e) { var _i, _len, _ref; - _ref = this.callbacks; for (_i = 0, _len = _ref.length; _i < _len; _i++) { cb = _ref[_i]; @@ -524,7 +514,6 @@ $.addStyle = function(css, id) { var style; - style = $.el('style', { id: id, textContent: css @@ -571,7 +560,6 @@ } else { return function(el) { var _ref; - return (_ref = el.parentNode) != null ? _ref.removeChild(el) : void 0; }; } @@ -579,7 +567,6 @@ $.rmAll = function(root) { var node, _i, _len, _ref; - _ref = __slice.call(root.childNodes); for (_i = 0, _len = _ref.length; _i < _len; _i++) { node = _ref[_i]; @@ -597,7 +584,6 @@ $.nodes = function(nodes) { var frag, node, _i, _len; - if (!(nodes instanceof Array)) { return nodes; } @@ -631,7 +617,6 @@ $.el = function(tag, properties) { var el; - el = d.createElement(tag); if (properties) { $.extend(el, properties); @@ -641,7 +626,6 @@ $.on = function(el, events, handler) { var event, _i, _len, _ref; - _ref = events.split(' '); for (_i = 0, _len = _ref.length; _i < _len; _i++) { event = _ref[_i]; @@ -651,7 +635,6 @@ $.off = function(el, events, handler) { var event, _i, _len, _ref; - _ref = events.split(' '); for (_i = 0, _len = _ref.length; _i < _len; _i++) { event = _ref[_i]; @@ -673,7 +656,6 @@ $.debounce = function(wait, fn) { var args, exec, lastCall, that, timeout; - lastCall = 0; timeout = null; that = null; @@ -695,11 +677,9 @@ $.queueTask = (function() { var execTask, taskChannel, taskQueue; - taskQueue = []; execTask = function() { var args, func, task; - task = taskQueue.shift(); func = task[0]; args = Array.prototype.slice.call(task, 1); @@ -722,7 +702,6 @@ $.globalEval = function(code) { var script; - script = $.el('script', { textContent: code }); @@ -732,7 +711,6 @@ $.bytesToString = function(size) { var unit; - unit = 0; while (size >= 1024) { size /= 1024; @@ -748,7 +726,6 @@ $.item = function(key, val) { var item; - item = {}; item[key] = val; return item; @@ -759,7 +736,6 @@ $.sync = (function() { $.on(window, 'storage', function(_arg) { var cb, key, newValue; - key = _arg.key, newValue = _arg.newValue; if (cb = $.syncing[key]) { return cb(JSON.parse(newValue), key); @@ -772,7 +748,6 @@ $["delete"] = function(keys) { var key, _i, _len; - if (!(keys instanceof Array)) { keys = [keys]; } @@ -786,7 +761,6 @@ $.get = function(key, val, cb) { var items; - if (typeof cb === 'function') { items = $.item(key, val); } else { @@ -805,7 +779,6 @@ $.set = (function() { var set; - set = function(key, val) { key = g.NAMESPACE + key; val = JSON.stringify(val); @@ -816,7 +789,6 @@ }; return function(keys, val) { var key; - if (typeof keys === 'string') { set(keys, val); return; @@ -872,7 +844,6 @@ Thread.prototype.setPage = function(pageNum) { var icon, key, _i, _len, _ref; - icon = $('.page-num', this.OP.nodes.post); _ref = ['title', 'textContent']; for (_i = 0, _len = _ref.length; _i < _len; _i++) { @@ -883,7 +854,6 @@ Thread.prototype.setStatus = function(type, status) { var icon, name, root, typeLC; - name = "is" + type; if (this[name] === status) { return; @@ -914,7 +884,6 @@ Thread.prototype.collect = function() { var post, postID, _i, _len, _ref; - _ref = this.posts; for (post = _i = 0, _len = _ref.length; _i < _len; post = ++_i) { postID = _ref[post]; @@ -937,7 +906,6 @@ function Post(root, thread, board, that) { var capcode, date, email, flag, info, name, post, subject, tripcode, uniqueID; - this.thread = thread; this.board = board; if (that == null) { @@ -1016,7 +984,6 @@ Post.prototype.parseComment = function() { var bq, i, node, nodes, text; - this.nodes.comment.normalize(); bq = this.nodes.comment.cloneNode(true); nodes = $$('.abbr, .exif, b', bq); @@ -1035,7 +1002,6 @@ Post.prototype.parseQuotes = function() { var quotelink, _i, _len, _ref; - this.quotes = []; _ref = $$('.quotelink', this.nodes.comment); for (_i = 0, _len = _ref.length; _i < _len; _i++) { @@ -1046,7 +1012,6 @@ Post.prototype.parseQuote = function(quotelink) { var fullID, match; - if (!(match = quotelink.href.match(/boards\.4chan\.org\/([^\/]+)\/res\/\d+#p(\d+)$/))) { return; } @@ -1062,7 +1027,6 @@ Post.prototype.parseFile = function(that) { var anchor, fileEl, fileText, nameNode, size, thumb, unit; - if (!((fileEl = $('.file', this.nodes.post)) && (thumb = $('img[data-md5]', fileEl)))) { return; } @@ -1091,7 +1055,6 @@ Post.prototype.cleanup = function(root) { var node, _i, _j, _len, _len1, _ref, _ref1; - _ref = $$('.mobile', root); for (_i = 0, _len = _ref.length; _i < _len; _i++) { node = _ref[_i]; @@ -1106,7 +1069,6 @@ Post.prototype.kill = function(file, now) { var clone, quotelink, strong, _i, _j, _len, _len1, _ref, _ref1; - now || (now = new Date()); if (file) { if (this.file.isDead) { @@ -1155,7 +1117,6 @@ Post.prototype.resurrect = function() { var clone, quotelink, strong, _i, _j, _len, _len1, _ref, _ref1; - delete this.isDead; delete this.timeOfDeath; $.rmClass(this.nodes.root, 'deleted-post'); @@ -1196,7 +1157,6 @@ Post.prototype.rmClone = function(index) { var clone, _i, _len, _ref; - this.clones.splice(index, 1); _ref = this.clones.slice(index); for (_i = 0, _len = _ref.length; _i < _len; _i++) { @@ -1214,7 +1174,6 @@ function Clone(origin, context) { var file, info, inline, inlined, key, nodes, post, root, val, _i, _j, _k, _len, _len1, _len2, _ref, _ref1, _ref2, _ref3; - this.origin = origin; this.context = context; _ref = ['ID', 'fullID', 'board', 'thread', 'info', 'quotes', 'isReply']; @@ -1301,7 +1260,6 @@ function DataBoard(key, sync, dontClean) { var init, _this = this; - this.key = key; this.onSync = __bind(this.onSync, this); this.data = Conf[key]; @@ -1325,7 +1283,6 @@ DataBoard.prototype["delete"] = function(_arg) { var boardID, postID, threadID; - boardID = _arg.boardID, threadID = _arg.threadID, postID = _arg.postID; if (postID) { delete this.data.boards[boardID][threadID][postID]; @@ -1346,7 +1303,6 @@ DataBoard.prototype.deleteIfEmpty = function(_arg) { var boardID, threadID; - boardID = _arg.boardID, threadID = _arg.threadID; if (threadID) { if (!Object.keys(this.data.boards[boardID][threadID]).length) { @@ -1362,7 +1318,6 @@ DataBoard.prototype.set = function(_arg) { var boardID, postID, threadID, val, _base, _base1, _base2; - boardID = _arg.boardID, threadID = _arg.threadID, postID = _arg.postID, val = _arg.val; if (postID !== void 0) { ((_base = ((_base1 = this.data.boards)[boardID] || (_base1[boardID] = {})))[threadID] || (_base[threadID] = {}))[postID] = val; @@ -1376,7 +1331,6 @@ DataBoard.prototype.get = function(_arg) { var ID, board, boardID, defaultValue, postID, thread, threadID, val, _i, _len; - boardID = _arg.boardID, threadID = _arg.threadID, postID = _arg.postID, defaultValue = _arg.defaultValue; if (board = this.data.boards[boardID]) { if (!threadID) { @@ -1400,7 +1354,6 @@ DataBoard.prototype.clean = function() { var boardID, now, val, _ref; - _ref = this.data.boards; for (boardID in _ref) { val = _ref[boardID]; @@ -1420,10 +1373,8 @@ DataBoard.prototype.ajaxClean = function(boardID) { var _this = this; - return $.cache("//a.4cdn.org/" + boardID + "/threads.json", function(e) { var board, page, thread, threads, _i, _j, _len, _len1, _ref, _ref1; - if (e.target.status !== 200) { if (e.target.status === 404) { _this["delete"](boardID); @@ -1528,10 +1479,8 @@ }, toBlob: function() { var _base; - return (_base = HTMLCanvasElement.prototype).toBlob || (_base.toBlob = function(cb) { var data, i, l, ui8a, _i; - data = atob(this.toDataURL().slice(22)); l = data.length; ui8a = new Uint8Array(l); @@ -1569,7 +1518,6 @@ init: function() { var barFixedToggler, barPositionToggler, customNavToggler, editCustomNav, footerToggler, headerToggler, linkJustifyToggler, menuButton, scrollHeaderToggler, shortcutToggler, _this = this; - this.menu = new UI.Menu('header'); menuButton = $.el('span', { className: 'menu-button', @@ -1680,7 +1628,6 @@ }); $.ready(function() { var a, cs; - _this.footer = $.id('boardNavDesktopFoot'); if (a = $("a[href*='/" + g.BOARD + "/']", $.id('boardNavDesktopFoot'))) { a.className = 'current'; @@ -1715,7 +1662,6 @@ }), setBoardList: function() { var a, boardList, btn, fourchannav, fullBoardList; - fourchannav = $.id('boardNavDesktop'); if (a = $("a[href*='/" + g.BOARD + "/']", fourchannav)) { a.className = 'current'; @@ -1737,7 +1683,6 @@ }, generateBoardList: function(text) { var as, list, nodes; - list = $('#custom-board-list', Header.bar); $.rmAll(list); if (!text) { @@ -1746,7 +1691,6 @@ as = $$('#full-board-list a[title]', Header.bar); nodes = text.match(/[\w@]+((-(all|title|replace|full|index|catalog|url:"[^"]+[^"]"|text:"[^"]+")|\,"[^"]+[^"]"))*|[^\w@]+/g).map(function(t) { var a, board, m, _i, _len; - if (/^[^\w@]/.test(t)) { return $.tn(t); } @@ -1797,7 +1741,6 @@ }, toggleBoardList: function() { var bar, custom, full, showBoardList; - bar = Header.bar; custom = $('#custom-board-list', bar); full = $('#full-board-list', bar); @@ -1815,7 +1758,6 @@ }, toggleLinkJustify: function() { var centered; - $.event('CloseMenu'); centered = this.nodeName === 'INPUT' ? this.checked : void 0; Header.setLinkJustify(centered); @@ -1859,7 +1801,6 @@ }, toggleBarVisibility: function() { var hide, message; - hide = this.nodeName === 'INPUT' ? this.checked : !$.hasClass(Header.bar, 'autohide'); this.checked = hide; $.set('Header auto-hide', Conf['Header auto-hide'] = hide); @@ -1881,14 +1822,12 @@ }, toggleHideBarOnScroll: function(e) { var hide; - hide = this.checked; $.set('Header auto-hide on scroll', hide); return Header.setHideBarOnScroll(hide); }, hideBarOnScroll: function() { var offsetY; - offsetY = window.pageYOffset; if (offsetY > (Header.previousOffset || 0)) { $.addClass(Header.bar, 'autohide'); @@ -1901,7 +1840,6 @@ }, setBarPosition: function(bottom) { var args; - Header.barPositionToggler.checked = bottom; $.event('CloseMenu'); args = bottom ? ['bottom-header', 'top-header', 'bottom', 'after'] : ['top-header', 'bottom-header', 'top', 'add']; @@ -1920,7 +1858,6 @@ }, toggleFooterVisibility: function() { var hide, message; - $.event('CloseMenu'); hide = this.nodeName === 'INPUT' ? this.checked : !!Header.footer.hidden; Header.setFooterVisibility(hide); @@ -1930,7 +1867,6 @@ }, setCustomNav: function(show) { var btn, cust, full, _ref; - Header.customNavToggler.checked = show; cust = $('#custom-board-list', Header.bar); full = $('#full-board-list', Header.bar); @@ -1943,14 +1879,12 @@ }, editCustomNav: function() { var settings; - Settings.open('Advanced'); settings = $.id('fourchanx-settings'); return $('input[name=boardnav]', settings).focus(); }, hashScroll: function() { var hash, post; - hash = this.location.hash.slice(1); if (!(/^p\d+$/.test(hash) && (post = $.id(hash)))) { return; @@ -1962,7 +1896,6 @@ }, scrollTo: function(root, down, needed) { var x; - if (down) { x = Header.getBottomOf(root); if (!(needed && x >= 0)) { @@ -1980,7 +1913,6 @@ }, getTopOf: function(root) { var headRect, top; - top = root.getBoundingClientRect().top; if (Conf['Fixed Header'] && !Conf['Bottom Header']) { headRect = Header.toggle.getBoundingClientRect(); @@ -1990,7 +1922,6 @@ }, getBottomOf: function(root) { var bottom, clientHeight, headRect; - clientHeight = doc.clientHeight; bottom = clientHeight - root.getBoundingClientRect().bottom; if (Conf['Bottom Header']) { @@ -2001,7 +1932,6 @@ }, addShortcut: function(el) { var shortcut; - shortcut = $.el('span', { className: 'shortcut brackets-wrap' }); @@ -2013,7 +1943,6 @@ }, createNotification: function(e) { var cb, content, lifetime, notice, type, _ref; - _ref = e.detail, type = _ref.type, content = _ref.content, lifetime = _ref.lifetime, cb = _ref.cb; notice = new Notice(type, content, lifetime); if (cb) { @@ -2023,7 +1952,6 @@ areNotificationsEnabled: false, enableDesktopNotifications: function() { var authorize, disable, el, notice, _ref; - if (!(window.Notification && Conf['Desktop Notifications'])) { return; } @@ -2058,7 +1986,6 @@ Index = { init: function() { var anchorEntry, input, label, modeEntry, name, refNavEntry, repliesEntry, sortEntry, _i, _j, _k, _len, _len1, _len2, _ref, _ref1, _ref2; - if (g.VIEW !== 'index' || g.BOARD.ID === 'f') { return; } @@ -2194,7 +2121,6 @@ return $('.board', doc) || d.readyState !== 'loading'; }), function() { var board, navLink, _l, _len3, _ref3; - board = $('.board'); $.replace(board, Index.root); d.implementation.createDocument(null, null, null).appendChild(board); @@ -2228,7 +2154,6 @@ }, popstate: function(e) { var pageNum; - pageNum = Index.getCurrentPage(); if (Index.currentPage !== pageNum) { return Index.pageLoad(pageNum); @@ -2236,7 +2161,6 @@ }, pageNav: function(e) { var a; - if (e.shiftKey || e.altKey || e.ctrlKey || e.metaKey || e.button !== 0) { return; } @@ -2301,7 +2225,6 @@ }, buildPagelist: function() { var a, i, maxPageNum, nodes, pagesRoot, _i; - pagesRoot = $('.pages', Index.pagelist); maxPageNum = Index.getMaxPageNum(); if (pagesRoot.childElementCount !== maxPageNum + 1) { @@ -2320,7 +2243,6 @@ }, setPage: function() { var a, href, maxPageNum, next, pageNum, pagesRoot, prev, strong; - pageNum = Index.getCurrentPage(); maxPageNum = Index.getMaxPageNum(); pagesRoot = $('.pages', Index.pagelist); @@ -2346,7 +2268,6 @@ }, update: function(pageNum) { var now, onload, _ref, _ref1; - if (!navigator.onLine) { return; } @@ -2385,7 +2306,6 @@ }, load: function(e, pageNum) { var err, notice, req, timeEl; - $.rmClass(Index.button, 'fa-spin'); req = Index.req, notice = Index.notice; delete Index.req; @@ -2437,7 +2357,6 @@ }, parseThreadList: function(pages) { var thread, threadID, _ref, _ref1; - Index.pagesNum = pages.length; Index.threadsNumPerPage = pages[0].threads.length; Index.liveThreadData = pages.reduce((function(arr, next) { @@ -2456,7 +2375,6 @@ }, buildThreads: function() { var err, errors, i, posts, thread, threadData, threadRoot, threads, _i, _len, _ref; - Index.nodes = []; threads = []; posts = []; @@ -2499,7 +2417,6 @@ }, buildReplies: function(threadRoots) { var data, err, errors, i, lastReplies, node, nodes, post, posts, thread, threadRoot, _i, _j, _len, _len1; - posts = []; for (_i = 0, _len = threadRoots.length; _i < _len; _i += 2) { threadRoot = threadRoots[_i]; @@ -2538,7 +2455,6 @@ }, sort: function() { var i, sortedThreadIDs, threadID, _i, _len; - switch (Conf['Index Sort']) { case 'bump': sortedThreadIDs = Index.liveThreadIDs; @@ -2600,7 +2516,6 @@ }, sortOnTop: function(match) { var i, offset, threadRoot, _i, _len, _ref, _ref1; - offset = 0; _ref = Index.sortedNodes; for (i = _i = 0, _len = _ref.length; _i < _len; i = _i += 2) { @@ -2612,7 +2527,6 @@ }, buildIndex: function() { var nodes, nodesPerPage, pageNum; - if (Conf['Index Mode'] === 'paged') { pageNum = Index.getCurrentPage(); nodesPerPage = Index.threadsNumPerPage * 2; @@ -2635,7 +2549,6 @@ }, onSearchInput: function() { var pageNum; - if (Index.isSearching = !!Index.searchInput.value.trim()) { if (!Index.searchInput.dataset.searching) { Index.searchInput.dataset.searching = 1; @@ -2663,7 +2576,6 @@ }, querySearch: function(query) { var keywords; - if (!(keywords = query.toLowerCase().match(/\S+/g))) { return; } @@ -2671,7 +2583,6 @@ }, search: function(keywords) { var found, i, threadRoot, _i, _len, _ref; - found = []; _ref = Index.sortedNodes; for (i = _i = 0, _len = _ref.length; _i < _len; i = _i += 2) { @@ -2684,7 +2595,6 @@ }, searchMatch: function(thread, keywords) { var file, info, key, keyword, text, _i, _j, _len, _len1, _ref, _ref1; - _ref = thread.OP, info = _ref.info, file = _ref.file; text = []; _ref1 = ['comment', 'subject', 'name', 'tripcode', 'email']; @@ -2714,7 +2624,6 @@ spoilerRange: {}, shortFilename: function(filename, isReply) { var threshold; - threshold = isReply ? 30 : 40; if (filename.length - 4 > threshold) { return "" + filename.slice(0, threshold - 5) + "(...)." + filename.slice(-3); @@ -2724,7 +2633,6 @@ }, thumbRotate: (function() { var n; - n = 0; return function() { return n = (n + 1) % 3; @@ -2732,7 +2640,6 @@ })(), postFromObject: function(data, boardID) { var o; - o = { postID: data.no, threadID: data.resto || data.no, @@ -2776,7 +2683,6 @@ */ var a, boardID, capcode, capcodeClass, capcodeIcon, capcodeStart, closed, comment, container, date, dateUTC, email, emailEnd, emailStart, file, fileDims, fileHTML, fileInfo, fileSize, fileThumb, filename, flag, flagCode, flagName, gifIcon, href, imgSrc, isClosed, isOP, isSticky, name, pageIcon, pageNum, postID, quote, replyLink, shortFilename, spoilerRange, staticPath, sticky, subject, threadID, tripcode, uniqueID, userID, _i, _len, _ref; - postID = o.postID, threadID = o.threadID, boardID = o.boardID, name = o.name, capcode = o.capcode, tripcode = o.tripcode, uniqueID = o.uniqueID, email = o.email, subject = o.subject, flagCode = o.flagCode, flagName = o.flagName, date = o.date, dateUTC = o.dateUTC, isSticky = o.isSticky, isClosed = o.isClosed, comment = o.comment, file = o.file; isOP = postID === threadID; staticPath = Build.staticPath, gifIcon = Build.gifIcon; @@ -2870,7 +2776,6 @@ }, summary: function(boardID, threadID, posts, files) { var text; - text = []; text.push("" + posts + " post" + (posts > 1 ? 's' : '')); if (files) { @@ -2885,7 +2790,6 @@ }, thread: function(board, data) { var OP, files, nodes, posts, root, _ref; - Build.spoilerRange[board] = data.custom_spoiler; if ((OP = board.posts[data.no]) && (root = OP.nodes.root.parentNode)) { $.rmAll(root); @@ -2912,7 +2816,6 @@ Get = { threadExcerpt: function(thread) { var OP, excerpt, _ref; - OP = thread.OP; excerpt = ((_ref = OP.info.subject) != null ? _ref.trim() : void 0) || OP.info.comment.replace(/\n+/g, ' // ') || Conf['Anonymize'] && 'Anonymous' || $('.nameBlock', OP.nodes.info).textContent.trim(); if (excerpt.length > 70) { @@ -2928,7 +2831,6 @@ }, postFromRoot: function(root) { var boardID, index, link, post, postID; - link = $('a[title="Highlight this post"]', root); boardID = link.pathname.split('/')[1]; postID = link.hash.slice(2); @@ -2948,7 +2850,6 @@ }, postDataFromLink: function(link) { var boardID, path, postID, threadID, _ref; - if (link.hostname === 'boards.4chan.org') { path = link.pathname.split('/'); boardID = path[1]; @@ -2966,7 +2867,6 @@ }, allQuotelinksLinkingTo: function(post) { var ID, quote, quotedPost, quotelinks, quoterPost, _i, _j, _k, _len, _len1, _len2, _ref, _ref1, _ref2, _ref3, _ref4; - quotelinks = []; _ref = g.posts; for (ID in _ref) { @@ -2995,14 +2895,12 @@ } return quotelinks.filter(function(quotelink) { var boardID, postID, _ref5; - _ref5 = Get.postDataFromLink(quotelink), boardID = _ref5.boardID, postID = _ref5.postID; return boardID === post.board.ID && postID === post.ID; }); }, postClone: function(boardID, threadID, postID, root, context) { var post, url; - if (post = g.posts["" + boardID + "." + postID]) { Get.insert(post, root, context); return; @@ -3025,7 +2923,6 @@ }, insert: function(post, root, context) { var clone, nodes; - if (!root.parentNode) { return; } @@ -3039,7 +2936,6 @@ }, fetchedPost: function(req, boardID, threadID, postID, root, context) { var board, post, posts, status, thread, url, _i, _len; - if (post = g.posts["" + boardID + "." + postID]) { Get.insert(post, root, context); return; @@ -3093,7 +2989,6 @@ }, archivedPost: function(req, boardID, postID, root, context) { var board, bq, comment, data, o, post, thread, threadID, _ref; - if (post = g.posts["" + boardID + "." + postID]) { Get.insert(post, root, context); return; @@ -3190,10 +3085,8 @@ UI = (function() { var Menu, dialog, drag, dragend, dragstart, hover, hoverend, hoverstart, touchend, touchmove; - dialog = function(id, position, html) { var child, el, move, _i, _len, _ref; - el = $.el('div', { className: 'dialog', innerHTML: html, @@ -3235,7 +3128,6 @@ Menu.prototype.makeMenu = function() { var menu; - menu = $.el('div', { className: 'dialog', id: 'menu', @@ -3250,7 +3142,6 @@ Menu.prototype.toggle = function(e, button, data) { var previousButton; - e.preventDefault(); e.stopPropagation(); if (currentMenu) { @@ -3268,7 +3159,6 @@ Menu.prototype.open = function(button, data) { var bLeft, bRect, bTop, bottom, cHeight, cWidth, entry, left, mRect, menu, right, style, top, _i, _len, _ref, _ref1, _ref2; - menu = this.makeMenu(); currentMenu = menu; lastToggledButton = button; @@ -3307,7 +3197,6 @@ Menu.prototype.insertEntry = function(entry, parent, data) { var subEntry, submenu, _i, _len, _ref; - if (typeof entry.open === 'function') { if (!entry.open(data)) { return; @@ -3341,7 +3230,6 @@ Menu.prototype.findNextEntry = function(entry, direction) { var entries; - entries = __slice.call(entry.parentNode.children); entries.sort(function(first, second) { return first.style.order - second.style.order; @@ -3351,7 +3239,6 @@ Menu.prototype.keybinds = function(e) { var entry, next, nextPrev, subEntry, submenu; - entry = $('.focused', currentMenu); while (subEntry = $('.focused', entry)) { entry = subEntry; @@ -3397,7 +3284,6 @@ Menu.prototype.focus = function(entry) { var bottom, cHeight, cWidth, eRect, focused, left, right, sRect, style, submenu, top, _i, _len, _ref, _ref1, _ref2; - while (focused = $.x('parent::*/child::*[contains(@class,"focused")]', entry)) { $.rmClass(focused, 'focused'); } @@ -3425,7 +3311,6 @@ Menu.prototype.addEntry = function(e) { var entry; - entry = e.detail; if (entry.type !== this.type) { return; @@ -3436,7 +3321,6 @@ Menu.prototype.parseEntry = function(entry) { var el, subEntries, subEntry, _i, _len; - el = entry.el, subEntries = entry.subEntries; $.addClass(el, 'entry'); $.on(el, 'focus mouseover', (function(e) { @@ -3459,7 +3343,6 @@ })(); dragstart = function(e) { var el, isTouching, o, rect, screenHeight, screenWidth, _ref; - if (e.type === 'mousedown' && e.button !== 0) { return; } @@ -3498,7 +3381,6 @@ }; touchmove = function(e) { var touch, _i, _len, _ref; - _ref = e.changedTouches; for (_i = 0, _len = _ref.length; _i < _len; _i++) { touch = _ref[_i]; @@ -3510,7 +3392,6 @@ }; drag = function(e) { var bottom, clientX, clientY, left, right, style, top; - clientX = e.clientX, clientY = e.clientY; left = clientX - this.dx; left = left < 10 ? 0 : this.width - left < 10 ? null : left / this.screenWidth * 100 + '%'; @@ -3526,7 +3407,6 @@ }; touchend = function(e) { var touch, _i, _len, _ref; - _ref = e.changedTouches; for (_i = 0, _len = _ref.length; _i < _len; _i++) { touch = _ref[_i]; @@ -3548,7 +3428,6 @@ }; hoverstart = function(_arg) { var asapTest, cb, el, endEvents, latestEvent, o, root; - root = _arg.root, el = _arg.el, latestEvent = _arg.latestEvent, endEvents = _arg.endEvents, asapTest = _arg.asapTest, cb = _arg.cb; o = { root: root, @@ -3583,7 +3462,6 @@ }; hover = function(e) { var clientX, clientY, height, left, right, style, top, _ref; - this.latestEvent = e; height = this.el.offsetHeight; clientX = e.clientX, clientY = e.clientY; @@ -3627,7 +3505,6 @@ }, node: function() { var email, name, tripcode, _ref; - if (this.info.capcode || this.isClone) { return; } @@ -3650,7 +3527,6 @@ filters: {}, init: function() { var boards, err, filter, hl, key, op, regexp, stub, top, _i, _len, _ref, _ref1, _ref2, _ref3, _ref4, _ref5; - if (g.VIEW === 'catalog' || !Conf['Filter']) { return; } @@ -3687,7 +3563,6 @@ op = ((_ref3 = filter.match(/[^t]op:(yes|no|only)/)) != null ? _ref3[1] : void 0) || 'yes'; stub = (function() { var _ref4; - switch ((_ref4 = filter.match(/stub:(yes|no)/)) != null ? _ref4[1] : void 0) { case 'yes': return true; @@ -3718,7 +3593,6 @@ }, createFilter: function(regexp, op, stub, hl, top) { var settings, test; - test = typeof regexp === 'string' ? function(value) { return regexp === value; } : function(value) { @@ -3742,7 +3616,6 @@ }, node: function() { var filter, key, result, value, _i, _len, _ref; - if (this.isClone) { return; } @@ -3849,7 +3722,6 @@ menu: { init: function() { var div, entry, type, _i, _len, _ref; - if (g.VIEW === 'catalog' || !Conf['Menu'] || !Conf['Filter']) { return; } @@ -3875,7 +3747,6 @@ }, createSubEntry: function(text, type) { var el; - el = $.el('a', { href: 'javascript:;', textContent: text @@ -3886,7 +3757,6 @@ el: el, open: function(post) { var value; - value = Filter[type](post); return value !== false; } @@ -3894,7 +3764,6 @@ }, makeFilter: function() { var re, type, value; - type = this.dataset.type; value = Filter[type](Filter.menu.post); re = type === 'uniqueID' || type === 'MD5' ? value : value.replace(/\/|\\|\^|\$|\n|\.|\(|\)|\{|\}|\[|\]|\?|\*|\+|\|/g, function(c) { @@ -3909,7 +3778,6 @@ re = type === 'uniqueID' || type === 'MD5' ? "/" + re + "/" : "/^" + re + "$/"; return $.get(type, Conf[type], function(item) { var save, section, select, ta, tl; - save = item[type]; save = save ? "" + save + "\n" + re : re; $.set(type, save); @@ -3943,7 +3811,6 @@ }, node: function() { var data; - if (!this.isReply || this.isClone) { return; } @@ -3967,7 +3834,6 @@ menu: { init: function() { var apply, div, hideStubLink, makeStub, replies, thisPost; - if (g.VIEW === 'catalog' || !Conf['Menu'] || !Conf['Reply Hiding Link']) { return; } @@ -4038,7 +3904,6 @@ order: 20, open: function(post) { var data; - if (!post.isReply || post.isClone || !post.isHidden) { return false; } @@ -4070,7 +3935,6 @@ order: 15, open: function(post) { var data; - if (!post.isReply || post.isClone || !post.isHidden) { return false; } @@ -4087,7 +3951,6 @@ }, hide: function() { var makeStub, parent, post, replies, thisPost; - parent = this.parentNode; thisPost = $('input[name=thisPost]', parent).checked; replies = $('input[name=replies]', parent).checked; @@ -4106,7 +3969,6 @@ }, show: function() { var data, parent, post, replies, thisPost; - parent = this.parentNode; thisPost = $('input[name=thisPost]', parent).checked; replies = $('input[name=replies]', parent).checked; @@ -4130,7 +3992,6 @@ }, hideStub: function() { var post; - post = PostHiding.menu.post; post.nodes.root.hidden = true; $.event('CloseMenu'); @@ -4138,7 +3999,6 @@ }, makeButton: function(post, type) { var a, span; - span = $.el('span', { className: "brackets-wrap", textContent: "\u00A0" + (type === 'hide' ? '-' : '+') + "\u00A0" @@ -4153,7 +4013,6 @@ }, saveHiddenState: function(post, isHiding, thisPost, makeStub, hideRecursively) { var data; - data = { boardID: post.board.ID, threadID: post.thread.ID, @@ -4172,14 +4031,12 @@ }, toggle: function() { var post; - post = Get.postFromNode(this); PostHiding[(post.isHidden ? 'show' : 'hide')](post); return PostHiding.saveHiddenState(post, post.isHidden); }, hide: function(post, makeStub, hideRecursively) { var a, postInfo, quotelink, _i, _len, _ref; - if (makeStub == null) { makeStub = Conf['Stubs']; } @@ -4217,7 +4074,6 @@ }, show: function(post, showRecursively) { var quotelink, _i, _len, _ref; - if (showRecursively == null) { showRecursively = Conf['Recursive Hiding']; } @@ -4253,7 +4109,6 @@ }, node: function() { var i, obj, quote, recursive, _i, _j, _len, _len1, _ref, _ref1; - if (this.isClone) { return; } @@ -4271,7 +4126,6 @@ }, add: function() { var args, obj, post, recursive, _base, _name; - recursive = arguments[0], post = arguments[1], args = 3 <= arguments.length ? __slice.call(arguments, 2) : []; obj = (_base = Recursive.recursives)[_name = post.fullID] || (_base[_name] = { recursives: [], @@ -4282,7 +4136,6 @@ }, rm: function(recursive, post) { var i, obj, rec, _i, _len, _ref; - if (!(obj = Recursive.recursives[post.fullID])) { return; } @@ -4297,7 +4150,6 @@ }, apply: function() { var ID, args, fullID, post, recursive, _ref; - recursive = arguments[0], post = arguments[1], args = 3 <= arguments.length ? __slice.call(arguments, 2) : []; fullID = post.fullID; _ref = g.posts; @@ -4325,7 +4177,6 @@ }, node: function() { var data; - if (data = ThreadHiding.db.get({ boardID: this.board.ID, threadID: this.ID @@ -4339,7 +4190,6 @@ }, onIndexBuild: function(_arg) { var i, nodes, root, thread, _i, _len; - nodes = _arg.detail; for (i = _i = 0, _len = nodes.length; _i < _len; i = _i += 2) { root = nodes[i]; @@ -4356,7 +4206,6 @@ }, syncCatalog: function() { var hiddenThreads, hiddenThreadsOnCatalog, threadID; - hiddenThreads = ThreadHiding.db.get({ boardID: g.BOARD.ID, defaultValue: {} @@ -4383,7 +4232,6 @@ cleanCatalog: function(hiddenThreadsOnCatalog) { return $.cache("//a.4cdn.org/" + g.BOARD + "/threads.json", function() { var page, thread, threads, _i, _j, _len, _len1, _ref, _ref1; - if (this.status !== 200) { return; } @@ -4409,7 +4257,6 @@ menu: { init: function() { var apply, div, hideStubLink, makeStub; - if (g.VIEW !== 'index' || !Conf['Menu'] || !Conf['Thread Hiding Link']) { return; } @@ -4431,7 +4278,6 @@ order: 20, open: function(_arg) { var isReply, thread; - thread = _arg.thread, isReply = _arg.isReply; if (isReply || thread.isHidden) { return false; @@ -4459,7 +4305,6 @@ order: 20, open: function(_arg) { var isReply, thread; - thread = _arg.thread, isReply = _arg.isReply; if (isReply || !thread.isHidden) { return false; @@ -4479,7 +4324,6 @@ order: 15, open: function(_arg) { var isReply, thread; - thread = _arg.thread, isReply = _arg.isReply; if (isReply || !thread.isHidden) { return false; @@ -4490,7 +4334,6 @@ }, hide: function() { var makeStub, thread; - makeStub = $('input', this.parentNode).checked; thread = ThreadHiding.menu.thread; ThreadHiding.hide(thread, makeStub); @@ -4499,7 +4342,6 @@ }, show: function() { var thread; - thread = ThreadHiding.menu.thread; ThreadHiding.show(thread); ThreadHiding.saveHiddenState(thread); @@ -4507,7 +4349,6 @@ }, hideStub: function() { var thread; - thread = ThreadHiding.menu.thread; ThreadHiding.hide(thread, false); $.event('CloseMenu'); @@ -4515,7 +4356,6 @@ }, makeButton: function(thread, type) { var a; - a = $.el('a', { className: "" + type + "-thread-button", innerHTML: " " + (type === 'hide' ? '-' : '+') + " ", @@ -4527,7 +4367,6 @@ }, makeStub: function(thread, root) { var a, numReplies, opInfo, summary; - numReplies = $$('.thread > .replyContainer', root).length; if (summary = $('.summary', root)) { numReplies += +summary.textContent.match(/\d+/); @@ -4547,7 +4386,6 @@ }, saveHiddenState: function(thread, makeStub) { var hiddenThreadsOnCatalog; - hiddenThreadsOnCatalog = JSON.parse(localStorage.getItem("4chan-hide-t-" + g.BOARD)) || {}; if (thread.isHidden) { ThreadHiding.db.set({ @@ -4580,7 +4418,6 @@ }, hide: function(thread, makeStub) { var threadRoot; - if (makeStub == null) { makeStub = Conf['Stubs']; } @@ -4596,7 +4433,6 @@ }, show: function(thread) { var threadRoot; - if (thread.stub) { $.rm(thread.stub); delete thread.stub; @@ -4609,7 +4445,6 @@ QuoteBacklink = { init: function() { var format; - if (g.VIEW === 'catalog' || !Conf['Quote Backlinks']) { return; } @@ -4627,7 +4462,6 @@ }, firstNode: function() { var a, clone, container, containers, frag, link, post, quote, _i, _j, _k, _len, _len1, _len2, _ref, _ref1; - if (this.isClone || !this.quotes.length) { return; } @@ -4665,7 +4499,6 @@ }, secondNode: function() { var container; - if (this.isClone && (this.origin.isReply || Conf['OP Backlinks'])) { this.nodes.backlinkContainer = $('.container', this.nodes.info); return; @@ -4679,7 +4512,6 @@ }, getContainer: function(id) { var _base; - return (_base = this.containers)[id] || (_base[id] = $.el('span', { className: 'container' })); @@ -4702,7 +4534,6 @@ }, node: function() { var board, boardID, quotelink, thread, threadID, _i, _len, _ref, _ref1, _ref2; - if (this.isClone && this.thread === this.context.thread) { return; } @@ -4732,7 +4563,6 @@ if (Conf['Quote Hash Navigation']) { this.node = function() { var link, _i, _len, _ref; - _ref = this.nodes.quotelinks.concat(__slice.call(this.nodes.backlinks)); for (_i = 0, _len = _ref.length; _i < _len; _i++) { link = _ref[_i]; @@ -4745,7 +4575,6 @@ } else { this.node = function() { var link, _i, _len, _ref; - _ref = this.nodes.quotelinks.concat(__slice.call(this.nodes.backlinks)); for (_i = 0, _len = _ref.length; _i < _len; _i++) { link = _ref[_i]; @@ -4772,7 +4601,6 @@ }, toggle: function(e) { var boardID, context, postID, threadID, _ref; - if (e.shiftKey || e.altKey || e.ctrlKey || e.metaKey || e.button !== 0) { return; } @@ -4798,7 +4626,6 @@ }, add: function(quotelink, boardID, threadID, postID, context) { var inline, isBacklink, post, qroot, root; - isBacklink = $.hasClass(quotelink, 'backlink'); inline = $.el('div', { id: "i" + postID, @@ -4823,7 +4650,6 @@ }, rm: function(quotelink, boardID, threadID, postID, context) { var el, inlined, isBacklink, post, qroot, root, _ref; - isBacklink = $.hasClass(quotelink, 'backlink'); root = QuoteInline.findRoot(quotelink, isBacklink); root = $.x("following-sibling::div[@id='i" + postID + "'][1]", root); @@ -4865,7 +4691,6 @@ }, node: function() { var boardID, fullID, i, postID, quotelink, quotelinks, quotes, _ref, _ref1; - if (this.isClone && this.thread === this.context.thread) { return; } @@ -4908,7 +4733,6 @@ }, node: function() { var link, _i, _len, _ref; - _ref = this.nodes.quotelinks.concat(__slice.call(this.nodes.backlinks)); for (_i = 0, _len = _ref.length; _i < _len; _i++) { link = _ref[_i]; @@ -4917,7 +4741,6 @@ }, mouseover: function(e) { var boardID, clone, origin, post, postID, posts, qp, quote, quoterID, threadID, _i, _j, _len, _len1, _ref, _ref1; - if ($.hasClass(this, 'inlined')) { return; } @@ -4961,7 +4784,6 @@ }, mouseout: function() { var clone, post, root, _i, _len, _ref; - if (!(root = this.el.firstElementChild)) { return; } @@ -4991,7 +4813,6 @@ }, node: function() { var boardID, postID, quotelink, _i, _len, _ref, _ref1, _ref2; - if (this.isClone) { return; } @@ -5014,7 +4835,6 @@ QuoteThreading = { init: function() { var input; - if (!(Conf['Quote Threading'] && g.VIEW === 'thread')) { return; } @@ -5037,7 +4857,6 @@ }, setup: function() { var ID, post, posts; - $.off(d, '4chanXInitFinished', QuoteThreading.setup); posts = g.posts; for (ID in posts) { @@ -5050,7 +4869,6 @@ }, node: function() { var ID, fullID, keys, len, post, posts, qid, quote, quotes, uniq, _i, _len; - if (this.isClone || !QuoteThreading.enabled || this.thread.OP === this) { return; } @@ -5080,7 +4898,6 @@ }, nodeinsert: function() { var bottom, height, qpost, qroot, threadContainer, top, _ref; - qpost = g.posts[this.threaded]; delete this.threaded; delete this.cb; @@ -5109,7 +4926,6 @@ }, toggle: function() { var container, containers, node, post, replies, reply, thread, _i, _j, _k, _len, _len1, _len2, _ref; - thread = $('.thread'); replies = $$('.thread > .replyContainer, .threadContainer > .replyContainer', thread); QuoteThreading.enabled = this.checked; @@ -5126,7 +4942,6 @@ } else { replies.sort(function(a, b) { var aID, bID; - aID = Number(a.id.slice(2)); bID = Number(b.id.slice(2)); return aID - bID; @@ -5147,7 +4962,6 @@ }, kb: function() { var control; - control = $.id('threadingControl'); return control.click(); } @@ -5175,7 +4989,6 @@ }, node: function() { var quotelink, _i, _len, _ref; - if (this.isClone) { return; } @@ -5199,7 +5012,6 @@ cb: { seek: function(type) { var highlight, post, posts, result, str; - if (!(Conf['Mark Quotes of You'] && Conf['Quick Reply'])) { return; } @@ -5255,7 +5067,6 @@ }, node: function() { var deadlink, _i, _len, _ref; - _ref = $$('.deadlink', this.nodes.comment); for (_i = 0, _len = _ref.length; _i < _len; _i++) { deadlink = _ref[_i]; @@ -5270,7 +5081,6 @@ }, parseDeadlink: function(deadlink) { var a, boardID, m, post, postID, quote, quoteID, redirect, _ref; - if ($.hasClass(deadlink.parentNode, 'prettyprint')) { Quotify.fixDeadlink(deadlink); return; @@ -5340,7 +5150,6 @@ }, fixDeadlink: function(deadlink) { var el, green; - if (!(el = deadlink.previousSibling) || el.nodeName === 'BR') { green = $.el('span', { className: 'quote' @@ -5355,7 +5164,6 @@ QR = { init: function() { var sc; - if (!Conf['Quick Reply']) { return; } @@ -5403,7 +5211,6 @@ }, initReady: function() { var link; - QR.postingIsEnabled = !!$.id('postForm'); if (!QR.postingIsEnabled) { return; @@ -5423,13 +5230,11 @@ $.before($.id('postForm'), link); $.on(d, 'QRGetSelectedPost', function(_arg) { var cb; - cb = _arg.detail; return cb(QR.selected); }); $.on(d, 'QRAddPreSubmitHook', function(_arg) { var cb; - cb = _arg.detail; return QR.preSubmitHooks.push(cb); }); @@ -5463,7 +5268,6 @@ }, open: function() { var err; - if (QR.nodes) { QR.nodes.el.hidden = false; QR.unhide(); @@ -5482,7 +5286,6 @@ }, close: function() { var post, _i, _len, _ref; - if (QR.req) { QR.abort(); return; @@ -5537,7 +5340,6 @@ }, error: function(err) { var el; - QR.open(); if (typeof err === 'string') { el = $.tn(err); @@ -5564,7 +5366,6 @@ }, notify: function(el) { var notice, notif; - notice = new Notice('warning', el); if (!(Header.areNotificationsEnabled && d.hidden)) { return QR.notifications.push(notice); @@ -5581,7 +5382,6 @@ notifications: [], cleanNotifications: function() { var notification, _i, _len, _ref; - _ref = QR.notifications; for (_i = 0, _len = _ref.length; _i < _len; _i++) { notification = _ref[_i]; @@ -5591,7 +5391,6 @@ }, status: function() { var disabled, status, thread, value; - if (!QR.nodes) { return; } @@ -5608,7 +5407,6 @@ }, quote: function(e) { var caretPos, com, index, post, range, s, sel, text, thread, _ref; - if (e != null) { e.preventDefault(); } @@ -5646,7 +5444,6 @@ }, characterCount: function() { var count, counter; - counter = QR.nodes.charCount; count = QR.nodes.com.textLength; counter.textContent = count; @@ -5655,7 +5452,6 @@ }, drag: function(e) { var toggle; - toggle = e.type === 'dragstart' ? $.off : $.on; toggle(d, 'dragover', QR.dragOver); return toggle(d, 'drop', QR.dropFile); @@ -5674,7 +5470,6 @@ }, paste: function(e) { var blob, files, item, _i, _len, _ref; - files = []; _ref = e.clipboardData.items; for (_i = 0, _len = _ref.length; _i < _len; _i++) { @@ -5698,7 +5493,6 @@ }, handleFiles: function(files) { var file, isSingle, max, _i, _len; - if (this !== QR) { files = __slice.call(this.files); this.value = null; @@ -5719,7 +5513,6 @@ }, handleFile: function(file, isSingle, max) { var post, _ref; - if (file.size > max) { QR.error("" + file.name + ": File too large (file: " + ($.bytesToString(file.size)) + ", max: " + ($.bytesToString(max)) + ")."); return; @@ -5745,7 +5538,6 @@ }, openFileInput: function(e) { var _ref; - e.stopPropagation(); if (e.shiftKey && e.type === 'click') { return QR.selected.rmFile(); @@ -5765,7 +5557,6 @@ }, generatePostableThreadsList: function() { var list, options, thread, val; - if (!QR.nodes) { return; } @@ -5788,7 +5579,6 @@ }, dialog: function() { var check, dialog, elm, event, flagSelector, i, items, key, mimeTypes, name, node, nodes, save, value, _ref; - QR.nodes = nodes = { el: dialog = UI.dialog('qr', 'top:0;right:0;', "
×
No selected file×+
") }; @@ -5915,7 +5705,6 @@ preSubmitHooks: [], submit: function(e) { var challenge, err, extra, filetag, formData, hook, options, post, response, textOnly, thread, threadID, _i, _len, _ref, _ref1; - if (e != null) { e.preventDefault(); } @@ -6030,7 +5819,6 @@ }, response: function() { var URL, ban, board, captchasCount, err, h1, isReply, m, notif, post, postID, postsCount, req, resDoc, threadID, _, _ref, _ref1; - req = QR.req; delete QR.req; post = QR.posts[0]; @@ -6163,7 +5951,6 @@ ready: function() { var imgContainer, input, setLifetime, _this = this; - setLifetime = function(e) { return _this.lifetime = e.detail; }; @@ -6200,7 +5987,6 @@ }); $.get('captchas', [], function(_arg) { var captchas; - captchas = _arg.captchas; return _this.sync(captchas); }); @@ -6217,7 +6003,6 @@ }, getOne: function() { var captcha, challenge, response; - this.clear(); if (captcha = this.captchas.shift()) { challenge = captcha.challenge, response = captcha.response; @@ -6242,7 +6027,6 @@ }, save: function() { var response; - if (!(response = this.nodes.input.value.trim())) { return; } @@ -6257,7 +6041,6 @@ }, clear: function() { var captcha, i, now, _i, _len, _ref; - now = Date.now(); _ref = this.captchas; for (i = _i = 0, _len = _ref.length; _i < _len; i = ++_i) { @@ -6275,7 +6058,6 @@ }, load: function() { var challenge; - if (!this.nodes.challenge.firstChild) { return; } @@ -6288,7 +6070,6 @@ }, count: function() { var count; - count = this.captchas.length; this.nodes.input.placeholder = (function() { switch (count) { @@ -6324,7 +6105,6 @@ init: function() { var key, setTimers, type, _this = this; - if (!Conf['Cooldown']) { return; } @@ -6358,7 +6138,6 @@ }, sync: function(cooldowns) { var id; - for (id in cooldowns) { QR.cooldown.cooldowns[id] = cooldowns[id]; } @@ -6366,7 +6145,6 @@ }, set: function(data) { var cooldown, delay, isReply, post, req, start, threadID, upSpd; - if (!Conf['Cooldown']) { return; } @@ -6401,7 +6179,6 @@ }, count: function() { var cooldown, cooldowns, elapsed, hasFile, isReply, maxTimer, now, post, seconds, start, type, types, upSpd, upSpdAccuracy, update, _ref; - if (!Object.keys(QR.cooldown.cooldowns).length) { $["delete"]("" + g.BOARD + ".cooldown"); delete QR.cooldown.isCounting; @@ -6466,7 +6243,6 @@ QR.persona.getPassword(); return $.get('QR.personas', Conf['QR.personas'], function(_arg) { var arr, item, personas, type, types, _i, _len, _ref; - personas = _arg['QR.personas']; types = { name: [], @@ -6486,7 +6262,6 @@ }, parseItem: function(item, types) { var boards, match, type, val, _ref, _ref1, _ref2; - if (item[0] === '#') { return; } @@ -6515,7 +6290,6 @@ }, loadPersonas: function(type, arr) { var list, val, _i, _len; - list = $("#list-" + type, QR.nodes.el); for (_i = 0, _len = arr.length; _i < _len; _i++) { val = arr[_i]; @@ -6528,7 +6302,6 @@ }, getPassword: function() { var input, m; - if (!QR.persona.pwd) { QR.persona.pwd = (m = d.cookie.match(/4chan_pass=([^;]+)/)) ? decodeURIComponent(m[1]) : (input = $.id('postPassword')) ? input.value : $.id('delPassword').value; } @@ -6537,7 +6310,6 @@ get: function(cb) { return $.get('QR.persona', {}, function(_arg) { var persona; - persona = _arg['QR.persona']; return cb(persona); }); @@ -6545,7 +6317,6 @@ set: function(post) { return $.get('QR.persona', {}, function(_arg) { var persona; - persona = _arg['QR.persona']; persona = { name: post.name, @@ -6563,7 +6334,6 @@ this.select = __bind(this.select, this); var el, elm, event, prev, _i, _j, _len, _len1, _ref, _ref1, _this = this; - el = $.el('a', { className: 'qr-preview', draggable: true, @@ -6626,7 +6396,6 @@ _Class.prototype.rm = function() { var index; - this["delete"](); index = QR.posts.indexOf(this); if (QR.posts.length === 1) { @@ -6646,7 +6415,6 @@ _Class.prototype.lock = function(lock) { var name, node, _i, _len, _ref; - if (lock == null) { lock = true; } @@ -6673,7 +6441,6 @@ _Class.prototype.select = function() { var rectEl, rectList; - if (QR.selected) { QR.selected.nodes.el.id = null; QR.selected.forceSave(); @@ -6690,7 +6457,6 @@ _Class.prototype.load = function() { var name, node, _i, _len, _ref; - _ref = ['thread', 'name', 'email', 'sub', 'com', 'filename', 'flag']; for (_i = 0, _len = _ref.length; _i < _len; _i++) { name = _ref[_i]; @@ -6705,7 +6471,6 @@ _Class.prototype.save = function(input) { var name, _ref; - if (input.type === 'checkbox') { this.spoiler = input.checked; return; @@ -6736,7 +6501,6 @@ _Class.prototype.forceSave = function() { var name, node, _i, _len, _ref; - if (this !== QR.selected) { return; } @@ -6771,11 +6535,9 @@ _Class.prototype.setThumbnail = function() { var fileURL, img, _this = this; - img = $.el('img'); img.onload = function() { var cv, height, s, width; - s = 90 * 2 * window.devicePixelRatio; if (_this.file.type === 'image/gif') { s *= 3; @@ -6826,7 +6588,6 @@ _Class.prototype.updateFilename = function() { var long; - long = "" + this.filename + " (" + this.filesize + ")\nCtrl+click to edit filename. Shift+click to clear."; this.nodes.el.title = long; if (this !== QR.selected) { @@ -6849,11 +6610,9 @@ _Class.prototype.pasteText = function(file) { var reader, _this = this; - reader = new FileReader(); reader.onload = function(e) { var text; - text = e.target.result; if (_this.com) { _this.com += "\n" + text; @@ -6892,7 +6651,6 @@ _Class.prototype.drop = function() { var el, index, newIndex, oldIndex, post; - $.rmClass(this, 'over'); if (!this.draggable) { return; @@ -6916,7 +6674,6 @@ AutoGIF = { init: function() { var _ref; - if (g.VIEW === 'catalog' || !Conf['Auto-GIF'] || ((_ref = g.BOARD.ID) === 'gif' || _ref === 'wsg')) { return; } @@ -6927,7 +6684,6 @@ }, node: function() { var URL, gif, style, thumb, _ref, _ref1; - if (this.isClone || this.isHidden || this.thread.isHidden || !((_ref = this.file) != null ? _ref.isImage : void 0)) { return; } @@ -6950,7 +6706,6 @@ FappeTyme = { init: function() { var el, input, lc, type, _i, _len, _ref; - if (!(Conf['Fappe Tyme'] || Conf['Werk Tyme']) || g.VIEW === 'catalog' || g.BOARD === 'f') { return; } @@ -7003,7 +6758,6 @@ Gallery = { init: function() { var el; - if (g.VIEW === 'catalog' || g.BOARD === 'f' || !Conf['Gallery']) { return; } @@ -7023,7 +6777,6 @@ }, node: function() { var _ref; - if (!((_ref = this.file) != null ? _ref.isImage : void 0)) { return; } @@ -7037,7 +6790,6 @@ }, build: function(image) { var cb, createSubEntry, dialog, el, file, files, i, key, menuButton, name, nodes, value, _ref; - Gallery.images = []; nodes = Gallery.nodes = {}; nodes.el = dialog = $.el('div', { @@ -7097,7 +6849,6 @@ }, generateThumb: function(file) { var double, post, thumb, title; - post = Get.postFromNode(file); title = ($('.fileText a', file)).textContent; thumb = post.file.thumb.parentNode.cloneNode(true); @@ -7116,7 +6867,6 @@ cb: { keybinds: function(e) { var cb, key; - if (!(key = Keybinds.keyCode(e))) { return; } @@ -7142,7 +6892,6 @@ }, open: function(e) { var el, img, name, nodes, rect, top; - if (e) { e.preventDefault(); } @@ -7185,7 +6934,6 @@ }, error: function(img, thumb) { var URL, post, revived, src; - post = Get.postFromLink($.el('a', { href: img.dataset.post })); @@ -7216,7 +6964,6 @@ return $.ajax("//api.4chan.org/" + post.board + "/res/" + post.thread + ".json", { onload: function() { var i, postObj; - if (this.status !== 200) { return; } @@ -7263,7 +7010,6 @@ menu: { init: function() { var createSubEntry, el, name, subEntries; - if (g.VIEW === 'catalog' || !Conf['Gallery']) { return; } @@ -7285,7 +7031,6 @@ }, createSubEntry: function(name) { var input, label; - label = $.el('label', { innerHTML: " " + name }); @@ -7323,7 +7068,6 @@ }, node: function() { var thumb, _ref; - if (!((_ref = this.file) != null ? _ref.isImage : void 0)) { return; } @@ -7348,7 +7092,6 @@ }, toggleAll: function() { var ID, file, func, post, _i, _len, _ref, _ref1; - $.event('CloseMenu'); if (ImageExpand.on = $.hasClass(ImageExpand.EAI, 'expand-all-shortcut')) { ImageExpand.EAI.className = 'contract-all-shortcut fa fa-compress'; @@ -7382,7 +7125,6 @@ }, toggle: function(post) { var headRect, left, root, thumb, top, x, y, _ref; - thumb = post.file.thumb; if (!(post.file.isExpanded || $.hasClass(thumb, 'expanding'))) { ImageExpand.expand(post); @@ -7391,7 +7133,6 @@ root = post.nodes.root; _ref = (Conf['Advance on contract'] ? (function() { var next; - next = root; while (next = $.x("following::div[contains(@class,'postContainer')][1]", next)) { if ($('.stub', next) || next.offsetHeight === 0) { @@ -7423,7 +7164,6 @@ }, expand: function(post, src) { var img, thumb; - thumb = post.file.thumb; if (post.isHidden || post.file.isExpanded || $.hasClass(thumb, 'expanding')) { return; @@ -7451,7 +7191,6 @@ }, completeExpand: function(post) { var bottom, thumb; - thumb = post.file.thumb; if (!$.hasClass(thumb, 'expanding')) { return; @@ -7474,7 +7213,6 @@ }, error: function() { var URL, post, src, timeoutID; - post = Get.postFromNode(this); $.rm(this); delete post.file.fullImage; @@ -7500,7 +7238,6 @@ return $.ajax("//a.4cdn.org/" + post.board + "/res/" + post.thread + ".json", { onload: function() { var postObj, _i, _len, _ref; - if (this.status !== 200) { return; } @@ -7524,7 +7261,6 @@ menu: { init: function() { var conf, createSubEntry, el, name, subEntries, _ref; - if (g.VIEW === 'catalog' || !Conf['Image Expansion']) { return; } @@ -7548,7 +7284,6 @@ }, createSubEntry: function(name, desc) { var input, label; - label = $.el('label', { innerHTML: " " + name, title: desc @@ -7579,7 +7314,6 @@ }, node: function() { var _ref; - if (!((_ref = this.file) != null ? _ref.isImage : void 0)) { return; } @@ -7587,7 +7321,6 @@ }, mouseover: function(e) { var el, post; - post = Get.postFromNode(this); el = $.el('img', { id: 'ihover', @@ -7609,7 +7342,6 @@ error: function() { var URL, post, src, timeoutID, _this = this; - if (!doc.contains(this)) { return; } @@ -7634,7 +7366,6 @@ return $.ajax("//a.4cdn.org/" + post.board + "/res/" + post.thread + ".json", { onload: function() { var postObj, _i, _len, _ref; - if (this.status !== 200) { return; } @@ -7660,7 +7391,6 @@ ImageLoader = { init: function() { var prefetch; - if (g.VIEW === 'catalog') { return; } @@ -7687,7 +7417,6 @@ }, node: function() { var URL, img, string, style, thumb, type, _ref, _ref1; - if (this.isClone || this.isHidden || this.thread.isHidden || !((_ref = this.file) != null ? _ref.isImage : void 0)) { return; } @@ -7709,7 +7438,6 @@ }, toggle: function() { var enabled, id, post, _ref; - enabled = Conf['prefetch'] = this.checked; if (enabled) { _ref = g.threads["" + g.BOARD.ID + "." + g.THREADID].posts; @@ -7732,7 +7460,6 @@ }, node: function() { var thumb, _ref; - if (this.isClone || !((_ref = this.file) != null ? _ref.isSpoiler : void 0)) { return; } @@ -7745,7 +7472,6 @@ Sauce = { init: function() { var err, link, links, _i, _len, _ref; - if (g.VIEW === 'catalog' || !Conf['Sauce']) { return; } @@ -7775,7 +7501,6 @@ }, createSauceLink: function(link) { var m, text; - link = link.replace(/%(T?URL|MD5|board)/ig, function(parameter) { switch (parameter) { case '%TURL': @@ -7796,7 +7521,6 @@ }, node: function() { var link, nodes, _i, _len, _ref; - if (this.isClone || !this.file) { return; } @@ -7829,7 +7553,6 @@ }, node: function() { var data, el, end, endNode, i, index, items, length, link, links, node, result, saved, snapshot, space, test, word, _i, _len, _ref; - if (this.isClone) { if (Conf['Embedding']) { i = 0; @@ -7906,7 +7629,6 @@ }, makeRange: function(startNode, endNode, startOffset, endOffset) { var range; - range = document.createRange(); range.setStart(startNode, startOffset); range.setEnd(endNode, endOffset); @@ -7914,7 +7636,6 @@ }, makeLink: function(range) { var a, char, i, text; - text = range.toString(); i = 0; while (/[(\[{<>]/.test(text.charAt(i))) { @@ -7960,7 +7681,6 @@ }, services: function(link) { var href, key, match, type, _ref; - href = link.href; _ref = Linkify.types; for (key in _ref) { @@ -7973,7 +7693,6 @@ }, embed: function(data) { var embed, href, key, link, name, options, uid, value, _ref; - key = data[0], uid = data[1], options = data[2], link = data[3]; href = link.href; embed = $.el('a', { @@ -8002,7 +7721,6 @@ }, title: function(data) { var embed, err, key, link, options, service, title, titles, uid; - key = data[0], uid = data[1], options = data[2], link = data[3], embed = data[4]; if (!(service = Linkify.types[key].title)) { return; @@ -8039,21 +7757,18 @@ cb: { toggle: function() { var string, _ref; - _ref = $.hasClass(this, "embedded") ? ['unembed', '(embed)'] : ['embed', '(unembed)'], string = _ref[0], this.textContent = _ref[1]; $.replace(this.previousElementSibling, Linkify.cb[string](this)); return $.toggleClass(this, 'embedded'); }, embed: function(a) { var el, style, type; - el = (type = Linkify.types[a.dataset.key]).el(a); el.style.cssText = (style = type.style) ? style : "border: 0; width: 640px; height: 390px"; return el; }, unembed: function(a) { var el; - el = $.el('a', { rel: 'nofollow noreferrer', target: 'blank', @@ -8066,7 +7781,6 @@ }, title: function(response, data) { var embed, key, link, options, service, text, uid; - key = data[0], uid = data[1], options = data[2], link = data[3], embed = data[4]; service = Linkify.types[key].title; switch (response.status) { @@ -8106,7 +7820,6 @@ regExp: /.*(?:gist.github.com.*\/)([^\/][^\/]*)$/, el: function(a) { var div; - return div = $.el('iframe', { src: "http://www.purplegene.com/script?url=https://gist.github.com/" + a.dataset.uid + ".js" }); @@ -8117,7 +7830,6 @@ }, text: function(_arg) { var file, files; - files = _arg.files; for (file in files) { if (files.hasOwnProperty(file)) { @@ -8148,7 +7860,6 @@ regExp: /.*(?:liveleak.com\/view.+i=)([0-9a-z_]+)/, el: function(a) { var el; - el = $.el('iframe', { width: "640", height: "360", @@ -8164,11 +7875,9 @@ style: 'border: 0;', el: function(a) { var el; - el = $.el('div'); $.cache("https://mediacru.sh/" + a.dataset.uid + ".json", function() { var embed, file, files, status, type, _i, _j, _len, _len1, _ref; - status = this.status; if (status !== 200 && status !== 304) { return div.innerHTML = "ERROR " + status; @@ -8217,7 +7926,6 @@ regExp: /.*(?:pastebin.com\/(?!u\/))([^#\&\?]*).*/, el: function(a) { var div; - return div = $.el('iframe', { src: "http://pastebin.com/embed_iframe.php?i=" + a.dataset.uid }); @@ -8228,7 +7936,6 @@ style: 'height: auto; width: 500px; display: inline-block;', el: function(a) { var div; - div = $.el('div', { className: "soundcloud", name: "soundcloud" @@ -8263,7 +7970,6 @@ style: "border: none; width: 640px; height: 360px;", el: function(a) { var channel, chapter, result, _; - if (result = /(\w+)\/(?:[a-z]\/)?(\d+)/i.exec(a.dataset.uid)) { _ = result[0], channel = result[1], chapter = result[2]; return $.el('object', { @@ -8317,7 +8023,6 @@ regExp: /.*(?:youtu.be\/|youtube.*v=|youtube.*\/embed\/|youtube.*\/v\/|youtube.*videos\/)([^#\&\?]*)\??(t\=.*)?/, el: function(a) { var el; - el = $.el('iframe', { src: "//www.youtube.com/embed/" + a.dataset.uid + (a.dataset.option ? '#' + a.dataset.option : '') + "?wmode=opaque" }); @@ -8339,7 +8044,6 @@ ArchiveLink = { init: function() { var div, entry, type, _i, _len, _ref; - if (g.VIEW === 'catalog' || !Conf['Menu'] || !Conf['Archive Link']) { return; } @@ -8352,7 +8056,6 @@ order: 90, open: function(_arg) { var ID, board, thread; - ID = _arg.ID, thread = _arg.thread, board = _arg.board; return !!Redirect.to('thread', { postID: ID, @@ -8371,14 +8074,12 @@ }, createSubEntry: function(text, type) { var el, open; - el = $.el('a', { textContent: text, target: '_blank' }); open = type === 'post' ? function(_arg) { var ID, board, thread; - ID = _arg.ID, thread = _arg.thread, board = _arg.board; el.href = Redirect.to('thread', { postID: ID, @@ -8388,7 +8089,6 @@ return true; } : function(post) { var value; - value = Filter[type](post); if (!value) { return false; @@ -8411,7 +8111,6 @@ DeleteLink = { init: function() { var div, fileEl, fileEntry, postEl, postEntry; - if (g.VIEW === 'catalog' || !Conf['Menu'] || !Conf['Delete Link']) { return; } @@ -8439,7 +8138,6 @@ el: fileEl, open: function(_arg) { var file; - file = _arg.file; if (!file || file.isDead) { return false; @@ -8455,7 +8153,6 @@ order: 40, open: function(post) { var node; - if (post.isDead) { return false; } @@ -8470,7 +8167,6 @@ }, "delete": function() { var fileOnly, form, link, post; - post = DeleteLink.post; if (DeleteLink.cooldown.counting === post) { return; @@ -8500,7 +8196,6 @@ }, load: function(link, post, fileOnly, resDoc) { var msg, s; - if (resDoc.title === '4chan - Banned') { s = 'Banned!'; } else if (msg = resDoc.getElementById('errmsg')) { @@ -8521,7 +8216,6 @@ cooldown: { start: function(post, node) { var length, seconds, _ref; - if (!((_ref = QR.db) != null ? _ref.get({ boardID: post.board.ID, threadID: post.thread.ID, @@ -8555,7 +8249,6 @@ DownloadLink = { init: function() { var a; - if (g.VIEW === 'catalog' || !Conf['Menu'] || !Conf['Download Link']) { return; } @@ -8569,7 +8262,6 @@ order: 100, open: function(_arg) { var file; - file = _arg.file; if (!file) { return false; @@ -8601,7 +8293,6 @@ }, makeButton: (function() { var frag; - frag = $.nodes([ $.tn(' '), $.el('a', { className: 'menu-button', @@ -8611,7 +8302,6 @@ ]); return function() { var clone; - clone = frag.cloneNode(true); $.on(clone.lastElementChild, 'click', Menu.toggle); return clone; @@ -8619,7 +8309,6 @@ })(), toggle: function(e) { var post; - post = Get.postFromNode(this); return Menu.menu.toggle(e, this, post); } @@ -8628,7 +8317,6 @@ ReportLink = { init: function() { var a; - if (g.VIEW === 'catalog' || !Conf['Menu'] || !Conf['Report Link']) { return; } @@ -8650,7 +8338,6 @@ }, report: function() { var id, post, set, url; - post = ReportLink.post; url = "//sys.4chan.org/" + post.board + "/imgboard.php?mode=report&no=" + post; id = Date.now(); @@ -8663,7 +8350,6 @@ init: function() { return $.ready(function() { var href; - Favicon.el = $('link[rel="shortcut icon"]', d.head); Favicon.el.type = 'image/x-icon'; href = Favicon.el.href; @@ -8737,7 +8423,6 @@ init: function() { var sc, _this = this; - if (g.VIEW !== 'thread' || !Conf['Thread Stats']) { return; } @@ -8766,7 +8451,6 @@ }, node: function() { var ID, fileCount, post, postCount, _ref; - postCount = 0; fileCount = 0; _ref = this.posts; @@ -8784,7 +8468,6 @@ }, onUpdate: function(e) { var fileCount, postCount, _ref; - if (e.detail[404]) { return; } @@ -8793,7 +8476,6 @@ }, update: function(postCount, fileCount) { var fileCountEl, postCountEl, thread; - thread = ThreadStats.thread, postCountEl = ThreadStats.postCountEl, fileCountEl = ThreadStats.fileCountEl; postCountEl.textContent = postCount; fileCountEl.textContent = fileCount; @@ -8818,7 +8500,6 @@ }, onThreadsLoad: function() { var page, pages, thread, _i, _j, _len, _len1, _ref; - if (!(Conf["Page Count in Stats"] && this.status === 200)) { return; } @@ -8842,7 +8523,6 @@ init: function() { var checked, conf, el, input, name, sc, settings, subEntries, _ref, _this = this; - if (g.VIEW !== 'thread' || !Conf['Thread Updater']) { return; } @@ -8983,7 +8663,6 @@ }, interval: function() { var val; - val = parseInt(this.value, 10); if (val < 1) { val = 1; @@ -8993,7 +8672,6 @@ }, load: function(e) { var klass, req, text, _ref; - req = ThreadUpdater.req; switch (req.status) { case 200: @@ -9025,7 +8703,6 @@ }, setInterval: function() { var cur, i, j, limit; - i = ThreadUpdater.interval + 1; if (Conf['Optional Increase']) { cur = ThreadUpdater.outdateCount || 1; @@ -9041,14 +8718,12 @@ }, intervalShortcut: function() { var settings; - Settings.open('Advanced'); settings = $.id('fourchanx-settings'); return $('input[name=Interval]', settings).focus(); }, set: function(name, text, klass) { var el, node; - el = ThreadUpdater[name]; if (node = el.firstChild) { node.data = text; @@ -9067,7 +8742,6 @@ }, timeout: function() { var n; - ThreadUpdater.timeoutID = setTimeout(ThreadUpdater.timeout, 1000); if (!(n = --ThreadUpdater.seconds)) { return ThreadUpdater.update(); @@ -9080,7 +8754,6 @@ }, update: function() { var url, _ref; - if (!navigator.onLine) { return; } @@ -9102,7 +8775,6 @@ }, updateThreadStatus: function(type, status) { var change, hasChanged; - if (!(hasChanged = ThreadUpdater.thread["is" + type] !== status)) { return; } @@ -9112,7 +8784,6 @@ }, parse: function(postObjects) { var ID, OP, count, deletedFiles, deletedPosts, files, index, key, node, num, post, postObject, posts, root, scroll, _i, _len, _ref; - OP = postObjects[0]; Build.spoilerRange[ThreadUpdater.thread.board] = OP.custom_spoiler; ThreadUpdater.updateThreadStatus('Sticky', !!OP.sticky); @@ -9198,7 +8869,6 @@ } $.queueTask(function() { var length, threadID; - threadID = ThreadUpdater.thread.ID; length = $$('.thread > .postContainer', ThreadUpdater.root).length; return Fourchan.parseThread(threadID, length - count, length); @@ -9219,7 +8889,6 @@ ThreadWatcher = { init: function() { var now, sc; - if (!Conf['Thread Watcher']) { return; } @@ -9264,7 +8933,6 @@ }, node: function() { var toggler; - toggler = $.el('img', { className: 'watch-thread-link' }); @@ -9286,7 +8954,6 @@ } return $.get('AutoWatch', 0, function(_arg) { var AutoWatch, thread; - AutoWatch = _arg.AutoWatch; if (!(thread = g.BOARD.threads[AutoWatch])) { return; @@ -9302,7 +8969,6 @@ cb: { openAll: function() { var a, _i, _len, _ref; - if ($.hasClass(this, 'disabled')) { return; } @@ -9321,7 +8987,6 @@ }, pruneDeads: function() { var boardID, data, threadID, _i, _len, _ref, _ref1; - if ($.hasClass(this, 'disabled')) { return; } @@ -9345,13 +9010,11 @@ }, rm: function() { var boardID, threadID, _ref; - _ref = this.parentNode.dataset.fullID.split('.'), boardID = _ref[0], threadID = _ref[1]; return ThreadWatcher.rm(boardID, +threadID); }, post: function(e) { var board, postID, threadID, _ref; - _ref = e.detail, board = _ref.board, postID = _ref.postID, threadID = _ref.threadID; if (postID === threadID) { if (Conf['Auto Watch']) { @@ -9363,7 +9026,6 @@ }, onIndexRefresh: function() { var boardID, data, db, threadID, _ref; - db = ThreadWatcher.db; boardID = g.BOARD.ID; _ref = db.data.boards[boardID]; @@ -9389,7 +9051,6 @@ }, onThreadRefresh: function(e) { var thread; - thread = e.detail.thread; if (!(e.detail[404] && ThreadWatcher.db.get({ boardID: thread.board.ID, @@ -9406,7 +9067,6 @@ }, fetchAllStatus: function() { var thread, threads, _i, _len; - if (!(threads = ThreadWatcher.getAll()).length) { return; } @@ -9418,7 +9078,6 @@ }, fetchStatus: function(_arg) { var boardID, data, fetchCount, threadID; - boardID = _arg.boardID, threadID = _arg.threadID, data = _arg.data; if (data.isDead) { return; @@ -9428,7 +9087,6 @@ return $.ajax("//a.4cdn.org/" + boardID + "/res/" + threadID + ".json", { onloadend: function() { var status; - fetchCount.fetched++; if (fetchCount.fetched === fetchCount.fetching) { fetchCount.fetched = 0; @@ -9462,7 +9120,6 @@ }, getAll: function() { var all, boardID, data, threadID, threads, _ref; - all = []; _ref = ThreadWatcher.db.data.boards; for (boardID in _ref) { @@ -9483,7 +9140,6 @@ }, makeLine: function(boardID, threadID, data) { var div, fullID, href, link, x; - x = $.el('a', { className: 'fa fa-times', href: 'javascript:;' @@ -9514,7 +9170,6 @@ }, refresh: function() { var boardID, data, helper, list, nodes, refresher, thread, threadID, toggler, watched, _i, _j, _len, _len1, _ref, _ref1, _ref2, _ref3; - nodes = []; _ref = ThreadWatcher.getAll(); for (_i = 0, _len = _ref.length; _i < _len; _i++) { @@ -9544,7 +9199,6 @@ }, toggle: function(thread) { var boardID, threadID; - boardID = thread.board.ID; threadID = thread.ID; if (ThreadWatcher.db.get({ @@ -9558,7 +9212,6 @@ }, add: function(thread) { var boardID, data, threadID; - data = {}; boardID = thread.board.ID; threadID = thread.ID; @@ -9589,7 +9242,6 @@ }, convert: function(oldFormat) { var boardID, data, newFormat, threadID, threads; - newFormat = {}; for (boardID in oldFormat) { threads = oldFormat[boardID]; @@ -9606,7 +9258,6 @@ refreshers: [], init: function() { var menu; - if (!Conf['Thread Watcher']) { return; } @@ -9619,7 +9270,6 @@ }, addHeaderMenuEntry: function() { var entryEl; - if (g.VIEW !== 'thread') { return; } @@ -9636,7 +9286,6 @@ }); return this.refreshers.push(function() { var addClass, rmClass, text, _ref; - _ref = $('.current', ThreadWatcher.list) ? ['unwatch-thread', 'watch-thread', 'Unwatch thread'] : ['watch-thread', 'unwatch-thread', 'Watch thread'], addClass = _ref[0], rmClass = _ref[1], text = _ref[2]; $.addClass(entryEl, addClass); $.rmClass(entryEl, rmClass); @@ -9645,7 +9294,6 @@ }, addMenuEntries: function() { var cb, conf, entries, entry, name, refresh, subEntries, _i, _len, _ref, _ref1; - entries = []; entries.push({ cb: ThreadWatcher.cb.openAll, @@ -9714,7 +9362,6 @@ }, createSubEntry: function(name, desc) { var entry, input; - entry = { type: 'thread watcher', el: $.el('label', { @@ -9766,7 +9413,6 @@ }, ready: function() { var ID, post, posts, _ref; - $.off(d, '4chanXInitFinished', Unread.ready); posts = []; _ref = Unread.thread.posts; @@ -9781,7 +9427,6 @@ }, scroll: function() { var down, hash, post, posts, root; - if (!Conf['Scroll to Last Read Post']) { return; } @@ -9810,7 +9455,6 @@ }, sync: function() { var lastReadPost; - lastReadPost = Unread.db.get({ boardID: Unread.thread.board.ID, threadID: Unread.thread.ID, @@ -9829,7 +9473,6 @@ }, addPosts: function(posts) { var ID, data, post, _i, _len, _ref; - for (_i = 0, _len = posts.length; _i < _len; _i++) { post = posts[_i]; ID = post.ID; @@ -9857,7 +9500,6 @@ }, addPostQuotingYou: function(post) { var quotelink, _i, _len, _ref; - if (!QR.db) { return; } @@ -9874,7 +9516,6 @@ }, openNotification: function(post) { var name, notif; - if (!Header.areNotificationsEnabled) { return; } @@ -9902,7 +9543,6 @@ }, readSinglePost: function(post) { var i; - if ((i = Unread.posts.indexOf(post)) === -1) { return; } @@ -9918,7 +9558,6 @@ }, readArray: function(arr) { var i, post, _i, _len; - for (i = _i = 0, _len = arr.length; _i < _len; i = ++_i) { post = arr[i]; if (post.ID > Unread.lastReadPost) { @@ -9929,7 +9568,6 @@ }, read: $.debounce(50, function(e) { var ID, height, i, post, posts; - if (d.hidden || !Unread.posts.length) { return; } @@ -9982,7 +9620,6 @@ }), setLine: function(force) { var post; - if (!(d.hidden || force === true)) { return; } @@ -9995,7 +9632,6 @@ }, update: function() { var count; - count = Unread.posts.length; if (Conf['Unread Count']) { d.title = "" + (Conf['Quoted Title'] && Unread.postsQuotingYou.length ? '(!) ' : '') + (count || !Conf['Hide Unread Count at (0)'] ? "(" + count + ") " : '') + (g.DEAD ? "/" + g.BOARD + "/ - 404" : "" + Unread.title); @@ -10016,7 +9652,6 @@ }, init: function() { var archive, boardID, boards, data, id, name, type, _i, _len, _ref, _ref1, _ref2; - _ref = Conf['selectedArchives']; for (boardID in _ref) { data = _ref[boardID]; @@ -10141,7 +9776,6 @@ }, to: function(dest, data) { var archive; - archive = (dest === 'search' ? Redirect.data.thread : Redirect.data[dest])[data.boardID]; if (!archive) { return ''; @@ -10150,7 +9784,6 @@ }, protocol: function(archive) { var protocol; - protocol = location.protocol; if (!archive[protocol.slice(0, -1)]) { protocol = protocol === 'https:' ? 'http:' : 'https:'; @@ -10159,7 +9792,6 @@ }, thread: function(archive, _arg) { var boardID, path, postID, threadID; - boardID = _arg.boardID, threadID = _arg.threadID, postID = _arg.postID; path = threadID ? "" + boardID + "/thread/" + threadID : "" + boardID + "/post/" + postID; if (archive.software === 'foolfuuka') { @@ -10172,7 +9804,6 @@ }, post: function(archive, _arg) { var URL, boardID, postID; - boardID = _arg.boardID, postID = _arg.postID; URL = new String("" + (Redirect.protocol(archive)) + archive.domain + "/_/api/chan/post/?board=" + boardID + "&num=" + postID); URL.archive = archive; @@ -10180,13 +9811,11 @@ }, file: function(archive, _arg) { var boardID, filename; - boardID = _arg.boardID, filename = _arg.filename; return "" + (Redirect.protocol(archive)) + archive.domain + "/" + boardID + "/full_image/" + filename; }, search: function(archive, _arg) { var boardID, path, type, value; - boardID = _arg.boardID, type = _arg.type, value = _arg.value; type = type === 'name' ? 'username' : type === 'MD5' ? 'image' : type; value = encodeURIComponent(value); @@ -10205,7 +9834,6 @@ }, setup: function() { var btn, entry, psa; - $.off(d, '4chanXInitFinished', PSAHiding.setup); if (!(psa = $.id('globalMessage'))) { $.rmClass(doc, 'hide-announcement'); @@ -10234,7 +9862,6 @@ $.on(btn, 'click', PSAHiding.toggle); $.get('hiddenPSA', 0, function(_arg) { var hiddenPSA; - hiddenPSA = _arg.hiddenPSA; PSAHiding.sync(hiddenPSA); $.before(psa, btn); @@ -10244,7 +9871,6 @@ }, toggle: function(e) { var UTC; - if ($.hasClass(this, 'hide-announcement')) { UTC = +$.id('globalMessage').dataset.utc; $.set('hiddenPSA', UTC); @@ -10256,7 +9882,6 @@ }, sync: function(UTC) { var hr, psa; - psa = $.id('globalMessage'); psa.hidden = PSAHiding.btn.hidden = UTC && UTC >= +psa.dataset.utc ? true : false; if ((hr = psa.nextElementSibling) && hr.nodeName === 'HR') { @@ -10277,7 +9902,6 @@ }, ready: function() { var banner, child, children, i; - banner = $(".boardBanner"); children = banner.children; i = 0; @@ -10297,7 +9921,6 @@ cb: { toggle: (function() { var types; - types = { jpg: 227, png: 270, @@ -10305,7 +9928,6 @@ }; return function() { var num, type; - type = Object.keys(types)[Math.floor(3 * Math.random())]; num = Math.floor(types[type] * Math.random()); return this.src = "//static.4chan.org/image/title/" + num + "." + type; @@ -10325,7 +9947,6 @@ }, focus: function() { var items, string, string2; - this.textContent = this.innerHTML; string = "" + g.BOARD + "." + this.className; string2 = "" + string + ".orig"; @@ -10348,7 +9969,6 @@ }, custom: function(child) { var cachedTest, string; - cachedTest = child.innerHTML; string = "" + g.BOARD + "." + child.className; $.on(child, 'click keydown focus blur', function(e) { @@ -10356,7 +9976,6 @@ }); $.get(string, cachedTest, function(item) { var string2, title; - if (!(title = item[string])) { return; } @@ -10380,7 +9999,6 @@ CatalogLinks = { init: function() { var el, input; - if (!Conf['Catalog Links']) { return; } @@ -10408,7 +10026,6 @@ }, set: function(useCatalog) { var a, board, generateURL, path, _i, _len, _ref, _ref1; - path = useCatalog ? 'catalog' : ''; generateURL = useCatalog && Conf['External Catalog'] ? CatalogLinks.external : function(board) { return a.href = "/" + board + "/" + path; @@ -10523,7 +10140,6 @@ }, node: function() { var dicestats, roll, _ref; - if (this.isClone || !(dicestats = (_ref = this.info.email) != null ? _ref.match(/dice[+\s](\d+)d(\d+)/) : void 0)) { return; } @@ -10535,7 +10151,6 @@ Emoji = { init: function() { var css, icon, name, pos, _ref; - if (!Conf['Emoji']) { return; } @@ -10606,7 +10221,6 @@ }, node: function() { var a; - if (a = $('.abbr > a:not([onclick])', this.nodes.comment)) { return $.on(a, 'click', ExpandComment.cb); } @@ -10618,7 +10232,6 @@ }, expand: function(post) { var a; - if (post.nodes.longComment && !post.nodes.longComment.parentNode) { $.replace(post.nodes.shortComment, post.nodes.longComment); post.nodes.comment = post.nodes.longComment; @@ -10634,7 +10247,6 @@ }, contract: function(post) { var a; - if (!post.nodes.shortComment) { return; } @@ -10645,7 +10257,6 @@ }, parse: function(req, a, post) { var callback, clone, comment, href, postObj, posts, quote, spoilerRange, status, _i, _j, _k, _len, _len1, _len2, _ref, _ref1; - status = req.status; if (status !== 200 && status !== 304) { a.textContent = "Error " + req.statusText + " (" + status + ")"; @@ -10700,7 +10311,6 @@ }, setButton: function(thread) { var a; - if (!(a = $.x('following-sibling::a[contains(@class,"summary")][1]', thread.OP.nodes.root))) { return; } @@ -10709,7 +10319,6 @@ }, onIndexRefresh: function() { var status, thread, threadID, _ref, _ref1, _ref2; - _ref = ExpandThread.statuses; for (threadID in _ref) { status = _ref[threadID]; @@ -10736,7 +10345,6 @@ }, toggle: function(thread) { var a, threadRoot; - threadRoot = thread.OP.nodes.root.parentNode; if (!(a = $('.summary', threadRoot))) { return; @@ -10749,7 +10357,6 @@ }, expand: function(thread, a, threadRoot) { var status; - ExpandThread.statuses[thread] = status = {}; a.textContent = ExpandThread.text.apply(ExpandThread, ['...'].concat(__slice.call(a.textContent.match(/\d+/g)))); return status.req = $.cache("//a.4cdn.org/" + thread.board + "/res/" + thread + ".json", function() { @@ -10759,7 +10366,6 @@ }, contract: function(thread, a, threadRoot) { var filesCount, inlined, num, postsCount, replies, reply, status, _i, _len; - status = ExpandThread.statuses[thread]; delete ExpandThread.statuses[thread]; if (status.req) { @@ -10807,7 +10413,6 @@ }, parse: function(req, thread, a) { var data, filesCount, post, postData, posts, postsCount, postsRoot, root, _i, _len, _ref; - if ((_ref = req.status) !== 200 && _ref !== 304) { a.textContent = "Error " + req.statusText + " (" + req.status + ")"; return; @@ -10861,7 +10466,6 @@ }, createFunc: function(format) { var code; - code = format.replace(/%(.)/g, function(s, c) { if (c in FileInfo.formatters) { return "' + FileInfo.formatters." + c + ".call(post) + '"; @@ -10873,7 +10477,6 @@ }, convertUnit: function(size, unit) { var i; - if (unit === 'B') { return "" + (size.toFixed()) + " Bytes"; } @@ -10904,7 +10507,6 @@ }, n: function() { var fullname, shortname; - fullname = this.file.name; shortname = Build.shortFilename(this.file.name, this.isReply); if (fullname === shortname) { @@ -10948,7 +10550,6 @@ Fourchan = { init: function() { var board; - if (g.VIEW === 'catalog') { return; } @@ -10970,7 +10571,6 @@ }, code: function() { var apply, pre, _i, _len, _ref; - if (this.isClone) { return; } @@ -11013,7 +10613,6 @@ }, node: function() { var rgb, span, style, uid; - if (this.isClone || !(uid = this.info.uniqueID)) { return; } @@ -11030,7 +10629,6 @@ }, compute: function(uid) { var hash, rgb; - if (IDColor.ids[uid]) { return IDColor.ids[uid]; } @@ -11041,7 +10639,6 @@ }, hash: function(uid) { var i, msg; - msg = 0; i = 0; while (i < 8) { @@ -11066,7 +10663,6 @@ }, scroll: $.debounce(100, function() { var url; - if (InfiniScroll.isFetching || ((d.body.scrollTop || doc.scrollTop) <= doc.scrollHeight - (300 + window.innerHeight))) { return; } @@ -11087,7 +10683,6 @@ }), parse: function(response) { var botPostForm, el, nodes, omitted_images, omitted_posts, op, post, postlink, posts, replylink, thread, threadID, threadNodes, threads, _i, _j, _len, _len1, _ref; - threads = InfiniScroll.parsePages(response); threadNodes = []; nodes = []; @@ -11146,7 +10741,6 @@ }, parsePages: function(response) { var newThreads, number, page, pages, thread, threads, _i, _len; - pages = JSON.parse(response); newThreads = []; for (number in pages) { @@ -11170,7 +10764,6 @@ }, features: function(threadNodes) { var err, errors, post, posts, thread, threadRoot, threads, _i, _j, _len, _len1, _ref; - posts = []; threads = []; for (_i = 0, _len = threadNodes.length; _i < _len; _i++) { @@ -11202,7 +10795,6 @@ }, notice: (function() { var notify, reset; - notify = false; reset = function() { return notify = false; @@ -11232,7 +10824,6 @@ Keybinds = { init: function() { var hotkey, init; - if (g.VIEW === 'catalog' || !Conf['Keybinds']) { return; } @@ -11241,7 +10832,6 @@ } init = function() { var node, _i, _len, _ref; - $.off(d, '4chanXInitFinished', init); $.on(d, 'keydown', Keybinds.keydown); _ref = $$('[accesskey]'); @@ -11257,7 +10847,6 @@ }, keydown: function(e) { var key, notification, notifications, op, target, thread, threadRoot, _i, _len, _ref; - if (!(key = Keybinds.keyCode(e))) { return; } @@ -11451,7 +11040,6 @@ }, keyCode: function(e) { var kc, key; - key = (function() { switch (kc = e.keyCode) { case 8: @@ -11507,7 +11095,6 @@ }, tags: function(tag, ta) { var range, selEnd, selStart, value; - value = ta.value; selStart = ta.selectionStart; selEnd = ta.selectionEnd; @@ -11518,13 +11105,11 @@ }, sage: function() { var isSage; - isSage = /sage/i.test(QR.nodes.email.value); return QR.nodes.email.value = isSage ? "" : "sage"; }, img: function(thread, all) { var post; - if (all) { return ImageExpand.cb.toggleAll(); } else { @@ -11534,7 +11119,6 @@ }, open: function(thread, tab) { var url; - if (g.VIEW !== 'index') { return; } @@ -11547,7 +11131,6 @@ }, hl: function(delta, thread) { var axis, height, next, postEl, replies, reply, root, _i, _len; - postEl = $('.reply.highlight', thread); if (!delta) { if (postEl) { @@ -11590,7 +11173,6 @@ Nav = { init: function() { var append, next, prev, span; - switch (g.VIEW) { case 'index': if (!Conf['Index Navigation']) { @@ -11641,7 +11223,6 @@ }, getThread: function() { var thread, threadRoot, _i, _len, _ref; - _ref = $$('.thread'); for (_i = 0, _len = _ref.length; _i < _len; _i++) { threadRoot = _ref[_i]; @@ -11657,7 +11238,6 @@ }, scroll: function(delta) { var axis, next, thread, top; - thread = Nav.getThread(); axis = delta === +1 ? 'following' : 'preceding'; if (next = $.x("" + axis + "-sibling::div[contains(@class,'thread') and not(@hidden)][1]", thread)) { @@ -11700,7 +11280,6 @@ }, node: function() { var dateEl; - if (this.isClone) { return; } @@ -11710,7 +11289,6 @@ }, relative: function(diff, now, date) { var days, months, number, rounded, unit, years; - unit = (number = diff / $.DAY) >= 1 ? (years = now.getYear() - date.getYear(), months = now.getMonth() - date.getMonth(), days = now.getDate() - date.getDate(), years > 1 ? (number = years - (months < 0 || months === 0 && days < 0), 'year') : years === 1 && (months > 0 || months === 0 && days >= 0) ? (number = years, 'year') : (months = (months + 12) % 12) > 1 ? (number = months - (days < 0), 'month') : months === 1 && days >= 0 ? (number = months, 'month') : 'day') : (number = diff / $.HOUR) >= 1 ? 'hour' : (number = diff / $.MINUTE) >= 1 ? 'minute' : (number = Math.max(0, diff) / $.SECOND, 'second'); rounded = Math.round(number); if (rounded !== 1) { @@ -11721,7 +11299,6 @@ stale: [], flush: function() { var data, now, _i, _len, _ref; - if (d.hidden) { return; } @@ -11737,7 +11314,6 @@ }, update: function(data, now) { var date, diff, isPost, relative, singlePost, _i, _len, _ref; - isPost = data instanceof Post; date = isPost ? data.info.date : new Date(+data.dataset.utc); now || (now = new Date()); @@ -11756,7 +11332,6 @@ }, setOwnTimeout: function(diff, data) { var delay; - delay = diff < $.MINUTE ? $.SECOND - (diff + $.SECOND / 2) % $.SECOND : diff < $.HOUR ? $.MINUTE - (diff + $.MINUTE / 2) % $.MINUTE : diff < $.DAY ? $.HOUR - (diff + $.HOUR / 2) % $.HOUR : $.DAY - (diff + $.DAY / 2) % $.DAY; return setTimeout(RelativeDates.markStale, delay, data); }, @@ -11794,7 +11369,6 @@ }, node: function(post) { var spoiler, spoilers, _i, _len; - spoilers = $$('s', this.nodes.comment); for (_i = 0, _len = spoilers.length; _i < _len; _i++) { spoiler = spoilers[_i]; @@ -11814,7 +11388,6 @@ }, ready: function() { var field; - field = $.id('recaptcha_response_field'); $.on(field, 'keydown', function(e) { if (e.keyCode === 8 && !field.value) { @@ -11823,7 +11396,6 @@ }); return $.on($('form'), 'submit', function(e) { var response; - e.preventDefault(); response = field.value.trim(); if (!/\s/.test(response)) { @@ -11853,7 +11425,6 @@ }, createFunc: function(format) { var code; - code = format.replace(/%([A-Za-z])/g, function(s, c) { if (c in Time.formatters) { return "' + Time.formatters." + c + ".call(date) + '"; @@ -11938,7 +11509,6 @@ Settings = { init: function() { var link, settings; - link = $.el('a', { className: 'settings-link fa fa-wrench', textContent: 'Settings', @@ -11948,7 +11518,6 @@ Header.addShortcut(link); $.get('previousversion', null, function(item) { var changelog, el, previous; - if (previous = item['previousversion']) { if (previous === g.VERSION) { return; @@ -11983,7 +11552,6 @@ }, open: function(openSection) { var dialog, html, link, links, overlay, section, sectionToOpen, _i, _len, _ref; - $.off(d, '4chanXInitFinished', Settings.open); if (Settings.dialog) { return; @@ -12036,7 +11604,6 @@ sections: [], addSection: function(title, open) { var hyphenatedTitle, _ref; - if (typeof title !== 'string') { _ref = title.detail, title = _ref.title, open = _ref.open; } @@ -12049,7 +11616,6 @@ }, openSection: function() { var section, selected; - if (selected = $('.tab-selected', Settings.dialog)) { $.rmClass(selected, 'tab-selected'); } @@ -12063,7 +11629,6 @@ }, main: function(section) { var arr, button, description, div, fs, hiddenNum, input, inputs, items, key, obj, _ref; - items = {}; inputs = {}; _ref = Config.main; @@ -12088,7 +11653,6 @@ } $.get(items, function(items) { var val; - for (key in items) { val = items[key]; inputs[key].checked = val; @@ -12103,7 +11667,6 @@ boards: {} }, function(item) { var ID, board, thread, _ref1; - _ref1 = item.hiddenThreads.boards; for (ID in _ref1) { board = _ref1[ID]; @@ -12118,7 +11681,6 @@ boards: {} }, function(item) { var ID, board, post, thread, _ref1; - _ref1 = item.hiddenPosts.boards; for (ID in _ref1) { board = _ref1[ID]; @@ -12138,7 +11700,6 @@ boards: {} }, function(item) { var boardID; - for (boardID in item.hiddenThreads.boards) { localStorage.removeItem("4chan-hide-t-" + boardID); } @@ -12149,7 +11710,6 @@ }, "export": function(now, data) { var a, db, p, _i, _len, _ref; - if (typeof now !== 'number') { now = Date.now(); data = { @@ -12186,7 +11746,6 @@ }, onImport: function() { var file, output, reader; - if (!(file = this.files[0])) { return; } @@ -12198,7 +11757,6 @@ reader = new FileReader(); reader.onload = function(e) { var data, err; - try { data = JSON.parse(e.target.result); Settings.loadSettings(data); @@ -12215,7 +11773,6 @@ }, loadSettings: function(data) { var key, val, version, _ref; - version = data.version.split('.'); if (version[0] === '2') { data = Settings.convertSettings(data, { @@ -12303,7 +11860,6 @@ }, convertSettings: function(data, map) { var newKey, prevKey; - for (prevKey in map) { newKey = map[prevKey]; if (newKey) { @@ -12315,7 +11871,6 @@ }, filter: function(section) { var select; - section.innerHTML = "
"; select = $('select', section); $.on(select, 'change', Settings.selectFilter); @@ -12323,7 +11878,6 @@ }, selectFilter: function() { var div, name, ta; - div = this.nextElementSibling; if ((name = this.value) !== 'guide') { $.rmAll(div); @@ -12343,7 +11897,6 @@ }, sauce: function(section) { var ta; - section.innerHTML = "
Sauce is disabled.
Lines starting with a # will be ignored.
You can specify a display text by appending ;text:[text] to the URL.
"; ta = $('textarea', section); $.get('sauces', Conf['sauces'], function(item) { @@ -12353,7 +11906,6 @@ }, advanced: function(section) { var archive, boardID, boardOptions, boardSelect, boards, data, event, input, inputs, item, items, name, row, rows, ta, table, _i, _j, _k, _l, _len, _len1, _len2, _len3, _ref, _ref1, _ref2, _ref3, _ref4; - section.innerHTML = "
Archiver
404 Redirect is disabled.
Thread redirectionPost fetchingFile redirection
Disabled selections indicate that only one archive is available for that board and redirection type.
Custom Board Navigation
New lines will be converted into spaces.

In the following examples for /g/, g can be changed to a different board ID (a, b, etc...), the current board (current), or the Twitter link (@).
Board link: g
Title link: g-title
Board link (Replace with title when on that board): g-replace
Full text link: g-full
Custom text link: g-text:\"Install Gentoo\"
Index-only link: g-index
Catalog-only link: g-catalog
External link: external-text:\"Google\",\"http://www.google.com\"
Combinations are possible: g-index-text:\"Technology Index\"
Full board list toggle: toggle-all

[ toggle-all ] [current-title] [g-title / a-title / jp-title] [x / wsg / h] [t-text:\"Piracy\"]
will give you
[ + ] [Technology] [Technology / Anime & Manga / Otaku Culture] [x / wsg / h] [Piracy]
if you are on /g/.
Time Formatting is disabled.
:
Supported format specifiers:
Day: %a, %A, %d, %e
Month: %m, %b, %B
Year: %y, %Y
Hour: %k, %H, %l, %I, %p, %P
Minute: %M
Second: %S
Quote Backlinks formatting is disabled.
:
File Info Formatting is disabled.
:
Link: %l (truncated), %L (untruncated), %T (Unix timestamp)
Original file name: %n (truncated), %N (untruncated), %t (Unix timestamp)
Spoiler indicator: %p
Size: %B (Bytes), %K (KB), %M (MB), %s (4chan default)
Resolution: %r (Displays 'PDF' for PDF files)
Quick Reply Personas is disabled.

One item per line.
Items will be added in the relevant input's auto-completion list.
Password items will always be used, since there is no password input.
Lines starting with a # will be ignored.

    You can use these settings with each item, separate them with semicolons:
  • Possible items are: name, email, subject and password.
  • Wrap values of items with quotes, like this: email:\"sage\".
  • Force values as defaults with the always keyword, for example: email:\"sage\";always.
  • Select specific boards for an item, separated with commas, for example: email:\"sage\";boards:jp;always.
Unread Favicon is disabled.
Emoji is disabled.
Sage Icon:
Position:
Thread Updater is disabled.
Interval:
"; items = {}; inputs = {}; @@ -12373,7 +11925,6 @@ $.on(ta, 'change', $.cb.value); $.get(items, function(items) { var key, val; - for (key in items) { val = items[key]; if (key === 'emojiPos') { @@ -12444,7 +11995,6 @@ }); $.get('selectedArchives', Conf['selectedArchives'], function(_arg) { var option, selectedArchives, type; - selectedArchives = _arg.selectedArchives; for (boardID in selectedArchives) { data = selectedArchives[boardID]; @@ -12459,7 +12009,6 @@ }, addArchiveCell: function(boardID, data, type) { var archive, i, length, options, select, td; - length = data[type].length; td = $.el('td', { className: 'archive-cell' @@ -12489,10 +12038,8 @@ }, saveSelectedArchive: function() { var _this = this; - return $.get('selectedArchives', Conf['selectedArchives'], function(_arg) { var selectedArchives, _name; - selectedArchives = _arg.selectedArchives; (selectedArchives[_name = _this.dataset.boardid] || (selectedArchives[_name] = {}))[_this.dataset.type] = _this.value; return $.set('selectedArchives', selectedArchives); @@ -12503,7 +12050,6 @@ }, time: function() { var funk; - funk = Time.createFunc(this.value); return this.nextElementSibling.textContent = funk(Time, new Date()); }, @@ -12512,7 +12058,6 @@ }, fileInfo: function() { var data, funk; - data = { isReply: true, file: { @@ -12551,7 +12096,6 @@ }, keybinds: function(section) { var arr, input, inputs, items, key, tbody, tr, _ref; - section.innerHTML = "
Keybinds are disabled.
Allowed keys: a-z, 0-9, Ctrl, Shift, Alt, Meta, Enter, Esc, Up, Down, Right, Left.
Press Backspace to disable a keybind.
ActionsKeybinds
"; tbody = $('tbody', section); items = {}; @@ -12572,7 +12116,6 @@ } return $.get(items, function(items) { var val; - for (key in items) { val = items[key]; inputs[key].value = val; @@ -12581,7 +12124,6 @@ }, keybind: function(e) { var key; - if (e.keyCode === 9) { return; } @@ -12598,10 +12140,8 @@ Main = { init: function() { var db, flatten, _i, _len, _ref; - flatten = function(parent, obj) { var key, val; - if (obj instanceof Array) { Conf[parent] = obj[0]; } else if (typeof obj === 'object') { @@ -12634,7 +12174,6 @@ }, initFeatures: function() { var init, pathname, _ref; - pathname = location.pathname.split('/'); g.BOARD = new Board(pathname[1]); if ((_ref = g.BOARD.ID) === 'z' || _ref === 'fk') { @@ -12662,7 +12201,6 @@ case 'i.4cdn.org': $.ready(function() { var URL, _ref1; - if (Conf['404 Redirect'] && ((_ref1 = d.title) === '4chan - Temporarily Offline' || _ref1 === '4chan - 404 Not Found')) { Redirect.init(); pathname = location.pathname.split('/'); @@ -12679,7 +12217,6 @@ } init = function(features) { var err, module, name; - for (name in features) { module = features[name]; try { @@ -12760,7 +12297,6 @@ }, initStyle: function() { var mainStyleSheet, setStyle, style, styleSheets, _ref; - $.off(d, '4chanMainInit', Main.initStyle); if (!Main.isThisPageLegit() || $.hasClass(doc, 'fourchan-x')) { return; @@ -12782,7 +12318,6 @@ styleSheets = $$('link[rel="alternate stylesheet"]', d.head); setStyle = function() { var styleSheet, _i, _len; - $.rmClass(doc, style); for (_i = 0, _len = styleSheets.length; _i < _len; _i++) { styleSheet = styleSheets[_i]; @@ -12804,7 +12339,6 @@ }, initReady: function() { var GMver, err, errors, href, i, passLink, post, postRoot, posts, styleSelector, thread, threadRoot, v, _i, _j, _len, _len1, _ref, _ref1, _ref2; - if ((_ref = d.title) === '4chan - Temporarily Offline' || _ref === '4chan - 404 Not Found') { if (Conf['404 Redirect'] && g.VIEW === 'thread') { href = Redirect.to('thread', { @@ -12880,7 +12414,6 @@ }, callbackNodes: function(klass, nodes) { var callback, err, errors, i, len, node, _i, _len, _ref; - len = nodes.length; _ref = klass.callbacks; for (_i = 0, _len = _ref.length; _i < _len; _i++) { @@ -12908,12 +12441,10 @@ }, callbackNodesDB: function(klass, nodes, cb) { var errors, func, i, len, node, queue, softTask; - queue = []; errors = null; func = function(node) { var callback, err, _i, _len, _ref; - _ref = klass.callbacks; for (_i = 0, _len = _ref.length; _i < _len; _i++) { callback = _ref[_i]; @@ -12941,7 +12472,6 @@ }; softTask = function() { var node; - node = queue.shift(); func(node); if (!queue.length) { @@ -12963,7 +12493,6 @@ }, addCallback: function(e) { var Klass, obj; - obj = e.detail; if (typeof obj.callback.name !== 'string') { throw new Error("Invalid callback name: " + obj.callback.name); @@ -12983,7 +12512,6 @@ }, handleErrors: function(errors) { var div, error, logs, _i, _len; - if (!(errors instanceof Array)) { error = errors; } else if (errors.length === 1) { @@ -12998,7 +12526,6 @@ }); $.on(div.lastElementChild, 'click', function() { var _ref; - return _ref = this.textContent === 'show' ? ['hide', false] : ['show', true], this.textContent = _ref[0], logs.hidden = _ref[1], _ref; }); logs = $.el('div', { @@ -13012,7 +12539,6 @@ }, parseError: function(data) { var error, message; - c.error(data.message, data.error.stack); message = $.el('div', { textContent: data.message @@ -13024,7 +12550,6 @@ }, isThisPageLegit: function() { var _ref; - if (!('thisPageIsLegit' in Main)) { Main.thisPageIsLegit = location.hostname === 'boards.4chan.org' && !$('link[href*="favicon-status.ico"]', d.head) && ((_ref = d.title) !== '4chan - Temporarily Offline' && _ref !== '4chan - Error' && _ref !== '504 Gateway Time-out'); } diff --git a/builds/crx/script.js b/builds/crx/script.js index e954eb0ae..da3ea5048 100644 --- a/builds/crx/script.js +++ b/builds/crx/script.js @@ -91,7 +91,6 @@ Array.prototype.indexOf = function(val) { var i; - i = this.length; while (i--) { if (this[i] === val) { @@ -353,7 +352,6 @@ $.extend = function(obj, prop) { var key, val; - for (key in prop) { val = prop[key]; if (prop.hasOwnProperty(key)) { @@ -370,7 +368,6 @@ $.ready = function(fc) { var cb; - if (d.readyState !== 'loading') { $.queueTask(fc); return; @@ -384,7 +381,6 @@ $.formData = function(form) { var fd, key, val; - if (form instanceof HTMLFormElement) { return new FormData(form); } @@ -404,7 +400,6 @@ $.extend = function(object, properties) { var key, val; - for (key in properties) { val = properties[key]; object[key] = val; @@ -413,11 +408,9 @@ $.ajax = (function() { var lastModified; - lastModified = {}; return function(url, options, extra) { var form, r, sync, type, upCallbacks, whenModified; - if (extra == null) { extra = {}; } @@ -442,11 +435,9 @@ $.cache = (function() { var reqs; - reqs = {}; return function(url, cb, options) { var err, req, rm; - if (req = reqs[url]) { if (req.readyState === 4) { cb.call(req, req.evt); @@ -466,7 +457,6 @@ } $.on(req, 'load', function(e) { var _i, _len, _ref; - _ref = this.callbacks; for (_i = 0, _len = _ref.length; _i < _len; _i++) { cb = _ref[_i]; @@ -502,7 +492,6 @@ $.addStyle = function(css, id) { var style; - style = $.el('style', { id: id, textContent: css @@ -549,7 +538,6 @@ } else { return function(el) { var _ref; - return (_ref = el.parentNode) != null ? _ref.removeChild(el) : void 0; }; } @@ -557,7 +545,6 @@ $.rmAll = function(root) { var node, _i, _len, _ref; - _ref = __slice.call(root.childNodes); for (_i = 0, _len = _ref.length; _i < _len; _i++) { node = _ref[_i]; @@ -575,7 +562,6 @@ $.nodes = function(nodes) { var frag, node, _i, _len; - if (!(nodes instanceof Array)) { return nodes; } @@ -609,7 +595,6 @@ $.el = function(tag, properties) { var el; - el = d.createElement(tag); if (properties) { $.extend(el, properties); @@ -619,7 +604,6 @@ $.on = function(el, events, handler) { var event, _i, _len, _ref; - _ref = events.split(' '); for (_i = 0, _len = _ref.length; _i < _len; _i++) { event = _ref[_i]; @@ -629,7 +613,6 @@ $.off = function(el, events, handler) { var event, _i, _len, _ref; - _ref = events.split(' '); for (_i = 0, _len = _ref.length; _i < _len; _i++) { event = _ref[_i]; @@ -653,7 +636,6 @@ $.debounce = function(wait, fn) { var args, exec, lastCall, that, timeout; - lastCall = 0; timeout = null; that = null; @@ -675,11 +657,9 @@ $.queueTask = (function() { var execTask, taskChannel, taskQueue; - taskQueue = []; execTask = function() { var args, func, task; - task = taskQueue.shift(); func = task[0]; args = Array.prototype.slice.call(task, 1); @@ -702,7 +682,6 @@ $.globalEval = function(code) { var script; - script = $.el('script', { textContent: code }); @@ -712,7 +691,6 @@ $.bytesToString = function(size) { var unit; - unit = 0; while (size >= 1024) { size /= 1024; @@ -728,7 +706,6 @@ $.item = function(key, val) { var item; - item = {}; item[key] = val; return item; @@ -739,7 +716,6 @@ $.sync = (function() { chrome.storage.onChanged.addListener(function(changes) { var cb, key; - for (key in changes) { if (cb = $.syncing[key]) { cb(changes[key].newValue, key); @@ -759,7 +735,6 @@ $.get = function(key, val, cb) { var count, done, items, localItems, syncItems; - if (typeof cb === 'function') { items = $.item(key, val); } else { @@ -798,7 +773,6 @@ $.set = (function() { var items, setAll, setArea, timeout; - items = { sync: {}, local: {} @@ -820,7 +794,6 @@ }; setAll = $.debounce($.SECOND, function() { var err, key, _i, _len, _ref; - _ref = $.localKeys; for (_i = 0, _len = _ref.length; _i < _len; _i++) { key = _ref[_i]; @@ -891,7 +864,6 @@ Thread.prototype.setPage = function(pageNum) { var icon, key, _i, _len, _ref; - icon = $('.page-num', this.OP.nodes.post); _ref = ['title', 'textContent']; for (_i = 0, _len = _ref.length; _i < _len; _i++) { @@ -902,7 +874,6 @@ Thread.prototype.setStatus = function(type, status) { var icon, name, root, typeLC; - name = "is" + type; if (this[name] === status) { return; @@ -933,7 +904,6 @@ Thread.prototype.collect = function() { var post, postID, _i, _len, _ref; - _ref = this.posts; for (post = _i = 0, _len = _ref.length; _i < _len; post = ++_i) { postID = _ref[post]; @@ -956,7 +926,6 @@ function Post(root, thread, board, that) { var capcode, date, email, flag, info, name, post, subject, tripcode, uniqueID; - this.thread = thread; this.board = board; if (that == null) { @@ -1035,7 +1004,6 @@ Post.prototype.parseComment = function() { var bq, i, node, nodes, text; - this.nodes.comment.normalize(); bq = this.nodes.comment.cloneNode(true); nodes = $$('.abbr, .exif, b', bq); @@ -1054,7 +1022,6 @@ Post.prototype.parseQuotes = function() { var quotelink, _i, _len, _ref; - this.quotes = []; _ref = $$('.quotelink', this.nodes.comment); for (_i = 0, _len = _ref.length; _i < _len; _i++) { @@ -1065,7 +1032,6 @@ Post.prototype.parseQuote = function(quotelink) { var fullID, match; - if (!(match = quotelink.href.match(/boards\.4chan\.org\/([^\/]+)\/res\/\d+#p(\d+)$/))) { return; } @@ -1081,7 +1047,6 @@ Post.prototype.parseFile = function(that) { var anchor, fileEl, fileText, nameNode, size, thumb, unit; - if (!((fileEl = $('.file', this.nodes.post)) && (thumb = $('img[data-md5]', fileEl)))) { return; } @@ -1111,7 +1076,6 @@ Post.prototype.cleanup = function(root) { var node, _i, _j, _len, _len1, _ref, _ref1; - _ref = $$('.mobile', root); for (_i = 0, _len = _ref.length; _i < _len; _i++) { node = _ref[_i]; @@ -1126,7 +1090,6 @@ Post.prototype.kill = function(file, now) { var clone, quotelink, strong, _i, _j, _len, _len1, _ref, _ref1; - now || (now = new Date()); if (file) { if (this.file.isDead) { @@ -1175,7 +1138,6 @@ Post.prototype.resurrect = function() { var clone, quotelink, strong, _i, _j, _len, _len1, _ref, _ref1; - delete this.isDead; delete this.timeOfDeath; $.rmClass(this.nodes.root, 'deleted-post'); @@ -1216,7 +1178,6 @@ Post.prototype.rmClone = function(index) { var clone, _i, _len, _ref; - this.clones.splice(index, 1); _ref = this.clones.slice(index); for (_i = 0, _len = _ref.length; _i < _len; _i++) { @@ -1234,7 +1195,6 @@ function Clone(origin, context) { var file, info, inline, inlined, key, nodes, post, root, val, _i, _j, _k, _len, _len1, _len2, _ref, _ref1, _ref2, _ref3; - this.origin = origin; this.context = context; _ref = ['ID', 'fullID', 'board', 'thread', 'info', 'quotes', 'isReply']; @@ -1321,7 +1281,6 @@ function DataBoard(key, sync, dontClean) { var init, _this = this; - this.key = key; this.onSync = __bind(this.onSync, this); this.data = Conf[key]; @@ -1345,7 +1304,6 @@ DataBoard.prototype["delete"] = function(_arg) { var boardID, postID, threadID; - boardID = _arg.boardID, threadID = _arg.threadID, postID = _arg.postID; if (postID) { delete this.data.boards[boardID][threadID][postID]; @@ -1366,7 +1324,6 @@ DataBoard.prototype.deleteIfEmpty = function(_arg) { var boardID, threadID; - boardID = _arg.boardID, threadID = _arg.threadID; if (threadID) { if (!Object.keys(this.data.boards[boardID][threadID]).length) { @@ -1382,7 +1339,6 @@ DataBoard.prototype.set = function(_arg) { var boardID, postID, threadID, val, _base, _base1, _base2; - boardID = _arg.boardID, threadID = _arg.threadID, postID = _arg.postID, val = _arg.val; if (postID !== void 0) { ((_base = ((_base1 = this.data.boards)[boardID] || (_base1[boardID] = {})))[threadID] || (_base[threadID] = {}))[postID] = val; @@ -1396,7 +1352,6 @@ DataBoard.prototype.get = function(_arg) { var ID, board, boardID, defaultValue, postID, thread, threadID, val, _i, _len; - boardID = _arg.boardID, threadID = _arg.threadID, postID = _arg.postID, defaultValue = _arg.defaultValue; if (board = this.data.boards[boardID]) { if (!threadID) { @@ -1420,7 +1375,6 @@ DataBoard.prototype.clean = function() { var boardID, now, val, _ref; - _ref = this.data.boards; for (boardID in _ref) { val = _ref[boardID]; @@ -1440,10 +1394,8 @@ DataBoard.prototype.ajaxClean = function(boardID) { var _this = this; - return $.cache("//a.4cdn.org/" + boardID + "/threads.json", function(e) { var board, page, thread, threads, _i, _j, _len, _len1, _ref, _ref1; - if (e.target.status !== 200) { if (e.target.status === 404) { _this["delete"](boardID); @@ -1552,10 +1504,8 @@ }, toBlob: function() { var _base; - return (_base = HTMLCanvasElement.prototype).toBlob || (_base.toBlob = function(cb) { var data, i, l, ui8a, _i; - data = atob(this.toDataURL().slice(22)); l = data.length; ui8a = new Uint8Array(l); @@ -1593,7 +1543,6 @@ init: function() { var barFixedToggler, barPositionToggler, customNavToggler, editCustomNav, footerToggler, headerToggler, linkJustifyToggler, menuButton, scrollHeaderToggler, shortcutToggler, _this = this; - this.menu = new UI.Menu('header'); menuButton = $.el('span', { className: 'menu-button', @@ -1704,7 +1653,6 @@ }); $.ready(function() { var a, cs; - _this.footer = $.id('boardNavDesktopFoot'); if (a = $("a[href*='/" + g.BOARD + "/']", $.id('boardNavDesktopFoot'))) { a.className = 'current'; @@ -1739,7 +1687,6 @@ }), setBoardList: function() { var a, boardList, btn, fourchannav, fullBoardList; - fourchannav = $.id('boardNavDesktop'); if (a = $("a[href*='/" + g.BOARD + "/']", fourchannav)) { a.className = 'current'; @@ -1761,7 +1708,6 @@ }, generateBoardList: function(text) { var as, list, nodes; - list = $('#custom-board-list', Header.bar); $.rmAll(list); if (!text) { @@ -1770,7 +1716,6 @@ as = $$('#full-board-list a[title]', Header.bar); nodes = text.match(/[\w@]+((-(all|title|replace|full|index|catalog|url:"[^"]+[^"]"|text:"[^"]+")|\,"[^"]+[^"]"))*|[^\w@]+/g).map(function(t) { var a, board, m, _i, _len; - if (/^[^\w@]/.test(t)) { return $.tn(t); } @@ -1821,7 +1766,6 @@ }, toggleBoardList: function() { var bar, custom, full, showBoardList; - bar = Header.bar; custom = $('#custom-board-list', bar); full = $('#full-board-list', bar); @@ -1839,7 +1783,6 @@ }, toggleLinkJustify: function() { var centered; - $.event('CloseMenu'); centered = this.nodeName === 'INPUT' ? this.checked : void 0; Header.setLinkJustify(centered); @@ -1883,7 +1826,6 @@ }, toggleBarVisibility: function() { var hide, message; - hide = this.nodeName === 'INPUT' ? this.checked : !$.hasClass(Header.bar, 'autohide'); this.checked = hide; $.set('Header auto-hide', Conf['Header auto-hide'] = hide); @@ -1905,14 +1847,12 @@ }, toggleHideBarOnScroll: function(e) { var hide; - hide = this.checked; $.set('Header auto-hide on scroll', hide); return Header.setHideBarOnScroll(hide); }, hideBarOnScroll: function() { var offsetY; - offsetY = window.pageYOffset; if (offsetY > (Header.previousOffset || 0)) { $.addClass(Header.bar, 'autohide'); @@ -1925,7 +1865,6 @@ }, setBarPosition: function(bottom) { var args; - Header.barPositionToggler.checked = bottom; $.event('CloseMenu'); args = bottom ? ['bottom-header', 'top-header', 'bottom', 'after'] : ['top-header', 'bottom-header', 'top', 'add']; @@ -1944,7 +1883,6 @@ }, toggleFooterVisibility: function() { var hide, message; - $.event('CloseMenu'); hide = this.nodeName === 'INPUT' ? this.checked : !!Header.footer.hidden; Header.setFooterVisibility(hide); @@ -1954,7 +1892,6 @@ }, setCustomNav: function(show) { var btn, cust, full, _ref; - Header.customNavToggler.checked = show; cust = $('#custom-board-list', Header.bar); full = $('#full-board-list', Header.bar); @@ -1967,14 +1904,12 @@ }, editCustomNav: function() { var settings; - Settings.open('Advanced'); settings = $.id('fourchanx-settings'); return $('input[name=boardnav]', settings).focus(); }, hashScroll: function() { var hash, post; - hash = this.location.hash.slice(1); if (!(/^p\d+$/.test(hash) && (post = $.id(hash)))) { return; @@ -1986,7 +1921,6 @@ }, scrollTo: function(root, down, needed) { var x; - if (down) { x = Header.getBottomOf(root); if (!(needed && x >= 0)) { @@ -2004,7 +1938,6 @@ }, getTopOf: function(root) { var headRect, top; - top = root.getBoundingClientRect().top; if (Conf['Fixed Header'] && !Conf['Bottom Header']) { headRect = Header.toggle.getBoundingClientRect(); @@ -2014,7 +1947,6 @@ }, getBottomOf: function(root) { var bottom, clientHeight, headRect; - clientHeight = doc.clientHeight; bottom = clientHeight - root.getBoundingClientRect().bottom; if (Conf['Bottom Header']) { @@ -2025,7 +1957,6 @@ }, addShortcut: function(el) { var shortcut; - shortcut = $.el('span', { className: 'shortcut brackets-wrap' }); @@ -2037,7 +1968,6 @@ }, createNotification: function(e) { var cb, content, lifetime, notice, type, _ref; - _ref = e.detail, type = _ref.type, content = _ref.content, lifetime = _ref.lifetime, cb = _ref.cb; notice = new Notice(type, content, lifetime); if (cb) { @@ -2047,7 +1977,6 @@ areNotificationsEnabled: false, enableDesktopNotifications: function() { var authorize, disable, el, notice, _ref; - if (!(window.Notification && Conf['Desktop Notifications'])) { return; } @@ -2082,7 +2011,6 @@ Index = { init: function() { var anchorEntry, input, label, modeEntry, name, refNavEntry, repliesEntry, sortEntry, _i, _j, _k, _len, _len1, _len2, _ref, _ref1, _ref2; - if (g.VIEW !== 'index' || g.BOARD.ID === 'f') { return; } @@ -2218,7 +2146,6 @@ return $('.board', doc) || d.readyState !== 'loading'; }), function() { var board, navLink, _l, _len3, _ref3; - board = $('.board'); $.replace(board, Index.root); d.implementation.createDocument(null, null, null).appendChild(board); @@ -2252,7 +2179,6 @@ }, popstate: function(e) { var pageNum; - pageNum = Index.getCurrentPage(); if (Index.currentPage !== pageNum) { return Index.pageLoad(pageNum); @@ -2260,7 +2186,6 @@ }, pageNav: function(e) { var a; - if (e.shiftKey || e.altKey || e.ctrlKey || e.metaKey || e.button !== 0) { return; } @@ -2325,7 +2250,6 @@ }, buildPagelist: function() { var a, i, maxPageNum, nodes, pagesRoot, _i; - pagesRoot = $('.pages', Index.pagelist); maxPageNum = Index.getMaxPageNum(); if (pagesRoot.childElementCount !== maxPageNum + 1) { @@ -2344,7 +2268,6 @@ }, setPage: function() { var a, href, maxPageNum, next, pageNum, pagesRoot, prev, strong; - pageNum = Index.getCurrentPage(); maxPageNum = Index.getMaxPageNum(); pagesRoot = $('.pages', Index.pagelist); @@ -2370,7 +2293,6 @@ }, update: function(pageNum) { var now, onload, _ref, _ref1; - if (!navigator.onLine) { return; } @@ -2409,7 +2331,6 @@ }, load: function(e, pageNum) { var err, notice, req, timeEl; - $.rmClass(Index.button, 'fa-spin'); req = Index.req, notice = Index.notice; delete Index.req; @@ -2461,7 +2382,6 @@ }, parseThreadList: function(pages) { var thread, threadID, _ref, _ref1; - Index.pagesNum = pages.length; Index.threadsNumPerPage = pages[0].threads.length; Index.liveThreadData = pages.reduce((function(arr, next) { @@ -2480,7 +2400,6 @@ }, buildThreads: function() { var err, errors, i, posts, thread, threadData, threadRoot, threads, _i, _len, _ref; - Index.nodes = []; threads = []; posts = []; @@ -2523,7 +2442,6 @@ }, buildReplies: function(threadRoots) { var data, err, errors, i, lastReplies, node, nodes, post, posts, thread, threadRoot, _i, _j, _len, _len1; - posts = []; for (_i = 0, _len = threadRoots.length; _i < _len; _i += 2) { threadRoot = threadRoots[_i]; @@ -2562,7 +2480,6 @@ }, sort: function() { var i, sortedThreadIDs, threadID, _i, _len; - switch (Conf['Index Sort']) { case 'bump': sortedThreadIDs = Index.liveThreadIDs; @@ -2624,7 +2541,6 @@ }, sortOnTop: function(match) { var i, offset, threadRoot, _i, _len, _ref, _ref1; - offset = 0; _ref = Index.sortedNodes; for (i = _i = 0, _len = _ref.length; _i < _len; i = _i += 2) { @@ -2636,7 +2552,6 @@ }, buildIndex: function() { var nodes, nodesPerPage, pageNum; - if (Conf['Index Mode'] === 'paged') { pageNum = Index.getCurrentPage(); nodesPerPage = Index.threadsNumPerPage * 2; @@ -2659,7 +2574,6 @@ }, onSearchInput: function() { var pageNum; - if (Index.isSearching = !!Index.searchInput.value.trim()) { if (!Index.searchInput.dataset.searching) { Index.searchInput.dataset.searching = 1; @@ -2687,7 +2601,6 @@ }, querySearch: function(query) { var keywords; - if (!(keywords = query.toLowerCase().match(/\S+/g))) { return; } @@ -2695,7 +2608,6 @@ }, search: function(keywords) { var found, i, threadRoot, _i, _len, _ref; - found = []; _ref = Index.sortedNodes; for (i = _i = 0, _len = _ref.length; _i < _len; i = _i += 2) { @@ -2708,7 +2620,6 @@ }, searchMatch: function(thread, keywords) { var file, info, key, keyword, text, _i, _j, _len, _len1, _ref, _ref1; - _ref = thread.OP, info = _ref.info, file = _ref.file; text = []; _ref1 = ['comment', 'subject', 'name', 'tripcode', 'email']; @@ -2738,7 +2649,6 @@ spoilerRange: {}, shortFilename: function(filename, isReply) { var threshold; - threshold = isReply ? 30 : 40; if (filename.length - 4 > threshold) { return "" + filename.slice(0, threshold - 5) + "(...)." + filename.slice(-3); @@ -2748,7 +2658,6 @@ }, thumbRotate: (function() { var n; - n = 0; return function() { return n = (n + 1) % 3; @@ -2756,7 +2665,6 @@ })(), postFromObject: function(data, boardID) { var o; - o = { postID: data.no, threadID: data.resto || data.no, @@ -2800,7 +2708,6 @@ */ var a, boardID, capcode, capcodeClass, capcodeIcon, capcodeStart, closed, comment, container, date, dateUTC, email, emailEnd, emailStart, file, fileDims, fileHTML, fileInfo, fileSize, fileThumb, filename, flag, flagCode, flagName, gifIcon, href, imgSrc, isClosed, isOP, isSticky, name, pageIcon, pageNum, postID, quote, replyLink, shortFilename, spoilerRange, staticPath, sticky, subject, threadID, tripcode, uniqueID, userID, _i, _len, _ref; - postID = o.postID, threadID = o.threadID, boardID = o.boardID, name = o.name, capcode = o.capcode, tripcode = o.tripcode, uniqueID = o.uniqueID, email = o.email, subject = o.subject, flagCode = o.flagCode, flagName = o.flagName, date = o.date, dateUTC = o.dateUTC, isSticky = o.isSticky, isClosed = o.isClosed, comment = o.comment, file = o.file; isOP = postID === threadID; staticPath = Build.staticPath, gifIcon = Build.gifIcon; @@ -2894,7 +2801,6 @@ }, summary: function(boardID, threadID, posts, files) { var text; - text = []; text.push("" + posts + " post" + (posts > 1 ? 's' : '')); if (files) { @@ -2909,7 +2815,6 @@ }, thread: function(board, data) { var OP, files, nodes, posts, root, _ref; - Build.spoilerRange[board] = data.custom_spoiler; if ((OP = board.posts[data.no]) && (root = OP.nodes.root.parentNode)) { $.rmAll(root); @@ -2936,7 +2841,6 @@ Get = { threadExcerpt: function(thread) { var OP, excerpt, _ref; - OP = thread.OP; excerpt = ((_ref = OP.info.subject) != null ? _ref.trim() : void 0) || OP.info.comment.replace(/\n+/g, ' // ') || Conf['Anonymize'] && 'Anonymous' || $('.nameBlock', OP.nodes.info).textContent.trim(); if (excerpt.length > 70) { @@ -2952,7 +2856,6 @@ }, postFromRoot: function(root) { var boardID, index, link, post, postID; - link = $('a[title="Highlight this post"]', root); boardID = link.pathname.split('/')[1]; postID = link.hash.slice(2); @@ -2972,7 +2875,6 @@ }, postDataFromLink: function(link) { var boardID, path, postID, threadID, _ref; - if (link.hostname === 'boards.4chan.org') { path = link.pathname.split('/'); boardID = path[1]; @@ -2990,7 +2892,6 @@ }, allQuotelinksLinkingTo: function(post) { var ID, quote, quotedPost, quotelinks, quoterPost, _i, _j, _k, _len, _len1, _len2, _ref, _ref1, _ref2, _ref3, _ref4; - quotelinks = []; _ref = g.posts; for (ID in _ref) { @@ -3019,14 +2920,12 @@ } return quotelinks.filter(function(quotelink) { var boardID, postID, _ref5; - _ref5 = Get.postDataFromLink(quotelink), boardID = _ref5.boardID, postID = _ref5.postID; return boardID === post.board.ID && postID === post.ID; }); }, postClone: function(boardID, threadID, postID, root, context) { var post, url; - if (post = g.posts["" + boardID + "." + postID]) { Get.insert(post, root, context); return; @@ -3049,7 +2948,6 @@ }, insert: function(post, root, context) { var clone, nodes; - if (!root.parentNode) { return; } @@ -3063,7 +2961,6 @@ }, fetchedPost: function(req, boardID, threadID, postID, root, context) { var board, post, posts, status, thread, url, _i, _len; - if (post = g.posts["" + boardID + "." + postID]) { Get.insert(post, root, context); return; @@ -3117,7 +3014,6 @@ }, archivedPost: function(req, boardID, postID, root, context) { var board, bq, comment, data, o, post, thread, threadID, _ref; - if (post = g.posts["" + boardID + "." + postID]) { Get.insert(post, root, context); return; @@ -3214,10 +3110,8 @@ UI = (function() { var Menu, dialog, drag, dragend, dragstart, hover, hoverend, hoverstart, touchend, touchmove; - dialog = function(id, position, html) { var child, el, move, _i, _len, _ref; - el = $.el('div', { className: 'dialog', innerHTML: html, @@ -3259,7 +3153,6 @@ Menu.prototype.makeMenu = function() { var menu; - menu = $.el('div', { className: 'dialog', id: 'menu', @@ -3274,7 +3167,6 @@ Menu.prototype.toggle = function(e, button, data) { var previousButton; - e.preventDefault(); e.stopPropagation(); if (currentMenu) { @@ -3292,7 +3184,6 @@ Menu.prototype.open = function(button, data) { var bLeft, bRect, bTop, bottom, cHeight, cWidth, entry, left, mRect, menu, right, style, top, _i, _len, _ref, _ref1, _ref2; - menu = this.makeMenu(); currentMenu = menu; lastToggledButton = button; @@ -3331,7 +3222,6 @@ Menu.prototype.insertEntry = function(entry, parent, data) { var subEntry, submenu, _i, _len, _ref; - if (typeof entry.open === 'function') { if (!entry.open(data)) { return; @@ -3365,7 +3255,6 @@ Menu.prototype.findNextEntry = function(entry, direction) { var entries; - entries = __slice.call(entry.parentNode.children); entries.sort(function(first, second) { return first.style.order - second.style.order; @@ -3375,7 +3264,6 @@ Menu.prototype.keybinds = function(e) { var entry, next, nextPrev, subEntry, submenu; - entry = $('.focused', currentMenu); while (subEntry = $('.focused', entry)) { entry = subEntry; @@ -3421,7 +3309,6 @@ Menu.prototype.focus = function(entry) { var bottom, cHeight, cWidth, eRect, focused, left, right, sRect, style, submenu, top, _i, _len, _ref, _ref1, _ref2; - while (focused = $.x('parent::*/child::*[contains(@class,"focused")]', entry)) { $.rmClass(focused, 'focused'); } @@ -3449,7 +3336,6 @@ Menu.prototype.addEntry = function(e) { var entry; - entry = e.detail; if (entry.type !== this.type) { return; @@ -3460,7 +3346,6 @@ Menu.prototype.parseEntry = function(entry) { var el, subEntries, subEntry, _i, _len; - el = entry.el, subEntries = entry.subEntries; $.addClass(el, 'entry'); $.on(el, 'focus mouseover', (function(e) { @@ -3483,7 +3368,6 @@ })(); dragstart = function(e) { var el, isTouching, o, rect, screenHeight, screenWidth, _ref; - if (e.type === 'mousedown' && e.button !== 0) { return; } @@ -3522,7 +3406,6 @@ }; touchmove = function(e) { var touch, _i, _len, _ref; - _ref = e.changedTouches; for (_i = 0, _len = _ref.length; _i < _len; _i++) { touch = _ref[_i]; @@ -3534,7 +3417,6 @@ }; drag = function(e) { var bottom, clientX, clientY, left, right, style, top; - clientX = e.clientX, clientY = e.clientY; left = clientX - this.dx; left = left < 10 ? 0 : this.width - left < 10 ? null : left / this.screenWidth * 100 + '%'; @@ -3550,7 +3432,6 @@ }; touchend = function(e) { var touch, _i, _len, _ref; - _ref = e.changedTouches; for (_i = 0, _len = _ref.length; _i < _len; _i++) { touch = _ref[_i]; @@ -3572,7 +3453,6 @@ }; hoverstart = function(_arg) { var asapTest, cb, el, endEvents, latestEvent, o, root; - root = _arg.root, el = _arg.el, latestEvent = _arg.latestEvent, endEvents = _arg.endEvents, asapTest = _arg.asapTest, cb = _arg.cb; o = { root: root, @@ -3601,7 +3481,6 @@ }; hover = function(e) { var clientX, clientY, height, left, right, style, top, _ref; - this.latestEvent = e; height = this.el.offsetHeight; clientX = e.clientX, clientY = e.clientY; @@ -3644,7 +3523,6 @@ }, node: function() { var email, name, tripcode, _ref; - if (this.info.capcode || this.isClone) { return; } @@ -3667,7 +3545,6 @@ filters: {}, init: function() { var boards, err, filter, hl, key, op, regexp, stub, top, _i, _len, _ref, _ref1, _ref2, _ref3, _ref4, _ref5; - if (g.VIEW === 'catalog' || !Conf['Filter']) { return; } @@ -3704,7 +3581,6 @@ op = ((_ref3 = filter.match(/[^t]op:(yes|no|only)/)) != null ? _ref3[1] : void 0) || 'yes'; stub = (function() { var _ref4; - switch ((_ref4 = filter.match(/stub:(yes|no)/)) != null ? _ref4[1] : void 0) { case 'yes': return true; @@ -3735,7 +3611,6 @@ }, createFilter: function(regexp, op, stub, hl, top) { var settings, test; - test = typeof regexp === 'string' ? function(value) { return regexp === value; } : function(value) { @@ -3759,7 +3634,6 @@ }, node: function() { var filter, key, result, value, _i, _len, _ref; - if (this.isClone) { return; } @@ -3866,7 +3740,6 @@ menu: { init: function() { var div, entry, type, _i, _len, _ref; - if (g.VIEW === 'catalog' || !Conf['Menu'] || !Conf['Filter']) { return; } @@ -3892,7 +3765,6 @@ }, createSubEntry: function(text, type) { var el; - el = $.el('a', { href: 'javascript:;', textContent: text @@ -3903,7 +3775,6 @@ el: el, open: function(post) { var value; - value = Filter[type](post); return value !== false; } @@ -3911,7 +3782,6 @@ }, makeFilter: function() { var re, type, value; - type = this.dataset.type; value = Filter[type](Filter.menu.post); re = type === 'uniqueID' || type === 'MD5' ? value : value.replace(/\/|\\|\^|\$|\n|\.|\(|\)|\{|\}|\[|\]|\?|\*|\+|\|/g, function(c) { @@ -3926,7 +3796,6 @@ re = type === 'uniqueID' || type === 'MD5' ? "/" + re + "/" : "/^" + re + "$/"; return $.get(type, Conf[type], function(item) { var save, section, select, ta, tl; - save = item[type]; save = save ? "" + save + "\n" + re : re; $.set(type, save); @@ -3960,7 +3829,6 @@ }, node: function() { var data; - if (!this.isReply || this.isClone) { return; } @@ -3984,7 +3852,6 @@ menu: { init: function() { var apply, div, hideStubLink, makeStub, replies, thisPost; - if (g.VIEW === 'catalog' || !Conf['Menu'] || !Conf['Reply Hiding Link']) { return; } @@ -4055,7 +3922,6 @@ order: 20, open: function(post) { var data; - if (!post.isReply || post.isClone || !post.isHidden) { return false; } @@ -4087,7 +3953,6 @@ order: 15, open: function(post) { var data; - if (!post.isReply || post.isClone || !post.isHidden) { return false; } @@ -4104,7 +3969,6 @@ }, hide: function() { var makeStub, parent, post, replies, thisPost; - parent = this.parentNode; thisPost = $('input[name=thisPost]', parent).checked; replies = $('input[name=replies]', parent).checked; @@ -4123,7 +3987,6 @@ }, show: function() { var data, parent, post, replies, thisPost; - parent = this.parentNode; thisPost = $('input[name=thisPost]', parent).checked; replies = $('input[name=replies]', parent).checked; @@ -4147,7 +4010,6 @@ }, hideStub: function() { var post; - post = PostHiding.menu.post; post.nodes.root.hidden = true; $.event('CloseMenu'); @@ -4155,7 +4017,6 @@ }, makeButton: function(post, type) { var a, span; - span = $.el('span', { className: "brackets-wrap", textContent: "\u00A0" + (type === 'hide' ? '-' : '+') + "\u00A0" @@ -4170,7 +4031,6 @@ }, saveHiddenState: function(post, isHiding, thisPost, makeStub, hideRecursively) { var data; - data = { boardID: post.board.ID, threadID: post.thread.ID, @@ -4189,14 +4049,12 @@ }, toggle: function() { var post; - post = Get.postFromNode(this); PostHiding[(post.isHidden ? 'show' : 'hide')](post); return PostHiding.saveHiddenState(post, post.isHidden); }, hide: function(post, makeStub, hideRecursively) { var a, postInfo, quotelink, _i, _len, _ref; - if (makeStub == null) { makeStub = Conf['Stubs']; } @@ -4234,7 +4092,6 @@ }, show: function(post, showRecursively) { var quotelink, _i, _len, _ref; - if (showRecursively == null) { showRecursively = Conf['Recursive Hiding']; } @@ -4270,7 +4127,6 @@ }, node: function() { var i, obj, quote, recursive, _i, _j, _len, _len1, _ref, _ref1; - if (this.isClone) { return; } @@ -4288,7 +4144,6 @@ }, add: function() { var args, obj, post, recursive, _base, _name; - recursive = arguments[0], post = arguments[1], args = 3 <= arguments.length ? __slice.call(arguments, 2) : []; obj = (_base = Recursive.recursives)[_name = post.fullID] || (_base[_name] = { recursives: [], @@ -4299,7 +4154,6 @@ }, rm: function(recursive, post) { var i, obj, rec, _i, _len, _ref; - if (!(obj = Recursive.recursives[post.fullID])) { return; } @@ -4314,7 +4168,6 @@ }, apply: function() { var ID, args, fullID, post, recursive, _ref; - recursive = arguments[0], post = arguments[1], args = 3 <= arguments.length ? __slice.call(arguments, 2) : []; fullID = post.fullID; _ref = g.posts; @@ -4342,7 +4195,6 @@ }, node: function() { var data; - if (data = ThreadHiding.db.get({ boardID: this.board.ID, threadID: this.ID @@ -4356,7 +4208,6 @@ }, onIndexBuild: function(_arg) { var i, nodes, root, thread, _i, _len; - nodes = _arg.detail; for (i = _i = 0, _len = nodes.length; _i < _len; i = _i += 2) { root = nodes[i]; @@ -4373,7 +4224,6 @@ }, syncCatalog: function() { var hiddenThreads, hiddenThreadsOnCatalog, threadID; - hiddenThreads = ThreadHiding.db.get({ boardID: g.BOARD.ID, defaultValue: {} @@ -4400,7 +4250,6 @@ cleanCatalog: function(hiddenThreadsOnCatalog) { return $.cache("//a.4cdn.org/" + g.BOARD + "/threads.json", function() { var page, thread, threads, _i, _j, _len, _len1, _ref, _ref1; - if (this.status !== 200) { return; } @@ -4426,7 +4275,6 @@ menu: { init: function() { var apply, div, hideStubLink, makeStub; - if (g.VIEW !== 'index' || !Conf['Menu'] || !Conf['Thread Hiding Link']) { return; } @@ -4448,7 +4296,6 @@ order: 20, open: function(_arg) { var isReply, thread; - thread = _arg.thread, isReply = _arg.isReply; if (isReply || thread.isHidden) { return false; @@ -4476,7 +4323,6 @@ order: 20, open: function(_arg) { var isReply, thread; - thread = _arg.thread, isReply = _arg.isReply; if (isReply || !thread.isHidden) { return false; @@ -4496,7 +4342,6 @@ order: 15, open: function(_arg) { var isReply, thread; - thread = _arg.thread, isReply = _arg.isReply; if (isReply || !thread.isHidden) { return false; @@ -4507,7 +4352,6 @@ }, hide: function() { var makeStub, thread; - makeStub = $('input', this.parentNode).checked; thread = ThreadHiding.menu.thread; ThreadHiding.hide(thread, makeStub); @@ -4516,7 +4360,6 @@ }, show: function() { var thread; - thread = ThreadHiding.menu.thread; ThreadHiding.show(thread); ThreadHiding.saveHiddenState(thread); @@ -4524,7 +4367,6 @@ }, hideStub: function() { var thread; - thread = ThreadHiding.menu.thread; ThreadHiding.hide(thread, false); $.event('CloseMenu'); @@ -4532,7 +4374,6 @@ }, makeButton: function(thread, type) { var a; - a = $.el('a', { className: "" + type + "-thread-button", innerHTML: " " + (type === 'hide' ? '-' : '+') + " ", @@ -4544,7 +4385,6 @@ }, makeStub: function(thread, root) { var a, numReplies, opInfo, summary; - numReplies = $$('.thread > .replyContainer', root).length; if (summary = $('.summary', root)) { numReplies += +summary.textContent.match(/\d+/); @@ -4564,7 +4404,6 @@ }, saveHiddenState: function(thread, makeStub) { var hiddenThreadsOnCatalog; - hiddenThreadsOnCatalog = JSON.parse(localStorage.getItem("4chan-hide-t-" + g.BOARD)) || {}; if (thread.isHidden) { ThreadHiding.db.set({ @@ -4597,7 +4436,6 @@ }, hide: function(thread, makeStub) { var threadRoot; - if (makeStub == null) { makeStub = Conf['Stubs']; } @@ -4613,7 +4451,6 @@ }, show: function(thread) { var threadRoot; - if (thread.stub) { $.rm(thread.stub); delete thread.stub; @@ -4626,7 +4463,6 @@ QuoteBacklink = { init: function() { var format; - if (g.VIEW === 'catalog' || !Conf['Quote Backlinks']) { return; } @@ -4644,7 +4480,6 @@ }, firstNode: function() { var a, clone, container, containers, frag, link, post, quote, _i, _j, _k, _len, _len1, _len2, _ref, _ref1; - if (this.isClone || !this.quotes.length) { return; } @@ -4682,7 +4517,6 @@ }, secondNode: function() { var container; - if (this.isClone && (this.origin.isReply || Conf['OP Backlinks'])) { this.nodes.backlinkContainer = $('.container', this.nodes.info); return; @@ -4696,7 +4530,6 @@ }, getContainer: function(id) { var _base; - return (_base = this.containers)[id] || (_base[id] = $.el('span', { className: 'container' })); @@ -4719,7 +4552,6 @@ }, node: function() { var board, boardID, quotelink, thread, threadID, _i, _len, _ref, _ref1, _ref2; - if (this.isClone && this.thread === this.context.thread) { return; } @@ -4749,7 +4581,6 @@ if (Conf['Quote Hash Navigation']) { this.node = function() { var link, _i, _len, _ref; - _ref = this.nodes.quotelinks.concat(__slice.call(this.nodes.backlinks)); for (_i = 0, _len = _ref.length; _i < _len; _i++) { link = _ref[_i]; @@ -4762,7 +4593,6 @@ } else { this.node = function() { var link, _i, _len, _ref; - _ref = this.nodes.quotelinks.concat(__slice.call(this.nodes.backlinks)); for (_i = 0, _len = _ref.length; _i < _len; _i++) { link = _ref[_i]; @@ -4789,7 +4619,6 @@ }, toggle: function(e) { var boardID, context, postID, threadID, _ref; - if (e.shiftKey || e.altKey || e.ctrlKey || e.metaKey || e.button !== 0) { return; } @@ -4815,7 +4644,6 @@ }, add: function(quotelink, boardID, threadID, postID, context) { var inline, isBacklink, post, qroot, root; - isBacklink = $.hasClass(quotelink, 'backlink'); inline = $.el('div', { id: "i" + postID, @@ -4840,7 +4668,6 @@ }, rm: function(quotelink, boardID, threadID, postID, context) { var el, inlined, isBacklink, post, qroot, root, _ref; - isBacklink = $.hasClass(quotelink, 'backlink'); root = QuoteInline.findRoot(quotelink, isBacklink); root = $.x("following-sibling::div[@id='i" + postID + "'][1]", root); @@ -4882,7 +4709,6 @@ }, node: function() { var boardID, fullID, i, postID, quotelink, quotelinks, quotes, _ref, _ref1; - if (this.isClone && this.thread === this.context.thread) { return; } @@ -4925,7 +4751,6 @@ }, node: function() { var link, _i, _len, _ref; - _ref = this.nodes.quotelinks.concat(__slice.call(this.nodes.backlinks)); for (_i = 0, _len = _ref.length; _i < _len; _i++) { link = _ref[_i]; @@ -4934,7 +4759,6 @@ }, mouseover: function(e) { var boardID, clone, origin, post, postID, posts, qp, quote, quoterID, threadID, _i, _j, _len, _len1, _ref, _ref1; - if ($.hasClass(this, 'inlined')) { return; } @@ -4978,7 +4802,6 @@ }, mouseout: function() { var clone, post, root, _i, _len, _ref; - if (!(root = this.el.firstElementChild)) { return; } @@ -5008,7 +4831,6 @@ }, node: function() { var boardID, postID, quotelink, _i, _len, _ref, _ref1, _ref2; - if (this.isClone) { return; } @@ -5031,7 +4853,6 @@ QuoteThreading = { init: function() { var input; - if (!(Conf['Quote Threading'] && g.VIEW === 'thread')) { return; } @@ -5054,7 +4875,6 @@ }, setup: function() { var ID, post, posts; - $.off(d, '4chanXInitFinished', QuoteThreading.setup); posts = g.posts; for (ID in posts) { @@ -5067,7 +4887,6 @@ }, node: function() { var ID, fullID, keys, len, post, posts, qid, quote, quotes, uniq, _i, _len; - if (this.isClone || !QuoteThreading.enabled || this.thread.OP === this) { return; } @@ -5097,7 +4916,6 @@ }, nodeinsert: function() { var bottom, height, qpost, qroot, threadContainer, top, _ref; - qpost = g.posts[this.threaded]; delete this.threaded; delete this.cb; @@ -5126,7 +4944,6 @@ }, toggle: function() { var container, containers, node, post, replies, reply, thread, _i, _j, _k, _len, _len1, _len2, _ref; - thread = $('.thread'); replies = $$('.thread > .replyContainer, .threadContainer > .replyContainer', thread); QuoteThreading.enabled = this.checked; @@ -5143,7 +4960,6 @@ } else { replies.sort(function(a, b) { var aID, bID; - aID = Number(a.id.slice(2)); bID = Number(b.id.slice(2)); return aID - bID; @@ -5164,7 +4980,6 @@ }, kb: function() { var control; - control = $.id('threadingControl'); return control.click(); } @@ -5192,7 +5007,6 @@ }, node: function() { var quotelink, _i, _len, _ref; - if (this.isClone) { return; } @@ -5216,7 +5030,6 @@ cb: { seek: function(type) { var highlight, post, posts, result, str; - if (!(Conf['Mark Quotes of You'] && Conf['Quick Reply'])) { return; } @@ -5272,7 +5085,6 @@ }, node: function() { var deadlink, _i, _len, _ref; - _ref = $$('.deadlink', this.nodes.comment); for (_i = 0, _len = _ref.length; _i < _len; _i++) { deadlink = _ref[_i]; @@ -5287,7 +5099,6 @@ }, parseDeadlink: function(deadlink) { var a, boardID, m, post, postID, quote, quoteID, redirect, _ref; - if ($.hasClass(deadlink.parentNode, 'prettyprint')) { Quotify.fixDeadlink(deadlink); return; @@ -5357,7 +5168,6 @@ }, fixDeadlink: function(deadlink) { var el, green; - if (!(el = deadlink.previousSibling) || el.nodeName === 'BR') { green = $.el('span', { className: 'quote' @@ -5372,7 +5182,6 @@ QR = { init: function() { var sc; - if (!Conf['Quick Reply']) { return; } @@ -5420,7 +5229,6 @@ }, initReady: function() { var link; - QR.postingIsEnabled = !!$.id('postForm'); if (!QR.postingIsEnabled) { return; @@ -5440,13 +5248,11 @@ $.before($.id('postForm'), link); $.on(d, 'QRGetSelectedPost', function(_arg) { var cb; - cb = _arg.detail; return cb(QR.selected); }); $.on(d, 'QRAddPreSubmitHook', function(_arg) { var cb; - cb = _arg.detail; return QR.preSubmitHooks.push(cb); }); @@ -5481,7 +5287,6 @@ }, open: function() { var err; - if (QR.nodes) { QR.nodes.el.hidden = false; QR.unhide(); @@ -5500,7 +5305,6 @@ }, close: function() { var post, _i, _len, _ref; - if (QR.req) { QR.abort(); return; @@ -5550,7 +5354,6 @@ }, error: function(err) { var el; - QR.open(); if (typeof err === 'string') { el = $.tn(err); @@ -5577,7 +5380,6 @@ }, notify: function(el) { var notice, notif; - notice = new Notice('warning', el); if (!(Header.areNotificationsEnabled && d.hidden)) { return QR.notifications.push(notice); @@ -5603,7 +5405,6 @@ notifications: [], cleanNotifications: function() { var notification, _i, _len, _ref; - _ref = QR.notifications; for (_i = 0, _len = _ref.length; _i < _len; _i++) { notification = _ref[_i]; @@ -5613,7 +5414,6 @@ }, status: function() { var disabled, status, thread, value; - if (!QR.nodes) { return; } @@ -5630,7 +5430,6 @@ }, quote: function(e) { var caretPos, com, index, post, range, s, sel, text, thread, _ref; - if (e != null) { e.preventDefault(); } @@ -5668,7 +5467,6 @@ }, characterCount: function() { var count, counter; - counter = QR.nodes.charCount; count = QR.nodes.com.textLength; counter.textContent = count; @@ -5677,7 +5475,6 @@ }, drag: function(e) { var toggle; - toggle = e.type === 'dragstart' ? $.off : $.on; toggle(d, 'dragover', QR.dragOver); return toggle(d, 'drop', QR.dropFile); @@ -5696,7 +5493,6 @@ }, paste: function(e) { var blob, files, item, _i, _len, _ref; - files = []; _ref = e.clipboardData.items; for (_i = 0, _len = _ref.length; _i < _len; _i++) { @@ -5720,7 +5516,6 @@ }, handleFiles: function(files) { var file, isSingle, max, _i, _len; - if (this !== QR) { files = __slice.call(this.files); this.value = null; @@ -5741,7 +5536,6 @@ }, handleFile: function(file, isSingle, max) { var post, _ref; - if (file.size > max) { QR.error("" + file.name + ": File too large (file: " + ($.bytesToString(file.size)) + ", max: " + ($.bytesToString(max)) + ")."); return; @@ -5767,7 +5561,6 @@ }, openFileInput: function(e) { var _ref; - e.stopPropagation(); if (e.shiftKey && e.type === 'click') { return QR.selected.rmFile(); @@ -5787,7 +5580,6 @@ }, generatePostableThreadsList: function() { var list, options, thread, val; - if (!QR.nodes) { return; } @@ -5810,7 +5602,6 @@ }, dialog: function() { var check, dialog, event, flagSelector, i, items, key, mimeTypes, name, node, nodes, save, value, _ref; - QR.nodes = nodes = { el: dialog = UI.dialog('qr', 'top:0;right:0;', "
×
No selected file×+
") }; @@ -5920,7 +5711,6 @@ preSubmitHooks: [], submit: function(e) { var challenge, err, extra, filetag, formData, hook, options, post, response, textOnly, thread, threadID, _i, _len, _ref, _ref1; - if (e != null) { e.preventDefault(); } @@ -6035,7 +5825,6 @@ }, response: function() { var URL, ban, board, captchasCount, err, h1, isReply, m, notif, post, postID, postsCount, req, resDoc, threadID, _, _ref, _ref1; - req = QR.req; delete QR.req; post = QR.posts[0]; @@ -6168,7 +5957,6 @@ ready: function() { var imgContainer, input, setLifetime, _this = this; - setLifetime = function(e) { return _this.lifetime = e.detail; }; @@ -6205,7 +5993,6 @@ }); $.get('captchas', [], function(_arg) { var captchas; - captchas = _arg.captchas; return _this.sync(captchas); }); @@ -6220,7 +6007,6 @@ }, getOne: function() { var captcha, challenge, response; - this.clear(); if (captcha = this.captchas.shift()) { challenge = captcha.challenge, response = captcha.response; @@ -6245,7 +6031,6 @@ }, save: function() { var response; - if (!(response = this.nodes.input.value.trim())) { return; } @@ -6260,7 +6045,6 @@ }, clear: function() { var captcha, i, now, _i, _len, _ref; - now = Date.now(); _ref = this.captchas; for (i = _i = 0, _len = _ref.length; _i < _len; i = ++_i) { @@ -6278,7 +6062,6 @@ }, load: function() { var challenge; - if (!this.nodes.challenge.firstChild) { return; } @@ -6291,7 +6074,6 @@ }, count: function() { var count; - count = this.captchas.length; this.nodes.input.placeholder = (function() { switch (count) { @@ -6327,7 +6109,6 @@ init: function() { var key, setTimers, type, _this = this; - if (!Conf['Cooldown']) { return; } @@ -6361,7 +6142,6 @@ }, sync: function(cooldowns) { var id; - for (id in cooldowns) { QR.cooldown.cooldowns[id] = cooldowns[id]; } @@ -6369,7 +6149,6 @@ }, set: function(data) { var cooldown, delay, isReply, post, req, start, threadID, upSpd; - if (!Conf['Cooldown']) { return; } @@ -6404,7 +6183,6 @@ }, count: function() { var cooldown, cooldowns, elapsed, hasFile, isReply, maxTimer, now, post, seconds, start, type, types, upSpd, upSpdAccuracy, update, _ref; - if (!Object.keys(QR.cooldown.cooldowns).length) { $["delete"]("" + g.BOARD + ".cooldown"); delete QR.cooldown.isCounting; @@ -6469,7 +6247,6 @@ QR.persona.getPassword(); return $.get('QR.personas', Conf['QR.personas'], function(_arg) { var arr, item, personas, type, types, _i, _len, _ref; - personas = _arg['QR.personas']; types = { name: [], @@ -6489,7 +6266,6 @@ }, parseItem: function(item, types) { var boards, match, type, val, _ref, _ref1, _ref2; - if (item[0] === '#') { return; } @@ -6518,7 +6294,6 @@ }, loadPersonas: function(type, arr) { var list, val, _i, _len; - list = $("#list-" + type, QR.nodes.el); for (_i = 0, _len = arr.length; _i < _len; _i++) { val = arr[_i]; @@ -6531,7 +6306,6 @@ }, getPassword: function() { var input, m; - if (!QR.persona.pwd) { QR.persona.pwd = (m = d.cookie.match(/4chan_pass=([^;]+)/)) ? decodeURIComponent(m[1]) : (input = $.id('postPassword')) ? input.value : $.id('delPassword').value; } @@ -6540,7 +6314,6 @@ get: function(cb) { return $.get('QR.persona', {}, function(_arg) { var persona; - persona = _arg['QR.persona']; return cb(persona); }); @@ -6548,7 +6321,6 @@ set: function(post) { return $.get('QR.persona', {}, function(_arg) { var persona; - persona = _arg['QR.persona']; persona = { name: post.name, @@ -6566,7 +6338,6 @@ this.select = __bind(this.select, this); var el, event, prev, _i, _len, _ref, _this = this; - el = $.el('a', { className: 'qr-preview', draggable: true, @@ -6623,7 +6394,6 @@ _Class.prototype.rm = function() { var index; - this["delete"](); index = QR.posts.indexOf(this); if (QR.posts.length === 1) { @@ -6643,7 +6413,6 @@ _Class.prototype.lock = function(lock) { var name, node, _i, _len, _ref; - if (lock == null) { lock = true; } @@ -6670,7 +6439,6 @@ _Class.prototype.select = function() { var rectEl, rectList; - if (QR.selected) { QR.selected.nodes.el.id = null; QR.selected.forceSave(); @@ -6687,7 +6455,6 @@ _Class.prototype.load = function() { var name, node, _i, _len, _ref; - _ref = ['thread', 'name', 'email', 'sub', 'com', 'filename', 'flag']; for (_i = 0, _len = _ref.length; _i < _len; _i++) { name = _ref[_i]; @@ -6702,7 +6469,6 @@ _Class.prototype.save = function(input) { var name, _ref; - if (input.type === 'checkbox') { this.spoiler = input.checked; return; @@ -6733,7 +6499,6 @@ _Class.prototype.forceSave = function() { var name, node, _i, _len, _ref; - if (this !== QR.selected) { return; } @@ -6768,11 +6533,9 @@ _Class.prototype.setThumbnail = function() { var fileURL, img, _this = this; - img = $.el('img'); img.onload = function() { var cv, height, s, width; - s = 90 * 2 * window.devicePixelRatio; if (_this.file.type === 'image/gif') { s *= 3; @@ -6823,7 +6586,6 @@ _Class.prototype.updateFilename = function() { var long; - long = "" + this.filename + " (" + this.filesize + ")\nCtrl+click to edit filename. Shift+click to clear."; this.nodes.el.title = long; if (this !== QR.selected) { @@ -6846,11 +6608,9 @@ _Class.prototype.pasteText = function(file) { var reader, _this = this; - reader = new FileReader(); reader.onload = function(e) { var text; - text = e.target.result; if (_this.com) { _this.com += "\n" + text; @@ -6889,7 +6649,6 @@ _Class.prototype.drop = function() { var el, index, newIndex, oldIndex, post; - $.rmClass(this, 'over'); if (!this.draggable) { return; @@ -6913,7 +6672,6 @@ AutoGIF = { init: function() { var _ref; - if (g.VIEW === 'catalog' || !Conf['Auto-GIF'] || ((_ref = g.BOARD.ID) === 'gif' || _ref === 'wsg')) { return; } @@ -6924,7 +6682,6 @@ }, node: function() { var URL, gif, style, thumb, _ref, _ref1; - if (this.isClone || this.isHidden || this.thread.isHidden || !((_ref = this.file) != null ? _ref.isImage : void 0)) { return; } @@ -6947,7 +6704,6 @@ FappeTyme = { init: function() { var el, input, lc, type, _i, _len, _ref; - if (!(Conf['Fappe Tyme'] || Conf['Werk Tyme']) || g.VIEW === 'catalog' || g.BOARD === 'f') { return; } @@ -7000,7 +6756,6 @@ Gallery = { init: function() { var el; - if (g.VIEW === 'catalog' || g.BOARD === 'f' || !Conf['Gallery']) { return; } @@ -7020,7 +6775,6 @@ }, node: function() { var _ref; - if (!((_ref = this.file) != null ? _ref.isImage : void 0)) { return; } @@ -7034,7 +6788,6 @@ }, build: function(image) { var cb, createSubEntry, dialog, el, file, files, i, key, menuButton, name, nodes, value, _ref; - Gallery.images = []; nodes = Gallery.nodes = {}; nodes.el = dialog = $.el('div', { @@ -7094,7 +6847,6 @@ }, generateThumb: function(file) { var double, post, thumb, title; - post = Get.postFromNode(file); title = ($('.fileText a', file)).textContent; thumb = post.file.thumb.parentNode.cloneNode(true); @@ -7113,7 +6865,6 @@ cb: { keybinds: function(e) { var cb, key; - if (!(key = Keybinds.keyCode(e))) { return; } @@ -7139,7 +6890,6 @@ }, open: function(e) { var el, img, name, nodes, rect, top; - if (e) { e.preventDefault(); } @@ -7182,7 +6932,6 @@ }, error: function(img, thumb) { var URL, post, revived, src; - post = Get.postFromLink($.el('a', { href: img.dataset.post })); @@ -7213,7 +6962,6 @@ return $.ajax("//api.4chan.org/" + post.board + "/res/" + post.thread + ".json", { onload: function() { var i, postObj; - if (this.status !== 200) { return; } @@ -7260,7 +7008,6 @@ menu: { init: function() { var createSubEntry, el, name, subEntries; - if (g.VIEW === 'catalog' || !Conf['Gallery']) { return; } @@ -7282,7 +7029,6 @@ }, createSubEntry: function(name) { var input, label; - label = $.el('label', { innerHTML: " " + name }); @@ -7320,7 +7066,6 @@ }, node: function() { var thumb, _ref; - if (!((_ref = this.file) != null ? _ref.isImage : void 0)) { return; } @@ -7345,7 +7090,6 @@ }, toggleAll: function() { var ID, file, func, post, _i, _len, _ref, _ref1; - $.event('CloseMenu'); if (ImageExpand.on = $.hasClass(ImageExpand.EAI, 'expand-all-shortcut')) { ImageExpand.EAI.className = 'contract-all-shortcut fa fa-compress'; @@ -7379,7 +7123,6 @@ }, toggle: function(post) { var headRect, left, root, thumb, top, x, y, _ref; - thumb = post.file.thumb; if (!(post.file.isExpanded || $.hasClass(thumb, 'expanding'))) { ImageExpand.expand(post); @@ -7388,7 +7131,6 @@ root = post.nodes.root; _ref = (Conf['Advance on contract'] ? (function() { var next; - next = root; while (next = $.x("following::div[contains(@class,'postContainer')][1]", next)) { if ($('.stub', next) || next.offsetHeight === 0) { @@ -7420,7 +7162,6 @@ }, expand: function(post, src) { var img, thumb; - thumb = post.file.thumb; if (post.isHidden || post.file.isExpanded || $.hasClass(thumb, 'expanding')) { return; @@ -7448,7 +7189,6 @@ }, completeExpand: function(post) { var bottom, thumb; - thumb = post.file.thumb; if (!$.hasClass(thumb, 'expanding')) { return; @@ -7471,7 +7211,6 @@ }, error: function() { var URL, post, src, timeoutID; - post = Get.postFromNode(this); $.rm(this); delete post.file.fullImage; @@ -7497,7 +7236,6 @@ return $.ajax("//a.4cdn.org/" + post.board + "/res/" + post.thread + ".json", { onload: function() { var postObj, _i, _len, _ref; - if (this.status !== 200) { return; } @@ -7521,7 +7259,6 @@ menu: { init: function() { var conf, createSubEntry, el, name, subEntries, _ref; - if (g.VIEW === 'catalog' || !Conf['Image Expansion']) { return; } @@ -7545,7 +7282,6 @@ }, createSubEntry: function(name, desc) { var input, label; - label = $.el('label', { innerHTML: " " + name, title: desc @@ -7576,7 +7312,6 @@ }, node: function() { var _ref; - if (!((_ref = this.file) != null ? _ref.isImage : void 0)) { return; } @@ -7584,7 +7319,6 @@ }, mouseover: function(e) { var el, post; - post = Get.postFromNode(this); el = $.el('img', { id: 'ihover', @@ -7606,7 +7340,6 @@ error: function() { var URL, post, src, timeoutID, _this = this; - if (!doc.contains(this)) { return; } @@ -7631,7 +7364,6 @@ return $.ajax("//a.4cdn.org/" + post.board + "/res/" + post.thread + ".json", { onload: function() { var postObj, _i, _len, _ref; - if (this.status !== 200) { return; } @@ -7657,7 +7389,6 @@ ImageLoader = { init: function() { var prefetch; - if (g.VIEW === 'catalog') { return; } @@ -7684,7 +7415,6 @@ }, node: function() { var URL, img, string, style, thumb, type, _ref, _ref1; - if (this.isClone || this.isHidden || this.thread.isHidden || !((_ref = this.file) != null ? _ref.isImage : void 0)) { return; } @@ -7706,7 +7436,6 @@ }, toggle: function() { var enabled, id, post, _ref; - enabled = Conf['prefetch'] = this.checked; if (enabled) { _ref = g.threads["" + g.BOARD.ID + "." + g.THREADID].posts; @@ -7729,7 +7458,6 @@ }, node: function() { var thumb, _ref; - if (this.isClone || !((_ref = this.file) != null ? _ref.isSpoiler : void 0)) { return; } @@ -7742,7 +7470,6 @@ Sauce = { init: function() { var err, link, links, _i, _len, _ref; - if (g.VIEW === 'catalog' || !Conf['Sauce']) { return; } @@ -7772,7 +7499,6 @@ }, createSauceLink: function(link) { var m, text; - link = link.replace(/%(T?URL|MD5|board)/ig, function(parameter) { switch (parameter) { case '%TURL': @@ -7793,7 +7519,6 @@ }, node: function() { var link, nodes, _i, _len, _ref; - if (this.isClone || !this.file) { return; } @@ -7826,7 +7551,6 @@ }, node: function() { var data, el, end, endNode, i, index, items, length, link, links, node, result, saved, snapshot, space, test, word, _i, _len, _ref; - if (this.isClone) { if (Conf['Embedding']) { i = 0; @@ -7903,7 +7627,6 @@ }, makeRange: function(startNode, endNode, startOffset, endOffset) { var range; - range = document.createRange(); range.setStart(startNode, startOffset); range.setEnd(endNode, endOffset); @@ -7911,7 +7634,6 @@ }, makeLink: function(range) { var a, char, i, text; - text = range.toString(); i = 0; while (/[(\[{<>]/.test(text.charAt(i))) { @@ -7957,7 +7679,6 @@ }, services: function(link) { var href, key, match, type, _ref; - href = link.href; _ref = Linkify.types; for (key in _ref) { @@ -7970,7 +7691,6 @@ }, embed: function(data) { var embed, href, key, link, name, options, uid, value, _ref; - key = data[0], uid = data[1], options = data[2], link = data[3]; href = link.href; embed = $.el('a', { @@ -7999,7 +7719,6 @@ }, title: function(data) { var embed, err, key, link, options, service, title, titles, uid; - key = data[0], uid = data[1], options = data[2], link = data[3], embed = data[4]; if (!(service = Linkify.types[key].title)) { return; @@ -8036,21 +7755,18 @@ cb: { toggle: function() { var string, _ref; - _ref = $.hasClass(this, "embedded") ? ['unembed', '(embed)'] : ['embed', '(unembed)'], string = _ref[0], this.textContent = _ref[1]; $.replace(this.previousElementSibling, Linkify.cb[string](this)); return $.toggleClass(this, 'embedded'); }, embed: function(a) { var el, style, type; - el = (type = Linkify.types[a.dataset.key]).el(a); el.style.cssText = (style = type.style) ? style : "border: 0; width: 640px; height: 390px"; return el; }, unembed: function(a) { var el; - el = $.el('a', { rel: 'nofollow noreferrer', target: 'blank', @@ -8063,7 +7779,6 @@ }, title: function(response, data) { var embed, key, link, options, service, text, uid; - key = data[0], uid = data[1], options = data[2], link = data[3], embed = data[4]; service = Linkify.types[key].title; switch (response.status) { @@ -8103,7 +7818,6 @@ regExp: /.*(?:gist.github.com.*\/)([^\/][^\/]*)$/, el: function(a) { var div; - return div = $.el('iframe', { src: "http://www.purplegene.com/script?url=https://gist.github.com/" + a.dataset.uid + ".js" }); @@ -8114,7 +7828,6 @@ }, text: function(_arg) { var file, files; - files = _arg.files; for (file in files) { if (files.hasOwnProperty(file)) { @@ -8145,7 +7858,6 @@ regExp: /.*(?:liveleak.com\/view.+i=)([0-9a-z_]+)/, el: function(a) { var el; - el = $.el('iframe', { width: "640", height: "360", @@ -8161,11 +7873,9 @@ style: 'border: 0;', el: function(a) { var el; - el = $.el('div'); $.cache("https://mediacru.sh/" + a.dataset.uid + ".json", function() { var embed, file, files, status, type, _i, _j, _len, _len1, _ref; - status = this.status; if (status !== 200 && status !== 304) { return div.innerHTML = "ERROR " + status; @@ -8214,7 +7924,6 @@ regExp: /.*(?:pastebin.com\/(?!u\/))([^#\&\?]*).*/, el: function(a) { var div; - return div = $.el('iframe', { src: "http://pastebin.com/embed_iframe.php?i=" + a.dataset.uid }); @@ -8225,7 +7934,6 @@ style: 'height: auto; width: 500px; display: inline-block;', el: function(a) { var div; - div = $.el('div', { className: "soundcloud", name: "soundcloud" @@ -8260,7 +7968,6 @@ style: "border: none; width: 640px; height: 360px;", el: function(a) { var channel, chapter, result, _; - if (result = /(\w+)\/(?:[a-z]\/)?(\d+)/i.exec(a.dataset.uid)) { _ = result[0], channel = result[1], chapter = result[2]; return $.el('object', { @@ -8314,7 +8021,6 @@ regExp: /.*(?:youtu.be\/|youtube.*v=|youtube.*\/embed\/|youtube.*\/v\/|youtube.*videos\/)([^#\&\?]*)\??(t\=.*)?/, el: function(a) { var el; - el = $.el('iframe', { src: "//www.youtube.com/embed/" + a.dataset.uid + (a.dataset.option ? '#' + a.dataset.option : '') + "?wmode=opaque" }); @@ -8336,7 +8042,6 @@ ArchiveLink = { init: function() { var div, entry, type, _i, _len, _ref; - if (g.VIEW === 'catalog' || !Conf['Menu'] || !Conf['Archive Link']) { return; } @@ -8349,7 +8054,6 @@ order: 90, open: function(_arg) { var ID, board, thread; - ID = _arg.ID, thread = _arg.thread, board = _arg.board; return !!Redirect.to('thread', { postID: ID, @@ -8368,14 +8072,12 @@ }, createSubEntry: function(text, type) { var el, open; - el = $.el('a', { textContent: text, target: '_blank' }); open = type === 'post' ? function(_arg) { var ID, board, thread; - ID = _arg.ID, thread = _arg.thread, board = _arg.board; el.href = Redirect.to('thread', { postID: ID, @@ -8385,7 +8087,6 @@ return true; } : function(post) { var value; - value = Filter[type](post); if (!value) { return false; @@ -8408,7 +8109,6 @@ DeleteLink = { init: function() { var div, fileEl, fileEntry, postEl, postEntry; - if (g.VIEW === 'catalog' || !Conf['Menu'] || !Conf['Delete Link']) { return; } @@ -8436,7 +8136,6 @@ el: fileEl, open: function(_arg) { var file; - file = _arg.file; if (!file || file.isDead) { return false; @@ -8452,7 +8151,6 @@ order: 40, open: function(post) { var node; - if (post.isDead) { return false; } @@ -8467,7 +8165,6 @@ }, "delete": function() { var fileOnly, form, link, post; - post = DeleteLink.post; if (DeleteLink.cooldown.counting === post) { return; @@ -8497,7 +8194,6 @@ }, load: function(link, post, fileOnly, resDoc) { var msg, s; - if (resDoc.title === '4chan - Banned') { s = 'Banned!'; } else if (msg = resDoc.getElementById('errmsg')) { @@ -8518,7 +8214,6 @@ cooldown: { start: function(post, node) { var length, seconds, _ref; - if (!((_ref = QR.db) != null ? _ref.get({ boardID: post.board.ID, threadID: post.thread.ID, @@ -8552,7 +8247,6 @@ DownloadLink = { init: function() { var a; - if (g.VIEW === 'catalog' || !Conf['Menu'] || !Conf['Download Link']) { return; } @@ -8566,7 +8260,6 @@ order: 100, open: function(_arg) { var file; - file = _arg.file; if (!file) { return false; @@ -8598,7 +8291,6 @@ }, makeButton: (function() { var frag; - frag = $.nodes([ $.tn(' '), $.el('a', { className: 'menu-button', @@ -8608,7 +8300,6 @@ ]); return function() { var clone; - clone = frag.cloneNode(true); $.on(clone.lastElementChild, 'click', Menu.toggle); return clone; @@ -8616,7 +8307,6 @@ })(), toggle: function(e) { var post; - post = Get.postFromNode(this); return Menu.menu.toggle(e, this, post); } @@ -8625,7 +8315,6 @@ ReportLink = { init: function() { var a; - if (g.VIEW === 'catalog' || !Conf['Menu'] || !Conf['Report Link']) { return; } @@ -8647,7 +8336,6 @@ }, report: function() { var id, post, set, url; - post = ReportLink.post; url = "//sys.4chan.org/" + post.board + "/imgboard.php?mode=report&no=" + post; id = Date.now(); @@ -8660,7 +8348,6 @@ init: function() { return $.ready(function() { var href; - Favicon.el = $('link[rel="shortcut icon"]', d.head); Favicon.el.type = 'image/x-icon'; href = Favicon.el.href; @@ -8734,7 +8421,6 @@ init: function() { var sc, _this = this; - if (g.VIEW !== 'thread' || !Conf['Thread Stats']) { return; } @@ -8763,7 +8449,6 @@ }, node: function() { var ID, fileCount, post, postCount, _ref; - postCount = 0; fileCount = 0; _ref = this.posts; @@ -8781,7 +8466,6 @@ }, onUpdate: function(e) { var fileCount, postCount, _ref; - if (e.detail[404]) { return; } @@ -8790,7 +8474,6 @@ }, update: function(postCount, fileCount) { var fileCountEl, postCountEl, thread; - thread = ThreadStats.thread, postCountEl = ThreadStats.postCountEl, fileCountEl = ThreadStats.fileCountEl; postCountEl.textContent = postCount; fileCountEl.textContent = fileCount; @@ -8815,7 +8498,6 @@ }, onThreadsLoad: function() { var page, pages, thread, _i, _j, _len, _len1, _ref; - if (!(Conf["Page Count in Stats"] && this.status === 200)) { return; } @@ -8839,7 +8521,6 @@ init: function() { var checked, conf, el, input, name, sc, settings, subEntries, _ref, _this = this; - if (g.VIEW !== 'thread' || !Conf['Thread Updater']) { return; } @@ -8980,7 +8661,6 @@ }, interval: function() { var val; - val = parseInt(this.value, 10); if (val < 1) { val = 1; @@ -8990,7 +8670,6 @@ }, load: function(e) { var klass, req, text, _ref; - req = ThreadUpdater.req; switch (req.status) { case 200: @@ -9022,7 +8701,6 @@ }, setInterval: function() { var cur, i, j, limit; - i = ThreadUpdater.interval + 1; if (Conf['Optional Increase']) { cur = ThreadUpdater.outdateCount || 1; @@ -9038,14 +8716,12 @@ }, intervalShortcut: function() { var settings; - Settings.open('Advanced'); settings = $.id('fourchanx-settings'); return $('input[name=Interval]', settings).focus(); }, set: function(name, text, klass) { var el, node; - el = ThreadUpdater[name]; if (node = el.firstChild) { node.data = text; @@ -9064,7 +8740,6 @@ }, timeout: function() { var n; - ThreadUpdater.timeoutID = setTimeout(ThreadUpdater.timeout, 1000); if (!(n = --ThreadUpdater.seconds)) { return ThreadUpdater.update(); @@ -9077,7 +8752,6 @@ }, update: function() { var url, _ref; - if (!navigator.onLine) { return; } @@ -9099,7 +8773,6 @@ }, updateThreadStatus: function(type, status) { var change, hasChanged; - if (!(hasChanged = ThreadUpdater.thread["is" + type] !== status)) { return; } @@ -9109,7 +8782,6 @@ }, parse: function(postObjects) { var ID, OP, count, deletedFiles, deletedPosts, files, index, key, node, num, post, postObject, posts, root, scroll, _i, _len, _ref; - OP = postObjects[0]; Build.spoilerRange[ThreadUpdater.thread.board] = OP.custom_spoiler; ThreadUpdater.updateThreadStatus('Sticky', !!OP.sticky); @@ -9195,7 +8867,6 @@ } $.queueTask(function() { var length, threadID; - threadID = ThreadUpdater.thread.ID; length = $$('.thread > .postContainer', ThreadUpdater.root).length; return Fourchan.parseThread(threadID, length - count, length); @@ -9216,7 +8887,6 @@ ThreadWatcher = { init: function() { var now, sc; - if (!Conf['Thread Watcher']) { return; } @@ -9261,7 +8931,6 @@ }, node: function() { var toggler; - toggler = $.el('img', { className: 'watch-thread-link' }); @@ -9283,7 +8952,6 @@ } return $.get('AutoWatch', 0, function(_arg) { var AutoWatch, thread; - AutoWatch = _arg.AutoWatch; if (!(thread = g.BOARD.threads[AutoWatch])) { return; @@ -9299,7 +8967,6 @@ cb: { openAll: function() { var a, _i, _len, _ref; - if ($.hasClass(this, 'disabled')) { return; } @@ -9318,7 +8985,6 @@ }, pruneDeads: function() { var boardID, data, threadID, _i, _len, _ref, _ref1; - if ($.hasClass(this, 'disabled')) { return; } @@ -9342,13 +9008,11 @@ }, rm: function() { var boardID, threadID, _ref; - _ref = this.parentNode.dataset.fullID.split('.'), boardID = _ref[0], threadID = _ref[1]; return ThreadWatcher.rm(boardID, +threadID); }, post: function(e) { var board, postID, threadID, _ref; - _ref = e.detail, board = _ref.board, postID = _ref.postID, threadID = _ref.threadID; if (postID === threadID) { if (Conf['Auto Watch']) { @@ -9360,7 +9024,6 @@ }, onIndexRefresh: function() { var boardID, data, db, threadID, _ref; - db = ThreadWatcher.db; boardID = g.BOARD.ID; _ref = db.data.boards[boardID]; @@ -9386,7 +9049,6 @@ }, onThreadRefresh: function(e) { var thread; - thread = e.detail.thread; if (!(e.detail[404] && ThreadWatcher.db.get({ boardID: thread.board.ID, @@ -9403,7 +9065,6 @@ }, fetchAllStatus: function() { var thread, threads, _i, _len; - if (!(threads = ThreadWatcher.getAll()).length) { return; } @@ -9415,7 +9076,6 @@ }, fetchStatus: function(_arg) { var boardID, data, fetchCount, threadID; - boardID = _arg.boardID, threadID = _arg.threadID, data = _arg.data; if (data.isDead) { return; @@ -9425,7 +9085,6 @@ return $.ajax("//a.4cdn.org/" + boardID + "/res/" + threadID + ".json", { onloadend: function() { var status; - fetchCount.fetched++; if (fetchCount.fetched === fetchCount.fetching) { fetchCount.fetched = 0; @@ -9459,7 +9118,6 @@ }, getAll: function() { var all, boardID, data, threadID, threads, _ref; - all = []; _ref = ThreadWatcher.db.data.boards; for (boardID in _ref) { @@ -9480,7 +9138,6 @@ }, makeLine: function(boardID, threadID, data) { var div, fullID, href, link, x; - x = $.el('a', { className: 'fa fa-times', href: 'javascript:;' @@ -9511,7 +9168,6 @@ }, refresh: function() { var boardID, data, helper, list, nodes, refresher, thread, threadID, toggler, watched, _i, _j, _len, _len1, _ref, _ref1, _ref2, _ref3; - nodes = []; _ref = ThreadWatcher.getAll(); for (_i = 0, _len = _ref.length; _i < _len; _i++) { @@ -9541,7 +9197,6 @@ }, toggle: function(thread) { var boardID, threadID; - boardID = thread.board.ID; threadID = thread.ID; if (ThreadWatcher.db.get({ @@ -9555,7 +9210,6 @@ }, add: function(thread) { var boardID, data, threadID; - data = {}; boardID = thread.board.ID; threadID = thread.ID; @@ -9586,7 +9240,6 @@ }, convert: function(oldFormat) { var boardID, data, newFormat, threadID, threads; - newFormat = {}; for (boardID in oldFormat) { threads = oldFormat[boardID]; @@ -9603,7 +9256,6 @@ refreshers: [], init: function() { var menu; - if (!Conf['Thread Watcher']) { return; } @@ -9616,7 +9268,6 @@ }, addHeaderMenuEntry: function() { var entryEl; - if (g.VIEW !== 'thread') { return; } @@ -9633,7 +9284,6 @@ }); return this.refreshers.push(function() { var addClass, rmClass, text, _ref; - _ref = $('.current', ThreadWatcher.list) ? ['unwatch-thread', 'watch-thread', 'Unwatch thread'] : ['watch-thread', 'unwatch-thread', 'Watch thread'], addClass = _ref[0], rmClass = _ref[1], text = _ref[2]; $.addClass(entryEl, addClass); $.rmClass(entryEl, rmClass); @@ -9642,7 +9292,6 @@ }, addMenuEntries: function() { var cb, conf, entries, entry, name, refresh, subEntries, _i, _len, _ref, _ref1; - entries = []; entries.push({ cb: ThreadWatcher.cb.openAll, @@ -9711,7 +9360,6 @@ }, createSubEntry: function(name, desc) { var entry, input; - entry = { type: 'thread watcher', el: $.el('label', { @@ -9763,7 +9411,6 @@ }, ready: function() { var ID, post, posts, _ref; - $.off(d, '4chanXInitFinished', Unread.ready); posts = []; _ref = Unread.thread.posts; @@ -9778,7 +9425,6 @@ }, scroll: function() { var down, hash, post, posts, root; - if (!Conf['Scroll to Last Read Post']) { return; } @@ -9807,7 +9453,6 @@ }, sync: function() { var lastReadPost; - lastReadPost = Unread.db.get({ boardID: Unread.thread.board.ID, threadID: Unread.thread.ID, @@ -9826,7 +9471,6 @@ }, addPosts: function(posts) { var ID, data, post, _i, _len, _ref; - for (_i = 0, _len = posts.length; _i < _len; _i++) { post = posts[_i]; ID = post.ID; @@ -9854,7 +9498,6 @@ }, addPostQuotingYou: function(post) { var quotelink, _i, _len, _ref; - if (!QR.db) { return; } @@ -9871,7 +9514,6 @@ }, openNotification: function(post) { var name, notif; - if (!Header.areNotificationsEnabled) { return; } @@ -9899,7 +9541,6 @@ }, readSinglePost: function(post) { var i; - if ((i = Unread.posts.indexOf(post)) === -1) { return; } @@ -9915,7 +9556,6 @@ }, readArray: function(arr) { var i, post, _i, _len; - for (i = _i = 0, _len = arr.length; _i < _len; i = ++_i) { post = arr[i]; if (post.ID > Unread.lastReadPost) { @@ -9926,7 +9566,6 @@ }, read: $.debounce(50, function(e) { var ID, height, i, post, posts; - if (d.hidden || !Unread.posts.length) { return; } @@ -9979,7 +9618,6 @@ }), setLine: function(force) { var post; - if (!(d.hidden || force === true)) { return; } @@ -9992,7 +9630,6 @@ }, update: function(dontrepeat) { var count; - count = Unread.posts.length; if (Conf['Unread Count']) { d.title = "" + (Conf['Quoted Title'] && Unread.postsQuotingYou.length ? '(!) ' : '') + (count || !Conf['Hide Unread Count at (0)'] ? "(" + count + ") " : '') + (g.DEAD ? "/" + g.BOARD + "/ - 404" : "" + Unread.title); @@ -10019,7 +9656,6 @@ }, init: function() { var archive, boardID, boards, data, id, name, type, _i, _len, _ref, _ref1, _ref2; - _ref = Conf['selectedArchives']; for (boardID in _ref) { data = _ref[boardID]; @@ -10144,7 +9780,6 @@ }, to: function(dest, data) { var archive; - archive = (dest === 'search' ? Redirect.data.thread : Redirect.data[dest])[data.boardID]; if (!archive) { return ''; @@ -10153,7 +9788,6 @@ }, protocol: function(archive) { var protocol; - protocol = location.protocol; if (!archive[protocol.slice(0, -1)]) { protocol = protocol === 'https:' ? 'http:' : 'https:'; @@ -10162,7 +9796,6 @@ }, thread: function(archive, _arg) { var boardID, path, postID, threadID; - boardID = _arg.boardID, threadID = _arg.threadID, postID = _arg.postID; path = threadID ? "" + boardID + "/thread/" + threadID : "" + boardID + "/post/" + postID; if (archive.software === 'foolfuuka') { @@ -10175,7 +9808,6 @@ }, post: function(archive, _arg) { var URL, boardID, postID; - boardID = _arg.boardID, postID = _arg.postID; URL = new String("" + (Redirect.protocol(archive)) + archive.domain + "/_/api/chan/post/?board=" + boardID + "&num=" + postID); URL.archive = archive; @@ -10183,13 +9815,11 @@ }, file: function(archive, _arg) { var boardID, filename; - boardID = _arg.boardID, filename = _arg.filename; return "" + (Redirect.protocol(archive)) + archive.domain + "/" + boardID + "/full_image/" + filename; }, search: function(archive, _arg) { var boardID, path, type, value; - boardID = _arg.boardID, type = _arg.type, value = _arg.value; type = type === 'name' ? 'username' : type === 'MD5' ? 'image' : type; value = encodeURIComponent(value); @@ -10208,7 +9838,6 @@ }, setup: function() { var btn, entry, psa; - $.off(d, '4chanXInitFinished', PSAHiding.setup); if (!(psa = $.id('globalMessage'))) { $.rmClass(doc, 'hide-announcement'); @@ -10237,7 +9866,6 @@ $.on(btn, 'click', PSAHiding.toggle); $.get('hiddenPSA', 0, function(_arg) { var hiddenPSA; - hiddenPSA = _arg.hiddenPSA; PSAHiding.sync(hiddenPSA); $.before(psa, btn); @@ -10247,7 +9875,6 @@ }, toggle: function(e) { var UTC; - if ($.hasClass(this, 'hide-announcement')) { UTC = +$.id('globalMessage').dataset.utc; $.set('hiddenPSA', UTC); @@ -10259,7 +9886,6 @@ }, sync: function(UTC) { var hr, psa; - psa = $.id('globalMessage'); psa.hidden = PSAHiding.btn.hidden = UTC && UTC >= +psa.dataset.utc ? true : false; if ((hr = psa.nextElementSibling) && hr.nodeName === 'HR') { @@ -10280,7 +9906,6 @@ }, ready: function() { var banner, child, children, i; - banner = $(".boardBanner"); children = banner.children; i = 0; @@ -10300,7 +9925,6 @@ cb: { toggle: (function() { var types; - types = { jpg: 227, png: 270, @@ -10308,7 +9932,6 @@ }; return function() { var num, type; - type = Object.keys(types)[Math.floor(3 * Math.random())]; num = Math.floor(types[type] * Math.random()); return this.src = "//static.4chan.org/image/title/" + num + "." + type; @@ -10328,7 +9951,6 @@ }, focus: function() { var items, string, string2; - this.textContent = this.innerHTML; string = "" + g.BOARD + "." + this.className; string2 = "" + string + ".orig"; @@ -10351,7 +9973,6 @@ }, custom: function(child) { var cachedTest, string; - cachedTest = child.innerHTML; string = "" + g.BOARD + "." + child.className; $.on(child, 'click keydown focus blur', function(e) { @@ -10359,7 +9980,6 @@ }); $.get(string, cachedTest, function(item) { var string2, title; - if (!(title = item[string])) { return; } @@ -10383,7 +10003,6 @@ CatalogLinks = { init: function() { var el, input; - if (!Conf['Catalog Links']) { return; } @@ -10411,7 +10030,6 @@ }, set: function(useCatalog) { var a, board, generateURL, path, _i, _len, _ref, _ref1; - path = useCatalog ? 'catalog' : ''; generateURL = useCatalog && Conf['External Catalog'] ? CatalogLinks.external : function(board) { return a.href = "/" + board + "/" + path; @@ -10526,7 +10144,6 @@ }, node: function() { var dicestats, roll, _ref; - if (this.isClone || !(dicestats = (_ref = this.info.email) != null ? _ref.match(/dice[+\s](\d+)d(\d+)/) : void 0)) { return; } @@ -10538,7 +10155,6 @@ Emoji = { init: function() { var css, icon, name, pos, _ref; - if (!Conf['Emoji']) { return; } @@ -10609,7 +10225,6 @@ }, node: function() { var a; - if (a = $('.abbr > a:not([onclick])', this.nodes.comment)) { return $.on(a, 'click', ExpandComment.cb); } @@ -10621,7 +10236,6 @@ }, expand: function(post) { var a; - if (post.nodes.longComment && !post.nodes.longComment.parentNode) { $.replace(post.nodes.shortComment, post.nodes.longComment); post.nodes.comment = post.nodes.longComment; @@ -10637,7 +10251,6 @@ }, contract: function(post) { var a; - if (!post.nodes.shortComment) { return; } @@ -10648,7 +10261,6 @@ }, parse: function(req, a, post) { var callback, clone, comment, href, postObj, posts, quote, spoilerRange, status, _i, _j, _k, _len, _len1, _len2, _ref, _ref1; - status = req.status; if (status !== 200 && status !== 304) { a.textContent = "Error " + req.statusText + " (" + status + ")"; @@ -10703,7 +10315,6 @@ }, setButton: function(thread) { var a; - if (!(a = $.x('following-sibling::a[contains(@class,"summary")][1]', thread.OP.nodes.root))) { return; } @@ -10712,7 +10323,6 @@ }, onIndexRefresh: function() { var status, thread, threadID, _ref, _ref1, _ref2; - _ref = ExpandThread.statuses; for (threadID in _ref) { status = _ref[threadID]; @@ -10739,7 +10349,6 @@ }, toggle: function(thread) { var a, threadRoot; - threadRoot = thread.OP.nodes.root.parentNode; if (!(a = $('.summary', threadRoot))) { return; @@ -10752,7 +10361,6 @@ }, expand: function(thread, a, threadRoot) { var status; - ExpandThread.statuses[thread] = status = {}; a.textContent = ExpandThread.text.apply(ExpandThread, ['...'].concat(__slice.call(a.textContent.match(/\d+/g)))); return status.req = $.cache("//a.4cdn.org/" + thread.board + "/res/" + thread + ".json", function() { @@ -10762,7 +10370,6 @@ }, contract: function(thread, a, threadRoot) { var filesCount, inlined, num, postsCount, replies, reply, status, _i, _len; - status = ExpandThread.statuses[thread]; delete ExpandThread.statuses[thread]; if (status.req) { @@ -10810,7 +10417,6 @@ }, parse: function(req, thread, a) { var data, filesCount, post, postData, posts, postsCount, postsRoot, root, _i, _len, _ref; - if ((_ref = req.status) !== 200 && _ref !== 304) { a.textContent = "Error " + req.statusText + " (" + req.status + ")"; return; @@ -10864,7 +10470,6 @@ }, createFunc: function(format) { var code; - code = format.replace(/%(.)/g, function(s, c) { if (c in FileInfo.formatters) { return "' + FileInfo.formatters." + c + ".call(post) + '"; @@ -10876,7 +10481,6 @@ }, convertUnit: function(size, unit) { var i; - if (unit === 'B') { return "" + (size.toFixed()) + " Bytes"; } @@ -10907,7 +10511,6 @@ }, n: function() { var fullname, shortname; - fullname = this.file.name; shortname = Build.shortFilename(this.file.name, this.isReply); if (fullname === shortname) { @@ -10951,7 +10554,6 @@ Fourchan = { init: function() { var board; - if (g.VIEW === 'catalog') { return; } @@ -10973,7 +10575,6 @@ }, code: function() { var apply, pre, _i, _len, _ref; - if (this.isClone) { return; } @@ -11016,7 +10617,6 @@ }, node: function() { var rgb, span, style, uid; - if (this.isClone || !(uid = this.info.uniqueID)) { return; } @@ -11033,7 +10633,6 @@ }, compute: function(uid) { var hash, rgb; - if (IDColor.ids[uid]) { return IDColor.ids[uid]; } @@ -11044,7 +10643,6 @@ }, hash: function(uid) { var i, msg; - msg = 0; i = 0; while (i < 8) { @@ -11069,7 +10667,6 @@ }, scroll: $.debounce(100, function() { var url; - if (InfiniScroll.isFetching || ((d.body.scrollTop || doc.scrollTop) <= doc.scrollHeight - (300 + window.innerHeight))) { return; } @@ -11090,7 +10687,6 @@ }), parse: function(response) { var botPostForm, el, nodes, omitted_images, omitted_posts, op, post, postlink, posts, replylink, thread, threadID, threadNodes, threads, _i, _j, _len, _len1, _ref; - threads = InfiniScroll.parsePages(response); threadNodes = []; nodes = []; @@ -11149,7 +10745,6 @@ }, parsePages: function(response) { var newThreads, number, page, pages, thread, threads, _i, _len; - pages = JSON.parse(response); newThreads = []; for (number in pages) { @@ -11173,7 +10768,6 @@ }, features: function(threadNodes) { var err, errors, post, posts, thread, threadRoot, threads, _i, _j, _len, _len1, _ref; - posts = []; threads = []; for (_i = 0, _len = threadNodes.length; _i < _len; _i++) { @@ -11205,7 +10799,6 @@ }, notice: (function() { var notify, reset; - notify = false; reset = function() { return notify = false; @@ -11235,7 +10828,6 @@ Keybinds = { init: function() { var hotkey, init; - if (g.VIEW === 'catalog' || !Conf['Keybinds']) { return; } @@ -11244,7 +10836,6 @@ } init = function() { var node, _i, _len, _ref; - $.off(d, '4chanXInitFinished', init); $.on(d, 'keydown', Keybinds.keydown); _ref = $$('[accesskey]'); @@ -11260,7 +10851,6 @@ }, keydown: function(e) { var key, notification, notifications, op, target, thread, threadRoot, _i, _len, _ref; - if (!(key = Keybinds.keyCode(e))) { return; } @@ -11454,7 +11044,6 @@ }, keyCode: function(e) { var kc, key; - key = (function() { switch (kc = e.keyCode) { case 8: @@ -11510,7 +11099,6 @@ }, tags: function(tag, ta) { var range, selEnd, selStart, value; - value = ta.value; selStart = ta.selectionStart; selEnd = ta.selectionEnd; @@ -11521,13 +11109,11 @@ }, sage: function() { var isSage; - isSage = /sage/i.test(QR.nodes.email.value); return QR.nodes.email.value = isSage ? "" : "sage"; }, img: function(thread, all) { var post; - if (all) { return ImageExpand.cb.toggleAll(); } else { @@ -11537,7 +11123,6 @@ }, open: function(thread, tab) { var url; - if (g.VIEW !== 'index') { return; } @@ -11550,7 +11135,6 @@ }, hl: function(delta, thread) { var axis, height, next, postEl, replies, reply, root, _i, _len; - postEl = $('.reply.highlight', thread); if (!delta) { if (postEl) { @@ -11593,7 +11177,6 @@ Nav = { init: function() { var append, next, prev, span; - switch (g.VIEW) { case 'index': if (!Conf['Index Navigation']) { @@ -11644,7 +11227,6 @@ }, getThread: function() { var thread, threadRoot, _i, _len, _ref; - _ref = $$('.thread'); for (_i = 0, _len = _ref.length; _i < _len; _i++) { threadRoot = _ref[_i]; @@ -11660,7 +11242,6 @@ }, scroll: function(delta) { var axis, next, thread, top; - thread = Nav.getThread(); axis = delta === +1 ? 'following' : 'preceding'; if (next = $.x("" + axis + "-sibling::div[contains(@class,'thread') and not(@hidden)][1]", thread)) { @@ -11703,7 +11284,6 @@ }, node: function() { var dateEl; - if (this.isClone) { return; } @@ -11713,7 +11293,6 @@ }, relative: function(diff, now, date) { var days, months, number, rounded, unit, years; - unit = (number = diff / $.DAY) >= 1 ? (years = now.getYear() - date.getYear(), months = now.getMonth() - date.getMonth(), days = now.getDate() - date.getDate(), years > 1 ? (number = years - (months < 0 || months === 0 && days < 0), 'year') : years === 1 && (months > 0 || months === 0 && days >= 0) ? (number = years, 'year') : (months = (months + 12) % 12) > 1 ? (number = months - (days < 0), 'month') : months === 1 && days >= 0 ? (number = months, 'month') : 'day') : (number = diff / $.HOUR) >= 1 ? 'hour' : (number = diff / $.MINUTE) >= 1 ? 'minute' : (number = Math.max(0, diff) / $.SECOND, 'second'); rounded = Math.round(number); if (rounded !== 1) { @@ -11724,7 +11303,6 @@ stale: [], flush: function() { var data, now, _i, _len, _ref; - if (d.hidden) { return; } @@ -11740,7 +11318,6 @@ }, update: function(data, now) { var date, diff, isPost, relative, singlePost, _i, _len, _ref; - isPost = data instanceof Post; date = isPost ? data.info.date : new Date(+data.dataset.utc); now || (now = new Date()); @@ -11759,7 +11336,6 @@ }, setOwnTimeout: function(diff, data) { var delay; - delay = diff < $.MINUTE ? $.SECOND - (diff + $.SECOND / 2) % $.SECOND : diff < $.HOUR ? $.MINUTE - (diff + $.MINUTE / 2) % $.MINUTE : diff < $.DAY ? $.HOUR - (diff + $.HOUR / 2) % $.HOUR : $.DAY - (diff + $.DAY / 2) % $.DAY; return setTimeout(RelativeDates.markStale, delay, data); }, @@ -11797,7 +11373,6 @@ }, node: function(post) { var spoiler, spoilers, _i, _len; - spoilers = $$('s', this.nodes.comment); for (_i = 0, _len = spoilers.length; _i < _len; _i++) { spoiler = spoilers[_i]; @@ -11817,7 +11392,6 @@ }, ready: function() { var field; - field = $.id('recaptcha_response_field'); $.on(field, 'keydown', function(e) { if (e.keyCode === 8 && !field.value) { @@ -11826,7 +11400,6 @@ }); return $.on($('form'), 'submit', function(e) { var response; - e.preventDefault(); response = field.value.trim(); if (!/\s/.test(response)) { @@ -11856,7 +11429,6 @@ }, createFunc: function(format) { var code; - code = format.replace(/%([A-Za-z])/g, function(s, c) { if (c in Time.formatters) { return "' + Time.formatters." + c + ".call(date) + '"; @@ -11941,7 +11513,6 @@ Settings = { init: function() { var link, settings; - link = $.el('a', { className: 'settings-link fa fa-wrench', textContent: 'Settings', @@ -11951,7 +11522,6 @@ Header.addShortcut(link); $.get('previousversion', null, function(item) { var changelog, el, previous; - if (previous = item['previousversion']) { if (previous === g.VERSION) { return; @@ -11986,7 +11556,6 @@ }, open: function(openSection) { var dialog, html, link, links, overlay, section, sectionToOpen, _i, _len, _ref; - $.off(d, '4chanXInitFinished', Settings.open); if (Settings.dialog) { return; @@ -12039,7 +11608,6 @@ sections: [], addSection: function(title, open) { var hyphenatedTitle, _ref; - if (typeof title !== 'string') { _ref = title.detail, title = _ref.title, open = _ref.open; } @@ -12052,7 +11620,6 @@ }, openSection: function() { var section, selected; - if (selected = $('.tab-selected', Settings.dialog)) { $.rmClass(selected, 'tab-selected'); } @@ -12066,7 +11633,6 @@ }, main: function(section) { var arr, button, description, div, fs, hiddenNum, input, inputs, items, key, obj, _ref; - items = {}; inputs = {}; _ref = Config.main; @@ -12091,7 +11657,6 @@ } $.get(items, function(items) { var val; - for (key in items) { val = items[key]; inputs[key].checked = val; @@ -12106,7 +11671,6 @@ boards: {} }, function(item) { var ID, board, thread, _ref1; - _ref1 = item.hiddenThreads.boards; for (ID in _ref1) { board = _ref1[ID]; @@ -12121,7 +11685,6 @@ boards: {} }, function(item) { var ID, board, post, thread, _ref1; - _ref1 = item.hiddenPosts.boards; for (ID in _ref1) { board = _ref1[ID]; @@ -12141,7 +11704,6 @@ boards: {} }, function(item) { var boardID; - for (boardID in item.hiddenThreads.boards) { localStorage.removeItem("4chan-hide-t-" + boardID); } @@ -12152,7 +11714,6 @@ }, "export": function(now, data) { var a, db, _i, _len, _ref; - if (typeof now !== 'number') { now = Date.now(); data = { @@ -12187,7 +11748,6 @@ }, onImport: function() { var file, output, reader; - if (!(file = this.files[0])) { return; } @@ -12199,7 +11759,6 @@ reader = new FileReader(); reader.onload = function(e) { var data, err; - try { data = JSON.parse(e.target.result); Settings.loadSettings(data); @@ -12216,7 +11775,6 @@ }, loadSettings: function(data) { var key, val, version, _ref; - version = data.version.split('.'); if (version[0] === '2') { data = Settings.convertSettings(data, { @@ -12304,7 +11862,6 @@ }, convertSettings: function(data, map) { var newKey, prevKey; - for (prevKey in map) { newKey = map[prevKey]; if (newKey) { @@ -12316,7 +11873,6 @@ }, filter: function(section) { var select; - section.innerHTML = "
"; select = $('select', section); $.on(select, 'change', Settings.selectFilter); @@ -12324,7 +11880,6 @@ }, selectFilter: function() { var div, name, ta; - div = this.nextElementSibling; if ((name = this.value) !== 'guide') { $.rmAll(div); @@ -12344,7 +11899,6 @@ }, sauce: function(section) { var ta; - section.innerHTML = "
Sauce is disabled.
Lines starting with a # will be ignored.
You can specify a display text by appending ;text:[text] to the URL.
"; ta = $('textarea', section); $.get('sauces', Conf['sauces'], function(item) { @@ -12354,7 +11908,6 @@ }, advanced: function(section) { var archive, boardID, boardOptions, boardSelect, boards, data, event, input, inputs, item, items, name, row, rows, ta, table, _i, _j, _k, _l, _len, _len1, _len2, _len3, _ref, _ref1, _ref2, _ref3, _ref4; - section.innerHTML = "
Archiver
404 Redirect is disabled.
Thread redirectionPost fetchingFile redirection
Disabled selections indicate that only one archive is available for that board and redirection type.
Custom Board Navigation
New lines will be converted into spaces.

In the following examples for /g/, g can be changed to a different board ID (a, b, etc...), the current board (current), or the Twitter link (@).
Board link: g
Title link: g-title
Board link (Replace with title when on that board): g-replace
Full text link: g-full
Custom text link: g-text:\"Install Gentoo\"
Index-only link: g-index
Catalog-only link: g-catalog
External link: external-text:\"Google\",\"http://www.google.com\"
Combinations are possible: g-index-text:\"Technology Index\"
Full board list toggle: toggle-all

[ toggle-all ] [current-title] [g-title / a-title / jp-title] [x / wsg / h] [t-text:\"Piracy\"]
will give you
[ + ] [Technology] [Technology / Anime & Manga / Otaku Culture] [x / wsg / h] [Piracy]
if you are on /g/.
Time Formatting is disabled.
:
Supported format specifiers:
Day: %a, %A, %d, %e
Month: %m, %b, %B
Year: %y, %Y
Hour: %k, %H, %l, %I, %p, %P
Minute: %M
Second: %S
Quote Backlinks formatting is disabled.
:
File Info Formatting is disabled.
:
Link: %l (truncated), %L (untruncated), %T (Unix timestamp)
Original file name: %n (truncated), %N (untruncated), %t (Unix timestamp)
Spoiler indicator: %p
Size: %B (Bytes), %K (KB), %M (MB), %s (4chan default)
Resolution: %r (Displays 'PDF' for PDF files)
Quick Reply Personas is disabled.

One item per line.
Items will be added in the relevant input's auto-completion list.
Password items will always be used, since there is no password input.
Lines starting with a # will be ignored.

    You can use these settings with each item, separate them with semicolons:
  • Possible items are: name, email, subject and password.
  • Wrap values of items with quotes, like this: email:\"sage\".
  • Force values as defaults with the always keyword, for example: email:\"sage\";always.
  • Select specific boards for an item, separated with commas, for example: email:\"sage\";boards:jp;always.
Unread Favicon is disabled.
Emoji is disabled.
Sage Icon:
Position:
Thread Updater is disabled.
Interval:
"; items = {}; inputs = {}; @@ -12374,7 +11927,6 @@ $.on(ta, 'change', $.cb.value); $.get(items, function(items) { var key, val; - for (key in items) { val = items[key]; if (key === 'emojiPos') { @@ -12445,7 +11997,6 @@ }); $.get('selectedArchives', Conf['selectedArchives'], function(_arg) { var option, selectedArchives, type; - selectedArchives = _arg.selectedArchives; for (boardID in selectedArchives) { data = selectedArchives[boardID]; @@ -12460,7 +12011,6 @@ }, addArchiveCell: function(boardID, data, type) { var archive, i, length, options, select, td; - length = data[type].length; td = $.el('td', { className: 'archive-cell' @@ -12490,10 +12040,8 @@ }, saveSelectedArchive: function() { var _this = this; - return $.get('selectedArchives', Conf['selectedArchives'], function(_arg) { var selectedArchives, _name; - selectedArchives = _arg.selectedArchives; (selectedArchives[_name = _this.dataset.boardid] || (selectedArchives[_name] = {}))[_this.dataset.type] = _this.value; return $.set('selectedArchives', selectedArchives); @@ -12504,7 +12052,6 @@ }, time: function() { var funk; - funk = Time.createFunc(this.value); return this.nextElementSibling.textContent = funk(Time, new Date()); }, @@ -12513,7 +12060,6 @@ }, fileInfo: function() { var data, funk; - data = { isReply: true, file: { @@ -12552,7 +12098,6 @@ }, keybinds: function(section) { var arr, input, inputs, items, key, tbody, tr, _ref; - section.innerHTML = "
Keybinds are disabled.
Allowed keys: a-z, 0-9, Ctrl, Shift, Alt, Meta, Enter, Esc, Up, Down, Right, Left.
Press Backspace to disable a keybind.
ActionsKeybinds
"; tbody = $('tbody', section); items = {}; @@ -12573,7 +12118,6 @@ } return $.get(items, function(items) { var val; - for (key in items) { val = items[key]; inputs[key].value = val; @@ -12582,7 +12126,6 @@ }, keybind: function(e) { var key; - if (e.keyCode === 9) { return; } @@ -12599,10 +12142,8 @@ Main = { init: function() { var db, flatten, _i, _len, _ref; - flatten = function(parent, obj) { var key, val; - if (obj instanceof Array) { Conf[parent] = obj[0]; } else if (typeof obj === 'object') { @@ -12635,7 +12176,6 @@ }, initFeatures: function() { var init, pathname, _ref; - pathname = location.pathname.split('/'); g.BOARD = new Board(pathname[1]); if ((_ref = g.BOARD.ID) === 'z' || _ref === 'fk') { @@ -12663,7 +12203,6 @@ case 'i.4cdn.org': $.ready(function() { var URL, _ref1; - if (Conf['404 Redirect'] && ((_ref1 = d.title) === '4chan - Temporarily Offline' || _ref1 === '4chan - 404 Not Found')) { Redirect.init(); pathname = location.pathname.split('/'); @@ -12680,7 +12219,6 @@ } init = function(features) { var err, module, name; - for (name in features) { module = features[name]; try { @@ -12761,7 +12299,6 @@ }, initStyle: function() { var mainStyleSheet, setStyle, style, styleSheets, _ref; - $.off(d, '4chanMainInit', Main.initStyle); if (!Main.isThisPageLegit() || $.hasClass(doc, 'fourchan-x')) { return; @@ -12783,7 +12320,6 @@ styleSheets = $$('link[rel="alternate stylesheet"]', d.head); setStyle = function() { var styleSheet, _i, _len; - $.rmClass(doc, style); for (_i = 0, _len = styleSheets.length; _i < _len; _i++) { styleSheet = styleSheets[_i]; @@ -12805,7 +12341,6 @@ }, initReady: function() { var err, errors, href, passLink, post, postRoot, posts, styleSelector, thread, threadRoot, _i, _len, _ref, _ref1; - if ((_ref = d.title) === '4chan - Temporarily Offline' || _ref === '4chan - 404 Not Found') { if (Conf['404 Redirect'] && g.VIEW === 'thread') { href = Redirect.to('thread', { @@ -12868,7 +12403,6 @@ }, callbackNodes: function(klass, nodes) { var callback, err, errors, i, len, node, _i, _len, _ref; - len = nodes.length; _ref = klass.callbacks; for (_i = 0, _len = _ref.length; _i < _len; _i++) { @@ -12896,12 +12430,10 @@ }, callbackNodesDB: function(klass, nodes, cb) { var errors, func, i, len, node, queue, softTask; - queue = []; errors = null; func = function(node) { var callback, err, _i, _len, _ref; - _ref = klass.callbacks; for (_i = 0, _len = _ref.length; _i < _len; _i++) { callback = _ref[_i]; @@ -12929,7 +12461,6 @@ }; softTask = function() { var node; - node = queue.shift(); func(node); if (!queue.length) { @@ -12951,7 +12482,6 @@ }, addCallback: function(e) { var Klass, obj; - obj = e.detail; if (typeof obj.callback.name !== 'string') { throw new Error("Invalid callback name: " + obj.callback.name); @@ -12971,7 +12501,6 @@ }, handleErrors: function(errors) { var div, error, logs, _i, _len; - if (!(errors instanceof Array)) { error = errors; } else if (errors.length === 1) { @@ -12986,7 +12515,6 @@ }); $.on(div.lastElementChild, 'click', function() { var _ref; - return _ref = this.textContent === 'show' ? ['hide', false] : ['show', true], this.textContent = _ref[0], logs.hidden = _ref[1], _ref; }); logs = $.el('div', { @@ -13000,7 +12528,6 @@ }, parseError: function(data) { var error, message; - c.error(data.message, data.error.stack); message = $.el('div', { textContent: data.message @@ -13012,7 +12539,6 @@ }, isThisPageLegit: function() { var _ref; - if (!('thisPageIsLegit' in Main)) { Main.thisPageIsLegit = location.hostname === 'boards.4chan.org' && !$('link[href*="favicon-status.ico"]', d.head) && ((_ref = d.title) !== '4chan - Temporarily Offline' && _ref !== '4chan - Error' && _ref !== '504 Gateway Time-out'); } From a51e1455f70a46552a0bfc68fdb73e4e6addaeb9 Mon Sep 17 00:00:00 2001 From: Zixaphir Date: Thu, 26 Dec 2013 16:05:17 -0700 Subject: [PATCH 3/3] Update minimum browser versions to latest stable versions --- builds/4chan-X.meta.js | 4 ++-- builds/4chan-X.user.js | 8 ++++---- builds/crx/manifest.json | 2 +- package.json | 6 +++--- 4 files changed, 10 insertions(+), 10 deletions(-) diff --git a/builds/4chan-X.meta.js b/builds/4chan-X.meta.js index 6a0df7b5d..e292df866 100755 --- a/builds/4chan-X.meta.js +++ b/builds/4chan-X.meta.js @@ -1,8 +1,8 @@ // ==UserScript== // @name 4chan X // @version 1.2.44 -// @minGMVer 1.12 -// @minFFVer 22 +// @minGMVer 1.13 +// @minFFVer 26 // @namespace 4chan-X // @description Cross-browser userscript for maximum lurking on 4chan. // @license MIT; https://github.com/seaweedchan/4chan-x/blob/master/LICENSE diff --git a/builds/4chan-X.user.js b/builds/4chan-X.user.js index 06b3ddda6..ec263c02b 100644 --- a/builds/4chan-X.user.js +++ b/builds/4chan-X.user.js @@ -2,8 +2,8 @@ // ==UserScript== // @name 4chan X // @version 1.2.44 -// @minGMVer 1.12 -// @minFFVer 22 +// @minGMVer 1.13 +// @minFFVer 26 // @namespace 4chan-X // @description Cross-browser userscript for maximum lurking on 4chan. // @license MIT; https://github.com/seaweedchan/4chan-x/blob/master/LICENSE @@ -12392,7 +12392,7 @@ return; } GMver = GM_info.version.split('.'); - _ref2 = "1.12".split('.'); + _ref2 = "1.13".split('.'); for (i = _j = 0, _len1 = _ref2.length; _j < _len1; i = ++_j) { v = _ref2[i]; if (v < GMver[i]) { @@ -12401,7 +12401,7 @@ if (v === GMver[i]) { continue; } - new Notice('warning', "Your version of Greasemonkey is outdated (v" + GM_info.version + " instead of v1.12 minimum) and 4chan X may not operate correctly.", 30); + new Notice('warning', "Your version of Greasemonkey is outdated (v" + GM_info.version + " instead of v1.13 minimum) and 4chan X may not operate correctly.", 30); break; } try { diff --git a/builds/crx/manifest.json b/builds/crx/manifest.json index bf3059c61..8cb28d86f 100755 --- a/builds/crx/manifest.json +++ b/builds/crx/manifest.json @@ -15,7 +15,7 @@ "run_at": "document_start" }], "homepage_url": "http://seaweedchan.github.io/4chan-x/", - "minimum_chrome_version": "29", + "minimum_chrome_version": "31", "permissions": [ "storage" ] diff --git a/package.json b/package.json index 24bfdce1a..e9a2ba7da 100755 --- a/package.json +++ b/package.json @@ -19,9 +19,9 @@ "userjs": "4chan-X.user.js" }, "min": { - "chrome": "29", - "firefox": "22", - "greasemonkey": "1.12" + "chrome": "31", + "firefox": "26", + "greasemonkey": "1.13" } }, "devDependencies": {