#!/usr/bin/env python
# coding: utf-8

import os, re
verbose = True

"""
 # can't read media from ntfs !
	from pprint import pprint
	media = '/mnt/Data/video/Melodie.en.Sous.Sol.1963.BDRip.1080p.FR.HDLight.x264.AC3-BzH29.mkv'
	pprint(os.stat(media))
	exit(0)
"""
HttpMod = (os.getenv('HTTP_USER_AGENT') != None)
if HttpMod:
	from HTML_util import *
	HTML_header()
	import cgi
	import cgitb
	cgitb.enable()
	UPDT_FS = True # Do modify filesystem accordingly
	form = cgi.FieldStorage()
	#HTML_headerClose(form)
	#HTML_abort(form)
	if 'media' not in form:
		HTML_abort("nothing to do !")
	media = form['media'].value
	CONFIRM = 'confirm' in form # True if confirmation has been sent
	print "<title>Infos on media : %s</title>"%os.path.basename(media)
	print '<style type="text/css">body {font-family:sans} th {text-align:right}</style>'
	HTML_headerClose()
	if 'title' in form:
		print '<pre>(%s) "%s"</pre>'%(form['title'].value, form['title'].value)
else:
	import sys
	if len(sys.argv)>1:
		media = sys.argv[1]
	else:
		exit(1)
	UPDT_FS = False

import FS_util
FS_util.verbose = verbose

if os.path.isfile(media):
	if re.search('Matroska data',FS_util.getValFromCmd("file '%s'"%media)):
		from mkv_util import MKV
		print '<h5>mkvinfo</h5><pre>' if HttpMod else "mkvinfo\n"
		dat = MKV(media)
		#print dat.report.encode('utf-8')
		if HttpMod: print '</pre>'
		if dat.Title in (None, {}) :
			if HttpMod and 'title' in form:
				if HttpMod : print '<br>'
				dat.updateTitle(form['title'].value.decode('utf-8'),CONFIRM)
				print '<pre>%s</pre>'%dat.report
				# result of last command
			elif HttpMod :
				print '<form action="" method="POST"><label>Title</label> : <input type="text" name="title" size="40"><input type="checkbox" name="confirm" checked> <label>Confirmed</label></form>'
			else:
				print dat.report
		# mkv_util.getDatasFrmFile(media)
		if dat.checkTracks():
			msg = dat.extractAllAudT() +'\n' + dat.extractAllSubT() +'\n'
			print nl2br(msg) if HttpMod else msg
		fmt = '<pre style="background-color:#afa">%s</pre>' if HttpMod else "%s"
		print fmt%dat.Resume() #.encode('utf-8')
		if HttpMod: print '<pre>'
		dat.showDatas()
		print "</pre>" if HttpMod else ""
		print fmt%dat.info # result of mkvinfo
	if HttpMod:print u'<h5 style="margin-bottom: -12px;background-color: #ffa;padding-bottom: 5px;">mediainfo</h5>\n<pre style="background-color:#ffa">'
	else:print "mediainfo\n"
	print FS_util.infoMedia(media).encode('utf-8')
	if HttpMod: print '</pre>'
else:
	print "media '%s' "%media,
	fmt = '<br><span style="color:red;font-weight:bold;display:block;text-align:center;line-height:3em;">%s</span>' if HttpMod else "%s\n"
	print fmt%' not inline !'

if HttpMod:
	print '<br>\n'
	HTML_abort()
