steamgifts.com improved game filter

Makes hiding giveaways for specific games much quicker and easier

目前為 2015-06-17 提交的版本,檢視 最新版本

// ==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)