#!/usr/bin/env python
# -*- coding: utf-8 -*-
#
#  getWeather-gmdss.py
#  
#  Copyright 2021 Gilles Nourmont <gilles@katalyz.net>
#  
#csv.reader

#from bs4 import BeautifulSoup
msg = "using subprocess32 for interaction with operating & file systems<br>"
try:
	import subprocess32 as subprocess
	#if verbose: print msg
except:
	import subprocess
	#if verbose: print msg.replace('32','')

def getValFromCmd(cmd):
	try: tmp = subprocess.check_output(cmd, env=my_env, shell=True) #
	except:
		if verbose: print "problem with subprocess, cmd='%s' !!"%cmd
	else: return tmp
	return None

BASE_ORG = 'http://weather.gmdss.org/'
metareas = ['II','III']
stations = ['Cross_Corsen','Coruna','Tarifa','Cabo_La_Nao','Cross_La_Garde']
metarea,station = 'II','Cross_Corsen'
localName = 'II.html'
UA_version = '89.0'
UA = "Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:%s) Gecko/20100101 Firefox/%s"%(UA_version, UA_version)
verbose = True

def getPage(page):
	global localName
	if page in metareas: localName = '%s.html'%metarea
	elif page in stations : localName = '%s.html'%station
	else : return False
	url = '%s%s.html'%(BASE_ORG,page)
	cmd = "wget -q -U '%s' -O %s %s"%(UA, localName, url)
	print cmd
	tmp = getValFromCmd(cmd)
	if tmp == None:
		print "error executing command"
		return False
	return True

def decode(html, encoding='iso-8859'):
	try:
		txt = html.decode(encoding)
	except: return html
	return txt

def getFileContent(fileIn):
	html = None
	try:
		with open(fileIn, 'rb') as f:
			html = f.read()
	except:
		print "Error reading '%s'"%fileIn
		return None
	return html

def getList(page):
	mkLocalName(page)
	if page in metareas: classes = ('warning','bulletin')
	elif page in stations : classes = ('warningnavtex','bulletinnavtex')
	else : return False
	html = getFileContent(localName)
	if html == None: return 1
	print "got page",page
	soup = BeautifulSoup(html, 'lxml') # change 2017
	#warnings.resetwarnings()
	for attr in classes:
		#print "checking",attr
		tmp = soup.find('td', attrs={'class':attr})
		if tmp != None:
			#print "found",tmp
			link = tmp.find('a').get('href')
			print link
	
def mkLocalName(page):
	global localName
	localName = '%s.html'%page

def main(args):
	getList(metarea)
	getList(station)
	#return 0
	if getPage(metarea):
		print "got %s.html"%metarea
	else:
		print "can't retreive page !"
		return 1
	return 0

if __name__ == '__main__':
	import sys
	sys.exit(main(sys.argv))
