diff --git a/CHANGELOG.md b/CHANGELOG.md
index 4e2fb509c..e9c652f2a 100755
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,18 +1,9 @@
-<<<<<<< HEAD
-**Zixaphir**:
-- Better MediaCru.sh embedding
-- Infinite Scrolling
-
-### v1.2.41
-*2013-10-03*
-=======
-## 3.14.0 - *2013-11-21*
+**MayhemYDG**:
+- Tiny posting cooldown adjustment:
+ - You can post an image reply immediately after a non-image reply.
- **New option**: `Auto-hide header on scroll`.
- Added support for `4cdn.org`.
-
-## 3.13.0 - *2013-11-16*
-
- More index navigation improvements:
- Searching in the index is now possible and will show matched OPs by:
@@ -31,14 +22,7 @@
- The elapsed time since the last index refresh is now indicated at the top of the index.
- New setting: `Show replies`, enabled by default. Disable it to only show OPs in the index.
-
-### 3.12.1 - *2013-11-04*
-
- The index refreshing notification will now only appear on initial page load with slow connections.
-- Minor fixes.
-
-## 3.12.0 - *2013-11-03*
-
- Index navigation improvements:
- You can now refresh the index page you are on with the refresh shortcut in the header bar or the same keybind for refreshing threads.
- You can now switch between paged and all-threads index modes via the "Index Navigation" header sub-menu:
@@ -53,48 +37,43 @@
- Navigating across index pages is now instantaneous.
- Added a keybind to open the catalog search field on index pages.
+- Various minor fixes
-### 3.11.5 - *2013-10-03*
+### v1.2.43
+*2013-11-10*
-- Minor Chrome 30 fix.
->>>>>>> ce0c0c1623702e7931908183160fa04a31b26897
+**noface**:
+- Strawpoll.me embedding support (as usual, only works on HTTP 4chan due to lack of HTTPS)
+
+### v1.2.42
+*2013-10-22*
+
+**Zixaphir**:
+- Better MediaCru.sh embedding
+- Infinite Scrolling
+
+### v1.2.41
+*2013-10-03*
**MayhemYDG**:
- Minor Chrome 30 fix
-<<<<<<< HEAD
### v1.2.40
*2013-09-22*
-=======
-- Tiny posting cooldown adjustment:
- - You can post an image reply immediately after a non-image reply.
->>>>>>> ce0c0c1623702e7931908183160fa04a31b26897
**MayhemYDG**:
- /pol/ flag selector
-<<<<<<< HEAD
**seaweedchan**:
- Delete cooldown update
- Small bug fixes
- Don't show warnings AND desktop notifications at the same time, and prefer QR warnings unless the document is hidden
-=======
-- Update posting cooldown timers to match 4chan settings:
- - Cooldown may vary between inter-thread and intra-thread replies.
- - Cooldown may vary when posting a file or not.
- - Cooldown does not take sageing into account anymore.
- - Timers vary across boards.
->>>>>>> ce0c0c1623702e7931908183160fa04a31b26897
### v1.2.39
*2013-09-19*
-<<<<<<< HEAD
**seaweedchan**:
- Fix thread updater bug introduced in last version
-=======
-- Updated post and deletion cooldown timers to match 4chan changes: they are now twice as long.
->>>>>>> ce0c0c1623702e7931908183160fa04a31b26897
### v1.2.38
*2013-09-19*
@@ -436,17 +415,8 @@
### v1.2.3
*2013-05-14*
-<<<<<<< HEAD
**MayhemYDG**:
- Add new archive selection
-=======
-- **New feature**: `Archive selection`
- - Select which archive you want for specific boards and redirection type.
- - Access it in the `Archives` tab of the Settings window.
-- The list of archived boards will now update automatically, independently from 4chan X updates.
- - If you're an archiver and want [data](https://github.com/MayhemYDG/4chan-x/blob/v3/json/archives.json) about your archive to be updated, added or removed: send a PR or open an issue.
-- Fix quote previews getting 'stuck' in Opera.
->>>>>>> ce0c0c1623702e7931908183160fa04a31b26897
**seaweedchan**:
- Change watcher favicon to a heart. Change class name from `.favicon` to `.watch-thread-link`. Add `.watched` if thread is watched.
diff --git a/LICENSE b/LICENSE
index fd717aaf9..b14fa2a9d 100755
--- a/LICENSE
+++ b/LICENSE
@@ -1,5 +1,5 @@
/*
-* 4chan X - Version 1.2.41 - 2013-11-22
+* 4chan X - Version 1.2.43 - 2013-11-23
*
* Licensed under the MIT license.
* https://github.com/seaweedchan/4chan-x/blob/master/LICENSE
diff --git a/builds/4chan-X.meta.js b/builds/4chan-X.meta.js
index 0324d73f2..c4efe67c6 100755
--- a/builds/4chan-X.meta.js
+++ b/builds/4chan-X.meta.js
@@ -1,6 +1,6 @@
// ==UserScript==
// @name 4chan X
-// @version 1.2.41
+// @version 1.2.43
// @minGMVer 1.12
// @minFFVer 22
// @namespace 4chan-X
diff --git a/builds/4chan-X.user.js b/builds/4chan-X.user.js
index b594b9af4..c46d61b88 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.2.41
+// @version 1.2.43
// @minGMVer 1.12
// @minFFVer 22
// @namespace 4chan-X
@@ -22,7 +22,7 @@
// ==/UserScript==
/*
-* 4chan X - Version 1.2.41 - 2013-11-22
+* 4chan X - Version 1.2.43 - 2013-11-23
*
* Licensed under the MIT license.
* https://github.com/seaweedchan/4chan-x/blob/master/LICENSE
@@ -340,7 +340,7 @@
doc = d.documentElement;
g = {
- VERSION: '1.2.41',
+ VERSION: '1.2.43',
NAMESPACE: '4chan X.',
boards: {},
threads: {},
@@ -5718,6 +5718,15 @@
}
}
},
+ StrawPoll: {
+ regExp: /strawpoll\.me\/(?:embed_\d+\/)?(\d+)/,
+ style: 'border: 0; width: 600px; height: 406px;',
+ el: function(a) {
+ return $.el('iframe', {
+ src: "http://strawpoll.me/embed_1/" + a.dataset.uid
+ });
+ }
+ },
TwitchTV: {
regExp: /.*(?:twitch.tv\/)([^#\&\?]*).*/,
style: "border: none; width: 640px; height: 360px;",
diff --git a/builds/crx/manifest.json b/builds/crx/manifest.json
index 52a805af7..e5e00f3a4 100755
--- a/builds/crx/manifest.json
+++ b/builds/crx/manifest.json
@@ -1,6 +1,6 @@
{
"name": "4chan X",
- "version": "1.2.41",
+ "version": "1.2.43",
"manifest_version": 2,
"description": "Cross-browser userscript for maximum lurking on 4chan.",
"icons": {
diff --git a/builds/crx/script.js b/builds/crx/script.js
index f46f4e729..9850f6274 100644
--- a/builds/crx/script.js
+++ b/builds/crx/script.js
@@ -1,6 +1,6 @@
// Generated by CoffeeScript
/*
-* 4chan X - Version 1.2.41 - 2013-11-22
+* 4chan X - Version 1.2.43 - 2013-11-23
*
* Licensed under the MIT license.
* https://github.com/seaweedchan/4chan-x/blob/master/LICENSE
@@ -82,7 +82,7 @@
'use strict';
(function() {
- var $, $$, Anonymize, ArchiveLink, AutoGIF, Banner, Board, Build, CatalogLinks, Clone, Conf, Config, CustomCSS, DataBoard, DeleteLink, Dice, DownloadLink, Emoji, ExpandComment, ExpandThread, FappeTyme, Favicon, FileInfo, Filter, Fourchan, Gallery, Get, Header, IDColor, ImageExpand, ImageHover, ImageLoader, InfiniScroll, Keybinds, Linkify, Main, Menu, Nav, Notice, PSAHiding, Polyfill, Post, PostHiding, QR, QuoteBacklink, QuoteCT, QuoteInline, QuoteOP, QuotePreview, QuoteStrikeThrough, QuoteThreading, QuoteYou, Quotify, Recursive, Redirect, RelativeDates, RemoveSpoilers, Report, ReportLink, RevealSpoilers, Sauce, Settings, Thread, ThreadExcerpt, ThreadHiding, ThreadStats, ThreadUpdater, ThreadWatcher, Time, UI, Unread, c, d, doc, g,
+ var $, $$, Anonymize, ArchiveLink, AutoGIF, Banner, Board, Build, CatalogLinks, Clone, Conf, Config, CustomCSS, DataBoard, DeleteLink, Dice, DownloadLink, Emoji, ExpandComment, ExpandThread, FappeTyme, Favicon, FileInfo, Filter, Fourchan, Gallery, Get, Header, IDColor, ImageExpand, ImageHover, ImageLoader, Index, InfiniScroll, Keybinds, Linkify, Main, Menu, Nav, Notice, PSAHiding, Polyfill, Post, PostHiding, QR, QuoteBacklink, QuoteCT, QuoteInline, QuoteOP, QuotePreview, QuoteStrikeThrough, QuoteThreading, QuoteYou, Quotify, Recursive, Redirect, RelativeDates, RemoveSpoilers, Report, ReportLink, RevealSpoilers, Sauce, Settings, Thread, ThreadExcerpt, ThreadHiding, ThreadStats, ThreadUpdater, ThreadWatcher, Time, UI, Unread, 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; },
__hasProp = {}.hasOwnProperty,
@@ -233,6 +233,11 @@
'sageEmoji': '4chan SS',
'emojiPos': 'before',
'Custom CSS': false,
+ Index: {
+ 'Index Mode': 'paged',
+ 'Index Sort': 'bump',
+ 'Show Replies': true
+ },
Header: {
'Fixed Header': true,
'Header auto-hide': false,
@@ -313,7 +318,7 @@
doc = d.documentElement;
g = {
- VERSION: '1.2.41',
+ VERSION: '1.2.43',
NAMESPACE: '4chan X.',
boards: {},
threads: {},
@@ -2054,6 +2059,610 @@
}
};
+ Index = {
+ init: function() {
+ var input, label, modeEntry, repliesEntry, sortEntry, _i, _j, _len, _len1, _ref, _ref1;
+
+ if (g.VIEW !== 'index' || g.BOARD.ID === 'f') {
+ return;
+ }
+ this.button = $.el('a', {
+ className: 'index-refresh-shortcut fa fa-refresh',
+ title: 'Refresh Index',
+ href: 'javascript:;'
+ });
+ $.on(this.button, 'click', this.update);
+ Header.addShortcut(this.button, 1);
+ modeEntry = {
+ el: $.el('span', {
+ textContent: 'Index mode'
+ }),
+ subEntries: [
+ {
+ el: $.el('label', {
+ innerHTML: ' Paged'
+ })
+ }, {
+ el: $.el('label', {
+ innerHTML: ' All threads'
+ })
+ }
+ ]
+ };
+ _ref = modeEntry.subEntries;
+ for (_i = 0, _len = _ref.length; _i < _len; _i++) {
+ label = _ref[_i];
+ input = label.el.firstChild;
+ input.checked = Conf['Index Mode'] === input.value;
+ $.on(input, 'change', $.cb.value);
+ $.on(input, 'change', this.cb.mode);
+ }
+ sortEntry = {
+ el: $.el('span', {
+ textContent: 'Sort by'
+ }),
+ subEntries: [
+ {
+ el: $.el('label', {
+ innerHTML: ' Bump order'
+ })
+ }, {
+ el: $.el('label', {
+ innerHTML: ' Last reply'
+ })
+ }, {
+ el: $.el('label', {
+ innerHTML: ' Creation date'
+ })
+ }, {
+ el: $.el('label', {
+ innerHTML: ' Reply count'
+ })
+ }, {
+ el: $.el('label', {
+ innerHTML: ' File count'
+ })
+ }
+ ]
+ };
+ _ref1 = sortEntry.subEntries;
+ for (_j = 0, _len1 = _ref1.length; _j < _len1; _j++) {
+ label = _ref1[_j];
+ input = label.el.firstChild;
+ input.checked = Conf['Index Sort'] === input.value;
+ $.on(input, 'change', $.cb.value);
+ $.on(input, 'change', this.cb.sort);
+ }
+ repliesEntry = {
+ el: $.el('label', {
+ innerHTML: ' Show replies'
+ })
+ };
+ input = repliesEntry.el.firstChild;
+ input.checked = Conf['Show Replies'];
+ $.on(input, 'change', $.cb.checked);
+ $.on(input, 'change', this.cb.replies);
+ $.event('AddMenuEntry', {
+ type: 'header',
+ el: $.el('span', {
+ textContent: 'Index Navigation'
+ }),
+ order: 90,
+ subEntries: [modeEntry, sortEntry, repliesEntry]
+ });
+ $.addClass(doc, 'index-loading');
+ this.update();
+ this.root = $.el('div', {
+ className: 'board'
+ });
+ this.pagelist = $.el('div', {
+ className: 'pagelist',
+ hidden: true,
+ innerHTML: "