Showing the changes to python.old/aubioweb.py (1 of 42 files). Show all
Unified · Split
| @@ -0,0 +1,113 @@ | ||
| 1 | +#!/usr/bin/python | |
| 2 | + | |
| 3 | +doc = """ | |
| 4 | +This script works with mod_python to browse a collection of annotated wav files | |
| 5 | +and results. | |
| 6 | + | |
| 7 | +you will need to have at least the following packages need to be installed (the | |
| 8 | +name of the command line tool is precised in parenthesis): | |
| 9 | + | |
| 10 | +libapache-mod-python (apache2 prefered) | |
| 11 | +sndfile-programs (sndfile-info) | |
| 12 | +vorbis-tools (oggenc) | |
| 13 | +python-gnuplot | |
| 14 | +python-numpy | |
| 15 | + | |
| 16 | +Try the command line tools in aubio/python to test your installation. | |
| 17 | + | |
| 18 | +NOTE: this script is probably horribly insecure. | |
| 19 | + | |
| 20 | +example configuration for apache to put in your preferred virtual host. | |
| 21 | + | |
| 22 | +<Directory /home/piem/public_html/aubioweb> | |
| 23 | + # Minimal config | |
| 24 | + AddHandler mod_python .py | |
| 25 | + # Disable these in production | |
| 26 | + PythonDebug On | |
| 27 | + PythonAutoReload on | |
| 28 | + # Default handler in url | |
| 29 | + PythonHandler aubioweb | |
| 30 | + ## Authentication stuff (optional) | |
| 31 | + #PythonAuthenHandler aubioweb | |
| 32 | + #AuthType Basic | |
| 33 | + #AuthName "Restricted Area" | |
| 34 | + #require valid-user | |
| 35 | + # make default listing | |
| 36 | + DirectoryIndex aubioweb/ | |
| 37 | +</Directory> | |
| 38 | + | |
| 39 | +""" | |
| 40 | + | |
| 41 | +from aubio.web.html import * | |
| 42 | + | |
| 43 | +def handler(req): | |
| 44 | + from aubio.web.browser import * | |
| 45 | + from mod_python import Session | |
| 46 | + req.sess = Session.Session(req) | |
| 47 | + req.sess['login']='new aubio user' | |
| 48 | + req.sess.save() | |
| 49 | + return configure_handler(req,index) | |
| 50 | + | |
| 51 | +def index(req,threshold='0.3'): | |
| 52 | + navigation(req) | |
| 53 | + print_command(req,"sfinfo %%i") | |
| 54 | + return footer(req) | |
| 55 | + | |
| 56 | +def show_info(req,verbose=''): | |
| 57 | + navigation(req) | |
| 58 | + print_command(req,"sndfile-info %%i") | |
| 59 | + return footer(req) | |
| 60 | + | |
| 61 | +def feedback(req): | |
| 62 | + navigation(req) | |
| 63 | + req.write(""" | |
| 64 | + Please provide feedback below: | |
| 65 | + <p> | |
| 66 | + <form action="/~piem/aubioweb/email" method="POST"> | |
| 67 | + Name: <input type="text" name="name"><br> | |
| 68 | + Email: <input type="text" name="email"><br> | |
| 69 | + Comment: <textarea name="comment" rows=4 cols=20></textarea><br> | |
| 70 | + <input type="submit"> | |
| 71 | + </form> | |
| 72 | + """) | |
| 73 | + | |
| 74 | +WEBMASTER='piem@calabaza' | |
| 75 | +SMTP_SERVER='localhost' | |
| 76 | + | |
| 77 | +def email(req,name,email,comment): | |
| 78 | + import smtplib | |
| 79 | + # make sure the user provided all the parameters | |
| 80 | + if not (name and email and comment): | |
| 81 | + return "A required parameter is missing, \ | |
| 82 | + please go back and correct the error" | |
| 83 | + # create the message text | |
| 84 | + msg = """\ | |
| 85 | +From: %s | |
| 86 | +Subject: feedback | |
| 87 | +To: %s | |
| 88 | + | |
| 89 | +I have the following comment: | |
| 90 | + | |
| 91 | +%s | |
| 92 | + | |
| 93 | +Thank You, | |
| 94 | + | |
| 95 | +%s | |
| 96 | + | |
| 97 | +""" % (email, WEBMASTER, comment, name) | |
| 98 | + # send it out | |
| 99 | + conn = smtplib.SMTP(SMTP_SERVER) | |
| 100 | + try: | |
| 101 | + conn.sendmail(email, [WEBMASTER], msg) | |
| 102 | + except smtplib.SMTPSenderRefused: | |
| 103 | + return """<html>please provide a valid email</html>""" | |
| 104 | + | |
| 105 | + conn.quit() | |
| 106 | + # provide feedback to the user | |
| 107 | + s = """\ | |
| 108 | +<html> | |
| 109 | +Dear %s,<br> | |
| 110 | +Thank You for your kind comments, we | |
| 111 | +will get back to you shortly. | |
| 112 | +</html>""" % name | |
| 113 | + return s | |