Added web interface to package.
This commit is contained in:
108
extras/cueconvert.cgi
Normal file
108
extras/cueconvert.cgi
Normal file
@@ -0,0 +1,108 @@
|
||||
#!/usr/bin/env python
|
||||
|
||||
# cueconvert.cgi - use HTML form to drive cueconvert
|
||||
# ./cueconvert should be the cueconvert binary, or a link to it
|
||||
|
||||
import os
|
||||
import cgi
|
||||
# error reporting
|
||||
#import cgitb; cgitb.enable()
|
||||
|
||||
def print_form(iformat, oformat, text, errors):
|
||||
# input format radio buttons
|
||||
# one "" and one "checked"
|
||||
iformat_cue = ""
|
||||
iformat_toc = ""
|
||||
# output format radio buttons
|
||||
oformat_cue = ""
|
||||
oformat_toc = ""
|
||||
|
||||
if iformat == "cue":
|
||||
iformat_cue = "checked"
|
||||
else:
|
||||
iformat_toc = "checked"
|
||||
|
||||
if oformat == "cue":
|
||||
oformat_cue = "checked"
|
||||
else:
|
||||
oformat_toc = "checked"
|
||||
|
||||
# print HTML form
|
||||
print "Content-type: text/html"
|
||||
print
|
||||
print """
|
||||
<html>
|
||||
<head>
|
||||
<title>cueconvert</title>
|
||||
</head>
|
||||
<body>
|
||||
<h1>cueconvert</h1>
|
||||
<form action="cueconvert.cgi" method="post">
|
||||
<p>
|
||||
Cue Sheet/TOC File<br />
|
||||
<textarea name="text" cols="80" rows="12">%s</textarea>
|
||||
</p>
|
||||
<p>
|
||||
Input Format
|
||||
<input type="radio" name="iformat" value="cue" %s>cue</input>
|
||||
<input type="radio" name="iformat" value="toc" %s>toc</input>
|
||||
</p>
|
||||
<p>
|
||||
Output Format
|
||||
<input type="radio" name="oformat" value="cue" %s>cue</input>
|
||||
<input type="radio" name="oformat" value="toc" %s>toc</input>
|
||||
</p>
|
||||
<input type="submit" value="Submit">
|
||||
</form>
|
||||
<pre>%s</pre>
|
||||
<hr />
|
||||
<p>cueconvert is part of the <a href="http://cuetools.berlios.de">cuetools</a> project.</p>
|
||||
</body>
|
||||
</html>
|
||||
""" % (cgi.escape(text), iformat_cue, iformat_toc, oformat_cue, oformat_toc, cgi.escape(errors))
|
||||
|
||||
def convert(iformat, oformat, text):
|
||||
"""convert - convert a cue or toc file
|
||||
|
||||
returns converted text, and any error messages"""
|
||||
|
||||
command = "./cueconvert"
|
||||
|
||||
# append flags to command
|
||||
if iformat == "cue":
|
||||
command += " -i cue"
|
||||
elif iformat == "toc":
|
||||
command += " -i toc"
|
||||
|
||||
if oformat == "cue":
|
||||
command += " -o cue"
|
||||
elif oformat == "toc":
|
||||
command += " -o toc"
|
||||
|
||||
ifile, ofile, efile = os.popen3(command)
|
||||
ifile.write(text)
|
||||
ifile.close()
|
||||
text = ofile.read()
|
||||
errors = efile.read()
|
||||
ofile.close()
|
||||
efile.close()
|
||||
|
||||
return text, errors
|
||||
|
||||
if __name__ == '__main__':
|
||||
iformat = "cue" # input format
|
||||
oformat = "toc" # output format
|
||||
text = "" # input file content
|
||||
errors = "" # cueconvert error messages
|
||||
|
||||
form = cgi.FieldStorage()
|
||||
if form:
|
||||
iformat = form.getfirst("iformat")
|
||||
oformat = form.getfirst("oformat")
|
||||
text = form.getfirst("text", "")
|
||||
|
||||
text, errors = convert(iformat, oformat, text)
|
||||
# switch input and output formats for next pass
|
||||
iformat, oformat = oformat, iformat
|
||||
|
||||
print_form(iformat, oformat, text, errors)
|
||||
Reference in New Issue
Block a user