Ruby
動画IDを指定して、その動画を登録しているマイリストの一覧を取得することができます。 nv = Nicovideo.new(account['mail'], account['password']) # Nicovideoオブジェクトの生成 openlist = nv.openlist(video_id) # OpenListオブジェクトの取得 1ページ…
以下のように、マイリストIDを公開マイリストのIDを指定することで、当該マイリストIDのMyListインスタンスを取得します。 nv = Nicovideo.new(account['mail'], account['password']) # Nicovideoオブジェクトの生成 mylist = nv.mylist(mylist_id) # MyLis…
新しい機能を追加する前にサンプルを書こうと思ったらバグがあったのでアップデートしました。 マイリスト経由で動画をダウンロードするときにできない場合があった 変更履歴など こちらを参照ください→ニコ動ダウンロード用ライブラリがgemコマンドでインス…
※追記とコメント欄での報告の2点を修正して0.0.5として追加リリースしました。 以下の機能を追加しました。gem install nicovideo(または、gem update nicovideo)で最新版を取得できます。 マイリスト取得機能 「この動画を登録しているマイリスト」の取得…
Rubular: a Ruby regular expression editor 正規表現をマッチ対象の文字列を書くと、マッチするかしないかを判定してくれます。 片方(正規表現or対象文字列)を入力すると、もう一方を入力するごとに自動で判定してくれるので、結構便利そうです。 ちょっ…
DNSのない閉じたネットワークでUDPSocketを使ったプログラムを動作させていると、パケットが届いてからrecvfromメソッドで読み込まれるまで数秒間の遅延が発生していました。 調べたところ、Rubyのソケットではデータ受信時に送信アドレスのホスト名の逆引き…
ニコニコ動画ダウンロード用gemの動画FLVをダウンロードするメソッドにおいて、サンプルコードと実装に齟齬があり、きちんと動画ファイルを保存できていなかった問題を修正しました。 ニコニコダウンロードうまくいかず - はけの徒然日記 Re: ニコニコダウン…
http://rubyforge.org/projects/nicovideo/ 昨日の記事で書いていたRubyforgeへの登録の件が完了したので、gemコマンドでインストールできるようになりました。 # gem install nicovideo初めてのRubyforgeへの登録なのでなんとなく嬉しいですが、しっかりメ…
トラックバック(ニコニコ動画のコメントを取得するクラス - A More Beautiful day)を頂いたので久しぶりに自分の作った野良GEMを使ってみると、意外としっかり動いてくれるのでRubyforgeに登録しようと申請を出してみました。今は返事待ち。 本ブログでこ…
まつもと ゆきひろですRuby 1.9.0をリリースしました。入手先は ftp://ftp.ruby-lang.org/pub/ruby/1.9/ruby-1.9.0-0.tar.bz2 407cc7d0032e19eb12216c0ebc7f17b3 ruby-1.9.0-0.tar.bz2 ftp://ftp.ruby-lang.org/pub/ruby/1.9/ruby-1.9.0-0.tar.gz b20cce98b2…
なんかややこしかったのでメモ。 受信側 require 'socket' u1 = UDPSocket.open() u1.bind("0.0.0.0", 10000) p u1.recvfrom(65536) 送信側 require 'socket' u2 = UDPSocket.new() u2.connect('localhost', 10000) u2.send('Hello world!' , 0) 実行結果 先…
例えば、 <foo> <bar attr="1"/> <bar attr="2"/> <bar attr="3"/> </foo> みたいなXMLがあって、名前がbarの要素を取り出すには当然の如く、 require 'rexml/document' doc = REXML::Document.new(File.open("sample.xml").read) elems = doc.root.elements["foo/bar"] # なんかの処理 とすれば、elemsにはbar要素が…
はてな?Rubyグループ - Rubyの魔神 - rubyの配列、ハッシュでデータベースっぽく データベースを使うほどのことでもない時に配列・ハッシュでできればなと 上記の状況ってどんな場合だろう?と考えると、リクエストごとにプロセスが起動するWebアプリじゃな…
Publish::mixi_diary_writerも修正しなければいけなさそう。 というわけで、近いうちにやる。(まだやってない) 追記 修正不要でした。問題なくPOSTできた。
CEATECのウェブページでのブース配置図がGoogleマップベースになっていました。 ブラウザで見る分には使いやすいんですが、印刷してルートを考えたりするのには向いていないと思ったので一枚画像にしました。 画像はこちら きっと会場に着いたら紙の配置図を…
といってもrubyforgeに登録したわけじゃないので野良gemですが、 あれこれ機能をつけたりする前にとりあえず使える形にしてしまおうと。 ※追記(2008/01/07):今はRubyforgeに登録してgemコマンドでインストールできるようにしてあります。 - nicovideo-0.0.1…
先日のニコニコ動画のコメント取得スクリプトでは、WWW::Mechanizeを使用していましたが、最後にコメントを取得する部分だけはNet::HTTPクラスを直接使用していました。 comments = Net::HTTP.start(comment_host, 80) {|http| response = http.post(path, b…
参考サイトのコードをつぎはぎしたらできました。 #!/usr/bin/env ruby -Ku require 'yaml' require 'rubygems' require 'mechanize' require 'cgi' $KCODE = 'u' video_id = ARGV.first.scan(/sm\d+$/).first agent = WWW::Mechanize.new agent.post('https…
メモリを増設したのでFedora Core 7をVMware上で動かして遊ぼうとしているのだが、RMagickのインストールで少し躓いた。 普通にgem install RMagickすると(もちろんImageMagickはインストールしてある前提)、TTFフォントがないとか怒られるので、手順とし…
RubyスクリプトからFlickr APIをゴニョゴニョしようと思い、以下を実行。 API Keyを取得 #=> 問題なし rflickrライブラリでトークンを取得 #=> なんか上手く行かない rflickrについてくるGETTING_STARTEDというファイルに書いてあるサンプルファイルを実行し…
例えば、 h = {:a => 'aaa', :b => 'bbb', :c => 'ccc', :d => nil} みたいなハッシュがあったとして、:aのキーに対応する値があるかチェックするには puts 'true' if h[:a] みたいにそのままif文に突っ込めばいいのだけれど、それが複数になった場合に一つ…
Publish系のプラグインでは、YAMLにパスワードの記述を要するものが殆どです。 で、それを使うYAMLを周りに人がいる状況で編集したりするのは気が引けますよね。 Plaggerでは、passwordの項目は一度実行すると'base64::'つきで書き換えてくれます。 なのでPR…
画像などのファイルをアップロードできるCGIを作成する場合の書き方。 基本はここのように書けばよい。 常識なのかもしれないが、入力パラメータをファイルと同時にPOSTする場合も、同じ取り出し方をしなければならない、ということに気づかなくてしばらく悩…
まずはgemをインストール、かと思いきや、$JRUBY_HOME/bin/gemが既にありました。 しかし、それを実行するには、jrubyを明示的に指定しないといけません。 なので、.bashrcに alias jgem='jruby $JRUBY_HOME/bin/gem' と書いて、以降はjgemでインストールし…
PRaggerが近々リリースするとのことなので、これまで作ったプラグインをまとめてみました。 Publish::とかの表記は現在のに合わせて修正(中)。 Publish::mixi_diary_writer フィードをmixiに投稿するプラグイン。 オプションの指定によって、1アイテム1…
久しぶりにこれの続き。JRubyの動作確認のついでに。 if ARGV.size != 1 then puts "usage: #{__FILE__} [file]";exit end filename = ARGV.shift + Time.now.strftime("-%Y-%m-%d") File.open(filename, "wb").write("Hello!")
JRubyは最新のものを使いたいので、Subversionでとってくることにする。 まずはJDK6とantのインストール。 $ sudo apt-get install sun-java6-jdk ant次に、Subversion経由でJRubyの取得、ビルド。 $ svn co http://svn.codehaus.org/jruby/trunk/jruby $ cd…
にたまごほうれん草 - というわけでpublish::deliciousのコード内のpost_urlを、 post_url = 'http://[投稿先のScuttleのパス]/api/posts/add?' に変更。あとはクラス名とかメソッド名を調整しておしまい。 Scuttleは好きなサーバに設置可能なので、そのURL…
cronで定期的にフィードを取得して(例えばはてダなどに)投稿する場合、フィードの重複を取り除きたい場合があるかもしれません。 というわけで、名前をPlaggerのDedupedプラグインから拝借して、(かなり手抜きの)deduped.rbを作成してみました。メソッド…
v1.8.6をソースからインストールして使用していたが、どうやらOpenSSLのライブラリが入っていなかった模様。 トサ日記(tech side): Rubyのインストールによると、ext/Setupをいじる必要があるようす。 というわけで、ext/Setupから opensslの行のコメントア…