Chienomi

BerryjackをTwitpic対応に

zsh

これはあくまで学術研究目的のレポートである。活用は自己責任にてお願いしたい。

まずはdiff

diff --git a/berryjack b/berryjack
index 378a970..c00e889 100755
--- a/berryjack
+++ b/berryjack
@@ -124,11 +124,12 @@ function get_media_url()
       fi
     done
     # image
-    for image in $( grep -Eo 'https://pbs\.twimg\.com/media/[a-zA-Z0-9_\-]+\.(jpg|png)' $tmp | sort | uniq | \
-      (if [ $orig -eq 0 ]; then
-        cat
+    for image in $( grep -Eo 'https://pbs\.twimg\.com/media/[a-zA-Z0-9_\-]+\.(jpg|png)|https?://twitpic.com/[a-z0-9]*' $tmp | sort | uniq | \
+      (
+      if [ $orig -eq 0 ]; then
+        sed 's#twitpic.com/\([0-9a-z]*\)#twitpic.com/show/full/\1#'
       else
-        sed 's/$/:orig/g'
+        sed 's#twitpic.com/\([0-9a-z]*\)#twitpic.com/show/full/\1#' | sed '/pbs\.twimg\.com/ s/$/:orig/g'
       fi
       ) )
     do
     

TwitpicのURIを拾うのは、単純にorでgrepがTwitpicのURIを拾ってくれるようにすれば良い。 だが、TwitpicのURIは画像のURIではなくページのURIなので、sedで画像のURIに変換している。 pbs.twimg.comのURIも対象にしているが、該当部分はおそらくないため、単純に無視される。 なお、URIはhttps?://twitpic.com/[a-z0-9]*に合致するもののみを想定している。

これで取得できる。 Crawlするためのシンプルなコード。保存するベースとなるディレクトリにおき、<userid>/.idというファイルを作成する。

#!/usr/bin/zsh

for idfile in */.id
do
  (
      print -- "-*- -*- -*- ${${idfile:h}:t} -*- -*- -*-"
    cd "${idfile:h}"
    berryjack "${${idfile:h}:t}"
  )
done