Скрипт Steam Столп Сообщества и рекомендации

Сегодня речь пойдет о таком аспекте аккаунта Steam, как уровень. Уровень аккаунта Steam дает другим пользователям понять самую основную вещь – активно ли пользуется человек аккаунтом. Конечно, есть исключения, но когда у человека в Steam большой уровень, то доверие к нему вырастает. Все мы знаем о базовом значке, который дается за выполнение простых задания, но его получение занимает много времени. Поэтому сейчас я расскажу как быстро получить значок Сообщества Steam с помощью скрипта.

Напоминаю, что все выполненные Вами и все доступные задания, Вы можете просмотреть кликнув мышкой на строку УРОВЕНЬ в правом верхнем углу Вашего аккаунта. Пристегнём ремни и поехали!

Итак, как быстро выполнить задания для поднятия уровня Steam:
1) Входим в свой Steam аккаунт через браузер.
2) Открываем страницу со значком Столп сообщества.
3) Нажимаем F12 или просто заходим в консоль.

4) Копируем код.

'use strict';

(function() {
  var pathMatch = window.location.pathname.match(/^\/((?:id|profiles)\/[^\/]+)\/badges\/(\d+)/);
  if (window.location.hostname !== 'steamcommunity.com' || !pathMatch || pathMatch[2] != '2') {
    window.location.href = 'https://steamcommunity.com/my/badges/2';
    return;
  }

  if (!g_steamID) {
    alert('You are not logged in!');
    return;
  }

  var k_ExpectedTasksCount = 28;
  var g_ProfilePath = pathMatch[1];
  var g_SteamTasks = $J('.badge_task');

  if (g_SteamTasks.length != k_ExpectedTasksCount) {
    console.error('Expected tasks ' + k_ExpectedTasksCount + ', but found ' + g_SteamTasks.length);
    console.error('Stopped');
    return;
  }

  var g_TasksQueue = [];

  var bTaskBroadcast = isTaskAvailable(3);
  var bTaskGameWishlist = isTaskAvailable(5);
  var bTaskWorkshopRate = isTaskAvailable(11);
  var bTaskWorkshopSubscribe = isTaskAvailable(12);
  var bTaskWorkshop = bTaskWorkshopRate || bTaskWorkshopSubscribe;
  var bTaskCommunityProfileRealName = isTaskAvailable(15);
  var bTaskCommunityProfile = bTaskCommunityProfileRealName || isTaskAvailable(14) || isTaskAvailable(16);
  var bTaskJoinGroup = isTaskAvailable(17);
  var bTaskProfileComment = isTaskAvailable(18);
  var bTaskFeedRateUp = isTaskAvailable(19);
  var bTaskPostStatus = isTaskAvailable(20);
  var bTaskSelectBadge = isTaskAvailable(23);
  var bTaskDiscussionsSearch = isTaskAvailable(25);

  function isTaskAvailable(task_id) {
    var task = g_SteamTasks.eq(task_id);
    if (!task.length)
      return false;

    return task.find('.quest_icon').attr('src').indexOf('_off') != -1;
  }

  function DoTaskBroadcast(next) {
    $J.get('//steamcommunity.com/apps/allcontenthome?appHubSubSection=13').done(function(data) {
      // first available broadcast
      var match = data.match(/watch\/(\d+)/);
      if (!match) {
        console.error('[DoTaskBroadcast] Fail! (2)');
        return next();
      }

      $J.get('//steamcommunity.com/broadcast/getbroadcastmpd/', {
        steamid: match[1],
        broadcastid: 0,
        viewertoken: 0,
        sessionid: g_sessionID
      }).done(function(data) {
        if (data.success !== 'ready') {
          console.error('[DoTaskBroadcast] Fail! (4)');
        } else {
          console.log('[DoTaskBroadcast] OK!');
        }
      }).fail(function() {
        console.error('[DoTaskBroadcast] Fail! (3)');
      }).always(function() {
        next();
      });
    }).fail(function() {
      console.error('[DoTaskBroadcast] Fail! (1)');
      next();
    });
  }

  function DoTaskGameWishlist(next) {
    $J.post('//steamcommunity.com/actions/AddToWishlist', {
      sessionid: g_sessionID,
      appid: 60 // Ricochet
    }).done(function(data) {
      if (data.success) {
        console.log('[DoTaskGameWishlist] OK!');
      } else {
        console.error('[DoTaskGameWishlist] Fail! (2)');
      }
    }).fail(function() {
      console.error('[DoTaskGameWishlist] Fail! (1)');
    }).always(function() {
      next();
    });
  }

  function DoTaskWorkshop(next) {
    $J.get('//steamcommunity.com/workshop/browse/', {
      appid: 440,
      browsesort: 'totaluniquesubscribers'
    }).done(function(data) {
      var matches = data.match(/sharedfile_(\d+)/g);
      if (!matches) {
        console.error('[DoTaskWorkshop] Fail! (2)');
        return next();
      }

      var file_id = matches[Math.floor(Math.random() * matches.length)].substr(11);
      var isDone = false;

      if (bTaskWorkshopRate) {
        console.log('[DoTaskWorkshop] Upvoting id#' + file_id);
        $J.post('//steamcommunity.com/sharedfiles/voteup', {
          id: file_id,
          sessionid: g_sessionID
        }).done(function(data) {
          if (data.success == 1) {
            console.log('[DoTaskWorkshop] Rate - OK!');
          } else {
            console.error('[DoTaskWorkshop] Rate - Fail! (4)');
          }
        }).fail(function() {
          console.error('[DoTaskWorkshop] Rate - Fail! (3)');
        }).always(function() {
          if (!bTaskWorkshopSubscribe || isDone) {
            return next();
          }
          isDone = true;
        });
      }

      if (bTaskWorkshopSubscribe) {
        console.log('[DoTaskWorkshop] Subscribing id#' + file_id);
        $J.post('//steamcommunity.com/sharedfiles/subscribe', {
          id: file_id,
          appid: 440,
          sessionid: g_sessionID
        }).done(function(data) {
          if (data.success == 1) {
            console.log('[DoTaskWorkshop] Subscribe - OK!');
            $J.post('//steamcommunity.com/sharedfiles/unsubscribe', {
              id: file_id,
              appid: 440,
              sessionid: g_sessionID
            }).done(function(data) {
              if (data.success == 1) {
                console.log('[DoTaskWorkshop] Unsubscribed');
              }
            });
          } else {
            console.error('[DoTaskWorkshop] Subscribe - Fail! (4)');
          }
        }).fail(function() {
          console.error('[DoTaskWorkshop] Subscribe - Fail! (3)');
        }).always(function() {
          if (!bTaskWorkshopRate || isDone) {
            return next();
          }
          isDone = true;
        });
      }
    }).fail(function() {
      console.error('[DoTaskWorkshop] Fail! (1)');
      next();
    });
  }

  function DoTaskCommunityProfile(next) {
    $J.get('//steamcommunity.com/' + g_ProfilePath + '/edit').done(function(data) {
      var form = $J(data).find('form').eq(0);

      if (bTaskCommunityProfileRealName) {
        form.find('#real_name').val('Bot' + Math.floor(Math.random() * 1e3));
      }

      form.find('#summary').val('Hi, I am Bot!');
      $J.post('//steamcommunity.com/' + g_ProfilePath + '/edit', form.serialize()).done(function(data) {
        console.log('[DoTaskCommunityProfile] OK!');
      }).fail(function() {
        console.error('[DoTaskCommunityProfile] Fail! (2)');
      }).always(function() {
        next();
      });
    }).fail(function() {
      console.error('[DoTaskCommunityProfile] Fail! (1)');
      next();
    });
  }

  function DoTaskJoinGroup(next) {
    $J.post('//steamcommunity.com/groups/tradingcards', {
      action: 'join',
      sessionID: g_sessionID
    }).done(function() {
      console.log('[DoTaskJoinGroup] OK!');
    }).fail(function() {
      console.error('[DoTaskJoinGroup] Fail!');
    }).always(function() {
      next();
    });
  }

  function DoTaskProfileComment(next) {
    $J.post('//steamcommunity.com/comment/Profile/post/' + g_steamID + '/-1/', {
      comment: ':steammocking:',
      count: 0,
      sessionid: g_sessionID
    }).done(function(data) {
      if (data.success) {
        console.log('[DoTaskProfileComment] OK!');
      } else {
        console.error('[DoTaskProfileComment] Fail! (2)');
      }
    }).fail(function() {
      console.error('[DoTaskProfileComment] Fail! (1)');
    }).always(function() {
      next();
    });
  }

  function DoTaskFeedRateUp(next) {
    $J.post('//steamcommunity.com/actions/LogFriendActivityUpvote', {
      sessionID: g_sessionID
    }).done(function() {
      console.log('[DoTaskFeedRateUp] OK!');
    }).fail(function() {
      console.error('[DoTaskFeedRateUp] Fail!');
    }).always(function() {
      next();
    });
  }

  function DoTaskPostStatus(next) {
    $J.post('//steamcommunity.com/' + g_ProfilePath + '/ajaxpostuserstatus/', {
      sessionid: g_sessionID,
      status_text: 'Hello World!',
      appid: 0
    }).done(function(data) {
      if (data.success && data.blotter_html) {
        console.log('[DoTaskPostStatus] OK!');
        var postid = data.blotter_html.match(/userstatus_(\d+)_/)[1];
        $J.post('//steamcommunity.com/' + g_ProfilePath + '/ajaxdeleteuserstatus/', {
          sessionid: g_sessionID,
          postid: postid
        }).done(function(data) {
          if (data.success) {
            console.log('[DoTaskPostStatus] Post removed');
          }
        });
      } else {
        console.error('[DoTaskPostStatus] Fail! (2)');
      }
    }).fail(function() {
      console.error('[DoTaskPostStatus] Fail! (1)');
    }).always(function() {
      next();
    });
  }

  function DoTaskSelectBadge(next) {
    $J.post('', { // current page `<profile>/badges/2`
      action: 'setfavoritebadge',
      sessionid: g_sessionID,
      badgeid: 2 // Community Badge
    }).done(function(data) {
      if (data.indexOf('class="profile_fatalerror"') != -1) {
        console.error('[DoTaskSelectBadge] Fail! (2)');
      } else {
        console.log('[DoTaskSelectBadge] OK!');
      }
    }).fail(function() {
      console.error('[DoTaskSelectBadge] Fail! (1)');
    }).always(function() {
      next();
    });
  }

  function DoTaskDiscussionsSearch(next) {
    $J.ajax({
      // Really where? :(
      url: '//steamcommunity.com/discussions/forum/search/?gidforum=882958665520871138&q=%57%68%65%72%65%20%69%73%20%48%61%6C%66%2D%4C%69%66%65%20%33%3F',
      type: 'HEAD'
    }).done(function() {
      console.log('[DoTaskDiscussionsSearch] OK!');
    }).fail(function() {
      console.error('[DoTaskDiscussionsSearch] Fail!');
    }).always(function() {
      next();
    });
  }

  function DoNextTask() {
    var Task = g_TasksQueue.shift();
    if (Task) {
      Task(DoNextTask);
    } else {
      console.log('Done! Refresh the page and see what happened')
    }
  };


  if (bTaskBroadcast) {
    g_TasksQueue.push(DoTaskBroadcast);
    console.log('Added task `Broadcast`');
  }
  if (bTaskGameWishlist) {
    g_TasksQueue.push(DoTaskGameWishlist);
    console.log('Added task `GameWishlist`');
  }
  if (bTaskWorkshop) {
    g_TasksQueue.push(DoTaskWorkshop);
    console.log('Added task `Workshop`');
  }
  if (bTaskCommunityProfile) {
    g_TasksQueue.push(DoTaskCommunityProfile);
    console.log('Added task `CommunityProfile`');
  }
  if (bTaskJoinGroup) {
    g_TasksQueue.push(DoTaskJoinGroup);
    console.log('Added task `JoinGroup`');
  }
  if (bTaskProfileComment) {
    g_TasksQueue.push(DoTaskProfileComment);
    console.log('Added task `ProfileComment`');
  }
  if (bTaskFeedRateUp) {
    g_TasksQueue.push(DoTaskFeedRateUp);
    console.log('Added task `FeedRateUp`');
  }
  if (bTaskPostStatus) {
    g_TasksQueue.push(DoTaskPostStatus);
    console.log('Added task `PostStatus`');
  }
  if (bTaskDiscussionsSearch) {
    g_TasksQueue.push(DoTaskDiscussionsSearch);
    console.log('Added task `DiscussionsSearch`');
  }
  if (bTaskSelectBadge) {
    g_TasksQueue.push(DoTaskSelectBadge);
    console.log('Added task `SelectBadge`');
  }

  if (!g_TasksQueue.length) {
    console.log('Nothing to do. Great job! :)');
    return;
  }

  DoNextTask();
})();

5) Вставляем скопированное во вкладку Console.

6) Нажимаем Enter и большинство задания для значка Посол Сообщества выполнены. 

Скрипт Список рекомендаций​

var GenerateQueue = function( queueNumber )
{
console.log( 'Queue #' + ++queueNumber );

jQuery.post( 'http://store.steampowered.com/explore/generatenewdiscoveryqueue', { sessionid: g_sessionID, queuetype: 0 } ).done( function( data )
{
var requests = [];

for( var i = 0; i < data.queue.length; i++ )
{
requests.push( jQuery.post( 'http://store.steampowered.com/app/10 ✔', { appid_to_clear_from_queue: data.queue[ i ], sessionid: g_sessionID } ) );
}

jQuery.when.apply( jQuery, requests ).done( function()
{
if( queueNumber < 3 )
{
GenerateQueue( queueNumber );
}
else
{
window.location.reload();
}
} );
} );
};

GenerateQueue( 0 );

2 Comments

  • Спасибо всё сработало

    HEo
    Posted 31.07.2021
  • Рекомендации не сработали(

    Дмитрий
    Posted 27.02.2023

Leave a comment

Discord

Наш дискорд сервер

Telegram

Мы в Telegram

AWKA.IO © 2012-2025 Все права защищены. Пользовательское соглашение  |  Контакты  |  О нас | Отказ от ответственности | Полное или частичное копирование материалов сайта без согласования с редакцией запрещено.|

Мы используем cookie, чтобы собирать статистику и делать контент более интересным. Также cookie используются для отображения более релевантной рекламы. Вы можете прочитать подробнее о cookie-файлах и изменить настройки вашего браузера.


Перейти к верхней панели