🏠 Home 

Steam Guide Subscribe All

Subscribe all guides in the page from Steam workshop in 1 click


Install this script?
// ==UserScript==
// @name            Steam Guide Subscribe All
// @author          popiazaza
// @namespace       popiazaza
// @home-url        https://github.com/popiazaza/Steam-Guide-Subscribe-All
// @homepageURL     https://github.com/popiazaza/Steam-Guide-Subscribe-All
// @description     Subscribe all guides in the page from Steam workshop in 1 click
// @version         1.7
// @include         https://steamcommunity.com/id/*/myworkshopfiles/?section=guides*
// @include         https://steamcommunity.com/profiles/*/myworkshopfiles/?section=guides*
// @grant           none
// @license         MIT
// ==/UserScript==
function dota2workshopsubnext(loaded = 0, subscribe = true) {
if (
jQuery(".pagebtn.disabled").length &&
jQuery(".pagebtn.disabled:first").text() == ">"
) {
if (subscribe) {
ShowAlertDialog(
"Success!",
"You have subsribed to " + loaded + " guides!"
).done(function () {
window.location = "?section=guides";
});
} else {
ShowAlertDialog(
"Success!",
"You have unsubsribed to " + loaded + " guides!"
).done(function () {
window.location = "?section=guides";
});
}
} else {
jQuery(".pagebtn").each(function () {
if (jQuery(this).text() == ">" && jQuery(this).attr("href")) {
var thislocation = jQuery(this)
.attr("href")
.replace(/&d2wg_all=(\d*)/, "");
thislocation = thislocation.replace(/&d2wg_un=(\d*)/, "");
if (subscribe) {
window.location = thislocation + "&d2wg_all=" + loaded;
} else {
window.location = thislocation + "&d2wg_un=" + loaded;
}
}
});
}
}
function dota2workshopbackfirst(subscribe = true) {
thislocation = window.location.href.replace(/&p=(\d*)/, "");
if (subscribe) {
window.location = thislocation + "&d2wg_all=" + 999999;
} else {
window.location = thislocation + "&d2wg_un=" + 999999;
}
}
function dota2workshopsubnownuke() {
//dota2workshopsubnow(999999);
dota2workshopbackfirst();
}
function dota2workshopunsubnow() {
dota2workshopsubnow(0, false);
}
function dota2workshopunsubnownuke() {
//dota2workshopsubnow(999999,false);
dota2workshopbackfirst(false);
}
function dota2workshopsubnow(d2wg_all = 0, subscribe = true) {
var guideList = [];
var subscribedList = [];
jQuery("script").each(function () {
var guidematch = jQuery(this)
.html()
.match(/SharedFileBindMouseHover\( "(.*?)", true, (.*?) \);/);
if (guidematch) {
var guidedetail = JSON.parse(guidematch[2].replace(/(\r\n|\n|\r)/gm, ""));
guideList.push(guidedetail.id);
subscribedList[guidedetail.id] = guidedetail.user_subscribed;
}
});
var i = 0,
loaded = 0,
package = 0,
total = guideList.length,
modal = ShowBlockingWaitDialog(
"Executing…",
"Please wait until all requests finish. Ignore all the errors, let it finish."
);
for (; i < total; i++) {
guideid = guideList[i];
//function below doesn't work because steam doesn't support it yet
//if( subscribedList[ guideid ] )
//{
//	loaded++;
//	continue;
//}
if (subscribe) {
var subscribeurl = "//steamcommunity.com/sharedfiles/subscribe";
} else {
var subscribeurl = "//steamcommunity.com/sharedfiles/unsubscribe";
}
jQuery
.post(subscribeurl, {
appid: 570,
id: guideid,
sessionid: g_sessionID,
})
.always(function () {
loaded++;
modal.Dismiss();
if (loaded >= total) {
if (d2wg_all) {
if (d2wg_all !== 999999) {
loaded = d2wg_all + loaded;
}
if (subscribe) {
dota2workshopsubnext(loaded);
} else {
dota2workshopsubnext(loaded, false);
}
} else {
if (subscribe) {
ShowAlertDialog(
"Success!",
"You have subsribed to " + loaded + " guides!"
).done(function () {
location.reload();
});
} else {
ShowAlertDialog(
"Success!",
"You have unsubsribed to " + loaded + " guides!"
).done(function () {
location.reload();
});
}
}
} else {
modal = ShowBlockingWaitDialog(
"Executing…",
"Loaded <b>" + loaded + "</b>/" + total + "."
);
}
});
}
}
(function () {
if (location.search.split("d2wg_all=")[1]) {
dota2workshopsubnow(parseInt(location.search.split("d2wg_all=")[1]));
} else if (location.search.split("d2wg_un=")[1]) {
dota2workshopsubnow(parseInt(location.search.split("d2wg_un=")[1]), false);
}
jQuery(".followStatsBlock").append(
'<a href="javascript:void(0);" id="dota2workshopsuball" class="btn_darkblue_white_innerfade btn_medium"><span>Subscribe all on this page</span></a>'
);
document
.getElementById("dota2workshopsuball")
.addEventListener("click", dota2workshopsubnow, false);
jQuery(".followStatsBlock").append(
'<br><br><a href="javascript:void(0);" id="dota2workshopsuballnuke" class="btn_darkblue_white_innerfade btn_medium"><span>Subscribe all from this person</span></a>'
);
document
.getElementById("dota2workshopsuballnuke")
.addEventListener("click", dota2workshopsubnownuke, false);
jQuery(".followStatsBlock").append(
'<br><br><a href="javascript:void(0);" id="dota2workshopunsuball" class="btn_darkblue_white_innerfade btn_medium"><span>Unsubscribe all on this page</span></a>'
);
document
.getElementById("dota2workshopunsuball")
.addEventListener("click", dota2workshopunsubnow, false);
jQuery(".followStatsBlock").append(
'<br><br><a href="javascript:void(0);" id="dota2workshopunsuballnuke" class="btn_darkblue_white_innerfade btn_medium"><span>Unsubscribe all from this person</span></a>'
);
document
.getElementById("dota2workshopunsuballnuke")
.addEventListener("click", dota2workshopunsubnownuke, false);
})();