Steam addon parser

And THIS is my weapon...

You will need to install an extension such as Tampermonkey, Greasemonkey or Violentmonkey to install this script.

You will need to install an extension such as Tampermonkey or Violentmonkey to install this script.

You will need to install an extension such as Tampermonkey or Violentmonkey to install this script.

You will need to install an extension such as Tampermonkey or Userscripts to install this script.

You will need to install an extension such as Tampermonkey to install this script.

You will need to install a user script manager extension to install this script.

(I already have a user script manager, let me install it!)

You will need to install an extension such as Stylus to install this style.

You will need to install an extension such as Stylus to install this style.

You will need to install an extension such as Stylus to install this style.

You will need to install a user style manager extension to install this style.

You will need to install a user style manager extension to install this style.

You will need to install a user style manager extension to install this style.

(I already have a user style manager, let me install it!)

// ==UserScript==
// @name         Steam addon parser
// @namespace    http://tampermonkey.net/
// @version      0.53
// @description  And THIS is my weapon...
// @author       Heavy Weapons Guy
// @match        https://steamcommunity.com/*
// @icon         https://www.google.com/s2/favicons?domain=steamcommunity.com
// @require      http://code.jquery.com/jquery-3.4.1.min.js
// @grant        none
// ==/UserScript==

//version bug
// add css
// Css base64
window.super_css = "LyoNCi5ub2NsaWNrDQp7DQogIGFsbDogdW5zZXQ7DQp9DQoqLw0KLnN1cGVyX2Z1Y2tfeW91DQp7DQogIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDsNCn0NCg0KLnRlc3QNCnsNCiAgY29sb3I6IHJlZCAhaW1wb3J0YW50Ow0KfQ0KDQouc3VwZXJfZnVja195b3UgKg0Kew0KICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7DQp9DQoNCi5pbmZvX3RhYmxlDQp7DQogIGRpc3BsYXk6IGZsZXggIWltcG9ydGFudDsNCiAgLyoNCiAgcG9zaXRpb246IGFic29sdXRlOw0KICBsZWZ0OiAyNXB4Ow0KICB0b3A6IDUwMHB4Ow0KICB3aWR0aDogNDAwcHg7DQogIHotaW5kZXg6IDk5OTk5OTk5Ow0KICAqLw0KICBjb2xvcjogd2hpdGU7DQogIGJhY2tncm91bmQ6IHJnYmEoMCwgMCwgMCwgMC41KTsNCiAgcGFkZGluZzogNXB4Ow0KICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOw0KfQ0KDQoucGFnZV9saXN0X2xvYWRlcg0Kew0KICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7DQp9DQoNCi5ub2NsaWNrDQp7DQogIGRpc3BsYXk6IGZsZXg7DQogIHdpZHRoOiAxMDAlOw0KICBjb2xvcjogd2hpdGU7DQogIHVzZXItc2VsZWN0OiBub25lICFpbXBvcnRhbnQ7DQogIHBvaW50ZXItZXZlbnRzOiBub25lICFpbXBvcnRhbnQ7DQogIGNvbG9yOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuNSk7DQoNCiAgDQp9DQoNCg0KLmluZm9fdGFibGVfc3RhdHMNCnsNCiAgdXNlci1zZWxlY3Q6IG5vbmUgIWltcG9ydGFudDsNCiAgcG9pbnRlci1ldmVudHM6IG5vbmUgIWltcG9ydGFudDsNCn0NCg0KQC1tb3otZG9jdW1lbnQgdXJsLXByZWZpeCgpIA0Kew0KICAubm9jbGljayANCiAgew0KICAgIG1hcmdpbi10b3A6IDI4cHg7DQogIH0NCn0NCg0KDQovKg0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQ0KDQpTZXggdG95cyBtZW51IHN0YXJ0DQoNCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0NCiovDQoNCi8qDQoucG1rN2pucWcgaW1nOmhvdmVyDQp7DQogIGZpbHRlcjogZ3JheXNjYWxlKDEwMCUpOw0KDQp9DQoqLw0KQGltcG9ydCB1cmwoImh0dHBzOi8vZm9udHMuZ29vZ2xlYXBpcy5jb20vY3NzMj9mYW1pbHk9Um9ib3RvOndnaHRAMTAwJmRpc3BsYXk9c3dhcCIpOw0KDQovKg0KQGltcG9ydCB1cmwoImh0dHBzOi8vZGwuZHJvcGJveC5jb20vcy9yM2tobXlwNGtqcG95bWkvZHJvaWRzYW5zLnR0Zj9kbD0wIik7DQoqLw0KDQpAZm9udC1mYWNlIA0Kew0KICAgIGZvbnQtZmFtaWx5OiAiYmxlbmRlciI7DQogICAgc3JjOiB1cmwoImh0dHBzOi8vZGwuZHJvcGJveC5jb20vcy9yM2tobXlwNGtqcG95bWkvZHJvaWRzYW5zLnR0Zj9kbD0wIik7DQp9DQoNCi5jbGFzc19oaWRkZW4NCnsNCiAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50Ow0KfQ0KDQoubm9zZWxlY3QNCnsNCiAgLXdlYmtpdC10b3VjaC1jYWxsb3V0OiBub25lOw0KICAtd2Via2l0LXVzZXItc2VsZWN0OiBub25lOw0KICAta2h0bWwtdXNlci1zZWxlY3Q6IG5vbmU7DQogIC1tb3otdXNlci1zZWxlY3Q6IG5vbmU7DQogIC1tcy11c2VyLXNlbGVjdDogbm9uZTsNCiAgdXNlci1zZWxlY3Q6IG5vbmU7DQp9DQoNCi5mbGlwX3gNCnsNCiAgLXdlYmtpdC10cmFuc2Zvcm06IHNjYWxlWCgtMSk7DQogIHRyYW5zZm9ybTogc2NhbGVYKC0xKTsNCn0NCg0KLmVsZW1faG92ZXI6aG92ZXINCnsNCiAgZmlsdGVyOiBncmF5c2NhbGUoMTAwJSk7DQp9DQovKg0KaW1nDQp7DQogIG1hcmdpbi10b3A6IDkwcHg7DQogIHdpZHRoOiAzMDBweDsNCn0NCiovDQouYm1lbnVfcm9vdA0Kew0KICB6LWluZGV4OiA5OTk5OTk7DQogIHBvc2l0aW9uOiBmaXhlZDsNCiAgd2lkdGg6IDIwMHB4Ow0KICBkaXNwbGF5OiBmbGV4Ow0KICBjb2xvcjogI0U2RTZFNjsNCiAgZm9udC1mYW1pbHk6ICdibGVuZGVyJywgc2Fucy1zZXJpZjsNCiAgZm9udC1zaXplOiAxMnB4Ow0KfQ0KDQouYm1lbnVfbWVudQ0Kew0KICBkaXNwbGF5OiBmbGV4Ow0KICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOw0KICB3aWR0aDogMTAwJTsNCiAgaGVpZ2h0OiAxMDAlOw0KICBiYWNrZ3JvdW5kOiByZ2JhKDMxLCAzMSwgMzEsIDAuOTM3KTsNCiAgYm9yZGVyOiAxcHggc29saWQgIzE5MTkxQTsNCiAgYm9yZGVyLXJhZGl1czogNnB4Ow0KICBwYWRkaW5nOiA1cHggMXB4IDVweCAxcHg7DQogIA0KICANCiAgLXdlYmtpdC1ib3gtc2hhZG93OiAwcHggMXB4IDNweCAwcHggcmdiYSgwLDAsMCwwLjkpOyANCiAgYm94LXNoYWRvdzogMHB4IDFweCAzcHggMHB4IHJnYmEoMCwwLDAsMC45KTsNCn0NCg0KLmJtZW51X2VudHJ5DQp7DQogIHBhZGRpbmc6IDJweCAwcHggMnB4IDMwcHg7DQogIGRpc3BsYXk6IGZsZXg7DQogIG1hcmdpbi10b3A6IDJweDsNCn0NCg0KLmJtZW51X2VudHJ5OmhvdmVyDQp7DQogIGJhY2tncm91bmQ6ICM1NjgwQzI7DQp9DQoNCi5ibWVudV9oZWFkZXINCnsNCiAgcGFkZGluZzogMHB4IDBweCAycHggMTBweDsNCiAgZGlzcGxheTogZmxleDsNCiAgbWFyZ2luLXRvcDogMnB4Ow0KICBjb2xvcjogI2E1YTVhNTsNCn0NCg0KLmJtZW51X3NlcGFyYXRvcg0Kew0KICBoZWlnaHQ6IDFweDsNCiAgZGlzcGxheTogZmxleDsNCiAgbWFyZ2luOiAzcHggMHB4IDNweCAwcHg7DQogIGJhY2tncm91bmQ6ICMzOTM5Mzk7DQp9DQoNCi8qDQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09DQoNClNleCB0b3lzIG1lbnUgRU5EDQoNCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0NCiovDQo";

$(document).ready(function(){
    $("body").append('<style>' + atob(super_css) + '</style>');
});
// modes

// img flip mode
window.img_flip_mode = 0;

// hax init
window.hax_innit = 1;

//lock menu
window.menu_lock = 0;

//====================================
//  pootis. Log mouse position
//====================================
		document.addEventListener('mousemove'
			, function(e){
				var x = e.clientX;
				var y = e.clientY
				window.cs_x = x + "px";
				window.cs_y = y + "px";
			});
//====================================
//  pootis
//====================================


function img_flip(selector_fuck)
{
  $(selector_fuck).toggleClass("flip_x");
}




// innit hax

document.addEventListener ("keydown", function (zEvent) {

    if ( zEvent.keyCode == 27)
    {
        window.img_flip_mode = 0;
        window.menu_lock = 0;
        $("img").removeClass("elem_hover");
        $(".bmenu_root").addClass("class_hidden");
    }

    // Open menu on shortcut. Todo: customizable shorcut
    if ( zEvent.altKey  &&  zEvent.keyCode == 87  ) {  // case sensitive
        if (hax_innit == 1)
        {
            $("body").append('<div class="bmenu_root class_hidden"> <div class="bmenu_menu"> <div class="bmenu_header noselect">Sex Toys</div> <div class="bmenu_separator"></div> <div bmenu_opt="img_flip" class="bmenu_entry noselect">Flip image</div> <div bmenu_opt="pizza" class="bmenu_entry noselect">Order pizza</div> </div> </div>');
            window.hax_innit = 0;
            console.log("hax_created");

            $(".bmenu_root")
                .css({
                left: cs_x,
                top: cs_y,
            });

            $(".bmenu_root").removeClass("class_hidden");
        }else{

            if (menu_lock == 1)
            {
                console.log("menu_locked");
            }else{
                $(".bmenu_root")
                    .css({
                    left: cs_x,
                    top: cs_y,
                });

                $(".bmenu_root").removeClass("class_hidden");
            }

        }

    }

});



// hax
document.addEventListener('click', event => {
    // console.log("click_registered");


    // Close hax if clicked outside
    const bmenu_close = event.target.closest('.bmenu_menu');
    if (bmenu_close)
    {
        console.log("clicked_a_menu");
    }else{
        // console.log("clicked_not_menu");
        $(".bmenu_root").addClass("class_hidden");
    }


    const bmenu_entry = event.target.closest('.bmenu_entry');
    if (bmenu_entry)
    {
        console.log("clicked_on_an_entry");
        // console.log($(bmenu_entry).attr("bmenu_opt"));


        // Built-in img flipper
        if ($(bmenu_entry).attr("bmenu_opt") == "img_flip")
        {
            console.log("imgflipped");
            //  img_flip(bmenu_entry);
            window.img_flip_mode = 1;
            window.menu_lock = 1;
            $("img").addClass("elem_hover");
            $(".bmenu_root").addClass("class_hidden");
        }

        if ($(bmenu_entry).attr("bmenu_opt") == "pizza")
        {
            counter_initializer()
            console.log("counting");
            $(".bmenu_root").addClass("class_hidden");
        }
    }




    const questionable_img = event.target.closest('img');
    if (img_flip_mode == 1)
    {

        if (questionable_img)
        {
            img_flip(questionable_img);
            window.img_flip_mode = 0;
            window.menu_lock = 0;
            $("img").removeClass("elem_hover");
        }

    }


});
// hax










function counter_initializer()
{
    $("#leftContents *").remove();
    window.current_profile = $("#global_actions a.user_avatar").attr("href").split('/');
    window.current_profile_id = current_profile[4];
    window.total_addon_amount = $(".workshopBrowsePagingWithBG .workshopBrowsePagingInfo").text().split(' ');
    $("#leftContents").attr("id", "leftContents_lizard");
    $("body").append('<div class="page_list_loader"></div>');
    $("#leftContents_lizard").append('<div class="info_table"><div class="info_table_stats"><div class="stats_page">Page: </div><div class="stats_list_item">Item: </div><br><br><div class="stats_list_ded_addons">Ded addons: 0</div></div></div>');
    window.first_page_link = "https://steamcommunity.com/id/" + current_profile_id + "/myworkshopfiles/?appid=4000&browsefilter=mysubscriptions&p=1&numperpage=30 #leftContents";
    window.super_counter = 0;
    window.page_counter = 1;
    window.total_page_amount = 2;
    window.total_ded_addons_counter = 0;
    window.total_subscriptions_amount = "null";

    // perform very initial load of the first page
    $( ".page_list_loader" ).load( first_page_link, function() {
        console.log("initial load of page 1");
        window.total_page_amount = parseInt( $("#leftContents .workshopBrowsePagingControls .pagelink:eq(-1)").text() );
        $(".stats_page").text("Page: " + 1 + " / " + total_page_amount);
        total_addon_amount_counter()
        // addon_list_checker()
    });
}

// count all addons
function total_addon_amount_counter()
{
	$(".page_list_loader *").remove();
	var last_page_link = first_page_link.replace("mysubscriptions&p=1", "mysubscriptions&p=" + total_page_amount);
	console.log("parsing addon amount");

	$( ".page_list_loader" ).load( last_page_link, function() {
		var count_addons_based_on_page_amount = 30 * (total_page_amount - 1);
		var last_page_subscription_amount = $('#leftContents .workshopItemSubscription[id*="Subscription"]').length
		window.total_subscriptions_amount = 0;
		window.constant_total_subscriptions_amount = count_addons_based_on_page_amount + last_page_subscription_amount;
		// addon_list_checker()
		midstep_because_im_stupid()
	});
}

function midstep_because_im_stupid()
{
	$( ".page_list_loader" ).load( first_page_link, function() {
	  console.log("initial load of page 1");
	  window.total_page_amount = parseInt( $("#leftContents .workshopBrowsePagingControls .pagelink:eq(-1)").text() );
	  $(".stats_page").text("Page: " + 1 + " / " + total_page_amount);
	  // total_addon_amount_counter()
	  addon_list_checker()
	});
}

function addon_list_checker()
{
    $('#leftContents .workshopItemSubscription[id*="Subscription"]').each(function(){
        console.log(super_counter);

        $(this).append('<div class="super_fuck_you temp_loader_' + $(this).attr("id") + '"></div>');
        var current_link = $(this).find(".workshopItemPreviewHolderFloatLeft a").attr("href") + " #message";
        var current_id = $(this).attr("id").replace("Subscription", "");
        var current_name = $(this).find(".workshopItemSubscriptionDetails a .workshopItemTitle").text();
        $(this).find(".super_fuck_you").load( current_link, function() {

			if ($(this).find("#message h3").length > 0)
			{
				console.log("HA, RED ERROR");
				$(".info_table").append('<br> <br> <a href="#" class="noclick">This awesome addon is gone! Reduced to atoms!</a>' + '<div class="info_pootis">' + current_name + '</div>' + '<div class="info_pootis">' + current_id + '</div>');
				window.total_ded_addons_counter = total_ded_addons_counter + 1;
				$(".stats_list_ded_addons").text("Ded addons: " + total_ded_addons_counter);
			}else{
				console.log("no error 4 u");
			}
			$(".super_fuck_you").remove();
			window.super_counter = super_counter + 1;
			window.total_subscriptions_amount = total_subscriptions_amount + 1;
			$(".stats_list_item").text("Item: " + super_counter + "/30" + "  a total of " + total_subscriptions_amount + "/" + constant_total_subscriptions_amount );
			super_addon_page_loader()

        });

    });
}

function super_addon_page_loader()
{
    if ( page_counter > total_page_amount )
    {
        console.log("enough sex for now. give your dick a rest");
    }else{
        if ( super_counter == 30 )
        {
            console.log("ejacuated");
            $(".page_list_loader *").remove();
            window.super_counter = 0;
            window.page_counter = page_counter + 1;
            $(".stats_page").text("Page: " + page_counter + " / " + total_page_amount);
            var super_next_page = 'https://steamcommunity.com/id/' + current_profile_id + '/myworkshopfiles/?appid=4000&browsefilter=mysubscriptions&p=' + page_counter + '&numperpage=30 #leftContents';
            $( ".page_list_loader" ).load( super_next_page, function() {
              console.log("trying to load next page");
              addon_list_checker()
            });
        }else{
            console.log("Havent reached the last item on a page. Pls wait");
        }
    }
}