記事一覧

Twitterの発言をTumblrにまとめるYAYAスクリプト

用意するもの

手順

Twitter側の準備
  • まとめたい発言をfavoって集める。淡々と。
ゴースト側の準備
  • twitalkのインストール
  • サプリメントを当てる
  • twitalkの辞書(拡張子.dic)のどこでもいいので以下のスクリプトを張り付ける。
    usernameとpasswordは自分のを設定する。
    keyはzが嫌なら変える。
sys.key.z
{
  _username = 'username'  // set your username
  _password = 'password'  // set your password

  _fname    = 'favo.txt'
  _event    = 'OnGetFavoritesFromTwitter'
  _url      = "http://%(_username):%(_password)@twitter.com/favorites.xml"
  "\![execute,http-get/
    ,%(_url)/
    ,--async=%(_event)/
    ,--file=%(_fname)/
    ,--param-charset=UTF-8/
  ]\e"
}

OnGetFavoritesFromTwitter
{
  _path = GETSETTING('coreinfo.path') + 'var\favo.txt'
  _id = GetXPath('open', _path)
  _screen_name = IARRAY()
  _text        = IARRAY()
  _url_id      = IARRAY()
  if _id {
    for _i = 1; _i <= 20; _i++ {
      _tmp = GetXPath('get', _id, "/statuses/status[%(_i)]/id")
      if _tmp == ''; break;
      // id
      _url_id      ,= _tmp
      // screen_name
      _screen_name ,= GetXPath('get', _id, "/statuses/status[%(_i)]/user/screen_name")
      // text
      _text        ,= GetXPath('get', _id, "/statuses/status[%(_i)]/text")
    }
    _nop = GetXPath('close', _id)
//    _nop = FDEL(_path)
  }

  _filename = GETSETTING('coreinfo.path') + 'var\stot.txt'
  if !FOPEN(_filename, 'w')
    return

  _flag = 0
  for _i = ARRAYSIZE(_url_id) - 1; _i >= 0 ; _i-- {
    _str = "%(_screen_name[_i]):%(_text[_i]) [http://twitter.com/%(_screen_name[_i])/status/%(_url_id[_i])]"
    FWRITE(_filename, _str)
  }
  FCLOSE(_filename)

  "\![open,file,%(_filename)]\e"
}

OnKeyPress
{
  if ISFUNC('sys.key.' + reference[0]) {
    EVAL('sys.key.' + reference[0])
  }
}
  • zキーを押せばfavoったpostがSTOT形式(後述)で保存されるので、手動でTumblrに張り付ける(手抜き)
閲覧者側の準備

Greasemonkey使ってる人はこれをインストールすると見やすい。

結果

こんな感じにまとめられる。

その他

ShareTwitterOnTumblr(STOT)っていう発言まとめ用の便利なGreasemonkeyスクリプトが昔あったのですが、度重なるTwitterの仕様変更にメンテが追い付かない状態で、YAYAで自作して現在に至るまで使っています。
Tumblrに投稿するまで自動化したいけど面倒なので手動で。

TwitterのFollowingを全表示するUserJS

ダウンロード

最終更新:09/10/28

ver 1.3.0

  • 不要なファイルがダウンロードされる可能性のある問題(ver 1.2.0のエンバグ)を修正。

ver 1.2.0

  • 読み込み中クルクルアイコン追加。
  • "Try Again…"リンク追加。
    接続失敗時に、やり直し可能にした。
  • 多重読み込み防止措置追加。

ver 1.1.0

  • "View Next…"リンク追加。
    リンククリックで読み込むようにした。
  • 延々と100個ずつ取得できるようにした。
    1000 followingsの人も10回クリックで全表示できます。

ver 1.0.0

  • 新規作成

これは何か

Twitterのサイドバーに出てくる36個のアイコンを最大100個までfollowings 全部表示してしまうUserScriptです。
APIを消費するので短時間に使い過ぎないようご注意ください。
ProtectedなUserのページでは認証ボックスが出てきて煩わしいかもしれません。
Firefox + Greasemonkey, Opera, Google Chrome で動作を確認しております。

たぶん既に誰かが作ってると思いながらも車輪の再発明。
一度Ajaxを使ってみたかったので、その練習を兼ねて作りました。

Twitterで@の前に半角スペースが無くてもリンクを張るUserJS

何気にAutoPagerize対応してます。

Firefox + Greasemonkey, Google Chromeで動作します。
Operaでは動きませんでした。何でだろう…。

ゴースト更新捕捉BOTを作ってみた

RSSを拾ってくるだけのBOTです。
Twitterとはてなハイクにアカウントを作りました。

TwitterのtimelineをSofTalkで読み上げる

RSSセンサを作ってPluginを使う

  • RSSセンサを作る
    twitter_friends_timeline.nar
    • rss¥twitter_friends_timeline¥descript.txt をテキストエディタで開いてusernameとpasswordを編集して保存する
    • エクスプローラからヘッドラインをリロードして実行すると取得できる
  • RSSセッティングをインストールする
    rss_setting.nar
    • SofTalkをONにする
    • 数秒フリーズしてタイムアウトエラーが出るけど気にしない
  • RSSセッティングでTwitterのtimelineをSofTalkで読み上げる
    • 何番目にインストールされているか調べて以下のSakuraScriptをダブルクリックで実行するようなGhostを作ると便利
\![raiseplugin,bd9e47c0-1b64-11de-8c30-0800200c9a66,OnRSSAPI,sys.fnc.hl,(数字:zore-origin)]

RSSセンサとかPluginとか使いたくない場合

伺かとか使いたくない場合

  • BOTにお願いする

20:20 追記 RSSセッティング更新しました

  • RSSの表示順を逆にする設定を追加
  • 実態参照が変換されていなかった不具合を修正

Twitter上ゴースト感想まとめサイト

噂と評判TW(仮)tukatter

(仮)としているのはどうもネタっぽいので今後変更が予想されるためです。
tukatterに名称が変更された様子です。はてなハイクの投稿も合成している模様。(09/04/12 追記)

プラグイン「きょうの伺か」で投稿されたゴーストの感想をtwitter検索を利用して収集したまとめサイトのようです。

twitter検索を利用しているので検索すれば発言者なども勿論わかりますが、匿名掲示板風のレイアウトであまりそのことを意識させない造りになっています。

また、他の人のコメントに対するコメント、いわゆる「レス」に該当するのものが見受けられないのも特徴的に感じますが、純粋なゴーストに関する感想のみ拾ってきて並べて表示しているだけなので当然と言えば当然ですね。

ゴーストの特徴をよくとらえた感想が多いようです。
実際にゴーストを起動してそのゴーストのバルーンを拝借して投稿している訳ですから、思い入れのある投稿がたくさん見受けられます。

現在twitter検索はTwitterの規制強化によりpostの回収率が10%程度まで落ち込んでいるようです。
別の方法により回収率を向上させる試みが行われているようですので、今後に期待していきたいと思います。

プラグイン「きょうの伺か」の利用にはTwitterアカウントが必要になりますが、はてなアカウントをお持ちの方であればはてなハイクの方にも投稿することができますので、どうぞご利用ください。

PHPでTwitterBotを作ってみた・続

PHPの統合開発環境としてeclipseプラグインであるPDTとZendDebuggerをインストール。
デバッグ機能も大変充実していて普通のテキストエディタで書いていた時に比べ開発効率も飛躍的に向上しました。
素人の自分には勿体ない程です。

せっかくなのでオブジェクト指向プログラミングに挑戦しようと思い、 @mesoramen に実装している以下の機能をモジュール化して @denpadokei にも実装しようと考えました。

  • 投稿
  • reply取得・返信
  • 自動follow/remove返し

replyは最新のものに対してのみ。
自動follow/remove返しは日付変更時の1日1回チェックという仕様で。

Twitter用モジュールなど検索すれば高機能なものがたくさん入手できますが、APIの仕様は知っていますし必要最小限の構成で自分でメンテできる規模のものを練習として作ることが目的です。小さな車輪の再発明。

denpadokeiと共有する部分だけtwuka.phpに分離してクラスにしてみました。
入門サイト見ながら書いてみましたがこんな感じでいいんですかね…?
あまり自信無いですが動いてるので良いことにしましょう。

メインの部分に無駄にデータベース使ったりして汎用性が無いですが外部ファイルに読み書きできれば充分だと思います。
気が向いたらこれからもちょくちょく機能追加していきたいです。
あとPerlも面白そう。

「きょうの伺か」紹介サイトを作ってみた

PLUGIN「きょうの伺か」を紹介するサイトを作りました。

きょうの伺か

post集積BOTなども作ってみましたがrubyとかよくわかってないのでバグってるかもしれません。
御容赦ください。

PLUGINでTwitterClientを作ってみた

伺かでMiniTwitterもどき

(わざわざ)伺かでTwitterClient機能を提供するPLUGINを作ってみました。
専用の配布サイトを立ち上げました。

GHOSTへのイベント通知は行っていませんが、ポップアップ通知のタイトルに「ついっとゅう」が含まれていたらトレイバルーンクリックでPLUGINを起動…なんてすると他のTwitterClientみたいに便利にできるかもしれません
(拙作「ごーすとじてん」にてそのように対応しております)。

(SSP/2.01.61 + twittyu/1.1でデフォルトで上記の機能を実現しました。09/01/25追記)
デフォルトのUIが気に入らない、もっとカッコイイUIを自作したい、という御意見があればGHOSTへのイベント通知の仕様も検討したいと思います。
(twittyu/1.4でイベント通知およびGHOSTからのPLUGIN内関数の利用に対応しました。わざわざ専用GHOSTを自作された純ユーザさんまでいらっしゃるようで感激しております。09/02/07追記)

ところで

あけましておめでとうございます。
正月休みは全部これに費やしてしまいました…。

去年の抱負など振り返ってみたら「里々以外の栞をマスターする」などとナマイキなこと書いてましたね。
でも実際に華和梨とYAYAを覚え、目標を達成できたので満足です。

諸先輩方の御助力賜りまして去年は大いに学び、成長できた年でした。
それに驕らず今年も去年以上に大きく飛躍できる年にしたいと思います。
Webとの連携も楽しいですがやっぱりSAORI作ってみたいですよね。SAORI。
今年はSAORI作れるようになりたいです。

RubyでTwitterBotを作ってみた

今回はRubyで

真夜中の散歩人さんのゴースト 毒電波「基地外警報発令中」 をモチーフにしたTwitterの時報Botを作ってみました。

時報と言いつつも定刻に発言するものではなく完全にランダムです。お役立ち系のBOTとは言えませんが興味持たれましたらfollow宜しくお願いします。

キャラクタの使用許可を頂きましたこと、あらためて御礼申し上げます。

RubyにてTwitterBotを作成するにあたりtwbot.rbを使わせて頂きました。
ありがとうございます。

09/02/14 追記

@denpadokei をPythonで作り直しました。
閉じた系でトークをランダム生成するだけならこちらの方がシンプルにできますね。
以下の記事を参考にさせて頂きました。
ありがとうございます。

twbot.rbはRSSリーダとして使いやすいので今は@ukatter@cucmoe に使わせて頂いております。

今後やってみたいことなど

@beefriends の方は既にPHPからPerlへの移植が完了していますので、今回で3種類目の言語での実装になります。
それぞれ試してみて特徴がわかってきたので今後は目的に応じて使い分け、Web上のデータを加工して利用したり、replyに対応できるようにしたりなどできたら楽しいだろうなと考えています。

ページ移動