// ==UserScript== // @name Reddit - Top Comments Preview (old & new design) // @namespace https://greasyfork.org/users/5174-jesuis-parapluie // @author jesuis-parapluie // @version 3.03 // @description Preview to the top comments on Reddit (+ optional auto-load comments and images, auto-hide sidebar) // @homepageURL https://github.com/mationic/userscripts/blob/master/Reddit%20-%20Top%20Comments%20Preview.readme.md // @require https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js // @match *://*.reddit.com/* // @exclude /.*\/comments\/.*/ // @grant GM_getValue // @grant GM_setValue // @downloadURL https://update.greasyfork.icu/scripts/4957/Reddit%20-%20Top%20Comments%20Preview%20%28old%20%20new%20design%29.user.js // @updateURL https://update.greasyfork.icu/scripts/4957/Reddit%20-%20Top%20Comments%20Preview%20%28old%20%20new%20design%29.meta.js // ==/UserScript== (function ($) { "use strict"; /*jshint validthis: true */ /*jslint browser: true, regexp: true, newcap: true */ /*global $, jQuery, GM_getValue, GM_setValue, MutationObserver */ var options = { /* Number of comments to display */ topComments: 3, /* Sortings available: top, best, new, hot, controversial, old */ commentSorting: "top", /* Show comments at the top of items */ commentsAtTop: false, /* Don't show (pinned) comments from following users */ skipCommentsFrom: ["AutoModerator", "WholesomeBot", "PoliticalHumorBot", "SavageAxeBot", "movieDetailsModBot", "WritingPromptsRobot"], /* Disable sidebar button in menu bar */ disableSidebarButton: false, /* Disable autoload buttons in menu bar */ disableAutoloadButton: false, /* Disable RES keyboard shortcut 't' to show/hide comments */ disableShortCut: false }, helper = { const: { ID_REGEX: /\/comments\/([^/]+)/g }, prefix: { item: "item-", id: "toplink-", box: "commentpreview-" }, layout: { prefix: "layoutSwitch--", 0: "card", 1: "classic", 2: "compact", active: "" }, findLayout: function () { var i, j, colors = [], counts = {}; for (i = 0; i <= 2; i += 1) { colors.push($("#" + helper.layout.prefix + helper.layout[i]).find("svg").css("fill")); } $.each(colors, function (value) { if (!counts.hasOwnProperty(value)) { counts[value] = 1; } else { counts[value] += 1; } }); for (j in counts) { if (counts[j] === 1) { for (i = 0; i <= 2; i += 1) { if (colors[i] === j) { helper.layout.active = helper.layout[i]; break; } } } } }, toggleView: function (className) { (function (style) { style.display = style.display === "none" ? "" : "none"; }(document.querySelector(className).style)); } }, design = { active: "new", new: { style: [ ".aubox a.disabled{color:#995F5F;font-weight:400} .aubox a.enabled{color:#009D2D;font-weight:400} a#sidebarswitch{cursor:pointer}", "div.topbar{padding: 0 10px 0 10px;} div.topbar span{padding: 0 0 0 5px;} div.commentbox hr { border-color: #777; opacity: 0.2; }", "div.commentbox{-moz-box-sizing:border-box;-webkit-box-sizing:border-box;box-sizing:border-box;border-radius:5px;border:1px solid;white-space:normal;padding:5px;margin:8px 0}", "div.commentbox .md{border:1px solid rgb(120,120,120,0.4);-moz-box-sizing:border-box;-webkit-box-sizing:border-box;box-sizing:border-box;margin:3px 0;box-sizing:border-box;padding:2px 8px}", ".loaderror:before{content:' loading failed ';color:red} .loading:before{content:'Loading...'} .loading{color:rgb(79, 188, 255)} .res-nightmode .loaderror:before{content:' loading failed ';color:#E63A3A}", "div.commentbox .md *{white-space:normal} div.commentbox .md code{white-space:pre} div.commentbox .md pre{overflow:visible} div.commentbox>*{font-size:small}", "div.commentbox .ulink,div.commentbox .md a{font-weight:700} .listing-page .buttons li{vertical-align:top} .toplink{color:#FF4500!important;text-decoration:none;height: 14px; padding: 0 4px 0 4px;}", ".permalink{float:right;color:#666;margin-left:.5em} .points{font-weight:700;margin-left:.5em}" ].join(""), items_selector: ".scrollerItem", menubar_element: "
", menubar_parent: $("#view--layout--FUE").parent(), expando_button: ".icon-expandoArrowExpand", comment_link: "a[data-click-id=comments]" }, old: { style: [ ".aubox a.disabled{color:#995F5F;font-weight:400} .aubox a.enabled{color:#009D2D;font-weight:400} a#sidebarswitch{cursor:pointer}", "div.commentbox{-moz-box-sizing:border-box;-webkit-box-sizing:border-box;box-sizing:border-box;background:#fff;border-radius:5px;border:1px solid #dbdbdb;white-space:normal;padding:5px;display:inline-block;margin:8px 0}", "div.commentbox .md{border:1px solid #ddd;background:#f0f0f0;-moz-box-sizing:border-box;-webkit-box-sizing:border-box;box-sizing:border-box;margin:3px 0;box-sizing:border-box;padding:2px 8px}", ".loaderror:before{content:\" loading failed \";color:red} .loading:before{content:\"Loading...\"} .res-nightmode .loaderror:before{content:\" loading failed \";color:#E63A3A}", "div.commentbox .md *{white-space:normal} div.commentbox .md code{white-space:pre} div.commentbox .md pre{overflow:visible} div.commentbox>*{font-size:small}", "div.commentbox .ulink,div.commentbox .md a{font-weight:700;color:#369!important} .listing-page .buttons li{vertical-align:top} .toplink{color:#FF4500!important;text-decoration:none;margin-left:10px!important;}", ".permalink{float:right;color:#666;margin-left:.5em} .points{color:#333;font-weight:700;margin-left:.5em}", ".res-nightmode div.commentbox pre,.res-nightmode div.commentbox code,.res-nightmode .link .md pre{border:1px solid #222!important;background:#282828!important;background-color:#282828!important}", ".res-nightmode div.commentbox .ulink,.res-nightmode div.commentbox .md a{color:#1496dc!important} .res-nightmode div.commentbox{background:#333!important;border-color:#666!important}", ".res-nightmode div.commentbox .md{background:#555!important;border-color:#222!important} .res-nightmode .toplink{color:#eee!important}", ".res-nightmode div.commentbox .points{color:#ddd!important} .res-nightmode div.commentbox .permalink{color:#ccc!important}", ".res-nightmode div.commentbox .md blockquote, .res-nightmode div.commentbox .md del{color:#8C8C8C!important} .res-nightmode div.commentbox hr{border-color:#777!important};}", ".res-nightmode div.commentbox hr{border-color:#777!important;}" ].join(""), items_selector: "div.entry", menubar_element: "
  • ", menubar_parent: $(".tabmenu"), expando_button: ".res-show-images a", comment_link: "a:contains(comments)" } }, addStyle = function () { var style = $("