Update of /cvsroot/freevo/freevo/WIP/Ruelle/for_bart_h
In directory sc8-pr-cvs1:/tmp/cvs-serv12748
Added Files:
wap_login.rpy wap_rec.rpy wap_types.py
Log Message:
First rev of a wap recording interface contributed by Bart Heremans
--- NEW FILE: wap_login.rpy ---
#!/usr/bin/python
#if 0 /*
# -----------------------------------------------------------------------
# wap_login.rpy - Wap interface login form.
# ----------------------------------------------------------------------- */
#endif
from wap_types import WapResource, FreevoWapResource
class WLoginResource(FreevoWapResource):
def _render(self, request):
fv = WapResource()
form = request.args
user = fv.formValue(form, 'user')
passw = fv.formValue(form, 'passw')
action = fv.formValue(form, 'action')
fv.printHeader()
fv.res += ' <card id="card1" title="Freevo Wap">\n'
fv.res += ' <p><big><strong>Freevo Wap Login</strong></big></p>\n'
if action <> "submit":
fv.res += ' <p>User : <input name="user" title="User"
size="15"/><br/>\n'
fv.res += ' Passw : <input name="passw" type="password"
title="Password" size="15"/></p>\n'
fv.res += ' <do type="accept" label="Login">\n'
fv.res += ' <go href="wap_rec.rpy" method="post">\n'
fv.res += ' <postfield name="u" value="$user"/>\n'
fv.res += ' <postfield name="p" value="$passw"/>\n'
fv.res += ' </go>\n'
fv.res += ' </do>\n'
fv.res += ' </card>\n'
fv.printFooter()
return fv.res
resource = WLoginResource()
--- NEW FILE: wap_rec.rpy ---
#!/usr/bin/python
#if 0 /*
# -----------------------------------------------------------------------
# wap_rec.rpy - Wap shedule recording page.
# ----------------------------------------------------------------------- */
#endif
import sys, time
import epg_xmltv
import epg_types
import record_client as ri
from wap_types import WapResource, FreevoWapResource
class WRecResource(FreevoWapResource):
def _render(self, request):
fv = WapResource()
form = request.args
fv.session = request.getSession()
fv.validate(request)
start = fv.formValue(form, 'start')
stop = fv.formValue(form, 'stop')
startdate = fv.formValue(form, 'date')
stopdate = startdate
channel = fv.formValue(form, 'channel')
action = fv.formValue(form, 'action')
errormsg = ''
if fv.session.validated <> 'yes':
errormsg = 'not validated'
fv.printHeader()
# look for action to do an add
if action:
if action == 'add':
starttime = time.mktime(time.strptime(str(startdate)+"
"+str(start)+":00",'%d/%m/%y %H:%M:%S'))
stoptime = time.mktime(time.strptime(str(startdate)+"
"+str(stop)+":00",'%d/%m/%y %H:%M:%S'))
if stoptime < starttime:
stoptime = stoptime + 86400
prog = epg_types.TvProgram()
prog.channel_id = channel
prog.title = "Wap Recorded"
prog.start = starttime
prog.stop = stoptime
ri.scheduleRecording(prog)
fv.res += ' <card id="card3" title="Freevo">\n'
fv.res += ' <p><strong>Rec. Sheduled</strong><br/>\n'
fv.res += ' Date : %s<br/>\n' % startdate
fv.res += ' Start : %s<br/>\n' % start
fv.res += ' Stop : %s<br/>\n' % stop
fv.res += ' Chan.: %s</p>\n' % channel
fv.res += ' </card>\n'
else:
if errormsg == 'not validated':
fv.res += ' <card id="card9" title="Freevo">\n'
fv.res += ' <p> Please login!<br/>\n'
fv.res += ' <anchor>Go to login\n'
fv.res += ' <go href="wap_login.rpy"/>\n'
fv.res += ' </anchor></p>\n'
fv.res += ' </card>\n'
else:
guide = epg_xmltv.get_guide()
fv.res += ' <card id="card1" title="Freevo" ontimer="#card2">\n'
fv.res += ' <timer value="30"/>\n'
fv.res += ' <p><big><strong>Freevo WAP Sheduler</strong></big></p>\n'
(server_available, message) = ri.connectionTest()
if not server_available:
fv.res += '<p>ERROR: Record Server offline</p>\n'
else:
fv.res += ' <p>Record Server online!</p>\n'
fv.res += ' </card>\n'
fv.res += ' <card id="card2" title="Freevo">\n'
fv.res += ' <p>Date: <input name="date" title="Date (dd/mm/yy)"
format="NN/NN/NN" size="6" value="%s" /><br/>\n' % time.strftime("%d/%m/%y",
time.localtime(time.time()))
fv.res += ' Start Time: <input name="start" title="Start
Time (hh:mm)" format="NN:NN" size="4" value="%s" /><br/>\n' % time.strftime("%H:%M",
time.localtime(time.time()))
fv.res += ' Stop Time: <input name="stop" title="Stop Time
(hh:mm)" format="NN:NN" size="4" value="%s" /><br/>\n' % time.strftime("%H:%M",
time.localtime(time.time() + 3600))
fv.res += ' Channel: <select name="channel">\n'
for ch in guide.chan_list:
fv.res += ' <option
value="'+ch.id+'">'+ch.displayname+"</option>\n"
fv.res += ' </select></p>\n'
fv.res += ' <do type="accept" label="Record">\n'
fv.res += ' <go href="wap_rec.rpy" method="post">\n'
fv.res += ' <postfield name="action" value="add"/>\n'
fv.res += ' <postfield name="date" value="$date"/>\n'
fv.res += ' <postfield name="start" value="$start"/>\n'
fv.res += ' <postfield name="stop" value="$stop"/>\n'
fv.res += ' <postfield name="channel" value="$channel"/>\n'
fv.res += ' </go>\n'
fv.res += ' </do>\n'
fv.res += ' </card>\n'
fv.printFooter()
return fv.res
resource = WRecResource()
--- NEW FILE: wap_types.py ---
#if 0 /*
# -----------------------------------------------------------------------
# wap_types.py - Classes useful for the wap interface.
# -----------------------------------------------------------------------
# $Id: wap_types.py,v 1.1 2003/09/02 21:14:22 mikeruelle Exp $
#
# Notes:
# Todo:
#
# -----------------------------------------------------------------------
# $Log: wap_types.py,v $
# Revision 1.1 2003/09/02 21:14:22 mikeruelle
# First rev of a wap recording interface contributed by Bart Heremans
#
# Revision 1.0 2003/07/14 19:30:36 BHeremans
#
# First Version
# -----------------------------------------------------------------------
# Freevo - A Home Theater PC framework
# Copyright (C) 2003 Krister Lagerstrom, et al.
# Please see the file freevo/Docs/CREDITS for a complete list of authors.
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 2 of the License, or
# (at your option) any later version.
#
# This program is distributed in the hope that it will be useful, but
# WITHOUT ANY WARRANTY; without even the implied warranty of MER-
# CHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General
# Public License for more details.
#
# You should have received a copy of the GNU General Public License along
# with this program; if not, write to the Free Software Foundation, Inc.,
# 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
#
# ----------------------------------------------------------------------- */
#endif
import os, sys, time
import config
from twisted.web.resource import Resource
DEBUG = 1
TRUE = 1
FALSE = 0
class FreevoWapResource(Resource):
def render(self, request):
request.setHeader('Content-Type', 'text/vnd.wap.wml')
return self._render(request)
class WapResource:
def __init__(self):
self.res = ''
def formValue(self, form=None, key=None):
if not form or not key:
return None
try:
val = form[key][0]
except:
val = None
return val
def printHeader(self):
self.res += '<?xml version="1.0"?>\n '
self.res += '<!DOCTYPE wml PUBLIC "-//WAPFORUM//DTD WML 1.1//EN"
"http://www.wapforum.org/DTD/wml_1.1.xml">\n'
self.res += '<wml>\n'
def printFooter(self):
self.res += '</wml>\n '
def validate(self, request):
session = request.getSession()
form = request.args
username = self.formValue(form, 'u')
password = self.formValue(form, 'p')
if not username :
session.validated="no"
else:
realpass = config.WWW_USERS.get(username)
if password == realpass:
session.validated="yes"
else:
session.validated="no"
-------------------------------------------------------
This sf.net email is sponsored by:ThinkGeek
Welcome to geek heaven.
http://thinkgeek.com/sf
_______________________________________________
Freevo-cvslog mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/freevo-cvslog