prev.lua 2.0 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344
  1. #!/usr/bin/env lua
  2. --[[
  3. -- Copyright (c) 2013-2016 Marcus Rohrmoser, http://purl.mro.name/recorder
  4. --
  5. -- Permission is hereby granted, free of charge, to any person obtaining a copy of this software and
  6. -- associated documentation files (the "Software"), to deal in the Software without restriction,
  7. -- including without limitation the rights to use, copy, modify, merge, publish, distribute,
  8. -- sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is
  9. -- furnished to do so, subject to the following conditions:
  10. --
  11. -- The above copyright notice and this permission notice shall be included in all copies or
  12. -- substantial portions of the Software.
  13. --
  14. -- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT
  15. -- NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
  16. -- NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES
  17. -- OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
  18. -- CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
  19. --
  20. -- MIT License http://opensource.org/licenses/MIT
  21. ]]
  22. -- ensure Recorder.lua (next to this file) is found:
  23. package.path = arg[0]:gsub('/[^/]+/?$', '') .. '/?.lua;' .. package.path
  24. require('Recorder')
  25. Recorder.chdir2app_root( arg[0] )
  26. if 'GET' ~= os.getenv('REQUEST_METHOD') then http_400_bad_request('need GET.') end
  27. -- if 'referer' ~= value then http_400_bad_request('bad value') end
  28. local bc_xml = os.getenv('HTTP_REFERER')
  29. if not bc_xml then http_400_bad_request('Odd, no broadcast (HTTP_REFERER) set.') end
  30. local bc = Broadcast.from_file( bc_xml:unescape_url() )
  31. if not bc then http_400_bad_request('No usable broadcast (HTTP_REFERER) set: \'', bc_xml, '\'') end
  32. local sib,msg = bc:prev_sibling()
  33. if sib then
  34. http_303_see_other('../../../../../stations/' .. sib.id:escape_url() .. '')
  35. else
  36. http_303_see_other('../../../../../stations/' .. bc.id:escape_url() .. '')
  37. end