>> 古い記事: Jamendo のアルバムページに torrent ファイルのリンクを表示するブックマークレット
<< 新しい記事: アニメ製作用Script-Fu(レイヤー切り替え、中割り支援)

スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

Lang-8 のキーワード・タグ検索結果や「添削を待っている最新日記」などをフィードにする Yapra プラグインを書いた

20101006 追記: わざわざ自作しなくても 標準のプラグインだけで間に合う気がしてきました。

PLUGINDIR/Lang8/ 以下に次の 2つのファイルを置いてください。


# lang8.rb

require "rubygems"
require "mechanize"


class Lang8
  def initialize
    @agent = Mechanize.new
    @@feed_item = Struct.new("Item", :title, :link, :date, :description)
  end


  def login(mail, pass)
    login_form = @agent.get("http://lang-8.com/login").forms[1]
    login_form["username"] = mail
    login_form["password"] = pass
    redirect_page = @agent.submit(login_form)
  end

  
  def get(url)
    @agent.get(url)
  end


  def feed_items(url)
    page = get(url)
    journals = page.root.css(".on_journal_list")
    journals.map {|journal|
      Lang8.journal2item(journal)
    }
  end

    
  def self.journal2item(journal)
    fi = @@feed_item.new
    fi.title = "%s (by %s)" % [ journal.css(".journal_title a").text,
                                journal.css(".user_name").text ]
    fi.link = "http://lang-8.com" +
      journal.css(".journal_title a").attr("href").text
    fi.date = Time.parse( journal.css(".journal_date").text.strip )
    fi.description = journal.css(".on_status_list")[0].children[-1].text.strip
    fi
  end
end

# journals.rb


require "rubygems"
require "yapra/plugin"
require File.join(File.dirname(__FILE__),
                  "lang8")


def journals(config, data)
  lang8 = Lang8.new
  lang8.login( config["mail"], config["pass"] )
  lang8.feed_items config["url"]
end

設定ファイル例

「マイフレンド最新日記」を取得して RSS 1.0 に書き出す場合:

- module: Lang8::journals
  config:
    mail: {MAIL}
    pass: {PASS}
    url: http://lang-8.com/journals/friends
- module: RSS::save
  config: 
    about: 
    title: "Lang8: マイフレンド最新日記"
    description: 
    link: http://lang-8.com/journals/friends
    filename: lang8-friends.rss

Lang8::journals のパラメータ url で http://lang-8.com/journals/lang_matched を指定すると「あなたの添削を待っている最新日記」、 http://lang-8.com/journals/search?keyword=FooBar とするとキーワード検索の結果、 http://lang-8.com/journals/search?tag=FooBar だとタグ検索の結果が得られます。

関連記事

>> 古い記事: Jamendo のアルバムページに torrent ファイルのリンクを表示するブックマークレット
<< 新しい記事: アニメ製作用Script-Fu(レイヤー切り替え、中割り支援)
** ホームに戻る

コメント

コメントの投稿

管理者にだけ表示を許可する

|
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。