Changeset 24

Show
Ignore:
Timestamp:
08/12/10 10:23:43 (4 years ago)
Author:
clauz
Message:

slot type checking on reservation, livemount config parameter, notimplemented json response

Location:
trunk
Files:
7 modified

Legend:

Unmodified
Added
Removed
  • trunk/JsonAPI.txt

    r18 r24  
    608608 
    609609{ 
    610     "response": ("ok" | "notallowed" | "dontexists" | "alreadyexists" | "servererror" | "error" | "requesterror"), 
    611     "responsen": (0 | 101 | 201 | 202 | 301 | 401 | 501), 
     610    "response": ("ok" | "notallowed" | "dontexists" | "alreadyexists" | "servererror" | "error" | "requesterror", "notimplemented"), 
     611    "responsen": (0 | 101 | 201 | 202 | 301 | 401 | 501 | 601), 
    612612    "requested": <the requested action>, 
    613613    "warning": <warning message(s) or null>, 
  • trunk/radiomate/config.py

    r23 r24  
    3737TAKEOVERMOUNTURL = "http://%s:%d/takeover.mp3" % (ICECASTSERVER, ICECASTPORT) 
    3838 
    39 # The port used for incoming live streams 
     39# The mount and port used for incoming live streams 
    4040LIVESTREAMPORT = 8005 
     41LIVESTREAMMOUNT = "live.mp3" 
    4142 
    4243# The port used internally on the loopback address to communicate between jukeslot istances.  
  • trunk/radiomate/jsonif.py

    r18 r24  
    2424from mate import * 
    2525from dao import * 
     26from jukeslots.all import * 
    2627 
    2728 
     
    3334RESPONSE_REQERROR = 401 
    3435RESPONSE_ERROR = 501 
     36RESPONSE_NOTIMPLEMENTED = 601 
    3537 
    3638ERRORDICT = { 
     
    4143                RESPONSE_SERVERERROR: "servererror", 
    4244                RESPONSE_REQERROR: "requesterror", 
    43                 RESPONSE_ERROR: "error" 
     45                RESPONSE_ERROR: "error", 
     46                RESPONSE_NOTIMPLEMENTED: "notimplemented" 
    4447} 
    4548 
     
    867870                except Exception, e: 
    868871                        return JsonResponse(RESPONSE_REQERROR, str(e), rd) 
     872                         
     873                try: 
     874                        # check the slot type 
     875                        jukeslotclass = JUKESLOTTYPEDICT[t.slottype] 
     876                        tj = jukeslotclass(timeslot=t, mainpassword="") 
     877                        tj.liquidsoapcode() 
     878                except: 
     879                        return JsonResponse(RESPONSE_REQERROR, "Slot type not supported or wrong slot parameters") 
    869880 
    870881                try: 
     
    919930                        t = timeslotdao.getById(id) 
    920931                        t.dictupdate(req['timeslot']) 
     932 
     933                        try: 
     934                                # check the slot type 
     935                                jukeslotclass = JUKESLOTTYPEDICT[t.slottype] 
     936                                tj = jukeslotclass(timeslot=t, mainpassword="") 
     937                                tj.liquidsoapcode() 
     938                        except: 
     939                                return JsonResponse(RESPONSE_REQERROR, "Slot type not supported or wrong slot parameters") 
     940 
    921941                        newid = timeslotdao.update(t) 
    922942                        if newid != id: 
     
    9851005 
    9861006        def createtestslot(self, requser, req): 
    987                 pass 
     1007                return JsonResponse(RESPONSE_NOTIMPLEMENTED, "Not yet implemented") 
    9881008 
    9891009        def listnetcasts(self, requser, req): 
    990                 pass 
     1010                return JsonResponse(RESPONSE_NOTIMPLEMENTED, "Not yet implemented") 
    9911011 
    9921012 
  • trunk/radiomate/jukebox.py

    r23 r24  
    8888                 
    8989                # spawn a new process 
    90                 self.currentjukeslot = jukeslotclass(self.currenttimeslot, mainpassword=self.getPassword()) 
     90                self.currentjukeslot = jukeslotclass(timeslot=self.currenttimeslot, mainpassword=self.getPassword()) 
    9191 
    9292                self.currentjukeslot.deathtime = time.time() + self.currentjukeslot.duration*60 
  • trunk/radiomate/jukeslots/base.py

    r23 r24  
    5151                                stdin=PIPE, stdout=None, stderr=STDOUT) 
    5252 
    53                 time.sleep(1) 
    5453                self.logger = logging.getLogger("radiomate.jukebox") 
    5554                logging.basicConfig(filename=config.LOGFILENAME, level=config.LOGGINGLEVEL) 
     
    8685                        raise JukeSlotException("liquidsoap instance not running (exitcode %d)" % r) 
    8786 
     87                time.sleep(1) 
    8888                self.stdin.write(liq) 
    8989                self.stdin.close() 
  • trunk/radiomate/jukeslots/simplelive.py

    r23 r24  
    3939                transfunction = fun(a,b) -> sequence([fade.final(a, type="sin"), blank(duration=1.), fade.initial(b, type="sin")]) 
    4040 
    41                 livestream = input.harbor(password="%s", "live.mp3") 
     41                livestream = input.harbor(password="%s", "%s") 
    4242                 
    4343                fallbackplaylist = playlist(mode="normal", '%s') 
     
    6060                    description="%s", 
    6161                    radio) 
    62                 """ % (config.LIVESTREAMPORT, self.slotparams['livepassword'], self.getFallBackPlayListName(), \ 
    63                                 self.title, config.INTERNALJUKEPORT, self.mainpassword, self.title) 
     62                """ % (config.LIVESTREAMPORT, self.slotparams['livepassword'], config.LIVESTREAMMOUNT,\ 
     63                                self.getFallBackPlayListName(), self.title, config.INTERNALJUKEPORT,\ 
     64                                self.mainpassword, self.title) 
    6465                return liq 
    6566 
  • trunk/tests/jsontest.py

    r23 r24  
    657657                    "description": "Some Test Tracks Transmission", 
    658658                    "fallbackplaylist": %d, 
    659                     "slottype": "dummy", 
     659                    "slottype": "simplelive", 
    660660                    "beginningtime": { 
    661661                        "year": 2010, 
     
    667667                    "duration": 60, 
    668668                    "slotparams": { 
    669                         "par1": 1, 
    670                         "par2": 2 
     669                        "livepassword": "buuuu" 
    671670                    }, 
    672671                    "comment": "Bad Music Show",