Automatically apply settings when creating giveaways
// ==UserScript==
// @name Steamgifts Giveaway Helper
// @namespace http://tampermonkey.net/
// @version 2.0.1
// @description Automatically apply settings when creating giveaways
// @icon https://cdn.steamgifts.com/img/favicon.ico
// @author Bisumaruko
// @match https://www.steamgifts.com/giveaways/new
// @grant none
// ==/UserScript==
const eol = "\n";
const settings = {
type: 'key', // gift, key
copies: 1, // The number of copies of the game you're looking to give away.
start: 0, // GA starts in x hours, 0 = now
end: 1, // GA ends in x hours after start, min 1 hour after start
region: 'None', // None, China, Europe, Hong Kong, North America, RU + CIS, Saudi Arabia, SE Asia, South America
who: 'everyone', // everyone, invite_only, groups
level: 1, // 0 ~ 10
description: 'Good luck!' // description
};
const atReview = !!$('form.disable-form-onclick').length;
if (!atReview) {
// giveaway type
$(`.form__row--giveaway-type [data-checkbox-value=${settings.type}]`).click();
// giveaway keys
if (settings.type === 'key') {
const $keys = $('textarea[name=key_string]');
const regKey = /([A-Za-z0-9]{5}-){2,4}[A-Za-z0-9]{5}/g;
$keys.blur(() => {
$keys.val((i, value) => value.match(regKey).join(eol));
});
} else {
$('.form__row--giveaway-copies input[name=copies]').val(settings.copies);
}
// giveaway time
const now = Date.now();
const start = parseInt(settings.start, 10) || 0;
const end = (parseInt(settings.end, 10) || 1) + start;
const toFormat = (duration = 0) => {
const dateObj = new Date(now + duration * 60 * 60 * 1000);
const date = dateObj.toLocaleString('en-US', {
year: 'numeric',
month: 'short',
day: 'numeric'
});
const time = dateObj.toLocaleString('en-GB', {
hour12: true,
hour: 'numeric',
minute: '2-digit'
});
return `${date} ${time}`;
};
$('input[name=start_time]').val(toFormat(start));
$('input[name=end_time]').val(toFormat(end));
// giveaway region restricted
if (settings.region === 'None') {
$('input[name=region_restricted] ~ [data-checkbox-value=0]').click();
} else {
$('input[name=region_restricted] ~ [data-checkbox-value=1]').click();
if (settings.region === 'China') {
$('input[placeholder^=Search]').val('China').keyup();
$('.form_list_item_summary_name:contains("China")').click();
} else {
$(`option:contains("${settings.region}")`).prop('selected', 'selected');
}
}
// giveaway who can enter
$(`.form__row--who-can-enter [data-checkbox-value=${settings.who}]`).click();
// giveaway contributor level
if (settings.level > 0) {
const s = $('.form__slider--level');
s.slider('value', settings.level);
s.slider('option', 'slide').call(s, null, { value: settings.level });
}
// giveaway description
if (settings.description.length > 0) {
$('textarea[name=description]').val(settings.description);
}
}