diff --git a/CHANGELOG.md b/CHANGELOG.md index ac0d8fd35..5e9115d35 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -4,6 +4,9 @@ ### v1.14.13 +**v1.14.13.1** *(2019-09-04)* - [[Userscript](https://raw.githubusercontent.com/ccd0/4chan-x/1.14.13.1/builds/4chan-X-noupdate.user.js)] [[Chrome extension](https://raw.githubusercontent.com/ccd0/4chan-x/1.14.13.1/builds/4chan-X-noupdate.crx)] +- Add message to 4chan Pass buyers. + **v1.14.13.0** *(2019-08-27)* - [[Userscript](https://raw.githubusercontent.com/ccd0/4chan-x/1.14.13.0/builds/4chan-X-noupdate.user.js)] [[Chrome extension](https://raw.githubusercontent.com/ccd0/4chan-x/1.14.13.0/builds/4chan-X-noupdate.crx)] - Based on v1.14.12.10. - (saxamaphone69) Add option to open custom navigation links in a new tab. diff --git a/builds/4chan-X-beta.crx b/builds/4chan-X-beta.crx index 10b5451fd..06a5af419 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 77edd8d4b..93f5e16bf 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.14.13.0 +// @version 1.14.13.1 // @minGMVer 1.14 // @minFFVer 26 // @namespace 4chan-X @@ -54,10 +54,6 @@ // @include https://www.google.com/recaptcha/api2/bframe?*&k=6Ldp2bsSAAAAAAJ5uyx_lx34lJeEpTLVkP5k04qc* // @include http://www.google.com/recaptcha/api/fallback?k=6Ldp2bsSAAAAAAJ5uyx_lx34lJeEpTLVkP5k04qc* // @include https://www.google.com/recaptcha/api/fallback?k=6Ldp2bsSAAAAAAJ5uyx_lx34lJeEpTLVkP5k04qc* -// @exclude http://www.4chan.org/pass -// @exclude https://www.4chan.org/pass -// @exclude http://www.4chan.org/pass?* -// @exclude https://www.4chan.org/pass?* // @exclude http://www.4chan.org/advertise // @exclude https://www.4chan.org/advertise // @exclude http://www.4chan.org/advertise?* @@ -66,10 +62,6 @@ // @exclude https://www.4chan.org/donate // @exclude http://www.4chan.org/donate?* // @exclude https://www.4chan.org/donate?* -// @exclude http://www.4channel.org/pass -// @exclude https://www.4channel.org/pass -// @exclude http://www.4channel.org/pass?* -// @exclude https://www.4channel.org/pass?* // @exclude http://www.4channel.org/advertise // @exclude https://www.4channel.org/advertise // @exclude http://www.4channel.org/advertise?* diff --git a/builds/4chan-X-beta.user.js b/builds/4chan-X-beta.user.js index 0dc3fe480..0180d9510 100644 --- a/builds/4chan-X-beta.user.js +++ b/builds/4chan-X-beta.user.js @@ -1,6 +1,6 @@ // ==UserScript== // @name 4chan X beta -// @version 1.14.13.0 +// @version 1.14.13.1 // @minGMVer 1.14 // @minFFVer 26 // @namespace 4chan-X @@ -54,10 +54,6 @@ // @include https://www.google.com/recaptcha/api2/bframe?*&k=6Ldp2bsSAAAAAAJ5uyx_lx34lJeEpTLVkP5k04qc* // @include http://www.google.com/recaptcha/api/fallback?k=6Ldp2bsSAAAAAAJ5uyx_lx34lJeEpTLVkP5k04qc* // @include https://www.google.com/recaptcha/api/fallback?k=6Ldp2bsSAAAAAAJ5uyx_lx34lJeEpTLVkP5k04qc* -// @exclude http://www.4chan.org/pass -// @exclude https://www.4chan.org/pass -// @exclude http://www.4chan.org/pass?* -// @exclude https://www.4chan.org/pass?* // @exclude http://www.4chan.org/advertise // @exclude https://www.4chan.org/advertise // @exclude http://www.4chan.org/advertise?* @@ -66,10 +62,6 @@ // @exclude https://www.4chan.org/donate // @exclude http://www.4chan.org/donate?* // @exclude https://www.4chan.org/donate?* -// @exclude http://www.4channel.org/pass -// @exclude https://www.4channel.org/pass -// @exclude http://www.4channel.org/pass?* -// @exclude https://www.4channel.org/pass?* // @exclude http://www.4channel.org/advertise // @exclude https://www.4channel.org/advertise // @exclude http://www.4channel.org/advertise?* @@ -204,7 +196,7 @@ 'use strict'; -var $, $$, Anonymize, AntiAutoplay, ArchiveLink, Banner, Board, BoardConfig, CSS, Callbacks, Captcha, CatalogLinks, CatalogThread, CatalogThreadNative, Config, Connection, CopyTextLink, CrossOrigin, CustomCSS, DataBoard, DeleteLink, DownloadLink, Embedding, ExpandComment, ExpandThread, FappeTyme, Favicon, Fetcher, FileInfo, Filter, Flash, Fourchan, Gallery, Get, Header, IDColor, IDHighlight, IDPostCount, ImageCommon, ImageExpand, ImageHost, ImageHover, ImageLoader, Index, Keybinds, Linkify, Main, MarkNewIPs, Menu, Metadata, ModContact, Nav, NormalizeURL, Notice, PSA, PSAHiding, PassLink, Polyfill, Post, PostHiding, PostJumper, PostRedirect, PostSuccessful, QR, QuoteBacklink, QuoteCT, QuoteInline, QuoteOP, QuotePreview, QuoteStrikeThrough, QuoteThreading, QuoteYou, Quotify, RandomAccessList, Recursive, Redirect, RelativeDates, RemoveSpoilers, ReplyPruning, Report, ReportLink, RevealSpoilers, SW, Sauce, Settings, ShimSet, SimpleDict, Site, Test, Thread, ThreadHiding, ThreadLinks, ThreadStats, ThreadUpdater, ThreadWatcher, Time, Tinyboard, UI, Unread, UnreadIndex, Volume; +var $, $$, Anonymize, AntiAutoplay, ArchiveLink, Banner, Board, BoardConfig, CSS, Callbacks, Captcha, CatalogLinks, CatalogThread, CatalogThreadNative, Config, Connection, CopyTextLink, CrossOrigin, CustomCSS, DataBoard, DeleteLink, DownloadLink, Embedding, ExpandComment, ExpandThread, FappeTyme, Favicon, Fetcher, FileInfo, Filter, Flash, Fourchan, Gallery, Get, Header, IDColor, IDHighlight, IDPostCount, ImageCommon, ImageExpand, ImageHost, ImageHover, ImageLoader, Index, Keybinds, Linkify, Main, MarkNewIPs, Menu, Metadata, ModContact, Nav, NormalizeURL, Notice, PSA, PSAHiding, PassLink, PassMessage, Polyfill, Post, PostHiding, PostJumper, PostRedirect, PostSuccessful, QR, QuoteBacklink, QuoteCT, QuoteInline, QuoteOP, QuotePreview, QuoteStrikeThrough, QuoteThreading, QuoteYou, Quotify, RandomAccessList, Recursive, Redirect, RelativeDates, RemoveSpoilers, ReplyPruning, Report, ReportLink, RevealSpoilers, SW, Sauce, Settings, ShimSet, SimpleDict, Site, Test, Thread, ThreadHiding, ThreadLinks, ThreadStats, ThreadUpdater, ThreadWatcher, Time, Tinyboard, UI, Unread, UnreadIndex, Volume; var Conf, E, c, d, doc, docSet, g; @@ -219,7 +211,7 @@ docSet = function() { }; g = { - VERSION: '1.14.13.0', + VERSION: '1.14.13.1', NAMESPACE: '4chan X.', sites: Object.create(null), boards: Object.create(null) @@ -8158,7 +8150,8 @@ SW = {}; }, regexp: { quotelink: /^https?:\/\/boards\.4chan(?:nel)?\.org\/+([^\/]+)\/+thread\/+(\d+)(?:[\/?][^#]*)?(?:#p(\d+))?$/, - quotelinkHTML: /]*\bhref="(?:(?:\/\/boards\.4chan(?:nel)?\.org)?\/([^\/]+)\/thread\/)?(\d+)?(?:#p(\d+))?"/g + quotelinkHTML: /]*\bhref="(?:(?:\/\/boards\.4chan(?:nel)?\.org)?\/([^\/]+)\/thread\/)?(\d+)?(?:#p(\d+))?"/g, + pass: /^https?:\/\/www\.4chan(?:nel)?\.org\/+pass(?:$|[?#])/ }, bgColoredEl: function() { return $.el('div', { @@ -8193,10 +8186,14 @@ SW = {}; switch (location.hostname) { case 'www.4chan.org': case 'www.4channel.org': - $.onExists(doc, 'body', function() { - return $.addStyle(CSS.www); - }); - Captcha.replace.init(); + if (SW.yotsuba.regexp.pass.test(location.href)) { + PassMessage.init(); + } else { + $.onExists(doc, 'body', function() { + return $.addStyle(CSS.www); + }); + Captcha.replace.init(); + } break; case 'sys.4chan.org': case 'sys.4channel.org': @@ -19889,6 +19886,30 @@ PSAHiding = (function() { }).call(this); +PassMessage = (function() { + var PassMessage; + + PassMessage = { + init: function() { + var msg; + msg = $.el('div', { + className: 'box-outer top-box' + }, {innerHTML: "

Trouble buying a 4chan Pass? (a message from 4chan X)

You can buy solved CAPTCHAs at captcha.guru, 2captcha, and similar services. They're a bit slow, but sufficient for image dumping. Depending on how much you post, this can be cheaper than a Pass, and it doesn't require cryptocurrency to purchase. 4chan X has integrated support for services that use 2captcha's API. Go to Advanced > Captcha Solving Service in the settings panel to set it up.

If you're thinking of buying a Pass because of annoying "Click verify once there are none left" captchas, you may be able to get rid of them for free by checking Force Noscript Captcha in your settings.

Most imageboards either don't require captchas to post at all or require them only in limited circumstances. Consider using another site. 4chan X works on many Tinyboard-based sites by default, and if your preferred site isn't on the default list, you can enable 4chan X on it by following these instructions.

"}); + return $.ready(function() { + var hd; + if ((hd = $.id('hd'))) { + return $.after(hd, msg); + } else { + return $.prepend(d.body, msg); + } + }); + } + }; + + return PassMessage; + +}).call(this); + PostJumper = (function() { var PostJumper; @@ -27307,7 +27328,7 @@ Main = (function() { Conf['Toggleable Thread Watcher'] = true; Conf['siteSoftware'] = ''; Conf['Use Faster Image Host'] = 'true'; - if (/\.4chan(?:nel)?\.org$/.test(location.hostname) && !$$('script:not([src])', d).filter(function(s) { + if (/\.4chan(?:nel)?\.org$/.test(location.hostname) && !SW.yotsuba.regexp.pass.test(location.href) && !$$('script:not([src])', d).filter(function(s) { return /this\[/.test(s.textContent); }).length) { ($.getSync || $.get)({ diff --git a/builds/4chan-X-noupdate.crx b/builds/4chan-X-noupdate.crx index 250d99cdb..4a5331539 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 0e77ea22c..e4296f3d7 100644 --- a/builds/4chan-X-noupdate.user.js +++ b/builds/4chan-X-noupdate.user.js @@ -1,6 +1,6 @@ // ==UserScript== // @name 4chan X -// @version 1.14.13.0 +// @version 1.14.13.1 // @minGMVer 1.14 // @minFFVer 26 // @namespace 4chan-X @@ -54,10 +54,6 @@ // @include https://www.google.com/recaptcha/api2/bframe?*&k=6Ldp2bsSAAAAAAJ5uyx_lx34lJeEpTLVkP5k04qc* // @include http://www.google.com/recaptcha/api/fallback?k=6Ldp2bsSAAAAAAJ5uyx_lx34lJeEpTLVkP5k04qc* // @include https://www.google.com/recaptcha/api/fallback?k=6Ldp2bsSAAAAAAJ5uyx_lx34lJeEpTLVkP5k04qc* -// @exclude http://www.4chan.org/pass -// @exclude https://www.4chan.org/pass -// @exclude http://www.4chan.org/pass?* -// @exclude https://www.4chan.org/pass?* // @exclude http://www.4chan.org/advertise // @exclude https://www.4chan.org/advertise // @exclude http://www.4chan.org/advertise?* @@ -66,10 +62,6 @@ // @exclude https://www.4chan.org/donate // @exclude http://www.4chan.org/donate?* // @exclude https://www.4chan.org/donate?* -// @exclude http://www.4channel.org/pass -// @exclude https://www.4channel.org/pass -// @exclude http://www.4channel.org/pass?* -// @exclude https://www.4channel.org/pass?* // @exclude http://www.4channel.org/advertise // @exclude https://www.4channel.org/advertise // @exclude http://www.4channel.org/advertise?* @@ -204,7 +196,7 @@ 'use strict'; -var $, $$, Anonymize, AntiAutoplay, ArchiveLink, Banner, Board, BoardConfig, CSS, Callbacks, Captcha, CatalogLinks, CatalogThread, CatalogThreadNative, Config, Connection, CopyTextLink, CrossOrigin, CustomCSS, DataBoard, DeleteLink, DownloadLink, Embedding, ExpandComment, ExpandThread, FappeTyme, Favicon, Fetcher, FileInfo, Filter, Flash, Fourchan, Gallery, Get, Header, IDColor, IDHighlight, IDPostCount, ImageCommon, ImageExpand, ImageHost, ImageHover, ImageLoader, Index, Keybinds, Linkify, Main, MarkNewIPs, Menu, Metadata, ModContact, Nav, NormalizeURL, Notice, PSA, PSAHiding, PassLink, Polyfill, Post, PostHiding, PostJumper, PostRedirect, PostSuccessful, QR, QuoteBacklink, QuoteCT, QuoteInline, QuoteOP, QuotePreview, QuoteStrikeThrough, QuoteThreading, QuoteYou, Quotify, RandomAccessList, Recursive, Redirect, RelativeDates, RemoveSpoilers, ReplyPruning, Report, ReportLink, RevealSpoilers, SW, Sauce, Settings, ShimSet, SimpleDict, Site, Test, Thread, ThreadHiding, ThreadLinks, ThreadStats, ThreadUpdater, ThreadWatcher, Time, Tinyboard, UI, Unread, UnreadIndex, Volume; +var $, $$, Anonymize, AntiAutoplay, ArchiveLink, Banner, Board, BoardConfig, CSS, Callbacks, Captcha, CatalogLinks, CatalogThread, CatalogThreadNative, Config, Connection, CopyTextLink, CrossOrigin, CustomCSS, DataBoard, DeleteLink, DownloadLink, Embedding, ExpandComment, ExpandThread, FappeTyme, Favicon, Fetcher, FileInfo, Filter, Flash, Fourchan, Gallery, Get, Header, IDColor, IDHighlight, IDPostCount, ImageCommon, ImageExpand, ImageHost, ImageHover, ImageLoader, Index, Keybinds, Linkify, Main, MarkNewIPs, Menu, Metadata, ModContact, Nav, NormalizeURL, Notice, PSA, PSAHiding, PassLink, PassMessage, Polyfill, Post, PostHiding, PostJumper, PostRedirect, PostSuccessful, QR, QuoteBacklink, QuoteCT, QuoteInline, QuoteOP, QuotePreview, QuoteStrikeThrough, QuoteThreading, QuoteYou, Quotify, RandomAccessList, Recursive, Redirect, RelativeDates, RemoveSpoilers, ReplyPruning, Report, ReportLink, RevealSpoilers, SW, Sauce, Settings, ShimSet, SimpleDict, Site, Test, Thread, ThreadHiding, ThreadLinks, ThreadStats, ThreadUpdater, ThreadWatcher, Time, Tinyboard, UI, Unread, UnreadIndex, Volume; var Conf, E, c, d, doc, docSet, g; @@ -219,7 +211,7 @@ docSet = function() { }; g = { - VERSION: '1.14.13.0', + VERSION: '1.14.13.1', NAMESPACE: '4chan X.', sites: Object.create(null), boards: Object.create(null) @@ -8158,7 +8150,8 @@ SW = {}; }, regexp: { quotelink: /^https?:\/\/boards\.4chan(?:nel)?\.org\/+([^\/]+)\/+thread\/+(\d+)(?:[\/?][^#]*)?(?:#p(\d+))?$/, - quotelinkHTML: /]*\bhref="(?:(?:\/\/boards\.4chan(?:nel)?\.org)?\/([^\/]+)\/thread\/)?(\d+)?(?:#p(\d+))?"/g + quotelinkHTML: /]*\bhref="(?:(?:\/\/boards\.4chan(?:nel)?\.org)?\/([^\/]+)\/thread\/)?(\d+)?(?:#p(\d+))?"/g, + pass: /^https?:\/\/www\.4chan(?:nel)?\.org\/+pass(?:$|[?#])/ }, bgColoredEl: function() { return $.el('div', { @@ -8193,10 +8186,14 @@ SW = {}; switch (location.hostname) { case 'www.4chan.org': case 'www.4channel.org': - $.onExists(doc, 'body', function() { - return $.addStyle(CSS.www); - }); - Captcha.replace.init(); + if (SW.yotsuba.regexp.pass.test(location.href)) { + PassMessage.init(); + } else { + $.onExists(doc, 'body', function() { + return $.addStyle(CSS.www); + }); + Captcha.replace.init(); + } break; case 'sys.4chan.org': case 'sys.4channel.org': @@ -19889,6 +19886,30 @@ PSAHiding = (function() { }).call(this); +PassMessage = (function() { + var PassMessage; + + PassMessage = { + init: function() { + var msg; + msg = $.el('div', { + className: 'box-outer top-box' + }, {innerHTML: "

Trouble buying a 4chan Pass? (a message from 4chan X)

You can buy solved CAPTCHAs at captcha.guru, 2captcha, and similar services. They're a bit slow, but sufficient for image dumping. Depending on how much you post, this can be cheaper than a Pass, and it doesn't require cryptocurrency to purchase. 4chan X has integrated support for services that use 2captcha's API. Go to Advanced > Captcha Solving Service in the settings panel to set it up.

If you're thinking of buying a Pass because of annoying "Click verify once there are none left" captchas, you may be able to get rid of them for free by checking Force Noscript Captcha in your settings.

Most imageboards either don't require captchas to post at all or require them only in limited circumstances. Consider using another site. 4chan X works on many Tinyboard-based sites by default, and if your preferred site isn't on the default list, you can enable 4chan X on it by following these instructions.

"}); + return $.ready(function() { + var hd; + if ((hd = $.id('hd'))) { + return $.after(hd, msg); + } else { + return $.prepend(d.body, msg); + } + }); + } + }; + + return PassMessage; + +}).call(this); + PostJumper = (function() { var PostJumper; @@ -27307,7 +27328,7 @@ Main = (function() { Conf['Toggleable Thread Watcher'] = true; Conf['siteSoftware'] = ''; Conf['Use Faster Image Host'] = 'true'; - if (/\.4chan(?:nel)?\.org$/.test(location.hostname) && !$$('script:not([src])', d).filter(function(s) { + if (/\.4chan(?:nel)?\.org$/.test(location.hostname) && !SW.yotsuba.regexp.pass.test(location.href) && !$$('script:not([src])', d).filter(function(s) { return /this\[/.test(s.textContent); }).length) { ($.getSync || $.get)({ diff --git a/builds/4chan-X.crx b/builds/4chan-X.crx index 956ed8eb3..240b715f0 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 a4c84fefc..e1a34f6ad 100644 --- a/builds/4chan-X.meta.js +++ b/builds/4chan-X.meta.js @@ -1,6 +1,6 @@ // ==UserScript== // @name 4chan X -// @version 1.14.13.0 +// @version 1.14.13.1 // @minGMVer 1.14 // @minFFVer 26 // @namespace 4chan-X @@ -54,10 +54,6 @@ // @include https://www.google.com/recaptcha/api2/bframe?*&k=6Ldp2bsSAAAAAAJ5uyx_lx34lJeEpTLVkP5k04qc* // @include http://www.google.com/recaptcha/api/fallback?k=6Ldp2bsSAAAAAAJ5uyx_lx34lJeEpTLVkP5k04qc* // @include https://www.google.com/recaptcha/api/fallback?k=6Ldp2bsSAAAAAAJ5uyx_lx34lJeEpTLVkP5k04qc* -// @exclude http://www.4chan.org/pass -// @exclude https://www.4chan.org/pass -// @exclude http://www.4chan.org/pass?* -// @exclude https://www.4chan.org/pass?* // @exclude http://www.4chan.org/advertise // @exclude https://www.4chan.org/advertise // @exclude http://www.4chan.org/advertise?* @@ -66,10 +62,6 @@ // @exclude https://www.4chan.org/donate // @exclude http://www.4chan.org/donate?* // @exclude https://www.4chan.org/donate?* -// @exclude http://www.4channel.org/pass -// @exclude https://www.4channel.org/pass -// @exclude http://www.4channel.org/pass?* -// @exclude https://www.4channel.org/pass?* // @exclude http://www.4channel.org/advertise // @exclude https://www.4channel.org/advertise // @exclude http://www.4channel.org/advertise?* diff --git a/builds/4chan-X.user.js b/builds/4chan-X.user.js index 879741884..a5c9ee6c4 100644 --- a/builds/4chan-X.user.js +++ b/builds/4chan-X.user.js @@ -1,6 +1,6 @@ // ==UserScript== // @name 4chan X -// @version 1.14.13.0 +// @version 1.14.13.1 // @minGMVer 1.14 // @minFFVer 26 // @namespace 4chan-X @@ -54,10 +54,6 @@ // @include https://www.google.com/recaptcha/api2/bframe?*&k=6Ldp2bsSAAAAAAJ5uyx_lx34lJeEpTLVkP5k04qc* // @include http://www.google.com/recaptcha/api/fallback?k=6Ldp2bsSAAAAAAJ5uyx_lx34lJeEpTLVkP5k04qc* // @include https://www.google.com/recaptcha/api/fallback?k=6Ldp2bsSAAAAAAJ5uyx_lx34lJeEpTLVkP5k04qc* -// @exclude http://www.4chan.org/pass -// @exclude https://www.4chan.org/pass -// @exclude http://www.4chan.org/pass?* -// @exclude https://www.4chan.org/pass?* // @exclude http://www.4chan.org/advertise // @exclude https://www.4chan.org/advertise // @exclude http://www.4chan.org/advertise?* @@ -66,10 +62,6 @@ // @exclude https://www.4chan.org/donate // @exclude http://www.4chan.org/donate?* // @exclude https://www.4chan.org/donate?* -// @exclude http://www.4channel.org/pass -// @exclude https://www.4channel.org/pass -// @exclude http://www.4channel.org/pass?* -// @exclude https://www.4channel.org/pass?* // @exclude http://www.4channel.org/advertise // @exclude https://www.4channel.org/advertise // @exclude http://www.4channel.org/advertise?* @@ -204,7 +196,7 @@ 'use strict'; -var $, $$, Anonymize, AntiAutoplay, ArchiveLink, Banner, Board, BoardConfig, CSS, Callbacks, Captcha, CatalogLinks, CatalogThread, CatalogThreadNative, Config, Connection, CopyTextLink, CrossOrigin, CustomCSS, DataBoard, DeleteLink, DownloadLink, Embedding, ExpandComment, ExpandThread, FappeTyme, Favicon, Fetcher, FileInfo, Filter, Flash, Fourchan, Gallery, Get, Header, IDColor, IDHighlight, IDPostCount, ImageCommon, ImageExpand, ImageHost, ImageHover, ImageLoader, Index, Keybinds, Linkify, Main, MarkNewIPs, Menu, Metadata, ModContact, Nav, NormalizeURL, Notice, PSA, PSAHiding, PassLink, Polyfill, Post, PostHiding, PostJumper, PostRedirect, PostSuccessful, QR, QuoteBacklink, QuoteCT, QuoteInline, QuoteOP, QuotePreview, QuoteStrikeThrough, QuoteThreading, QuoteYou, Quotify, RandomAccessList, Recursive, Redirect, RelativeDates, RemoveSpoilers, ReplyPruning, Report, ReportLink, RevealSpoilers, SW, Sauce, Settings, ShimSet, SimpleDict, Site, Test, Thread, ThreadHiding, ThreadLinks, ThreadStats, ThreadUpdater, ThreadWatcher, Time, Tinyboard, UI, Unread, UnreadIndex, Volume; +var $, $$, Anonymize, AntiAutoplay, ArchiveLink, Banner, Board, BoardConfig, CSS, Callbacks, Captcha, CatalogLinks, CatalogThread, CatalogThreadNative, Config, Connection, CopyTextLink, CrossOrigin, CustomCSS, DataBoard, DeleteLink, DownloadLink, Embedding, ExpandComment, ExpandThread, FappeTyme, Favicon, Fetcher, FileInfo, Filter, Flash, Fourchan, Gallery, Get, Header, IDColor, IDHighlight, IDPostCount, ImageCommon, ImageExpand, ImageHost, ImageHover, ImageLoader, Index, Keybinds, Linkify, Main, MarkNewIPs, Menu, Metadata, ModContact, Nav, NormalizeURL, Notice, PSA, PSAHiding, PassLink, PassMessage, Polyfill, Post, PostHiding, PostJumper, PostRedirect, PostSuccessful, QR, QuoteBacklink, QuoteCT, QuoteInline, QuoteOP, QuotePreview, QuoteStrikeThrough, QuoteThreading, QuoteYou, Quotify, RandomAccessList, Recursive, Redirect, RelativeDates, RemoveSpoilers, ReplyPruning, Report, ReportLink, RevealSpoilers, SW, Sauce, Settings, ShimSet, SimpleDict, Site, Test, Thread, ThreadHiding, ThreadLinks, ThreadStats, ThreadUpdater, ThreadWatcher, Time, Tinyboard, UI, Unread, UnreadIndex, Volume; var Conf, E, c, d, doc, docSet, g; @@ -219,7 +211,7 @@ docSet = function() { }; g = { - VERSION: '1.14.13.0', + VERSION: '1.14.13.1', NAMESPACE: '4chan X.', sites: Object.create(null), boards: Object.create(null) @@ -8158,7 +8150,8 @@ SW = {}; }, regexp: { quotelink: /^https?:\/\/boards\.4chan(?:nel)?\.org\/+([^\/]+)\/+thread\/+(\d+)(?:[\/?][^#]*)?(?:#p(\d+))?$/, - quotelinkHTML: /]*\bhref="(?:(?:\/\/boards\.4chan(?:nel)?\.org)?\/([^\/]+)\/thread\/)?(\d+)?(?:#p(\d+))?"/g + quotelinkHTML: /]*\bhref="(?:(?:\/\/boards\.4chan(?:nel)?\.org)?\/([^\/]+)\/thread\/)?(\d+)?(?:#p(\d+))?"/g, + pass: /^https?:\/\/www\.4chan(?:nel)?\.org\/+pass(?:$|[?#])/ }, bgColoredEl: function() { return $.el('div', { @@ -8193,10 +8186,14 @@ SW = {}; switch (location.hostname) { case 'www.4chan.org': case 'www.4channel.org': - $.onExists(doc, 'body', function() { - return $.addStyle(CSS.www); - }); - Captcha.replace.init(); + if (SW.yotsuba.regexp.pass.test(location.href)) { + PassMessage.init(); + } else { + $.onExists(doc, 'body', function() { + return $.addStyle(CSS.www); + }); + Captcha.replace.init(); + } break; case 'sys.4chan.org': case 'sys.4channel.org': @@ -19889,6 +19886,30 @@ PSAHiding = (function() { }).call(this); +PassMessage = (function() { + var PassMessage; + + PassMessage = { + init: function() { + var msg; + msg = $.el('div', { + className: 'box-outer top-box' + }, {innerHTML: "

Trouble buying a 4chan Pass? (a message from 4chan X)

You can buy solved CAPTCHAs at captcha.guru, 2captcha, and similar services. They're a bit slow, but sufficient for image dumping. Depending on how much you post, this can be cheaper than a Pass, and it doesn't require cryptocurrency to purchase. 4chan X has integrated support for services that use 2captcha's API. Go to Advanced > Captcha Solving Service in the settings panel to set it up.

If you're thinking of buying a Pass because of annoying "Click verify once there are none left" captchas, you may be able to get rid of them for free by checking Force Noscript Captcha in your settings.

Most imageboards either don't require captchas to post at all or require them only in limited circumstances. Consider using another site. 4chan X works on many Tinyboard-based sites by default, and if your preferred site isn't on the default list, you can enable 4chan X on it by following these instructions.

"}); + return $.ready(function() { + var hd; + if ((hd = $.id('hd'))) { + return $.after(hd, msg); + } else { + return $.prepend(d.body, msg); + } + }); + } + }; + + return PassMessage; + +}).call(this); + PostJumper = (function() { var PostJumper; @@ -27307,7 +27328,7 @@ Main = (function() { Conf['Toggleable Thread Watcher'] = true; Conf['siteSoftware'] = ''; Conf['Use Faster Image Host'] = 'true'; - if (/\.4chan(?:nel)?\.org$/.test(location.hostname) && !$$('script:not([src])', d).filter(function(s) { + if (/\.4chan(?:nel)?\.org$/.test(location.hostname) && !SW.yotsuba.regexp.pass.test(location.href) && !$$('script:not([src])', d).filter(function(s) { return /this\[/.test(s.textContent); }).length) { ($.getSync || $.get)({ diff --git a/builds/4chan-X.zip b/builds/4chan-X.zip index 95c1c338e..c5c995312 100644 Binary files a/builds/4chan-X.zip and b/builds/4chan-X.zip differ diff --git a/builds/updates-beta.json b/builds/updates-beta.json index 6816c2cae..7ebd901c0 100644 --- a/builds/updates-beta.json +++ b/builds/updates-beta.json @@ -3,7 +3,7 @@ "4chan-x@4chan-x.net": { "updates": [ { - "version": "1.14.13.0", + "version": "1.14.13.1", "update_link": "https://www.4chan-x.net/builds/4chan-X-beta.crx" } ] diff --git a/builds/updates-beta.xml b/builds/updates-beta.xml index 0ead1dffe..6da56d040 100644 --- a/builds/updates-beta.xml +++ b/builds/updates-beta.xml @@ -1,7 +1,7 @@ - + diff --git a/builds/updates.json b/builds/updates.json index d2a64b671..f046e216e 100644 --- a/builds/updates.json +++ b/builds/updates.json @@ -3,7 +3,7 @@ "4chan-x@4chan-x.net": { "updates": [ { - "version": "1.14.13.0", + "version": "1.14.13.1", "update_link": "https://www.4chan-x.net/builds/4chan-X.crx" } ] diff --git a/builds/updates.xml b/builds/updates.xml index 25977f0e9..f8c351749 100644 --- a/builds/updates.xml +++ b/builds/updates.xml @@ -1,7 +1,7 @@ - + diff --git a/version.json b/version.json index 1ead0fb27..709ec5147 100644 --- a/version.json +++ b/version.json @@ -1,4 +1,4 @@ { - "version": "1.14.13.0", - "date": "2019-08-27T02:30:35.340Z" + "version": "1.14.13.1", + "date": "2019-09-04T19:08:00.986Z" } \ No newline at end of file