Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- // ==UserScript==
- // @id steamlove
- // @name steamlove
- // @version 1.0c
- // @namespace
- // @author EyEBURNeR
- // @description giveaway management helper
- // @include http://www.steamgifts.com/*
- // @run-at document-end
- // ==/UserScript==
- var $ = unsafeWindow.jQuery;
- //prepare globals
- var bundle_list=[];
- var ga_list=[];
- var ga=[];
- var ga_count=0;
- var ga_progress=0;
- //add eleg menu
- var obj=$('#navigation ol > li:eq(1)').clone();
- $(obj).attr('id','elegmenu').find('.arrow').text('Eleg');
- $('#navigation ol').append(obj);
- var elegmenu=$('#elegmenu .absolute-dropdown ul');
- var obj_li=$('li:first', elegmenu).clone();
- $('li', elegmenu).remove();
- //add eleg menu links
- $('a', obj_li).attr('href','/support/list').text('Check GA list');
- $(elegmenu).append($(obj_li).clone());
- // Check GA list page
- if(document.location.href.indexOf('/support/list')!==-1){
- elegInit();
- $('#eleg').html('<div>Paste source code of <a target="_blank" href="http://steamcommunity.com/groups/EverybodyLEG/discussions/0/864957817400238292/">eleg open ga list</a> then click the button:</div>');
- $('#eleg').append($('<textarea/>').attr('id','source').attr('style','width:100%')) .append($('<button/>').click(elegCheckGaList).text('Check'));
- function parseGaDone(){
- ga_progress++;
- $('#progress').val(ga_progress);
- if(ga_progress==ga_count){
- $('#progress').remove();
- elegCheckDone();
- }
- }
- }
- function elegCheckGaList(){
- $(this).after('<progress id="progress"></progress>');
- $(this).remove();
- var list=$('.forum_op .content', $('#source').val());
- console.log('Begin of process');
- $('a[href*="/giveaway/"]', list).each(function(){
- ga_list.push($(this).attr('href').replace('https://steamcommunity.com/linkfilter/',''));
- });
- for(i in ga_list)
- ga[i]={'href':ga_list[i]}
- ga_count=ga.length;
- $('#progress').attr('max',ga_count);
- getBundleList();
- for(i=0;i<ga_count;i++){
- populateGa(i);
- }
- }
- function elegCheckDone(){
- $('#eleg').append('<h4>Result : </h4>');
- var obj=$('<table/>');
- var tr=$('<tr/>');
- $(tr)
- .append($('<th/>').text('link'))
- .append($('<th/>').text('title'))
- .append($('<th/>').text('giver'))
- .append($('<th/>').text('cv'))
- .append($('<th/>').text('status/winner'))
- .append($('<th/>').text('B'))
- .append($('<th/>').text('NB'))
- .append($('<th/>').text('entries'))
- ;
- $(obj).append(tr);
- for(i in ga){
- var g=ga[i];
- var tr=$('<tr/>');
- $(tr)
- .append($('<td/>').text('http://www.steamgifts.com/giveaway/'+g.id))
- .append($('<td/>').text(g.title+','))
- .append($('<td/>').text(g.giver))
- .append($('<td/>').text(g.is_bundle ? 0:g.cv))
- .append($('<td/>').text(g.status=='CLOSED' ? g.winner:g.status))
- .append($('<td/>').text(g.is_bundle ? 1:0))
- .append($('<td/>').text(g.is_bundle ? 0:1))
- .append($('<td/>').text(g.entries))
- ;
- $(obj).append(tr);
- }
- GM_addStyle("#eleg table td{border:1px solid #333}");
- $('#eleg').append(obj);
- }
- function populateGa(gaIdx){
- var url=ga[gaIdx].href;
- $.ajax({
- url: url,
- success: function (page) {
- ga[gaIdx] = $.extend(ga[gaIdx], parseGa(page,url));
- console.log(ga[gaIdx]);
- parseGaDone();
- },
- dataType: 'html'
- });
- }
- function parseGa(page,url){
- var g={};
- try{
- var winners=[];
- g.title=$.trim( $('.featured .title', page ).contents(':not(span)').text() );
- g.is_bundle=($.inArray(g.title, bundle_list)>-1);
- g.giver=$('.hosted_by a span',page).text();
- g.winner='';
- g.winners=[];
- g.status='';
- g.is_failed=false;
- g.is_open=false;
- g.is_closed=false;
- g.is_pending=false;
- g.date=$('.time_remaining>strong',page).text();
- g.entries=parseInt($('.entries',page).text());
- g.id=url.split('/giveaway/')[1].split('/')[0];
- g.cv=$('.steam_store', page ).text().split('$')[1].split(')')[0];
- if($('.winners_heading',page).length){
- g.is_closed=true;
- g.status='CLOSED';
- var received=$('.winners .username',page);
- if(received.length){
- $('.winners .username a', page).each(function(){
- if($(this).closest('.details').find('.negative').length){
- winners.push('NOT RECEIVED');
- }else{
- winners.push($(this).text());
- }
- });
- }else{
- winners.push('FAILED');
- g.is_failed=true;
- g.status='FAILED';
- }
- if(!winners.length){
- g.is_pending=true;
- g.status='PENDING';
- }
- g.winners=winners;
- g.winner=winners.join(',');
- }else{
- g.is_open=true;
- g.status='OPEN';
- }
- }catch(e){
- console.log(e);
- }
- return g;
- }
- function elegInit(){
- $('.wrapper .content:first').attr('id','eleg');
- $('.notification', '#eleg').remove();
- document.title='Steam Gifts Eleg Management';
- }
- function getBundleList(){
- $.ajax({
- url: 'http://www.steamgifts.com/create',
- async:false,
- success: function (page) {
- $('#create_form', page).find('option','select:first').each(function(){
- if($(this).text().replace(/[^*]/g, "").length)
- bundle_list.push($(this).text().replace(' *',''));
- });
- },
- dataType: 'html'
- });
- }
Add Comment
Please, Sign In to add comment