#!/usr/bin/env ruby
$:.unshift('vendor/ruby-mediawiki/lib')
$:.unshift('vendor/htree')
require 'mediawiki/dotfile'
@wiki = MediaWiki.dotfile(nil,'entropia')

def check_page_against_category (page, category)
  body  = "== #{page} ==\n\n"
  body += "[[Category:FIXME]]\n\n"
  body += "Unter [[#{page}]] fehlen folgende Artikel aus [[:#{category}]]:\n\n"

  count = 0
  page_html = @wiki.article(page).xhtml.to_s
  @wiki.category(category).articles.each do |title|
    re = Regexp.new(Regexp.escape("title='" + CGI.escapeHTML(title)))
    if ! re.match(page_html) && title != page
      body += "* [[" + title + "]]\n"
      count += 1
    end
  end

  body += "\n#{count} Artikel.\n"

  a = @wiki.article("Benutzer:Neinomat/#{page}")
  a.text = body
  a.submit("wiki ex machina")    
end

#----------------------------------------------------------------------------

check_page_against_category("Übersicht über Vorträge", "Kategorie:Vorträge")
check_page_against_category("Übersicht über Projekte", "Kategorie:Projekte")
check_page_against_category("Entropia:FIXME",          "Kategorie:FIXME")