Mediawiki之ruby介面:mediawiki-butt

架mediawiki寫說明文件已有多年,一直苦於資料不能以程式批次修改,這幾天突然發現,原來早就有給各種語言的api介面,趕快來玩玩看。

1.安裝前,要先裝libcurl4-gnutls-dev

apt-get install libcurl4-gnutls-dev

2.安裝mediawiki-butt

gem install mediawiki-butt

3.使用範例:test.rb

require 'mediawiki/butt'
wiki = MediaWiki::Butt.new('http://www.example.com:8080/mediawiki/api.php')
wiki.login('user', 'password')
main_page_text = wiki.get_text('首頁')
p main_page_text

執行結果:

# ruby test.rb
"#[[中醫]]\n#[[投資]]\n#[[電腦]]\n#[[生活注意事項]]\n#[[electricity]]\n#[[health]]\n#[[Other]]\n#[[B首頁]]\n\n"

大致來說,非常容易使用,有需要的人可以試試看。

參考連結:
MediaWiki::Butt


20210206補充: 刪除功能purge無效,返回已刪除,但其實未刪除。

page_titles = wiki.get_all_pages_in_namespace(0, 5000)
page_titles.each do |t|
  main_page_text = wiki.get_text(t[0])
  next if main_page_text.present?
  ar = []
  p t
  ar << t
  p main_page_text
  status = wiki.purge(ar)
  p status
  exit
end

執行結果

"'com.mysql.jdbc.driver' cannot be loaded"
nil
{"'com.mysql.jdbc.driver' cannot be loaded"=>true}

改用mediawiki_api刪除就成功了。

分類: ruby,標籤: 。這篇內容的永久連結

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *