From a475612a1af7ddc59862ef0baff546ab12cd31ee Mon Sep 17 00:00:00 2001 From: Big Duckie Date: Mon, 13 Jan 2025 09:31:36 -0700 Subject: [PATCH] Add improved_redgifs.user.js --- improved_redgifs.user.js | 163 +++++++++++++++++++++++++++++++++++++++ 1 file changed, 163 insertions(+) create mode 100644 improved_redgifs.user.js diff --git a/improved_redgifs.user.js b/improved_redgifs.user.js new file mode 100644 index 0000000..7cab70d --- /dev/null +++ b/improved_redgifs.user.js @@ -0,0 +1,163 @@ +// ==UserScript== +// @name Improved RedGIFs +// @namespace BigDuckie.ImprovedRedgifs +// @version 2025.1.13 +// @description Fix a few annoying "features" and add an easy download button. +// @icon https://www.google.com/s2/favicons?sz=64&domain=redgifs.com +// @author Big Duckie +// @copyright 2025, Big Duckie (https://bigduckie.dev) +// @license MIT +// @match https://*.redgifs.com +// @match https://*.redgifs.com/watch/* +// @match https://*.redgifs.com/niches/* +// @match https://*.redgifs.com/ifr/* +// @require https://cdnjs.cloudflare.com/ajax/libs/jquery/3.7.1/jquery.min.js +// @require https://raw.githubusercontent.com/pie6k/jquery.initialize/master/jquery.initialize.min.js +// @grant GM_addStyle +// @grant GM_download +// ==/UserScript== + +(function () { + 'use strict'; + GM_addStyle(` + .DLButton { + background: 0 0; + border: none; + cursor: pointer; + color: var(--white); + font: var(--s1-medium); + text-shadow: var(--black) 1px 0 5px; + text-align: center; + } + + .embeddedPlayer .buttons .button svg { + margin-left: 3px; + }`); + + jQuery.noConflict(); + + const play_svg = () => jQuery(document.createElementNS("http://www.w3.org/2000/svg", "svg")).attr({ + width: 24, + height: 24, + viewBox: "0 0 24 24", + fill: "none", + stroke: "currentColor", + stroke_width: 2, + stroke_linecap: "round", + stroke_linejoin: "round" + }).html(``); + + const pause_svg = () => jQuery(document.createElementNS("http://www.w3.org/2000/svg", "svg")).attr({ + width: 24, + height: 24, + viewBox: "0 0 24 24", + fill: "none", + stroke: "currentColor", + stroke_width: 2, + stroke_linecap: "round", + stroke_linejoin: "round" + }).html(``); + + const download_svg = () => jQuery(document.createElementNS("http://www.w3.org/2000/svg", "svg")) + .attr({ + width: 24, + height: 24, + viewBox: "0 0 24 24", + fill: "none", + stroke: "currentColor", + stroke_width: 2, + stroke_linecap: "round", + stroke_linejoin: "round" + }).html(``); + + // Remove overlayer + jQuery.initialize(".Player-OverLayer", function() { + this.remove(); + }); + + // Watch & Niche pages + jQuery.initialize(".SideBar", function () { + const gif_root = jQuery(this).parent().parent(); + let gif_id = gif_root.attr("id").substring(4); + + jQuery(this).find(".SideBar-Item>.rg-button.views").on("click", function () { + togglePlayer(gif_root.find(".Player-Video>video")[0]); + }).children("svg").replaceWith(pause_svg()); + + jQuery(this).children(".SideBar-Item:has(.FSButton)").after( + jQuery("
  • ", { + class: "SideBar-Item" + }).append( + jQuery("