#!/usr/bin/env ruby
#
# Offline-Zugriff auf Stichwörter in der Wikipedia
# Totally copylefted by Josef Spillner <josef@kuarepoti-dju.net> in 2008
#
# Vorlagen: http://www.wissenmedia.de/wissenmediaverlag/servicewmv/texte_des_wikipedia_lexikons_zum_download.html

require 'htmlentities'

class WPLookup
	def initialize
		@dirbase = "/usr/local/share/wikipedia"
		@filebase = "Wikipedia_Lexikon"
		@col_reset = "\e[0m\e[0m"
		@col_highlight = "\e[1m\e[31m"
	end

	def lookup(expression)
		initial = expression.upcase.unpack("a1")[0]
		num = initial.to_i
		if num == 0
			filename = @filebase + "_Buchstabe_" + initial + ".txt"
		else
			filename = @filebase + "_123.txt"
		end
		filename = @dirbase + "/" + filename

		begin
			file = open(filename)
		rescue => msg
			puts msg
			exit 1
		end

		ent = HTMLEntities.new
		match = false
		while line = file.gets
			line = ent.decode(line)

			if line =~ /^\n$/
				match = false
			end
			if match
				puts line
				if line =~ /^ →(.*)\.\n$/
					lookup($1)
				end
			end
			if expression.upcase == line.chomp.upcase
				match = true
				puts @col_highlight + line + @col_reset
			end
		end

		file.close()
	end
end

expression = ARGV[0]

if expression
	lookup = WPLookup.new
	lookup.lookup(expression)
else
	puts "Fehler: Kein Suchbegriff angegeben."
end

