From 517d67c64be184f3dc2c1cb635d950324e73f256 Mon Sep 17 00:00:00 2001 From: Alexander Yakovlev Date: Tue, 7 Feb 2017 16:41:24 +0700 Subject: [PATCH] wikitext improvements --- MWClient.rb | 7 ------- Wiki.rb | 14 +++++++++++--- undo.rb | 21 +++++++++++++++++++++ 3 files changed, 32 insertions(+), 10 deletions(-) delete mode 100644 MWClient.rb create mode 100755 undo.rb diff --git a/MWClient.rb b/MWClient.rb deleted file mode 100644 index 3ec8b10..0000000 --- a/MWClient.rb +++ /dev/null @@ -1,7 +0,0 @@ -require 'mediawiki_api' - -class MWClient < MediawikiApi::Client - def get_wikitext(title) - @conn.get '/index.php', action: 'raw', title: title - end -end diff --git a/Wiki.rb b/Wiki.rb index 1058172..4113faf 100644 --- a/Wiki.rb +++ b/Wiki.rb @@ -1,6 +1,6 @@ require 'yaml' require 'json' -require './MWClient.rb' +require 'mediawiki_api' class Wiki @client = nil @@ -8,7 +8,7 @@ class Wiki @dummy = false def initialize(url, username, password, dummy = false) - @client = MWClient.new url + @client = MediawikiApi::Client.new url @client.log_in username, password @dummy = dummy end @@ -37,7 +37,15 @@ class Wiki return list.data end def get_text(page_title) - return @client.get_wikitext(page_title) + history = @client.action :query, + prop: 'revisions', + titles: [page_title], + token_type: false, + rvprop: 'content' + history = history.data['pages'] + page = history.keys.first + revision = history[page]['revisions'].first + return revision['*'].force_encoding("UTF-8") end attr_accessor :dummy diff --git a/undo.rb b/undo.rb new file mode 100755 index 0000000..547ba90 --- /dev/null +++ b/undo.rb @@ -0,0 +1,21 @@ +#!/usr/bin/ruby +require './Wiki.rb' + +config = YAML::load_file(File.join(__dir__, 'config.yaml')) +config["sites"].each do |site| + wiki = Wiki.new(site["url"], site["username"], site["password"], config["dummy"]) + list = wiki.get_list()['allpages'] + for page in list do + if page['title'] == 'Main Page' || page['title'] == 'עמוד ראשי' then + next + end + puts page['title'] + page_text = wiki.get_text(page['title']) + puts page_text + exit # TODO - REMOVE + changed = false + if changed then + wiki.create_page(page['title'], page_text) + end + end +end