diff --git a/4chan_x.user.js b/4chan_x.user.js index afcd6a4b1..b79278e72 100644 --- a/4chan_x.user.js +++ b/4chan_x.user.js @@ -78,31 +78,31 @@ Config = { main: { Enhancing: { - '404 Redirect': [true, 'Redirect dead threads and images'], - 'Keybinds': [true, 'Binds actions to keys'], - 'Time Formatting': [true, 'Arbitrarily formatted timestamps, using your local time'], - 'File Info Formatting': [true, 'Reformats the file information'], - 'Comment Expansion': [true, 'Expand too long comments'], - 'Thread Expansion': [true, 'View all replies'], - 'Index Navigation': [true, 'Navigate to previous / next thread'], - 'Reply Navigation': [false, 'Navigate to top / bottom of thread'], - 'Check for Updates': [true, 'Check for updated versions of 4chan X'] + '404 Redirect': [true, 'Redirect dead threads and images.'], + 'Keybinds': [true, 'Bind actions to keyboard shortcuts.'], + 'Time Formatting': [true, 'Localize and format timestamps arbitrarily.'], + 'File Info Formatting': [true, 'Reformat the file information.'], + 'Comment Expansion': [true, 'Can expand too long comments.'], + 'Thread Expansion': [true, 'Can expand threads to view all replies.'], + 'Index Navigation': [false, 'Navigate to previous / next thread.'], + 'Reply Navigation': [false, 'Navigate to top / bottom of thread.'], + 'Check for Updates': [true, 'Check for updated versions of 4chan X.'] }, Filtering: { - 'Anonymize': [false, 'Make everybody anonymous'], - 'Filter': [true, 'Self-moderation placebo'], - 'Recursive Filtering': [true, 'Filter replies of filtered posts, recursively'], - 'Reply Hiding': [true, 'Hide single replies'], - 'Thread Hiding': [true, 'Hide entire threads'], - 'Show Stubs': [true, 'Of hidden threads / replies'] + 'Anonymize': [false, 'Turn everyone Anonymous.'], + 'Filter': [true, 'Self-moderation placebo.'], + 'Recursive Filtering': [true, 'Filter replies of filtered posts, recursively.'], + 'Reply Hiding': [true, 'Hide single replies.'], + 'Thread Hiding': [true, 'Hide entire threads.'], + 'Stubs': [true, 'Make stubs of hidden threads / replies.'] }, Imaging: { - 'Image Auto-Gif': [false, 'Animate gif thumbnails'], - 'Image Expansion': [true, 'Expand images'], - 'Image Hover': [false, 'Show full image on mouseover'], - 'Sauce': [true, 'Add sauce to images'], - 'Reveal Spoilers': [false, 'Replace spoiler thumbnails by the original thumbnail'], - 'Expand From Current': [false, 'Expand images from current position to thread end.'] + 'Image Auto-Gif': [false, 'Animate GIF thumbnails.'], + 'Image Expansion': [true, 'Expand images.'], + 'Expand From Position': [true, 'Expand all images only from current position to thread end.'], + 'Image Hover': [false, 'Show full image on mouseover.'], + 'Sauce': [true, 'Add sauce links to images.'], + 'Reveal Spoilers': [false, 'Reveal spoiler thumbnails.'] }, Menu: { 'Menu': [true, 'Add a drop-down menu in posts.'], @@ -112,47 +112,45 @@ 'Archive Link': [true, 'Add an archive link to the menu.'] }, Monitoring: { - 'Thread Updater': [true, 'Update threads. Has more options in its own dialog.'], - 'Unread Count': [true, 'Show unread post count in tab title'], - 'Unread Favicon': [true, 'Show a different favicon when there are unread posts'], - 'Post in Title': [true, 'Show the op\'s post in the tab title'], - 'Thread Stats': [true, 'Display reply and image count'], - 'Thread Watcher': [true, 'Bookmark threads'], - 'Auto Watch': [true, 'Automatically watch threads that you start'], - 'Auto Watch Reply': [false, 'Automatically watch threads that you reply to'] + 'Thread Updater': [true, 'Fetch and insert new replies. Has more options in its own dialog.'], + 'Unread Count': [true, 'Show the unread posts count in the tab title.'], + 'Unread Favicon': [true, 'Show a different favicon when there are unread posts.'], + 'Post in Title': [true, 'Show the thread\'s subject in the tab title.'], + 'Thread Stats': [true, 'Display reply and image count.'], + 'Thread Watcher': [true, 'Bookmark threads.'], + 'Auto Watch': [true, 'Automatically watch threads that you start.'], + 'Auto Watch Reply': [false, 'Automatically watch threads that you reply to.'] }, Posting: { - 'Quick Reply': [true, 'Reply without leaving the page.'], - 'Cooldown': [true, 'Prevent "flood detected" errors.'], + 'Quick Reply': [true, 'WMD.'], 'Persistent QR': [false, 'The Quick reply won\'t disappear after posting.'], - 'Auto Hide QR': [true, 'Automatically hide the quick reply when posting.'], - 'Open Reply in New Tab': [false, 'Open replies in a new tab that are made from the main board.'], - 'Remember QR size': [false, 'Remember the size of the Quick reply (Firefox only).'], + 'Auto Hide QR': [false, 'Automatically hide the quick reply when posting.'], + 'Open Reply in New Tab': [false, 'Open replies posted from the board pages in a new tab.'], 'Remember Subject': [false, 'Remember the subject field, instead of resetting after posting.'], 'Remember Spoiler': [false, 'Remember the spoiler state, instead of resetting after posting.'], 'Hide Original Post Form': [true, 'Replace the normal post form with a shortcut to open the QR.'] }, Quoting: { - 'Quote Backlinks': [true, 'Add quote backlinks'], - 'OP Backlinks': [false, 'Add backlinks to the OP'], - 'Quote Highlighting': [true, 'Highlight the previewed post'], - 'Quote Inline': [true, 'Show quoted post inline on quote click'], - 'Quote Preview': [true, 'Show quote content on hover'], - 'Resurrect Quotes': [true, 'Linkify dead quotes to archives'], - 'Indicate OP quote': [true, 'Add \'(OP)\' to OP quotes'], - 'Indicate Cross-thread Quotes': [true, 'Add \'(Cross-thread)\' to cross-threads quotes'], - 'Forward Hiding': [true, 'Hide original posts of inlined backlinks'] + 'Quote Backlinks': [true, 'Add quote backlinks.'], + 'OP Backlinks': [false, 'Add backlinks to the OP.'], + 'Quote Inline': [true, 'Inline quoted post on click.'], + 'Forward Hiding': [true, 'Hide original posts of inlined backlinks.'], + 'Quote Preview': [true, 'Show quoted post on hover.'], + 'Quote Highlighting': [true, 'Highlight the previewed post.'], + 'Resurrect Quotes': [true, 'Linkify dead quotes to archives.'], + 'Indicate OP quote': [true, 'Add \'(OP)\' to OP quotes.'], + 'Indicate Cross-thread Quotes': [true, 'Add \'(Cross-thread)\' to cross-threads quotes.'] } }, filter: { name: ['# Filter any namefags:', '#/^(?!Anonymous$)/'].join('\n'), uniqueid: ['# Filter a specific ID:', '#/Txhvk1Tl/'].join('\n'), tripcode: ['# Filter any tripfags', '#/^!/'].join('\n'), - mod: ['# Set a custom class for mods:', '#/Mod$/;highlight:mod;op:yes', '# Set a custom class for moot:', '#/Admin$/;highlight:moot;op:yes'].join('\n'), + capcode: ['# Set a custom class for mods:', '#/Mod$/;highlight:mod;op:yes', '# Set a custom class for moot:', '#/Admin$/;highlight:moot;op:yes'].join('\n'), email: ['# Filter any e-mails that are not `sage` on /a/ and /jp/:', '#/^(?!sage$)/;boards:a,jp'].join('\n'), subject: ['# Filter Generals on /v/:', '#/general/i;boards:v;op:only'].join('\n'), comment: ['# Filter Stallman copypasta on /g/:', '#/what you\'re refer+ing to as linux/i;boards:g'].join('\n'), - country: [''].join('\n'), + flag: [''].join('\n'), filename: [''].join('\n'), dimensions: ['# Highlight potential wallpapers:', '#/1920x1080/;op:yes;highlight;top:no;boards:w,wg'].join('\n'), filesize: [''].join('\n'), @@ -164,39 +162,39 @@ fileInfo: '%l (%p%s, %r)', favicon: 'ferongr', hotkeys: { - openQR: ['i', 'Open QR with post number inserted'], - openEmptyQR: ['I', 'Open QR without post number inserted'], - openOptions: ['ctrl+o', 'Open Options'], - close: ['Esc', 'Close Options or QR'], - spoiler: ['ctrl+s', 'Quick spoiler tags'], - code: ['alt+c', 'Quick code tags'], - submit: ['alt+s', 'Submit post'], - watch: ['w', 'Watch thread'], - update: ['u', 'Update now'], - unreadCountTo0: ['z', 'Reset unread status'], - expandImage: ['m', 'Expand selected image'], - expandAllImages: ['M', 'Expand all images'], - zero: ['0', 'Jump to page 0'], - nextPage: ['L', 'Jump to the next page'], - previousPage: ['H', 'Jump to the previous page'], - nextThread: ['n', 'See next thread'], - previousThread: ['p', 'See previous thread'], - expandThread: ['e', 'Expand thread'], - openThreadTab: ['o', 'Open thread in current tab'], - openThread: ['O', 'Open thread in new tab'], - nextReply: ['J', 'Select next reply'], - previousReply: ['K', 'Select previous reply'], - hide: ['x', 'Hide thread'] + 'open QR': ['q', 'Open QR with post number inserted.'], + 'open empty QR': ['Q', 'Open QR without post number inserted.'], + 'open options': ['alt+o', 'Open Options.'], + 'close': ['Esc', 'Close Options or QR.'], + 'spoiler tags': ['ctrl+s', 'Insert spoiler tags.'], + 'code tags': ['alt+c', 'Insert code tags.'], + 'submit QR': ['alt+s', 'Submit post.'], + 'watch': ['w', 'Watch thread.'], + 'update': ['u', 'Update the thread now.'], + 'reset unread count': ['r', 'Reset unread status.'], + 'expand image': ['E', 'Expand selected image.'], + 'expand images': ['e', 'Expand all images.'], + 'front page': ['0', 'Jump to page 0.'], + 'next page': ['Right', 'Jump to the next page.'], + 'previous page': ['Left', 'Jump to the previous page.'], + 'next thread': ['Down', 'See next thread.'], + 'previous thread': ['Up', 'See previous thread.'], + 'expand thread': ['ctrl+e', 'Expand thread.'], + 'open thread': ['o', 'Open thread in current tab.'], + 'open thread tab': ['O', 'Open thread in new tab.'], + 'next reply': ['j', 'Select next reply.'], + 'previous reply': ['k', 'Select previous reply.'], + 'hide': ['x', 'Hide thread.'] }, updater: { checkbox: { - 'Scrolling': [false, 'Scroll updated posts into view. Only enabled at bottom of page.'], - 'Scroll BG': [false, 'Scroll background tabs'], - 'Verbose': [true, 'Show countdown timer, new post count'], - 'Auto Update': [true, 'Automatically fetch new posts'] + 'Auto Scroll': [false, 'Scroll updated posts into view. Only enabled at bottom of page.'], + 'Scroll BG': [false, 'Auto-scroll background tabs.'], + 'Auto Update': [true, 'Automatically fetch new posts.'] }, 'Interval': 30 - } + }, + imageFit: 'fit width' }; if (!/^(boards|images|sys)\.4chan\.org$/.test(location.hostname)) { @@ -241,8 +239,8 @@ style = UI.el.style; style.left = left; style.top = top; - style.right = left === null ? '0px' : null; - return style.bottom = top === null ? '0px' : null; + style.right = left ? null : '0px'; + return style.bottom = top ? null : '0px'; }, dragend: function() { localStorage.setItem("" + Main.namespace + UI.el.id + ".position", UI.el.style.cssText); diff --git a/script.coffee b/script.coffee index bc83d1cdf..17dcfcbc4 100644 --- a/script.coffee +++ b/script.coffee @@ -179,7 +179,7 @@ UI = el.querySelector('.move').addEventListener 'mousedown', UI.dragstart, false el dragstart: (e) -> - #prevent text selection + # prevent text selection e.preventDefault() UI.el = el = @parentNode d.addEventListener 'mousemove', UI.drag, false @@ -201,13 +201,11 @@ UI = if top < 10 then '0px' else if UI.height - top < 10 then null else top + 'px' - #using null instead of '' is 4% faster - #these 4 statements are 40% faster than 1 style.cssText {style} = UI.el style.left = left style.top = top - style.right = if left is null then '0px' else null - style.bottom = if top is null then '0px' else null + style.right = if left then null else '0px' + style.bottom = if top then null else '0px' dragend: -> localStorage.setItem "#{Main.namespace}#{UI.el.id}.position", UI.el.style.cssText d.removeEventListener 'mousemove', UI.drag, false