2017年3月29日水曜日

TBS News iの連続動画再生で新しいニュースのみ選択するブックマークレットとユーザースクリプト

News iの連続動画再生ビューアに何ヶ月も前のニュースが混じっていたりして、毎回新しい動画を選択するのが辛いので、ユーザースクリプトとついでにブックマークレットを書いた。テストはFirefox 45 ESRとGreasemonkeyで行ってある。

ブックマークレット

以下のリンクをブックマークに登録して、連続動画再生ビューアのページで普通のブックマークと同じようにクリックすれば、12時間以内のニュースが選択されるはず。

(2017/3/29 追記)属性値のダブルクォートをエスケープし忘れていたのを修正した。

もっと新しいニュースのみ選択したい場合、例えば6時間以内なら、ブックマークのアドレス部分の末尾を(12)から(6)に変更すればいい。

ユーザースクリプト

// ==UserScript==
// @name        news i selector
// @include     http://news.tbs.co.jp/3snewsi/*
// @grant       none
// ==/UserScript==

var HOURS = 12;

jQuery(document).ready(function() {
    var expiredAt = Date.now() / 1000 - HOURS * 60 * 60;
    Array.prototype.forEach.call(document.querySelectorAll(".ls-checkItem"), function(item) {
        var checked = item.querySelector("input[type='checkbox']").checked;
        var time = parseInt(item.querySelector(".gs-metaData>span").getAttribute("data-time"), 10);
        var expired = (time < expiredAt);
        if (checked) {
            item.click();
        }
        if ((checked && expired) || (!checked && !expired)) {
            item.click();
        }
    });
    // setTimeout(function() {
    //     document.querySelector(".md-3snewsiPlayButton .ls-playSelected").click();
    // }, 0);
});

最後のコメントアウトをはずすと再生も自動でされる。しかし、連続動画再生ビューアはどういうわけか勝手にリロードすることがあり、その場合、また最初の動画から再生されてしまうので使い勝手は良くない。

なお、jQueryを使用しているのは連続動画再生ビューアと実行タイミングを合わせるため。連続動画再生ビューアがready()で初期化していて、そのあとに実行するためユーザースクリプトでも使用する必要があった。

2015年11月30日月曜日

Lubuntu 15.10をCore Installするメモ

HP 2133という古いネットブックにLubuntu 15.10をインストールしたときの作業記録。full installは不必要なパッケージが多いので、core installしてから必要なものだけ追加した。

まずはUbuntuをminimal installする。Lubuntuは後でインストールするメタパッケージが違うだけで、minimal installまでの手順は共通。

Minimal Install

アーキテクチャに合ったISOイメージをダウンロードし、USBメモリなどに書き込む。ダウンロードリンクのarchive.ubuntu.comの前にjp.を足してjp.archive.ubuntu.comに変えると速くなるかもしれない。自分はMacでmicroSDに書き込んだ

ブートしたらひたすらインストーラの指示に従い進める。パッケージをダウンロードするので、有線LANに接続しておく必要がある。

ソフトウェアの選択画面では何も選択しないで続ける

自分はGRUBのインストールでエラーになってしまったが、どうにもならないので無視して続けた。

インストールが完了したら再起動。上のエラーが原因でGRUBのプロンプトが表示されたけど、How to Rescue a Non-booting GRUB 2 on Linux | Linux.com | The source for Linux informationに書いてある通りやったら無事ブート出来た。

ここまででminimal installは完了。

Core Install

apt-getを使う前に、余計なパッケージをインストールしないように設定を変更する。

$ sudo su -
# echo 'APT::Install-Recommends "0";' >> /etc/apt/apt.conf
# echo 'APT::Install-Suggests "0";' >> /etc/apt/apt.conf
$ exit

謎のエラーダイアログが表示されるのを回避するため、先にpolicykit-1をインストールし、続けてlubuntu-coreをインストール。

$ LC_ALL=C sudo apt-get install policykit-1
$ LC_ALL=C sudo apt-get install lubuntu-core

これでLubuntuのcore installは終了。

ただし、このままLightDMを開始すると、日本語のディレクトリが大量に作られてしまうので、あらかじめ英語で作っておく。

$ LC_ALL=C xdg-user-dirs-update

最後にLightDMを起動。

$ sudo service lightdm start

いろいろ設定

Predictable Network Interface Namesを無効にする

予測可能でもすぐ忘れてしまうので、以前のeth0wlan0に戻す。

$ sudo nano /etc/default/grub

GRUB_CMDLINE_LINUX_DEFAULTnet.ifnames=0を追加したら、

$ sudo update-grub

のようにして、変更内容を反映させる。

インターフェイス名も修正して、

$ sudo nano /etc/network/interfaces

PCを再起動。

無線LANを有効にする

最初に必要なドライバを調べる。

$ sudo ubuntu-drivers devices

bcmwl-kernel-sourceと表示されたので、network-manager-gnomeと一緒にインストール。

$ sudo apt-get install bcmwl-kernel-source network-manager-gnome

ログインし直すと右下にアプレットが表示されるので、右クリックして[接続を編集する...]-[編集]-[Wi-Fiセキュリティ]でパスワードを設定すれば繋がる。

蓋を閉じたときにサスペンドさせない
$ sudo su -
# echo "HandleLidSwitch=ignore" >> /etc/systemd/logind.conf
# systemctl restart systemd-logind
# exit
Sambaサーバのインストール
$ sudo apt-get install samba

[homes]を有効にする。

$ sudo nano /etc/samba/smb.conf

適当に編集したら、パスワードを設定してsmbdを再起動。

$ sudo smbpasswd -a $USER
$ sudo systemctl restart smbd
OpenSSHサーバのインストール
$ sudo apt-get install openssh-server

以下はクライアント側で実行する。

鍵の作成。作成済みなら必要ない。

$ ssh-keygen -t rsa

Lubuntuマシンに公開鍵をコピーする。

$ cat ~/.ssh/id_rsa.pub | ssh $USER@192.168.XXX.XXX "mkdir -p .ssh; cat >> .ssh/authorized_keys && chmod 600 .ssh/authorized_keys"

2015年7月30日木曜日

クライミングジムのクーポンをRSSでチェックする

オールクーポンというサイトで複数のクーポンサイトをまとめて検索できるのだけど、残念ながらフィードは提供されていない。Feed43というサイトを利用すれば、WebページからRSSを生成できるというのでやってみた。

上記のURLをそのままフィードリーダーに登録すれば購読できる。対象地域は全国だけど、クーポンを販売するジムがとても少ないので、登録しても何も表示されないかも。

RSSは「ボルダリング」の検索結果から生成している。リードのジムでも、たいていはボルダリング壁を併設してるだろうから漏れることはほぼないと思う。「クライミング」だとボルダリングジムが出てこなかったり、「ツリークライミング」や「シャワークライミング」が含まれてしまったりする。