コトバノウタカタ

よしなしごとをつらつらとつづるばしょ。

Amazon終了確認19

javascript: var d = document;
dv = d.getElementsByClassName('D0Lu_p');
var cnt = dv.length;
var cnttg = document.createElement('div');
cnttg.textContent = cnt;
d.getElementsByClassName('_vfqY6')[0].appendChild(cnttg);
for (i = 0;
    i < dv.length;
    i++) {
        aa = dv[i].getElementsByTagName('img')[0];
    nm = aa.getAttribute('alt');
    asin = dv[i].firstElementChild.getAttribute("data-automation-id").substr(8);
    ;
    ln = 'https://www.amazon.co.jp/s/ref=nb_sb_noss?__mk_ja_JP=カタカナ&url=node%3D4217521051&field-keywords=' + asin;
    var req = new XMLHttpRequest();
    rm = dv[i].getElementsByClassName('_1Opa2_')[0];
    req.rm = dv[i];
    req.ln = ln;
    req.nnm = nm;
    req.onreadystatechange = function () {
        if (this.readyState == 4 && this.status == 200) {
            x = this.responseXML;
            r3 = x.getElementsByClassName('a-size-medium a-spacing-none');
            hit = false;
            if (r3.length == 0) {
                ls = x.getElementsByClassName('rush-component s-latency-cf-section');
                if (ls.length > 0) {
                    hit = true;
                    chs = ls[0].children;
                    en = '';
                    for (chi = 0;
                        chi < chs.length;
                        chi++) {
                        ch = chs[chi];
                        h5 = ch.getElementsByClassName('s-image');
                        if (h5.length > 0) {
                            tnm = h5[0].getAttribute('alt');
                            console.log(tnm + '/' + this.nnm);
                            if (tnm == this.nnm) {
                                en = '終了確認';

                            }

                        }

                    }
                    if (en != '') {
                        a = d.createElement('a');
                        a.href = this.ln;
                        a.textContent = en;
                        a.setAttribute('target', '_blank');
                        dd = d.createElement('div');
                        a.setAttribute('style', 'float:right');
                        dd.appendChild(a);
                        this.rm.appendChild(dd);
                        hit = true;

                    }
                    else {
                        this.rm.style.display = 'none';

                    }
                }
            }
            if (hit == false) {
                this.rm.style.display = 'none';

            }
            cnt--;
            cnttg.textContent = cnt;
        }

    }
        ;
    req.open('GET', ln, true);
    req.responseType = "document";
    req.send(null);

}
;

Oculus Quest2 のVirtual Desktopで画質が悪いとき

Virtual DesktopでSteamに繋いでいて、普段はそうでもないけど、今日はなんだかやたらと画質が悪いなあ、というときにはビットレートを確認。

Virtual Desktopのリモート画面でメニューを表示(左コントローラのメニューボタン)する。

「StreamingのVR Bitrate」を見る。下側に出ている細いバーがビットレートの最大値で、上の太いバーが自分の設定値。バーの値が低ければ上げる。PCのスペックや回線のスペックによっては挙げられないかも? 100Mbpsくらいあるとブロックノイズはほぼ出ないと思う。

f:id:tetsu23:20210822220055j:plain

で、たまにネット状況が一時的に悪くなったりすると、このビットレートが下がり、以後下がったままになってしまう。そのときは上記で確認したときに、表示されているビットレートの数値が低くなる(20Mbpsとか30Mbpsとか)。60Mbpsを切るくらいだと見るからに画質悪くなるかも。

f:id:tetsu23:20210822220110j:plain

これを直す方法は、Virtual Desktopを一度終了させて起動し直す。これだけ。ゲームによってはVirtual Desktopを再起動すると続けられない場合もあるので、保存してゲームを一旦終了させておいた方がよいかも。もしかすると画質だけでなく、レスポンスなんかも悪くなるかも?

Virtual Desktopを再起動したらビットレートが戻っていることを確認する。戻ってなければ別のどこか(PCか回線か)に問題あるかも。

Oculus Quest2 で無線が切れる、プチフリーズする

oculus quest2のVirtal Desktopなどを使ってPCと接続しているときに無線が一時的に止まったり、やたらと切れたりする場合。あるいはプチフリーズする場合。熱暴走してる可能性があります。

対処方法としては、一旦電源を切って冷めるまで待つ。

しばらく待っても冷めないとき、もし充電ケーブルをさしているなら抜く。知らない間に勝手に電源が入ったりしている場合もあるので、電源が入っていないか再確認する。

oculus quest2が冷め切ったら起動してみる。

はて部コメントをスター数順にソート

javascript: (function () {
    d = document;
    bms=d.getElementsByClassName("js-bookmarks-recent");
    if(bms.length == 0){
        alert('not hatena bookmark page.');
        return;
    }
    bm=bms[0];
    li=bm.getElementsByClassName("entry-comment-contents");
    ls=new Array();
    for(i = 0; i < li.length; i++){
        l=li[i];
        st=l.getElementsByClassName("hatena-star-star");
        scnt=st.length;
        ist=l.getElementsByClassName("hatena-star-inner-count");
        if (ist.length > 0){
            scnt += parseInt(ist[0].textContent);
        }
        ls.push({tag: l, cnt: scnt});
    }
    while(bm.firstChild ){
        bm.removeChild( bm.firstChild );
    }
    ls.sort(function(a,b){
        if(a.cnt < b.cnt) return 1;
        if(a.cnt > b.cnt) return -1;
        return 0;
    });
    for(i = 0; i < ls.length; i++){
        l=ls[i];
        bm.appendChild(l.tag);
    }
 })()

どうも読み込んだ時点ではすべてのコメントが読み込まれていないようなので、一度画面最下部まで移動してから読むようにしました。1秒くらい待ちます。

javascript: (function () {
    d = document;
    bms=d.getElementsByClassName("js-bookmarks-recent");
    if(bms.length == 0){
        alert('not hatena bookmark page.');
        return;
    }
    var el = d.documentElement;
    window.scroll(0, el.scrollHeight - el.clientHeight);

    var tend = function(){
        bm=bms[0];
        li=bm.getElementsByClassName("entry-comment-contents");
        ls=new Array();
        for(i = 0; i < li.length; i++){
            l=li[i];
            st=l.getElementsByClassName("hatena-star-star");
            scnt=st.length;
            ist=l.getElementsByClassName("hatena-star-inner-count");
            if (ist.length > 0){
                scnt += parseInt(ist[0].textContent);
            }
            ls.push({tag: l, cnt: scnt});
        }
        while(bm.firstChild ){
            bm.removeChild( bm.firstChild );
        }
        ls.sort(function(a,b){
            if(a.cnt < b.cnt) return 1;
            if(a.cnt > b.cnt) return -1;
            return 0;
        });
        for(i = 0; i < ls.length; i++){
            l=ls[i];
            bm.appendChild(l.tag);
        }
        window.scrollTo(0, 0);
    };

    setTimeout(tend, 1000);
 })()

ニコニコ動画のお気に入りリストをExcelにコピペ

タイトルどおりです。現在開いているニコ動のお気に入りリストの項目をタブ区切りの文字列にしてクリップボードにコピーします。そのままExcelに貼ればOK。

とりあえずChromeでは動作確認してます。

 javascript: (function () {
    d = document;
    li=d.getElementsByClassName("MylistItem");
    ls=new Array();
    ar = ["title","url","uploaded","added to list","description"];
    ls.push(ar.join("\t"));
    for(i = 0; i < li.length; i++){
        l=li[i];
        ti = l.getElementsByTagName("h2")[0].textContent;
        a = l.getElementsByTagName("a")[0].href.split(/[?#]/)[0];
        ds = l.getElementsByClassName("NC-VideoMediaObject-description")[0].textContent;
        ud = l.getElementsByClassName("NC-VideoMediaObject-metaAdditionalRegisteredAt")[0].textContent;
        ad = l.getElementsByClassName("MylistItemAddition-addedAt")[0].textContent.split(/[ ]/)[0];

        ar = [ti, a, ud, ad, ds];
        ln = ar.join("\t");
        ls.push(ln);
    }
    text=ls.join("\n");

    if( !navigator.clipboard ) {
        prompt("", text);
    }
    else {
        navigator.clipboard.writeText(text).then(
            ()=>alert("Copy ok."),
            ()=>alert("Copy failed.")
        );
    }
 })()

Oculus のサブスクリプションの解除方法

  1. PCのブラウザでoculusのホームページを開いてログインする https://www.oculus.com/
  2. 右上のアイコンをクリックして「注文」を選択
  3. 左のリストから「サブスクリプション」を選択
  4. 現在支払っているサブスクが表示されるので、右端の「v」マークをクリック
  5. サブスクリプション」の右の「キャンセル」をクリック
  6. 確認が表示されるので「確定」をクリック

他にも方法はあるかも?