マイペースなプログラミング日記

DTMやプログラミングにお熱なd-kamiがマイペースに書くブログ

Ruby

Twitterでフォローしてみる

少しずつパワーアップしてるtwitter.rb。今回はフォローをする機能を付けた。Twitter#createでユーザー名を指定するとフォローする #! /usr/bin/ruby -Ku require 'net/http' require 'rexml/document' require 'uri' require 'kconv' require 'parsedate' #…

Raw Socketを使ってみる その3

Raw Socketを使ってみる その2ではSocketの1回ぶんの読み込みしか表示できなかったけど、今回のはIPパケットなら何回でも表示できるようにした。ARPとかがくると止まる。あと、UDPヘッダの一部の表示を追加したのとファイルをヘッダ毎に分割した。これで次…

mixiの最新日記をTwitterに書き込む

Rubyでmixiの最新日記をTwitterに書き込むプログラムを作ってみた。ファイルは3つで本体とmixi.rbとtwitter.rbがある。成功しようが失敗しようが何も表示しない。mixiへのログインが失敗した時にどうなるか不明。多分twitter.rbの部分でエラーが発生してtwi…

コントラストの拡大

画像のコントラストの拡大をやってみた。モノクロ画像が対象。カモのピンボケ写真で試したところ背景やカモの一部が濃くなったけど顔が見づらくなった require 'pureimage' png = PureImage::PNGIO.new src_image = png.load("mono_kamo.png") width = src_i…

なんとなくやってみた

Twitter APIを使って投稿してみるとExcite再翻訳を利用してみるの機能を使ってtwitterの発言一覧を再翻訳してみた require './twitter' require './excite' username = '****' password = '******' twitter = Twitter.new(username, password) twitter.frien…

Excite再翻訳を利用してみる

Exciteに再翻訳のチェックボックスがあったので、それを利用したプログラムを作ってみた #! /usr/bin/ruby -Ku require 'net/http' require 'kconv' class Excite T_START = "<textarea cols=36 rows=15 name=\"reverse\" wrap=\"virtual\" style=\"width:320px;height:270px;\" onselect=\"insertDictionaryKeyword(this);\">"; T_END = "</textarea>"; def Excit…

mixiのコミュニティ最新書き込みのタイトル一覧を取得する

mixiのコミュニティ最新書き込みのタイトル一覧を取得するため、Mixiの自分の日記を取得するに下記のクラスとMixiクラスにメソッドを追加した。 class TopicTitle attr_reader :title attr_reader :community def initialize(title, community) @title = tit…

Raw Socketを使ってみる その2

前回のはIPヘッダ(の一部)までしか表示してなかったけど、今回はTCPヘッダ(の一部)まで表示するようにした。まぁ、TCPパケットが来てくれないと意味がないんだけど、ブラウザとか立ち上げれば普通にヘッダの内容が見れる。readはどうやら、指定したサイズま…

Mixiの自分の日記を取得する その2

前回のMixiの自分の日記を取得するでは、http://mixi.jp/list_diary.plに載っている全てのエントリーにアクセスしていたので時間がかかった。なので今回は取得数を指定できるようにした。変更した部分だけ抜粋 def getDiaries() getDiaries(30) end def getD…

Raw Socketを使ってみる

RubyでRawSocketを使ってみた。表示するのはEtherヘッダーとIPパケットならIPヘッダの一部を表示する。C言語と違って、1回で複数のEthernetフレームを読み込んでしまうらしく、(readを使ってるため、1回で複数のフレームを読み込んでしまっている。recvfrom…

Mixiの自分の日記を取得する

RubyでMixiの自分の日記を取得してみた。日記はgetDiariesメソッドで最新のから30件分取得される。日記の内容にはタグが含まれてるので、いらなければ自分でgsubを使って除去しておく。日付を取得しわすれたことに今、気づく #! /usr/bin/ruby -Ku require '…

マイミクシィ最新日記のタイトル一覧を取得する

マイミクシィ最新日記のタイトル一覧を取得するため、[Ruby]mixiにログインするプログラムのMixiクラスに以下のメソッドを追加した。 def getNewDiaryTitles() http = Net::HTTP.start('mixi.jp') response = http.get('/new_friend_diary.pl', 'Cookie' => …

Twitter APIを使って投稿してみる

RubyでTwitter APIを使って投稿するプログラムを作ってみた。また、認証や投稿されたメッセージ一覧を取得する機能も持たせておいた。変数のusernameとpasswordに自分のやつをいれれば動く。投稿するメッセージは下の方のtwitter.updateの引数で指定している…

Twitter APIを使ってログインしてみた

RubyでTwitter APIを使い、Twitterにログインするプログラムを書いてみた。ユーザー名を表示するようにした。emailとpasswordが正しいことを信じてるプログラムなので間違った情報を入れると正常に動かない require 'net/http' require 'rexml/document' ema…

mixiにログインするプログラム

Rubyでmixiにログインするプログラムを書いてみた。足跡の表示まで行うようにした。emailとpasswordが正しいことを信じてるプログラムなので間違った情報を入れると正常に動かない #! /usr/bin/ruby -Ku require 'net/http' require 'kconv' email = "*****@…

`initialize_http_header': undefined method `strip' for nil:NilClass (NoMethodError)

HTTPのCookieを渡すプログラムを書いていたら`initialize_http_header': undefined method `strip' for nil:NilClass (NoMethodError)というのがでた。以下、そのプログラムのソース Net::HTTP.start('mixi.jp'){|http| response = http.post('/login.pl', "…

Rubyで画像処理

Rubyで画像を読み込むためにはPureImageというのを使えばいいらしい。ダウンロードはhttp://cappuccino.jp/keisuken/からしてきて、ダウンロードしたファイルに含まれてるpureimage.rbを/usr/lib/ruby/site_ruby/1.8にコピーして準備完了。読み込めるのはPNG…

RSSを取得してみる

RubyでRSSを取得してタイトルを列挙するプログラムを書いてみた。随分と簡単に書けるものだな require 'rss' require 'net/http' body = Net::HTTP.get('d.hatena.ne.jp', '/d-kami/rss2') rss = RSS::Parser.parse(body); puts rss.channel.title puts rss.…

練習

Rubyの練習としてカレントディレクトリの特定の拡張子を持つファイルの名前を列挙するスクリプトを書いてみた。拡張子はコマンドライン引数で受け取る。glob使うと練習にならなそうなので正規表現を使うことにした。以下ソース if ARGV.size == 1 then exten…

XPath

RubyでXPath使おうと思い以下のコードを書いていたら空の配列が返ってきた。何でだ?と思い、title/text()をtitleに変えたらしっかりtitleのElementの配列が返ってくる。 require 'net/http' require 'rexml/document' body = Net::HTTP.get('d.hatena.ne.jp…

文字コード

Rubyで以下のコードを実行したところ、"\343\203\236\343\202\244\343\203\232\343\203\274\343\202\271\343\201\252\343\203\227\343\203\255\343\202\260\343\203\251\343\203\237\343\203\263\343\202\260\346\227\245\350\250\230"という文字列が返って…