Skip to content

Instantly share code, notes, and snippets.

@cosmo0
Last active April 23, 2025 10:00
Show Gist options
  • Save cosmo0/1154d158f9dc1f3b7f5fe841079b0cf0 to your computer and use it in GitHub Desktop.
Save cosmo0/1154d158f9dc1f3b7f5fe841079b0cf0 to your computer and use it in GitHub Desktop.
Better Dekudeals - Tampermonkey / Greasemonkey / Violentmonkey
// ==UserScript==
// @name Better Dekudeals
// @namespace http://dekudeals.com/
// @version 1.2
// @description Various improvements to Dekudeals
// @author cosmo0
// @match https://www.dekudeals.com/*
// @icon https://www.google.com/s2/favicons?sz=64&domain=dekudeals.com
// @require https://code.jquery.com/jquery-3.6.0.min.js
// @downloadURL https://gist.githubusercontent.com/cosmo0/1154d158f9dc1f3b7f5fe841079b0cf0/raw/dekudeals.user.js
// @updateURL https://gist.githubusercontent.com/cosmo0/1154d158f9dc1f3b7f5fe841079b0cf0/raw/dekudeals.user.js
// @grant GM.registerMenuCommand
// @grant GM_registerMenuCommand
// @grant GM_setClipboard
// @grant GM.setClipboard
// ==/UserScript==
(function() {
'use strict';
const $ = jQuery;
const items = $('.search-main > .browse-cards > .row > .col');
// Create GM menus
const gmClip = GM.setClipboard || GM_setClipboard;
console.log('initializing Better DekuDeals');
// styling
$('head').append(`<style type="text/css">
.better-dekudeal .btn { color: #343a40; }
body[data-theme='dark'] .better-dekudeal .btn { color: #dddddd; }
.better-dekudeal .btn:hover { background: none; color: #6c757d; }
body[data-theme='dark'] .better-dekudeal .btn:hover { color: #999999; }
</style>`);
// move "hide" button outside the dropdown
console.log(items.length + ' items to process');
items.each((idx, item) => {
const hideform = $(item).find('form[action$="/hide"]');
hideform.removeClass('btn-group');
const addToBtn = $(item).find('.watch-area');
hideform.insertAfter(addToBtn);
});
// create side menu container
const card = $('<div class="search-facet card hide-tail search-left-item better-dekudeal"><h6 class="card-header">Better DekuDeals</h6><div class="card-body p-2"></div></div>');
card.insertBefore($('#search-left-content .search-facet').first());
const container = card.find('.card-body');
const btn = $('<button type="button" class="btn btn-outline-secondary mb-2 w-100 text-left p-0 border-0" style="white-space: normal;"></button>');
// "hide all" button
const hideAll = btn.clone().text('Hide all on current page');
hideAll.on('click', () => {
$('.search-main form[action$="/hide"] .watch-button').each((idx, item) => {
$(item).click();
});
});
container.append(hideAll);
// copy only names
const gamesNamesButton = btn.clone().text('Copy only names');
gamesNamesButton.on('click', () => {
get_games(false, false);
});
container.append(gamesNamesButton);
// copy names and prices
const gamesButton = btn.clone().text('Copy names and price');
gamesButton.on('click', () => {
get_games(true, false);
});
container.append(gamesButton);
// copy only discounted
const discountButton = btn.clone().text('Copy only discounted');
discountButton.on('click', () => {
get_games(true, true);
});
container.append(discountButton);
/*
* Lists all games
*/
function get_games(withPrice, onlyDiscounted) {
let text = '';
items.each((_, c) => {
c = $(c);
const title = c.find('.main-link h6').text().trim(),
price = c.find('.d-flex.align-items-center.text-tight strong').text(),
discount = c.find('.badge-danger').text(),
lowest = c.find('.badge-warning').text(),
unavailable = c.find('.text-muted').text();
if (onlyDiscounted && discount) {
text += title + ' : ' + price + ' (' + discount + (lowest ? (' - ' + lowest) : '') + ')\n';
}
else if (!onlyDiscounted) {
text += title
if (withPrice) {
text += ' : ' + (price || unavailable);
if (discount) {
text += ' (' + discount + (lowest ? (' - ' + lowest) : '') + ')';
}
}
text += '\n';
}
});
console.log(text);
gmClip(text);
alert('Games list copied to clipboard');
}
})();
@valzi
Copy link

valzi commented Dec 14, 2024

Hi! I've been loving this, but DekuDeals just updated their site, which broke the script. I'd love an update if you feel like it. Thanks for it regardless.

@cosmo0
Copy link
Author

cosmo0 commented Dec 16, 2024

Thanks for the heads up! I'll check it out asap - I can't live without my little script, it's so useful for hiding all those sh*t games!

@valzi
Copy link

valzi commented Dec 17, 2024

It's incredibly useful!

Some people in the dekudeals discord are complaining about the redesign and the dev seems to be considering further changes. Just a heads up that you might have to update more than once or just wait until the dust settles before you bother.

@cosmo0
Copy link
Author

cosmo0 commented Dec 24, 2024

@valzi It's now updated.

@valzi
Copy link

valzi commented Dec 26, 2024

Thanks!

@valzi
Copy link

valzi commented Apr 17, 2025

Fyi, the hide button is missing underneath games again. I guess they updated!

image

@cosmo0
Copy link
Author

cosmo0 commented Apr 23, 2025

Updated - thanks!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment