Steamにて、サブスクライブ中のアイテムをリスト化したい

Steam,ゲーム,技術

この記事は2018年6月8日に書かれたものです。ご注意ください。

ワークショップをリスト(JSONとか)として保存しておきたい!!!1!!

と思ったのでJavaScript(てかjQuery)をごりごりっと書いた。
ブックマークレットとして置いておきますので、ご自由にお使いください。

javascript:var a=[],b="txt\turl\n";jQuery('div[id^="Subscription"]').map(function(){var t={},i=jQuery(this).find(".workshopItemSubscriptionDetails"),n=i.find(".workshopItemTitle").text(),r=i.find("a").attr("href");t.txt=n,t.url=r,a.push(t),b+=n+"\t"+r+"\n"});var g=JSON.stringify(a,null,2),h=window.confirm("OK:JSONで出力する\nキャンセル:TSVで出力する"),i=function(){return h?g:b}(),win=window.open();win.document.write('<title>List</title><textarea style="width:640px;height:480px;">'+i);

使い方

上のブックマークレットと登録します。

保存したいワークショップの一覧を開きます(1ページあたり30件が良いかと)。

ブックマークレットをクリックします。

「OK」でJSONが、「キャンセル」でTSVが吐き出されます。煮るなり焼くなりしてください。

もし次ページあるなら、そのページ開いてもう一度行ってください。

JSONって?

ぐぐれ。色々便利なヤツ。
吐き出されたモノを元に何かコードを書きたいヤツだけ選べ。

TSVって?

ぐぐれ。エクセルに貼り付けたいヤツはTSVを選べ

ついでに

minifyする前のコード貼っておきます。
効率とか綺麗さとか除外ししてます(aryとtsv同時に作るのはどうかと思うゾ)。

var ary = [];
var tsv = 'txt\turl\n';
jQuery('div[id^="Subscription"]').map(function() {
  var obj = {};
  var trg = jQuery(this).find('.workshopItemSubscriptionDetails');
  var txt = trg.find('.workshopItemTitle').text();
  var url = trg.find('a').attr('href');
  obj.txt = txt;
  obj.url = url;
  ary.push(obj);
  tsv += txt + '\t' + url + '\n';
});
var jsn = JSON.stringify(ary, null, 2);
var res = window.confirm('OK:JSONで出力する\nキャンセル:TSVで出力する');
var wrt = (function(){
  if (res) return jsn;
  return tsv;
})();
var win = window.open();
win.document.write('<title>List</title><textarea style="margin:0;width:640px;height:480px;">'+wrt);

結局ページ送りは必要なのでダルい。