そういえばおとといぐらいに携帯変えた。前に解約云々言っていたけれどなかったことに。

別に特別変えたかったわけじゃないのだけれど、二週間に一回ぐらい機種変する?とか親父が聞いてくる (去年ぐらいから) ので変えてみた。俺には基本的にメリットしかないわけで……よくわからん。

前のやつは 4年ぐらい前 J-Phone 時代なやつでして、予測変換さえないおもろい携帯でした。まぁ携帯でメール書かないので困らなかったわけですが。まぁ携帯にメール来ることがないので困らなかったわけですが。まぁ携帯に電話来ることがないので古くても困らなかったわけですが。

友達がいない僕は携帯を連絡手段じゃなくてカメラとして使います。あーあと時計?なんか俺は腕時計つけるのが苦手らしくて、今は腕時計を持っていない。というか同じような理由で靴下も履かなかったんだけど、冬はさむずぎるので履くようにした。意味わからん。

  1. トップ
  2. life
  3. けいたいかえた

ignore-not-cc-photo.user.js

実際は消すんじゃなくて半透明にします。適用先は他の人の写真一覧のページ (/photo/username/)

以下スクリプトの説明

実は Set があるときとないときとで構造化の度合いみたいなのが違っててややこしい。具体的には Set がない人の一覧では div.StreamView 一個に対し、一つの写真と写真の情報が含まれる望ましい構造であるのに対し、Set がある人の一覧では、写真一覧が全部 div.StreamView 一個に含まれている。

ということで、Set がある場合とない場合にわけてる。きもいー。

Set がある場合、div.StreamView 以下の要素を一旦構造化する。

  1. DocumentFragment を作っておく。
  2. div.StreamView 以下列挙してループ
  3. h4 がでてきたら div (class="__GM_Photo") という要素を作る
  4. 他の要素だったら div.__GM_PhotoappendChild (一旦ノードは削除される)
  5. また h4 がでてきたら DocumentFragment に突っ込む
  6. ループ終わったら残ってる div.__GM_PhotoDocumentFragment に突っ込む
  7. div.StreamViewDocumentFragmentappendChild (戻す)

DocumentFragmentDOM における無名ノードみたいなもの。名前そのまんまだけど!!!

appenChild は既に同じドキュメントにあるノードを追加するとき、一旦そのノードを取り除く。すなわち移動したいときはいちいち削除する必要はない。逆にコピーしたいときは cloneNode する必要がある。

そいでもって、Set がない場合は div.StreamView のクラス名に __GM_Photo を追加するだけしとく。

あとは、Set のあるなしに関わらず、CC の画像を含んでいない div.__GM_Photo にアレしてコレした的な何か。

  1. トップ
  2. js
  3. flickr で CC じゃない写真を消す GM スクリプト
  1. トップ
  2. gm
  3. flickr で CC じゃない写真を消す GM スクリプト