#!/usr/bin/ruby

require 'rubygems'
require 'net/http'
require 'net/https'
require 'uri'
require 'Qt'
require 'atom'
require 'iconv'

def get_feed(server,path,username,password)
	http = Net::HTTP.new(server,443)
	req = Net::HTTP::Get.new(path)
	http.use_ssl = true
	http.verify_mode = OpenSSL::SSL::VERIFY_NONE
	req.basic_auth username, password
	response = http.request(req)
	return response.body
end

def popup(od, mail, predmet)
	od = Iconv.iconv('latin1//TRANSLIT','utf8',od).to_s
	predmet = Iconv.iconv('latin1//TRANSLIT','utf8',predmet).to_s

	# ujisteni, ze subshell ma display
	system('export DISPLAY=:0.0')

	Qt::Application.new(ARGV) do
	    Qt::Dialog.new do
	 
	 	# nastaveni pozice okenka
		self.window_title = 'Novy mail'
		width = 300
		height = 100
		move(1278-width, 757-height)
	 
		tlacitko_zavrit = Qt::PushButton.new('Zavrit') do
		    connect(SIGNAL :clicked) { Qt::Application.instance.quit }
		end

		tlacitko_cist = Qt::PushButton.new('Precist') do
		    connect(SIGNAL :clicked) { 
			    system('opera gmail.com >/dev/null')
			    Qt::Application.instance.quit 
		    }
		end
	 
		label = Qt::Label.new('<font color=red><h2>Prisel novy mail</h2></font>'+
			'Od: <b>'+od+'</b>  <small> ('+mail+')</small><br />Predmet: <b>'+predmet+'</b>')
	 
	 	hbox = Qt::HBoxLayout.new
		hbox.add_widget(tlacitko_zavrit, 0, Qt::AlignRight)
		hbox.add_widget(tlacitko_cist, 0, Qt::AlignLeft)
		

		self.layout = Qt::VBoxLayout.new do
		    add_widget(label, 0, Qt::AlignCenter)
		    add_layout(hbox)
		end
	 
		show
	    end
	 
	    exec
	end
end

# stahnout 
string = get_feed('mail.google.com', '/mail/feed/atom', 'kubahorak', 'acJC5z5z')
# vymenit xmlns, pro puvodni knihovna rAtom nefunguje
string.sub!(
	'<feed version="0.3" xmlns="http://purl.org/atom/ns#">',
	'<feed xmlns="http://www.w3.org/2005/Atom">')

# nacist posledni id
if(File.exists?('lastid'))
	lastid = File.open('lastid').gets
else
	lastid = '0'
end


feed = Atom::Feed.load_feed(string)

feed.each_entry do |entry|
	id = entry.id[/[0-9]+$/]
	if(id > lastid)
		lastid = id
		f = File.new('lastid', 'w')
		f.puts lastid
		f.close
		popup(entry.authors[0].name, entry.authors[0].email, entry.title)
	end
end



