diff --git a/CHANGELOG.md b/CHANGELOG.md index 9a8546db6..5e54771c5 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -4,6 +4,9 @@ Sometimes the changelog has notes (not comprehensive) acknowledging people's wor ### v1.11.29 +**v1.11.29.5** *(2016-04-02)* - [[Firefox](https://raw.githubusercontent.com/ccd0/4chan-x/1.11.29.5/builds/4chan-X-noupdate.user.js "Firefox version")] [[Chromium](https://raw.githubusercontent.com/ccd0/4chan-x/1.11.29.5/builds/4chan-X-noupdate.crx "Chromium version")] +- Remove upvotes. + **v1.11.29.4** *(2016-04-01)* - [[Firefox](https://raw.githubusercontent.com/ccd0/4chan-x/1.11.29.4/builds/4chan-X-noupdate.user.js "Firefox version")] [[Chromium](https://raw.githubusercontent.com/ccd0/4chan-x/1.11.29.4/builds/4chan-X-noupdate.crx "Chromium version")] - Fix image expansion under current 4chan theme. diff --git a/builds/4chan-X-beta.crx b/builds/4chan-X-beta.crx index 369ebfe42..ead0a65e9 100644 Binary files a/builds/4chan-X-beta.crx and b/builds/4chan-X-beta.crx differ diff --git a/builds/4chan-X-beta.meta.js b/builds/4chan-X-beta.meta.js index 4efed5424..8d46701c6 100644 --- a/builds/4chan-X-beta.meta.js +++ b/builds/4chan-X-beta.meta.js @@ -1,6 +1,6 @@ // ==UserScript== // @name 4chan X beta -// @version 1.11.29.4 +// @version 1.11.29.5 // @minGMVer 1.14 // @minFFVer 26 // @namespace 4chan-X diff --git a/builds/4chan-X-beta.user.js b/builds/4chan-X-beta.user.js index 87d618a4f..165e50f2b 100644 --- a/builds/4chan-X-beta.user.js +++ b/builds/4chan-X-beta.user.js @@ -1,7 +1,7 @@ // Generated by CoffeeScript // ==UserScript== // @name 4chan X beta -// @version 1.11.29.4 +// @version 1.11.29.5 // @minGMVer 1.14 // @minFFVer 26 // @namespace 4chan-X @@ -119,7 +119,7 @@ 'use strict'; (function() { - var $, $$, Anonymize, AntiAutoplay, ArchiveLink, Banner, Board, Build, Callbacks, Captcha, CatalogLinks, CatalogThread, Clone, Conf, Config, Connection, CrossOrigin, CustomCSS, DataBoard, DeleteLink, DownloadLink, E, Embedding, ExpandComment, ExpandThread, FappeTyme, Favicon, Fetcher, FileInfo, Filter, Flash, Fourchan, Gallery, Get, Header, IDColor, IDHighlight, ImageCommon, ImageExpand, ImageHover, ImageLoader, Index, Keybinds, Linkify, Main, MarkNewIPs, Menu, Metadata, Nav, NormalizeURL, Notice, PSAHiding, PassLink, Polyfill, Post, PostHiding, PostSuccessful, PruneReplies, QR, QuoteBacklink, QuoteCT, QuoteInline, QuoteOP, QuotePreview, QuoteStrikeThrough, QuoteThreading, QuoteYou, Quotify, RandomAccessList, Recursive, Redirect, RelativeDates, RemoveSpoilers, Report, ReportLink, RevealSpoilers, Sauce, Settings, ShimSet, SimpleDict, Thread, ThreadExcerpt, ThreadHiding, ThreadLinks, ThreadStats, ThreadUpdater, ThreadWatcher, Time, UI, Unread, Upvotes, Volume, c, d, doc, g, + var $, $$, Anonymize, AntiAutoplay, ArchiveLink, Banner, Board, Build, Callbacks, Captcha, CatalogLinks, CatalogThread, Clone, Conf, Config, Connection, CrossOrigin, CustomCSS, DataBoard, DeleteLink, DownloadLink, E, Embedding, ExpandComment, ExpandThread, FappeTyme, Favicon, Fetcher, FileInfo, Filter, Flash, Fourchan, Gallery, Get, Header, IDColor, IDHighlight, ImageCommon, ImageExpand, ImageHover, ImageLoader, Index, Keybinds, Linkify, Main, MarkNewIPs, Menu, Metadata, Nav, NormalizeURL, Notice, PSAHiding, PassLink, Polyfill, Post, PostHiding, PostSuccessful, PruneReplies, QR, QuoteBacklink, QuoteCT, QuoteInline, QuoteOP, QuotePreview, QuoteStrikeThrough, QuoteThreading, QuoteYou, Quotify, RandomAccessList, Recursive, Redirect, RelativeDates, RemoveSpoilers, Report, ReportLink, RevealSpoilers, Sauce, Settings, ShimSet, SimpleDict, Thread, ThreadExcerpt, ThreadHiding, ThreadLinks, ThreadStats, ThreadUpdater, ThreadWatcher, Time, UI, Unread, Volume, c, d, doc, g, slice = [].slice, indexOf = [].indexOf || function(item) { for (var i = 0, l = this.length; i < l; i++) { if (i in this && this[i] === item) return i; } return -1; }, extend = function(child, parent) { for (var key in parent) { if (hasProp.call(parent, key)) child[key] = parent[key]; } function ctor() { this.constructor = child; } ctor.prototype = parent.prototype; child.prototype = new ctor(); child.__super__ = parent.prototype; return child; }, @@ -270,8 +270,7 @@ 'Highlight Own Posts': [true, 'Highlights own posts.', 1], 'Mark OP Quotes': [true, 'Add \'(OP)\' to OP quotes.'], 'Mark Cross-thread Quotes': [true, 'Add \'(Cross-thread)\' to cross-threads quotes.'], - 'Quote Threading': [false, 'Thread conversations'], - 'Upvotes': [true, 'Upvote posts.'] + 'Quote Threading': [false, 'Thread conversations'] } }, imageExpansion: { @@ -432,8 +431,7 @@ pruneReplies: { 'Prune Replies': false, 'Max Replies': 1000 - }, - upvoteText: '' + } }; Conf = {}; @@ -445,7 +443,7 @@ doc = d.documentElement; g = { - VERSION: '1.11.29.4', + VERSION: '1.11.29.5', NAMESPACE: '4chan X.', boards: {} }; @@ -7114,103 +7112,6 @@ } }; - Upvotes = { - count: {}, - text: '\u305D\u3046\u3060\u306D', - regexp: /(?:^>.*\n)+(?:i|top|holy|shit|ay*|oh?|omg|god|jesus|christ|fuck|fukken|fucking?|\s|[.,-])*(?:\u305D\u3046\u3060\u306D|this(?! )|\+1|upvote(?! )d?|under[ -]?rated|\/thread|10\/10|(?:lol|kek|lel|lmao)(?:'?d|[.!]?$)|(?:ha)+[.!]?$|saved|nice(?! )|my sides)(?=\b|\W|$)/gmi, - init: function() { - var ref; - if (!(((ref = g.VIEW) === 'thread' || ref === 'index') && Conf['Upvotes'])) { - return; - } - return Post.callbacks.push({ - name: 'Upvotes', - cb: this.node - }); - }, - node: function() { - var a, context, k, len1, len2, q, quote, quotes, ref, ref1, ref2, results; - if (this.isFetchedQuote || ((ref = this.origin) != null ? ref.isFetchedQuote : void 0)) { - return; - } - if (this.isClone) { - this.nodes.vote = $('.upvote', this.nodes.info); - $.on(this.nodes.vote, 'click', Upvotes.vote); - return; - } - a = $.el('a', { - className: 'upvote', - href: 'javascript:;', - textContent: '+' - }); - $.add(this.nodes.info, a); - this.nodes.vote = a; - $.on(a, 'click', Upvotes.vote); - if (g.VIEW !== 'thread') { - return; - } - Upvotes.count[this.fullID] = 0; - quotes = {}; - ref1 = this.info.comment.match(Upvotes.regexp) || []; - for (k = 0, len1 = ref1.length; k < len1; k++) { - context = ref1[k]; - ref2 = context.match(/>>\d+/g) || []; - for (q = 0, len2 = ref2.length; q < len2; q++) { - quote = ref2[q]; - quotes[quote.slice(2)] = true; - } - } - results = []; - for (quote in quotes) { - results.push(Upvotes.increment(g.BOARD + "." + quote)); - } - return results; - }, - increment: function(fullID) { - var count, k, len1, post, ref; - if (!(fullID in Upvotes.count)) { - return; - } - count = ++Upvotes.count[fullID]; - post = g.posts[fullID]; - ref = [post].concat(slice.call(post.clones)); - for (k = 0, len1 = ref.length; k < len1; k++) { - post = ref[k]; - post.nodes.vote.textContent = Upvotes.text + "x" + count; - } - }, - vote: function() { - var com, pos, text; - if (!QR.postingIsEnabled) { - return; - } - if (QR.nodes) { - $.off(QR.nodes.com, 'input', Upvotes.setText); - } - QR.quote.call(this); - com = QR.nodes.com; - text = Conf['upvoteText'] + "\n"; - pos = com.selectionStart; - Upvotes.context = com.value.slice(0, pos); - com.value = com.value.slice(0, pos) + text + com.value.slice(pos); - pos += text.length; - com.setSelectionRange(pos, pos); - $.event('input', null, com); - Upvotes.post = $.id('selected'); - return $.on(com, 'input', Upvotes.setText); - }, - setText: function() { - var context; - context = Upvotes.context; - if ($.id('selected') === Upvotes.post && this.value.slice(0, context.length) === context) { - Conf['upvoteText'] = this.value.slice(context.length).split('\n')[0]; - return $.set('upvoteText', Conf['upvoteText']); - } else { - return $.off(this, 'input', Upvotes.setText); - } - } - }; - QR = { mimeTypes: ['image/jpeg', 'image/png', 'image/gif', 'application/pdf', 'application/vnd.adobe.flash.movie', 'application/x-shockwave-flash', 'video/webm'], validExtension: /\.(jpe?g|png|gif|pdf|swf|webm)$/i, @@ -21428,13 +21329,6 @@ ":root.gallery-open.fixed #header-bar:not(.autohide) #shortcuts .fa::before {\n" + " visibility: hidden;\n" + "}\n" + -"/* Upvotes */\n" + -".upvote {\n" + -" margin: 0 4px;\n" + -"}\n" + -".post .menu-button:not(:last-of-type) {\n" + -" margin-right: -4px;\n" + -"}\n" + "/* General */\n" + ":root.yotsuba .dialog {\n" + " background-color: #F0E0D6;\n" + @@ -21962,6 +21856,15 @@ ":root.md2016 .inline div.post {\n" + " max-width: 100%;\n" + "}\n" + +":root.md2016 #unread-line {\n" + +" display: block;\n" + +" position: relative;\n" + +" top: 7.5px;\n" + +"}\n" + +":root.md2016 .threadContainer {\n" + +" margin-left: 26px;\n" + +" border-left: none;\n" + +"}\n" + "/* XXX Moved to end of stylesheet to avoid breaking whole stylesheet in Maxthon. */\n" + "@supports (text-decoration-style: dashed) or (-moz-text-decoration-style: dashed) {\n" + " .quotelink.forwardlink,\n" + @@ -21975,7 +21878,7 @@ cssWWW: "#captcha-cnt {\n" + " height: auto;\n" + "}", - features: [['Polyfill', Polyfill], ['Normalize URL', NormalizeURL], ['Captcha Configuration', Captcha.replace], ['Redirect', Redirect], ['Header', Header], ['Catalog Links', CatalogLinks], ['Settings', Settings], ['Index Generator', Index], ['Disable Autoplay', AntiAutoplay], ['Announcement Hiding', PSAHiding], ['Fourchan thingies', Fourchan], ['Color User IDs', IDColor], ['Highlight by User ID', IDHighlight], ['Custom CSS', CustomCSS], ['Thread Links', ThreadLinks], ['Linkify', Linkify], ['Reveal Spoilers', RemoveSpoilers], ['Resurrect Quotes', Quotify], ['Filter', Filter], ['Thread Hiding Buttons', ThreadHiding], ['Reply Hiding Buttons', PostHiding], ['Recursive', Recursive], ['Strike-through Quotes', QuoteStrikeThrough], ['Quick Reply', QR], ['Cooldown', QR.cooldown], ['Pass Link', PassLink], ['Menu', Menu], ['Index Generator (Menu)', Index.menu], ['Report Link', ReportLink], ['Thread Hiding (Menu)', ThreadHiding.menu], ['Reply Hiding (Menu)', PostHiding.menu], ['Delete Link', DeleteLink], ['Filter (Menu)', Filter.menu], ['Edit Link', QR.oekaki.menu], ['Download Link', DownloadLink], ['Archive Link', ArchiveLink], ['Upvotes', Upvotes], ['Quote Inlining', QuoteInline], ['Quote Previewing', QuotePreview], ['Quote Backlinks', QuoteBacklink], ['Mark Quotes of You', QuoteYou], ['Mark OP Quotes', QuoteOP], ['Mark Cross-thread Quotes', QuoteCT], ['Anonymize', Anonymize], ['Time Formatting', Time], ['Relative Post Dates', RelativeDates], ['File Info Formatting', FileInfo], ['Fappe Tyme', FappeTyme], ['Gallery', Gallery], ['Gallery (menu)', Gallery.menu], ['Sauce', Sauce], ['Image Expansion', ImageExpand], ['Image Expansion (Menu)', ImageExpand.menu], ['Reveal Spoiler Thumbnails', RevealSpoilers], ['Image Loading', ImageLoader], ['Image Hover', ImageHover], ['Volume Control', Volume], ['WEBM Metadata', Metadata], ['Comment Expansion', ExpandComment], ['Thread Expansion', ExpandThread], ['Thread Excerpt', ThreadExcerpt], ['Favicon', Favicon], ['Unread', Unread], ['Quote Threading', QuoteThreading], ['Thread Stats', ThreadStats], ['Thread Updater', ThreadUpdater], ['Thread Watcher', ThreadWatcher], ['Thread Watcher (Menu)', ThreadWatcher.menu], ['Mark New IPs', MarkNewIPs], ['Index Navigation', Nav], ['Keybinds', Keybinds], ['Banner', Banner], ['Flash Features', Flash], ['Prune Replies', PruneReplies]] + features: [['Polyfill', Polyfill], ['Normalize URL', NormalizeURL], ['Captcha Configuration', Captcha.replace], ['Redirect', Redirect], ['Header', Header], ['Catalog Links', CatalogLinks], ['Settings', Settings], ['Index Generator', Index], ['Disable Autoplay', AntiAutoplay], ['Announcement Hiding', PSAHiding], ['Fourchan thingies', Fourchan], ['Color User IDs', IDColor], ['Highlight by User ID', IDHighlight], ['Custom CSS', CustomCSS], ['Thread Links', ThreadLinks], ['Linkify', Linkify], ['Reveal Spoilers', RemoveSpoilers], ['Resurrect Quotes', Quotify], ['Filter', Filter], ['Thread Hiding Buttons', ThreadHiding], ['Reply Hiding Buttons', PostHiding], ['Recursive', Recursive], ['Strike-through Quotes', QuoteStrikeThrough], ['Quick Reply', QR], ['Cooldown', QR.cooldown], ['Pass Link', PassLink], ['Menu', Menu], ['Index Generator (Menu)', Index.menu], ['Report Link', ReportLink], ['Thread Hiding (Menu)', ThreadHiding.menu], ['Reply Hiding (Menu)', PostHiding.menu], ['Delete Link', DeleteLink], ['Filter (Menu)', Filter.menu], ['Edit Link', QR.oekaki.menu], ['Download Link', DownloadLink], ['Archive Link', ArchiveLink], ['Quote Inlining', QuoteInline], ['Quote Previewing', QuotePreview], ['Quote Backlinks', QuoteBacklink], ['Mark Quotes of You', QuoteYou], ['Mark OP Quotes', QuoteOP], ['Mark Cross-thread Quotes', QuoteCT], ['Anonymize', Anonymize], ['Time Formatting', Time], ['Relative Post Dates', RelativeDates], ['File Info Formatting', FileInfo], ['Fappe Tyme', FappeTyme], ['Gallery', Gallery], ['Gallery (menu)', Gallery.menu], ['Sauce', Sauce], ['Image Expansion', ImageExpand], ['Image Expansion (Menu)', ImageExpand.menu], ['Reveal Spoiler Thumbnails', RevealSpoilers], ['Image Loading', ImageLoader], ['Image Hover', ImageHover], ['Volume Control', Volume], ['WEBM Metadata', Metadata], ['Comment Expansion', ExpandComment], ['Thread Expansion', ExpandThread], ['Thread Excerpt', ThreadExcerpt], ['Favicon', Favicon], ['Unread', Unread], ['Quote Threading', QuoteThreading], ['Thread Stats', ThreadStats], ['Thread Updater', ThreadUpdater], ['Thread Watcher', ThreadWatcher], ['Thread Watcher (Menu)', ThreadWatcher.menu], ['Mark New IPs', MarkNewIPs], ['Index Navigation', Nav], ['Keybinds', Keybinds], ['Banner', Banner], ['Flash Features', Flash], ['Prune Replies', PruneReplies]] }; Main.init(); diff --git a/builds/4chan-X-noupdate.crx b/builds/4chan-X-noupdate.crx index ddad961ce..ebde9795c 100644 Binary files a/builds/4chan-X-noupdate.crx and b/builds/4chan-X-noupdate.crx differ diff --git a/builds/4chan-X-noupdate.user.js b/builds/4chan-X-noupdate.user.js index c84afaf17..5b17249c1 100644 --- a/builds/4chan-X-noupdate.user.js +++ b/builds/4chan-X-noupdate.user.js @@ -1,7 +1,7 @@ // Generated by CoffeeScript // ==UserScript== // @name 4chan X -// @version 1.11.29.4 +// @version 1.11.29.5 // @minGMVer 1.14 // @minFFVer 26 // @namespace 4chan-X @@ -119,7 +119,7 @@ 'use strict'; (function() { - var $, $$, Anonymize, AntiAutoplay, ArchiveLink, Banner, Board, Build, Callbacks, Captcha, CatalogLinks, CatalogThread, Clone, Conf, Config, Connection, CrossOrigin, CustomCSS, DataBoard, DeleteLink, DownloadLink, E, Embedding, ExpandComment, ExpandThread, FappeTyme, Favicon, Fetcher, FileInfo, Filter, Flash, Fourchan, Gallery, Get, Header, IDColor, IDHighlight, ImageCommon, ImageExpand, ImageHover, ImageLoader, Index, Keybinds, Linkify, Main, MarkNewIPs, Menu, Metadata, Nav, NormalizeURL, Notice, PSAHiding, PassLink, Polyfill, Post, PostHiding, PostSuccessful, PruneReplies, QR, QuoteBacklink, QuoteCT, QuoteInline, QuoteOP, QuotePreview, QuoteStrikeThrough, QuoteThreading, QuoteYou, Quotify, RandomAccessList, Recursive, Redirect, RelativeDates, RemoveSpoilers, Report, ReportLink, RevealSpoilers, Sauce, Settings, ShimSet, SimpleDict, Thread, ThreadExcerpt, ThreadHiding, ThreadLinks, ThreadStats, ThreadUpdater, ThreadWatcher, Time, UI, Unread, Upvotes, Volume, c, d, doc, g, + var $, $$, Anonymize, AntiAutoplay, ArchiveLink, Banner, Board, Build, Callbacks, Captcha, CatalogLinks, CatalogThread, Clone, Conf, Config, Connection, CrossOrigin, CustomCSS, DataBoard, DeleteLink, DownloadLink, E, Embedding, ExpandComment, ExpandThread, FappeTyme, Favicon, Fetcher, FileInfo, Filter, Flash, Fourchan, Gallery, Get, Header, IDColor, IDHighlight, ImageCommon, ImageExpand, ImageHover, ImageLoader, Index, Keybinds, Linkify, Main, MarkNewIPs, Menu, Metadata, Nav, NormalizeURL, Notice, PSAHiding, PassLink, Polyfill, Post, PostHiding, PostSuccessful, PruneReplies, QR, QuoteBacklink, QuoteCT, QuoteInline, QuoteOP, QuotePreview, QuoteStrikeThrough, QuoteThreading, QuoteYou, Quotify, RandomAccessList, Recursive, Redirect, RelativeDates, RemoveSpoilers, Report, ReportLink, RevealSpoilers, Sauce, Settings, ShimSet, SimpleDict, Thread, ThreadExcerpt, ThreadHiding, ThreadLinks, ThreadStats, ThreadUpdater, ThreadWatcher, Time, UI, Unread, Volume, c, d, doc, g, slice = [].slice, indexOf = [].indexOf || function(item) { for (var i = 0, l = this.length; i < l; i++) { if (i in this && this[i] === item) return i; } return -1; }, extend = function(child, parent) { for (var key in parent) { if (hasProp.call(parent, key)) child[key] = parent[key]; } function ctor() { this.constructor = child; } ctor.prototype = parent.prototype; child.prototype = new ctor(); child.__super__ = parent.prototype; return child; }, @@ -270,8 +270,7 @@ 'Highlight Own Posts': [true, 'Highlights own posts.', 1], 'Mark OP Quotes': [true, 'Add \'(OP)\' to OP quotes.'], 'Mark Cross-thread Quotes': [true, 'Add \'(Cross-thread)\' to cross-threads quotes.'], - 'Quote Threading': [false, 'Thread conversations'], - 'Upvotes': [true, 'Upvote posts.'] + 'Quote Threading': [false, 'Thread conversations'] } }, imageExpansion: { @@ -432,8 +431,7 @@ pruneReplies: { 'Prune Replies': false, 'Max Replies': 1000 - }, - upvoteText: '' + } }; Conf = {}; @@ -445,7 +443,7 @@ doc = d.documentElement; g = { - VERSION: '1.11.29.4', + VERSION: '1.11.29.5', NAMESPACE: '4chan X.', boards: {} }; @@ -7114,103 +7112,6 @@ } }; - Upvotes = { - count: {}, - text: '\u305D\u3046\u3060\u306D', - regexp: /(?:^>.*\n)+(?:i|top|holy|shit|ay*|oh?|omg|god|jesus|christ|fuck|fukken|fucking?|\s|[.,-])*(?:\u305D\u3046\u3060\u306D|this(?! )|\+1|upvote(?! )d?|under[ -]?rated|\/thread|10\/10|(?:lol|kek|lel|lmao)(?:'?d|[.!]?$)|(?:ha)+[.!]?$|saved|nice(?! )|my sides)(?=\b|\W|$)/gmi, - init: function() { - var ref; - if (!(((ref = g.VIEW) === 'thread' || ref === 'index') && Conf['Upvotes'])) { - return; - } - return Post.callbacks.push({ - name: 'Upvotes', - cb: this.node - }); - }, - node: function() { - var a, context, k, len1, len2, q, quote, quotes, ref, ref1, ref2, results; - if (this.isFetchedQuote || ((ref = this.origin) != null ? ref.isFetchedQuote : void 0)) { - return; - } - if (this.isClone) { - this.nodes.vote = $('.upvote', this.nodes.info); - $.on(this.nodes.vote, 'click', Upvotes.vote); - return; - } - a = $.el('a', { - className: 'upvote', - href: 'javascript:;', - textContent: '+' - }); - $.add(this.nodes.info, a); - this.nodes.vote = a; - $.on(a, 'click', Upvotes.vote); - if (g.VIEW !== 'thread') { - return; - } - Upvotes.count[this.fullID] = 0; - quotes = {}; - ref1 = this.info.comment.match(Upvotes.regexp) || []; - for (k = 0, len1 = ref1.length; k < len1; k++) { - context = ref1[k]; - ref2 = context.match(/>>\d+/g) || []; - for (q = 0, len2 = ref2.length; q < len2; q++) { - quote = ref2[q]; - quotes[quote.slice(2)] = true; - } - } - results = []; - for (quote in quotes) { - results.push(Upvotes.increment(g.BOARD + "." + quote)); - } - return results; - }, - increment: function(fullID) { - var count, k, len1, post, ref; - if (!(fullID in Upvotes.count)) { - return; - } - count = ++Upvotes.count[fullID]; - post = g.posts[fullID]; - ref = [post].concat(slice.call(post.clones)); - for (k = 0, len1 = ref.length; k < len1; k++) { - post = ref[k]; - post.nodes.vote.textContent = Upvotes.text + "x" + count; - } - }, - vote: function() { - var com, pos, text; - if (!QR.postingIsEnabled) { - return; - } - if (QR.nodes) { - $.off(QR.nodes.com, 'input', Upvotes.setText); - } - QR.quote.call(this); - com = QR.nodes.com; - text = Conf['upvoteText'] + "\n"; - pos = com.selectionStart; - Upvotes.context = com.value.slice(0, pos); - com.value = com.value.slice(0, pos) + text + com.value.slice(pos); - pos += text.length; - com.setSelectionRange(pos, pos); - $.event('input', null, com); - Upvotes.post = $.id('selected'); - return $.on(com, 'input', Upvotes.setText); - }, - setText: function() { - var context; - context = Upvotes.context; - if ($.id('selected') === Upvotes.post && this.value.slice(0, context.length) === context) { - Conf['upvoteText'] = this.value.slice(context.length).split('\n')[0]; - return $.set('upvoteText', Conf['upvoteText']); - } else { - return $.off(this, 'input', Upvotes.setText); - } - } - }; - QR = { mimeTypes: ['image/jpeg', 'image/png', 'image/gif', 'application/pdf', 'application/vnd.adobe.flash.movie', 'application/x-shockwave-flash', 'video/webm'], validExtension: /\.(jpe?g|png|gif|pdf|swf|webm)$/i, @@ -21428,13 +21329,6 @@ ":root.gallery-open.fixed #header-bar:not(.autohide) #shortcuts .fa::before {\n" + " visibility: hidden;\n" + "}\n" + -"/* Upvotes */\n" + -".upvote {\n" + -" margin: 0 4px;\n" + -"}\n" + -".post .menu-button:not(:last-of-type) {\n" + -" margin-right: -4px;\n" + -"}\n" + "/* General */\n" + ":root.yotsuba .dialog {\n" + " background-color: #F0E0D6;\n" + @@ -21962,6 +21856,15 @@ ":root.md2016 .inline div.post {\n" + " max-width: 100%;\n" + "}\n" + +":root.md2016 #unread-line {\n" + +" display: block;\n" + +" position: relative;\n" + +" top: 7.5px;\n" + +"}\n" + +":root.md2016 .threadContainer {\n" + +" margin-left: 26px;\n" + +" border-left: none;\n" + +"}\n" + "/* XXX Moved to end of stylesheet to avoid breaking whole stylesheet in Maxthon. */\n" + "@supports (text-decoration-style: dashed) or (-moz-text-decoration-style: dashed) {\n" + " .quotelink.forwardlink,\n" + @@ -21975,7 +21878,7 @@ cssWWW: "#captcha-cnt {\n" + " height: auto;\n" + "}", - features: [['Polyfill', Polyfill], ['Normalize URL', NormalizeURL], ['Captcha Configuration', Captcha.replace], ['Redirect', Redirect], ['Header', Header], ['Catalog Links', CatalogLinks], ['Settings', Settings], ['Index Generator', Index], ['Disable Autoplay', AntiAutoplay], ['Announcement Hiding', PSAHiding], ['Fourchan thingies', Fourchan], ['Color User IDs', IDColor], ['Highlight by User ID', IDHighlight], ['Custom CSS', CustomCSS], ['Thread Links', ThreadLinks], ['Linkify', Linkify], ['Reveal Spoilers', RemoveSpoilers], ['Resurrect Quotes', Quotify], ['Filter', Filter], ['Thread Hiding Buttons', ThreadHiding], ['Reply Hiding Buttons', PostHiding], ['Recursive', Recursive], ['Strike-through Quotes', QuoteStrikeThrough], ['Quick Reply', QR], ['Cooldown', QR.cooldown], ['Pass Link', PassLink], ['Menu', Menu], ['Index Generator (Menu)', Index.menu], ['Report Link', ReportLink], ['Thread Hiding (Menu)', ThreadHiding.menu], ['Reply Hiding (Menu)', PostHiding.menu], ['Delete Link', DeleteLink], ['Filter (Menu)', Filter.menu], ['Edit Link', QR.oekaki.menu], ['Download Link', DownloadLink], ['Archive Link', ArchiveLink], ['Upvotes', Upvotes], ['Quote Inlining', QuoteInline], ['Quote Previewing', QuotePreview], ['Quote Backlinks', QuoteBacklink], ['Mark Quotes of You', QuoteYou], ['Mark OP Quotes', QuoteOP], ['Mark Cross-thread Quotes', QuoteCT], ['Anonymize', Anonymize], ['Time Formatting', Time], ['Relative Post Dates', RelativeDates], ['File Info Formatting', FileInfo], ['Fappe Tyme', FappeTyme], ['Gallery', Gallery], ['Gallery (menu)', Gallery.menu], ['Sauce', Sauce], ['Image Expansion', ImageExpand], ['Image Expansion (Menu)', ImageExpand.menu], ['Reveal Spoiler Thumbnails', RevealSpoilers], ['Image Loading', ImageLoader], ['Image Hover', ImageHover], ['Volume Control', Volume], ['WEBM Metadata', Metadata], ['Comment Expansion', ExpandComment], ['Thread Expansion', ExpandThread], ['Thread Excerpt', ThreadExcerpt], ['Favicon', Favicon], ['Unread', Unread], ['Quote Threading', QuoteThreading], ['Thread Stats', ThreadStats], ['Thread Updater', ThreadUpdater], ['Thread Watcher', ThreadWatcher], ['Thread Watcher (Menu)', ThreadWatcher.menu], ['Mark New IPs', MarkNewIPs], ['Index Navigation', Nav], ['Keybinds', Keybinds], ['Banner', Banner], ['Flash Features', Flash], ['Prune Replies', PruneReplies]] + features: [['Polyfill', Polyfill], ['Normalize URL', NormalizeURL], ['Captcha Configuration', Captcha.replace], ['Redirect', Redirect], ['Header', Header], ['Catalog Links', CatalogLinks], ['Settings', Settings], ['Index Generator', Index], ['Disable Autoplay', AntiAutoplay], ['Announcement Hiding', PSAHiding], ['Fourchan thingies', Fourchan], ['Color User IDs', IDColor], ['Highlight by User ID', IDHighlight], ['Custom CSS', CustomCSS], ['Thread Links', ThreadLinks], ['Linkify', Linkify], ['Reveal Spoilers', RemoveSpoilers], ['Resurrect Quotes', Quotify], ['Filter', Filter], ['Thread Hiding Buttons', ThreadHiding], ['Reply Hiding Buttons', PostHiding], ['Recursive', Recursive], ['Strike-through Quotes', QuoteStrikeThrough], ['Quick Reply', QR], ['Cooldown', QR.cooldown], ['Pass Link', PassLink], ['Menu', Menu], ['Index Generator (Menu)', Index.menu], ['Report Link', ReportLink], ['Thread Hiding (Menu)', ThreadHiding.menu], ['Reply Hiding (Menu)', PostHiding.menu], ['Delete Link', DeleteLink], ['Filter (Menu)', Filter.menu], ['Edit Link', QR.oekaki.menu], ['Download Link', DownloadLink], ['Archive Link', ArchiveLink], ['Quote Inlining', QuoteInline], ['Quote Previewing', QuotePreview], ['Quote Backlinks', QuoteBacklink], ['Mark Quotes of You', QuoteYou], ['Mark OP Quotes', QuoteOP], ['Mark Cross-thread Quotes', QuoteCT], ['Anonymize', Anonymize], ['Time Formatting', Time], ['Relative Post Dates', RelativeDates], ['File Info Formatting', FileInfo], ['Fappe Tyme', FappeTyme], ['Gallery', Gallery], ['Gallery (menu)', Gallery.menu], ['Sauce', Sauce], ['Image Expansion', ImageExpand], ['Image Expansion (Menu)', ImageExpand.menu], ['Reveal Spoiler Thumbnails', RevealSpoilers], ['Image Loading', ImageLoader], ['Image Hover', ImageHover], ['Volume Control', Volume], ['WEBM Metadata', Metadata], ['Comment Expansion', ExpandComment], ['Thread Expansion', ExpandThread], ['Thread Excerpt', ThreadExcerpt], ['Favicon', Favicon], ['Unread', Unread], ['Quote Threading', QuoteThreading], ['Thread Stats', ThreadStats], ['Thread Updater', ThreadUpdater], ['Thread Watcher', ThreadWatcher], ['Thread Watcher (Menu)', ThreadWatcher.menu], ['Mark New IPs', MarkNewIPs], ['Index Navigation', Nav], ['Keybinds', Keybinds], ['Banner', Banner], ['Flash Features', Flash], ['Prune Replies', PruneReplies]] }; Main.init(); diff --git a/builds/4chan-X.crx b/builds/4chan-X.crx index 321bc588b..faef949b4 100644 Binary files a/builds/4chan-X.crx and b/builds/4chan-X.crx differ diff --git a/builds/4chan-X.meta.js b/builds/4chan-X.meta.js index ae22b2c62..47c289ea9 100644 --- a/builds/4chan-X.meta.js +++ b/builds/4chan-X.meta.js @@ -1,6 +1,6 @@ // ==UserScript== // @name 4chan X -// @version 1.11.29.4 +// @version 1.11.29.5 // @minGMVer 1.14 // @minFFVer 26 // @namespace 4chan-X diff --git a/builds/4chan-X.user.js b/builds/4chan-X.user.js index ef8c89cb6..eadd485f9 100644 --- a/builds/4chan-X.user.js +++ b/builds/4chan-X.user.js @@ -1,7 +1,7 @@ // Generated by CoffeeScript // ==UserScript== // @name 4chan X -// @version 1.11.29.4 +// @version 1.11.29.5 // @minGMVer 1.14 // @minFFVer 26 // @namespace 4chan-X @@ -119,7 +119,7 @@ 'use strict'; (function() { - var $, $$, Anonymize, AntiAutoplay, ArchiveLink, Banner, Board, Build, Callbacks, Captcha, CatalogLinks, CatalogThread, Clone, Conf, Config, Connection, CrossOrigin, CustomCSS, DataBoard, DeleteLink, DownloadLink, E, Embedding, ExpandComment, ExpandThread, FappeTyme, Favicon, Fetcher, FileInfo, Filter, Flash, Fourchan, Gallery, Get, Header, IDColor, IDHighlight, ImageCommon, ImageExpand, ImageHover, ImageLoader, Index, Keybinds, Linkify, Main, MarkNewIPs, Menu, Metadata, Nav, NormalizeURL, Notice, PSAHiding, PassLink, Polyfill, Post, PostHiding, PostSuccessful, PruneReplies, QR, QuoteBacklink, QuoteCT, QuoteInline, QuoteOP, QuotePreview, QuoteStrikeThrough, QuoteThreading, QuoteYou, Quotify, RandomAccessList, Recursive, Redirect, RelativeDates, RemoveSpoilers, Report, ReportLink, RevealSpoilers, Sauce, Settings, ShimSet, SimpleDict, Thread, ThreadExcerpt, ThreadHiding, ThreadLinks, ThreadStats, ThreadUpdater, ThreadWatcher, Time, UI, Unread, Upvotes, Volume, c, d, doc, g, + var $, $$, Anonymize, AntiAutoplay, ArchiveLink, Banner, Board, Build, Callbacks, Captcha, CatalogLinks, CatalogThread, Clone, Conf, Config, Connection, CrossOrigin, CustomCSS, DataBoard, DeleteLink, DownloadLink, E, Embedding, ExpandComment, ExpandThread, FappeTyme, Favicon, Fetcher, FileInfo, Filter, Flash, Fourchan, Gallery, Get, Header, IDColor, IDHighlight, ImageCommon, ImageExpand, ImageHover, ImageLoader, Index, Keybinds, Linkify, Main, MarkNewIPs, Menu, Metadata, Nav, NormalizeURL, Notice, PSAHiding, PassLink, Polyfill, Post, PostHiding, PostSuccessful, PruneReplies, QR, QuoteBacklink, QuoteCT, QuoteInline, QuoteOP, QuotePreview, QuoteStrikeThrough, QuoteThreading, QuoteYou, Quotify, RandomAccessList, Recursive, Redirect, RelativeDates, RemoveSpoilers, Report, ReportLink, RevealSpoilers, Sauce, Settings, ShimSet, SimpleDict, Thread, ThreadExcerpt, ThreadHiding, ThreadLinks, ThreadStats, ThreadUpdater, ThreadWatcher, Time, UI, Unread, Volume, c, d, doc, g, slice = [].slice, indexOf = [].indexOf || function(item) { for (var i = 0, l = this.length; i < l; i++) { if (i in this && this[i] === item) return i; } return -1; }, extend = function(child, parent) { for (var key in parent) { if (hasProp.call(parent, key)) child[key] = parent[key]; } function ctor() { this.constructor = child; } ctor.prototype = parent.prototype; child.prototype = new ctor(); child.__super__ = parent.prototype; return child; }, @@ -270,8 +270,7 @@ 'Highlight Own Posts': [true, 'Highlights own posts.', 1], 'Mark OP Quotes': [true, 'Add \'(OP)\' to OP quotes.'], 'Mark Cross-thread Quotes': [true, 'Add \'(Cross-thread)\' to cross-threads quotes.'], - 'Quote Threading': [false, 'Thread conversations'], - 'Upvotes': [true, 'Upvote posts.'] + 'Quote Threading': [false, 'Thread conversations'] } }, imageExpansion: { @@ -432,8 +431,7 @@ pruneReplies: { 'Prune Replies': false, 'Max Replies': 1000 - }, - upvoteText: '' + } }; Conf = {}; @@ -445,7 +443,7 @@ doc = d.documentElement; g = { - VERSION: '1.11.29.4', + VERSION: '1.11.29.5', NAMESPACE: '4chan X.', boards: {} }; @@ -7114,103 +7112,6 @@ } }; - Upvotes = { - count: {}, - text: '\u305D\u3046\u3060\u306D', - regexp: /(?:^>.*\n)+(?:i|top|holy|shit|ay*|oh?|omg|god|jesus|christ|fuck|fukken|fucking?|\s|[.,-])*(?:\u305D\u3046\u3060\u306D|this(?! )|\+1|upvote(?! )d?|under[ -]?rated|\/thread|10\/10|(?:lol|kek|lel|lmao)(?:'?d|[.!]?$)|(?:ha)+[.!]?$|saved|nice(?! )|my sides)(?=\b|\W|$)/gmi, - init: function() { - var ref; - if (!(((ref = g.VIEW) === 'thread' || ref === 'index') && Conf['Upvotes'])) { - return; - } - return Post.callbacks.push({ - name: 'Upvotes', - cb: this.node - }); - }, - node: function() { - var a, context, k, len1, len2, q, quote, quotes, ref, ref1, ref2, results; - if (this.isFetchedQuote || ((ref = this.origin) != null ? ref.isFetchedQuote : void 0)) { - return; - } - if (this.isClone) { - this.nodes.vote = $('.upvote', this.nodes.info); - $.on(this.nodes.vote, 'click', Upvotes.vote); - return; - } - a = $.el('a', { - className: 'upvote', - href: 'javascript:;', - textContent: '+' - }); - $.add(this.nodes.info, a); - this.nodes.vote = a; - $.on(a, 'click', Upvotes.vote); - if (g.VIEW !== 'thread') { - return; - } - Upvotes.count[this.fullID] = 0; - quotes = {}; - ref1 = this.info.comment.match(Upvotes.regexp) || []; - for (k = 0, len1 = ref1.length; k < len1; k++) { - context = ref1[k]; - ref2 = context.match(/>>\d+/g) || []; - for (q = 0, len2 = ref2.length; q < len2; q++) { - quote = ref2[q]; - quotes[quote.slice(2)] = true; - } - } - results = []; - for (quote in quotes) { - results.push(Upvotes.increment(g.BOARD + "." + quote)); - } - return results; - }, - increment: function(fullID) { - var count, k, len1, post, ref; - if (!(fullID in Upvotes.count)) { - return; - } - count = ++Upvotes.count[fullID]; - post = g.posts[fullID]; - ref = [post].concat(slice.call(post.clones)); - for (k = 0, len1 = ref.length; k < len1; k++) { - post = ref[k]; - post.nodes.vote.textContent = Upvotes.text + "x" + count; - } - }, - vote: function() { - var com, pos, text; - if (!QR.postingIsEnabled) { - return; - } - if (QR.nodes) { - $.off(QR.nodes.com, 'input', Upvotes.setText); - } - QR.quote.call(this); - com = QR.nodes.com; - text = Conf['upvoteText'] + "\n"; - pos = com.selectionStart; - Upvotes.context = com.value.slice(0, pos); - com.value = com.value.slice(0, pos) + text + com.value.slice(pos); - pos += text.length; - com.setSelectionRange(pos, pos); - $.event('input', null, com); - Upvotes.post = $.id('selected'); - return $.on(com, 'input', Upvotes.setText); - }, - setText: function() { - var context; - context = Upvotes.context; - if ($.id('selected') === Upvotes.post && this.value.slice(0, context.length) === context) { - Conf['upvoteText'] = this.value.slice(context.length).split('\n')[0]; - return $.set('upvoteText', Conf['upvoteText']); - } else { - return $.off(this, 'input', Upvotes.setText); - } - } - }; - QR = { mimeTypes: ['image/jpeg', 'image/png', 'image/gif', 'application/pdf', 'application/vnd.adobe.flash.movie', 'application/x-shockwave-flash', 'video/webm'], validExtension: /\.(jpe?g|png|gif|pdf|swf|webm)$/i, @@ -21428,13 +21329,6 @@ ":root.gallery-open.fixed #header-bar:not(.autohide) #shortcuts .fa::before {\n" + " visibility: hidden;\n" + "}\n" + -"/* Upvotes */\n" + -".upvote {\n" + -" margin: 0 4px;\n" + -"}\n" + -".post .menu-button:not(:last-of-type) {\n" + -" margin-right: -4px;\n" + -"}\n" + "/* General */\n" + ":root.yotsuba .dialog {\n" + " background-color: #F0E0D6;\n" + @@ -21962,6 +21856,15 @@ ":root.md2016 .inline div.post {\n" + " max-width: 100%;\n" + "}\n" + +":root.md2016 #unread-line {\n" + +" display: block;\n" + +" position: relative;\n" + +" top: 7.5px;\n" + +"}\n" + +":root.md2016 .threadContainer {\n" + +" margin-left: 26px;\n" + +" border-left: none;\n" + +"}\n" + "/* XXX Moved to end of stylesheet to avoid breaking whole stylesheet in Maxthon. */\n" + "@supports (text-decoration-style: dashed) or (-moz-text-decoration-style: dashed) {\n" + " .quotelink.forwardlink,\n" + @@ -21975,7 +21878,7 @@ cssWWW: "#captcha-cnt {\n" + " height: auto;\n" + "}", - features: [['Polyfill', Polyfill], ['Normalize URL', NormalizeURL], ['Captcha Configuration', Captcha.replace], ['Redirect', Redirect], ['Header', Header], ['Catalog Links', CatalogLinks], ['Settings', Settings], ['Index Generator', Index], ['Disable Autoplay', AntiAutoplay], ['Announcement Hiding', PSAHiding], ['Fourchan thingies', Fourchan], ['Color User IDs', IDColor], ['Highlight by User ID', IDHighlight], ['Custom CSS', CustomCSS], ['Thread Links', ThreadLinks], ['Linkify', Linkify], ['Reveal Spoilers', RemoveSpoilers], ['Resurrect Quotes', Quotify], ['Filter', Filter], ['Thread Hiding Buttons', ThreadHiding], ['Reply Hiding Buttons', PostHiding], ['Recursive', Recursive], ['Strike-through Quotes', QuoteStrikeThrough], ['Quick Reply', QR], ['Cooldown', QR.cooldown], ['Pass Link', PassLink], ['Menu', Menu], ['Index Generator (Menu)', Index.menu], ['Report Link', ReportLink], ['Thread Hiding (Menu)', ThreadHiding.menu], ['Reply Hiding (Menu)', PostHiding.menu], ['Delete Link', DeleteLink], ['Filter (Menu)', Filter.menu], ['Edit Link', QR.oekaki.menu], ['Download Link', DownloadLink], ['Archive Link', ArchiveLink], ['Upvotes', Upvotes], ['Quote Inlining', QuoteInline], ['Quote Previewing', QuotePreview], ['Quote Backlinks', QuoteBacklink], ['Mark Quotes of You', QuoteYou], ['Mark OP Quotes', QuoteOP], ['Mark Cross-thread Quotes', QuoteCT], ['Anonymize', Anonymize], ['Time Formatting', Time], ['Relative Post Dates', RelativeDates], ['File Info Formatting', FileInfo], ['Fappe Tyme', FappeTyme], ['Gallery', Gallery], ['Gallery (menu)', Gallery.menu], ['Sauce', Sauce], ['Image Expansion', ImageExpand], ['Image Expansion (Menu)', ImageExpand.menu], ['Reveal Spoiler Thumbnails', RevealSpoilers], ['Image Loading', ImageLoader], ['Image Hover', ImageHover], ['Volume Control', Volume], ['WEBM Metadata', Metadata], ['Comment Expansion', ExpandComment], ['Thread Expansion', ExpandThread], ['Thread Excerpt', ThreadExcerpt], ['Favicon', Favicon], ['Unread', Unread], ['Quote Threading', QuoteThreading], ['Thread Stats', ThreadStats], ['Thread Updater', ThreadUpdater], ['Thread Watcher', ThreadWatcher], ['Thread Watcher (Menu)', ThreadWatcher.menu], ['Mark New IPs', MarkNewIPs], ['Index Navigation', Nav], ['Keybinds', Keybinds], ['Banner', Banner], ['Flash Features', Flash], ['Prune Replies', PruneReplies]] + features: [['Polyfill', Polyfill], ['Normalize URL', NormalizeURL], ['Captcha Configuration', Captcha.replace], ['Redirect', Redirect], ['Header', Header], ['Catalog Links', CatalogLinks], ['Settings', Settings], ['Index Generator', Index], ['Disable Autoplay', AntiAutoplay], ['Announcement Hiding', PSAHiding], ['Fourchan thingies', Fourchan], ['Color User IDs', IDColor], ['Highlight by User ID', IDHighlight], ['Custom CSS', CustomCSS], ['Thread Links', ThreadLinks], ['Linkify', Linkify], ['Reveal Spoilers', RemoveSpoilers], ['Resurrect Quotes', Quotify], ['Filter', Filter], ['Thread Hiding Buttons', ThreadHiding], ['Reply Hiding Buttons', PostHiding], ['Recursive', Recursive], ['Strike-through Quotes', QuoteStrikeThrough], ['Quick Reply', QR], ['Cooldown', QR.cooldown], ['Pass Link', PassLink], ['Menu', Menu], ['Index Generator (Menu)', Index.menu], ['Report Link', ReportLink], ['Thread Hiding (Menu)', ThreadHiding.menu], ['Reply Hiding (Menu)', PostHiding.menu], ['Delete Link', DeleteLink], ['Filter (Menu)', Filter.menu], ['Edit Link', QR.oekaki.menu], ['Download Link', DownloadLink], ['Archive Link', ArchiveLink], ['Quote Inlining', QuoteInline], ['Quote Previewing', QuotePreview], ['Quote Backlinks', QuoteBacklink], ['Mark Quotes of You', QuoteYou], ['Mark OP Quotes', QuoteOP], ['Mark Cross-thread Quotes', QuoteCT], ['Anonymize', Anonymize], ['Time Formatting', Time], ['Relative Post Dates', RelativeDates], ['File Info Formatting', FileInfo], ['Fappe Tyme', FappeTyme], ['Gallery', Gallery], ['Gallery (menu)', Gallery.menu], ['Sauce', Sauce], ['Image Expansion', ImageExpand], ['Image Expansion (Menu)', ImageExpand.menu], ['Reveal Spoiler Thumbnails', RevealSpoilers], ['Image Loading', ImageLoader], ['Image Hover', ImageHover], ['Volume Control', Volume], ['WEBM Metadata', Metadata], ['Comment Expansion', ExpandComment], ['Thread Expansion', ExpandThread], ['Thread Excerpt', ThreadExcerpt], ['Favicon', Favicon], ['Unread', Unread], ['Quote Threading', QuoteThreading], ['Thread Stats', ThreadStats], ['Thread Updater', ThreadUpdater], ['Thread Watcher', ThreadWatcher], ['Thread Watcher (Menu)', ThreadWatcher.menu], ['Mark New IPs', MarkNewIPs], ['Index Navigation', Nav], ['Keybinds', Keybinds], ['Banner', Banner], ['Flash Features', Flash], ['Prune Replies', PruneReplies]] }; Main.init(); diff --git a/builds/4chan-X.zip b/builds/4chan-X.zip index eb443c506..16bb1dd77 100644 Binary files a/builds/4chan-X.zip and b/builds/4chan-X.zip differ diff --git a/builds/updates-beta.xml b/builds/updates-beta.xml index 04404ece9..3f459d8c9 100644 --- a/builds/updates-beta.xml +++ b/builds/updates-beta.xml @@ -1,7 +1,7 @@ - + diff --git a/builds/updates.xml b/builds/updates.xml index 2781042ae..76d6368a1 100644 --- a/builds/updates.xml +++ b/builds/updates.xml @@ -1,7 +1,7 @@ - + diff --git a/version.json b/version.json index 1c1f45ebb..656bc2547 100644 --- a/version.json +++ b/version.json @@ -1,4 +1,4 @@ { - "version": "1.11.29.4", - "date": "2016-04-02T03:36:56.776Z" + "version": "1.11.29.5", + "date": "2016-04-02T09:30:52.063Z" }