twitterにポストするウィンドウ作った
GUIの練習についったーにポストできるウィンドウを作りました。
Ruby/Tkは簡単にGUIが作れて素晴らしいんですが、ドキュメントが不足してますね。公式のドキュメントでもメソッド並べてあるだけでほとんど説明がない。他の言語のTkのライブラリのドキュメントみて察すればいいんでしょうか。
Ruby/Tk使えるようにするには、Ubuntuとかなら
$ sudo apt-get install libtcltk-ruby
#!/usr/bin/env ruby # # 自動で文字数カウントするテキストエリア # Enterで文字列をtwitterにポストし、テキストエリアをクリア # require 'net/http' require 'tk' $username = '' #ユーザ名を入れる $password = '' #パスワードを入れる remain = 140 def twitterpost(str) request = Net::HTTP::Post.new('/statuses/update.xml') request.basic_auth($username,$password) http = Net::HTTP.start('twitter.com') http.request(request, 'status='+URI.escape(str)) end label = TkLabel.new{ text remain pack } TkText.new{ font TkFont.new(['times', 10, ['normal']]) self.value = "\n" #なぜかテキストクリアしても頭に改行残ってしまうので最初からつけとく #font一覧表示 #puts TkFont.families bind 'Return', proc{ p self.value.strip twitterpost(self.value.strip) clear } # 'Key'や'KeyPress'だとなぜか日本語入力できないので'KeyRelease' bind 'KeyRelease', proc{ remain = 141-self.value.split(//u).size #puts remain label.text remain } pack } #Tk.root.bind 'Return', proc { puts 'Return'} Tk.mainloop
実行例
上の数字はあと何文字入力できるかを示しています。
文字数が140文字より多いとtwitterにポストしても反映されないみたいですね。