PunasaurusRex

UpdatedELEScript316

Mar 16th, 2014
172
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 8.09 KB | None | 0 0
  1. // ==UserScript==
  2. // @id steamlove
  3. // @name steamlove
  4. // @version 1.0c
  5. // @namespace
  6. // @author EyEBURNeR
  7. // @description giveaway management helper
  8. // @include http://www.steamgifts.com/*
  9. // @run-at document-end
  10. // ==/UserScript==
  11.  
  12. var $ = unsafeWindow.jQuery;
  13.  
  14. //prepare globals
  15. var bundle_list=[];
  16. var ga_list=[];
  17. var ga=[];
  18. var ga_count=0;
  19. var ga_progress=0;
  20.  
  21. //add eleg menu
  22. var obj=$('#navigation ol > li:eq(1)').clone();
  23. $(obj).attr('id','elegmenu').find('.arrow').text('Eleg');
  24. $('#navigation ol').append(obj);
  25. var elegmenu=$('#elegmenu .absolute-dropdown ul');
  26. var obj_li=$('li:first', elegmenu).clone();
  27. $('li', elegmenu).remove();
  28. //add eleg menu links
  29. $('a', obj_li).attr('href','/support/list').text('Check GA list');
  30. $(elegmenu).append($(obj_li).clone());
  31.  
  32. // Check GA list page
  33. if(document.location.href.indexOf('/support/list')!==-1){
  34. elegInit();
  35.  
  36. $('#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>');
  37. $('#eleg').append($('<textarea/>').attr('id','source').attr('style','width:100%')) .append($('<button/>').click(elegCheckGaList).text('Check'));
  38. function parseGaDone(){
  39. ga_progress++;
  40. $('#progress').val(ga_progress);
  41. if(ga_progress==ga_count){
  42. $('#progress').remove();
  43. elegCheckDone();
  44. }
  45.  
  46. }
  47. }
  48.  
  49. function elegCheckGaList(){
  50. $(this).after('<progress id="progress"></progress>');
  51. $(this).remove();
  52. var list=$('.forum_op .content', $('#source').val());
  53. console.log('Begin of process');
  54.  
  55. $('a[href*="/giveaway/"]', list).each(function(){
  56. ga_list.push($(this).attr('href').replace('https://steamcommunity.com/linkfilter/',''));
  57. });
  58. for(i in ga_list)
  59. ga[i]={'href':ga_list[i]}
  60.  
  61. ga_count=ga.length;
  62. $('#progress').attr('max',ga_count);
  63. getBundleList();
  64.  
  65. for(i=0;i<ga_count;i++){
  66. populateGa(i);
  67. }
  68. }
  69. function elegCheckDone(){
  70. $('#eleg').append('<h4>Result : </h4>');
  71. var obj=$('<table/>');
  72. var tr=$('<tr/>');
  73. $(tr)
  74. .append($('<th/>').text('link'))
  75. .append($('<th/>').text('title'))
  76. .append($('<th/>').text('giver'))
  77. .append($('<th/>').text('cv'))
  78. .append($('<th/>').text('status/winner'))
  79. .append($('<th/>').text('B'))
  80. .append($('<th/>').text('NB'))
  81. .append($('<th/>').text('entries'))
  82. ;
  83. $(obj).append(tr);
  84. for(i in ga){
  85. var g=ga[i];
  86. var tr=$('<tr/>');
  87. $(tr)
  88. .append($('<td/>').text('http://www.steamgifts.com/giveaway/'+g.id))
  89. .append($('<td/>').text(g.title+','))
  90. .append($('<td/>').text(g.giver))
  91. .append($('<td/>').text(g.is_bundle ? 0:g.cv))
  92. .append($('<td/>').text(g.status=='CLOSED' ? g.winner:g.status))
  93. .append($('<td/>').text(g.is_bundle ? 1:0))
  94. .append($('<td/>').text(g.is_bundle ? 0:1))
  95. .append($('<td/>').text(g.entries))
  96. ;
  97. $(obj).append(tr);
  98. }
  99. GM_addStyle("#eleg table td{border:1px solid #333}");
  100. $('#eleg').append(obj);
  101. }
  102.  
  103. function populateGa(gaIdx){
  104. var url=ga[gaIdx].href;
  105. $.ajax({
  106. url: url,
  107. success: function (page) {
  108. ga[gaIdx] = $.extend(ga[gaIdx], parseGa(page,url));
  109. console.log(ga[gaIdx]);
  110. parseGaDone();
  111. },
  112. dataType: 'html'
  113. });
  114. }
  115.  
  116. function parseGa(page,url){
  117. var g={};
  118. try{
  119. var winners=[];
  120. g.title=$.trim( $('.featured .title', page ).contents(':not(span)').text() );
  121. g.is_bundle=($.inArray(g.title, bundle_list)>-1);
  122. g.giver=$('.hosted_by a span',page).text();
  123. g.winner='';
  124. g.winners=[];
  125. g.status='';
  126. g.is_failed=false;
  127. g.is_open=false;
  128. g.is_closed=false;
  129. g.is_pending=false;
  130. g.date=$('.time_remaining>strong',page).text();
  131. g.entries=parseInt($('.entries',page).text());
  132. g.id=url.split('/giveaway/')[1].split('/')[0];
  133. g.cv=$('.steam_store', page ).text().split('$')[1].split(')')[0];
  134. if($('.winners_heading',page).length){
  135. g.is_closed=true;
  136. g.status='CLOSED';
  137. var received=$('.winners .username',page);
  138. if(received.length){
  139. $('.winners .username a', page).each(function(){
  140. if($(this).closest('.details').find('.negative').length){
  141. winners.push('NOT RECEIVED');
  142. }else{
  143. winners.push($(this).text());
  144. }
  145. });
  146. }else{
  147. winners.push('FAILED');
  148. g.is_failed=true;
  149. g.status='FAILED';
  150. }
  151. if(!winners.length){
  152. g.is_pending=true;
  153. g.status='PENDING';
  154. }
  155. g.winners=winners;
  156. g.winner=winners.join(',');
  157. }else{
  158. g.is_open=true;
  159. g.status='OPEN';
  160. }
  161. }catch(e){
  162. console.log(e);
  163.  
  164. }
  165. return g;
  166. }
  167.  
  168. function elegInit(){
  169. $('.wrapper .content:first').attr('id','eleg');
  170. $('.notification', '#eleg').remove();
  171. document.title='Steam Gifts Eleg Management';
  172. }
  173.  
  174. function getBundleList(){
  175. $.ajax({
  176. url: 'http://www.steamgifts.com/create',
  177. async:false,
  178. success: function (page) {
  179. $('#create_form', page).find('option','select:first').each(function(){
  180. if($(this).text().replace(/[^*]/g, "").length)
  181. bundle_list.push($(this).text().replace(' *',''));
  182. });
  183. },
  184. dataType: 'html'
  185. });
  186. }
Add Comment
Please, Sign In to add comment