// ==UserScript==
// @name steamgifts.com improved game filter
// @description Makes hiding giveaways for specific games much quicker and easier
// @namespace Barefoot Monkey
// @include http://www.steamgifts.com/
// @include http://www.steamgifts.com/giveaways/search?*
// @version 1.1
// @grant none
// ==/UserScript==
$('<style>')
.text(
`@keyframes rotate-right-60px {
from {
background-position: 0px 0;
}
to {
background-position: 300px 0;
}
}
@keyframes rotate-left-60px {
from {
background-position: 0px 0;
}
to {
background-position: -300px 0;
}
}
.giveaway__row-outer-wrap {
transition: opacity 1s linear;
}
.BarefootMonkey-hidden {
opacity: 0.6;
background: repeating-linear-gradient(45deg, transparent 0px, transparent 10px, #ccc, 10px, #ccc 12px, transparent 12px), repeating-linear-gradient(-45deg, transparent 0px, transparent 10px, #ccc, 10px, #ccc 12px, transparent 12px);
}
.BarefootMonkey-hiding, .BarefootMonkey-unhiding {
opacity: 0.6;
animation-duration: 12s;
animation-iteration-count: infinite;
animation-timing-function: linear;
}
.BarefootMonkey-hiding {
animation-name: rotate-right-60px;
background: repeating-linear-gradient(45deg, transparent 0px, transparent 10px, #ccc, 10px, #ccc 12px);
}
.BarefootMonkey-unhiding {
animation-name: rotate-left-60px;
background: repeating-linear-gradient(-45deg, transparent 0px, transparent 10px, #ccc, 10px, #ccc 12px);
}
`)
.appendTo(document.head)
setTimeout(function() {
function update_filter(id, token, action, url, prior_class, progress_class, complete_class) {
$('.giveaway__icon.giveaway__hide[data-popup="popup--hide-games"][data-game-id='+id+']')
.closest('.giveaway__row-outer-wrap')
.addClass(progress_class)
.removeClass('BarefootMonkey-error')
.removeClass(prior_class)
$.ajax({
url: url,
method: 'POST',
context: {id: id, progress_class: progress_class, complete_class: complete_class},
data: {
'xsrf_token':token,
'game_id':id,
'do': action
},
'error': function() {
$('.giveaway__icon.giveaway__hide[data-popup="popup--hide-games"][data-game-id='+this.id+']')
.closest('.giveaway__row-outer-wrap')
.removeClass(this.progress_class)
.addClass('BarefootMonkey-error')
},
'success': function() {
$('.giveaway__icon.giveaway__hide[data-popup="popup--hide-games"][data-game-id='+this.id+']')
.closest('.giveaway__row-outer-wrap')
.removeClass(this.progress_class)
.addClass(this.complete_class)
}
})
}
$('.giveaway__icon.giveaway__hide')
.off()
.click(function(event) {
// get id and token
var id = $(this).data('game-id')
var token = $('.popup--hide-games form input[name="xsrf_token"]').val()
// hide or unhide the game
if (id && token) {
var closest = $(this).closest('.giveaway__row-outer-wrap')
if (closest.hasClass('BarefootMonkey-hidden')) {
update_filter(id, token, 'remove_filter', '/ajax.php', 'BarefootMonkey-hidden', 'BarefootMonkey-unhiding', null)
} else if (!closest.hasClass('BarefootMonkey-unhiding') && !closest.hasClass('BarefootMonkey-hiding')) {
update_filter(id, token, 'hide_giveaways_by_game_id', '/', null, 'BarefootMonkey-hiding', 'BarefootMonkey-hidden')
}
}
event.stopPropagation()
})
}, 1)