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

Reply via email to