Mercurial > hgrepos > hgweb.cgi > xsotter
view RCS/xsotter_class.rb,v @ 0:b79b888eceac
init
author | KAMURA Sota <c109047@e.koeki-u.ac.jp> |
---|---|
date | Mon, 06 Feb 2012 17:25:58 +0900 |
parents | |
children |
line wrap: on
line source
head 1.1; access; symbols; locks; strict; comment @# @; 1.1 date 2011.11.28.03.10.57; author c109047; state Exp; branches; next ; desc @@ 1.1 log @Initial revision @ text @#! /usr/bin/env ruby # -*- coding: euc-jp -*- require"rubygems" #gem `twitter`, `1.1.1` require"oauth" require"twitter" require"nkf" include Twitter class Xsotter def initialize (token_path) @@path = File.expand_path("~") + token_path # @@path = File.expand_path("~") + "/.xsotter_token" @@login = false @@kcode = "-e" oauth if File.exist?(@@path) == false IO.foreach(@@path) do |line| a=line.chomp.split(" ") @@ACCESS_TOKEN = a[0] @@ACCESS_SECRET = a[1] @@kcode = a[2] @@login = true end Twitter.configure do |config| config.consumer_key = 'SuucnlrR6yAOXz3AQaJG4Q' config.consumer_secret = 'wCL1YIuGH8fIKvBfXKrBbacGF8mhJHBR3A11MpmyPw' config.oauth_token = @@ACCESS_TOKEN config.oauth_token_secret = @@ACCESS_SECRET end # comand(com) end def public_tl return Twitter.public_timeline() end def comand(com)#com=array case com[0] when "--logout" File.delete(path) when "-k" File.chmod(0700,@@path) open(@@path,"w") do |txt| token = @@ACCESS_TOKEN + " " + @@ACCESS_SECRET + " " + com[1] txt.printf"%s",NKF.nkf(@@kcode,token) end File.chmod(0400,@@path) when "-f" f=Twitter.favorites.each do |fav| str = NKF.nkf(@@kcode, fav.user.screen_name + ":" + fav.text) puts str puts end when "-R" if com[1]==nil puts "使用法: xsotter -R ID" else Twitter.retweet(id=com[1]) end when "-F" if com[1]==nil puts "使用法: xsotter -F ID" else Twitter.favorite_create(id=com[1]) end when "-T" str = "" com.delete_at(0) com.each do |i| str += i + " " end str = NKF.nkf("-w", str) Twitter.update(str) when "-t" Twitter.home_timeline.each do |line| str = line.text str = NKF.nkf(@@kcode, line.user.screen_name + ": " + str ) puts str puts "ID=#{line.id}" puts end when "-r" Twitter.mentions.each do |line| str = line.text str = NKF.nkf(@@kcode, line.user.screen_name + ": " + str ) puts str puts end else puts NKF.nkf(@@kcode, " -k KCODE :-e euc -j shift_jis\n -t :タイムラインを出力します。\n -T str :strをツイッターに投稿します。\n -r :自分宛てのリプライを出力します。\n -f 自分のお気に入りのツイートを出力します。\n -F ID :IDをお気に入りに追加します。\n -R ID ID:をリツイートします\n--logout :もう一度認証するまで使えなくなります。") end end def oauth consumer = OAuth::Consumer.new("SuucnlrR6yAOXz3AQaJG4Q", "wCL1YIuGH8fIKvBfXKrBbacGF8mhJHBR3A11MpmyPw", :site => "http://twitter.com") request_token = consumer.get_request_token puts puts request_token.authorize_url #ここでURLがでて認証画面に puts puts "にアクセスし、Twitterにログインしてxsotterを認証し、PINを入手してください。" puts begin puts"PINを入力してください。" print"PIN=" oauth_verifier = STDIN.gets.chomp token = request_token.get_access_token(:oauth_verifier => oauth_verifier ) open(@@path,"w") do |txt| token = token.token + " " + token.secret + " -e" txt.printf"%s",NKF.nkf(@@kcode,token) end File.chmod(0400,@@path) puts "xsotterでログインできるようになりました。もういちど実行してください。" exit(0) rescue puts"PINを間違えて入力しているかも、もう一度チャレンジしてみて " exit(1) end end end if $0 == __FILE__ consumer = OAuth::Consumer.new("SuucnlrR6yAOXz3AQaJG4Q", "wCL1YIuGH8fIKvBfXKrBbacGF8mhJHBR3A11MpmyPw", :site => "http://twitter.com") request_token = consumer.get_request_token puts puts request_token.authorize_url #ここでURLがでて認証画面に puts puts "にアクセスし、Twitterにログインしてxsotterを認証し、PINを入手してください。" puts begin puts"PINを入力してください。" print"PIN=" oauth_verifier = STDIN.gets.chomp token = request_token.get_access_token(:oauth_verifier => oauth_verifier ) open("./token","w") do |txt| token = token.token + " " + token.secret + " -e" txt.printf"%s",NKF.nkf("-w",token) end puts "xsotterでログインできるようになりました。もういちど実行してください。" exit(0) rescue puts"PINを間違えて入力しているかも、もう一度チャレンジしてみて " exit(1) end end @