timvideos / streaming-system

Tim Video's - Live Streaming for user groups and other events.
https://code.timvideos.us/
Apache License 2.0
131 stars 52 forks source link

Move room configuration from config.json to database #42

Open mithro opened 11 years ago

luke-john commented 10 years ago

Way back in the very early days of lca2014 planning before I'd really looked at what this system did i started mapping out a separate interface for plug/linux.conf.au that had the concept of presentations, channels and events.

Presentations

  POST /presentation
    Description
      This method is used to submit a new presentation.
    Required Parameters
      title
        string
      scheduled_start
        ISO 8601 date
      scheduled_end
        ISO 8601 date
    Optional Parameters
      description
        string
      presenter[title]
        string
      presenter[link]
        url
      auto_start
        boolean (default true)

    Example
      $ curl -i http://livestream.plug.org.au/presentation \
        -d '{ \
              "title": "PRESENTATION_TITLE", \
              "description": "PRESENTATION_DESCRIPTION", \
              "scheduled_start": "PRESENTATION_SCHEDULED_START", \
              "scheduled_end": "PRESENTATION_SCHEDULED_END", \
              "presenter": { \
                "title": "PRESENTER_NAME", \
                "link": "PRESENTER_LINK" \
              }\
            }'

  POST /presentation/:PRESENTATION_ID
    Description
      This method is used to update a Presentation
      It takes as a parameter the presentation attribute[s] to be updated.
    Valid Parameters
      title
      scheduled_start
      planner_end
      description
      presenter[title]
      presenter[link]
      auto_start
    Example
      $ curl -i -X POST http://livestream.plug.org.au/presentation/:PRESENTATION_ID?auto_start=false

  POST /presentation/:PRESENTATION_ID/start
    Description
      This method starts a Presentation.
    Example
      $ curl -i -X POST http://livestream.plug.org.au/presentation/:PRESENTATION_ID/start

  POST /presentation/:PRESENTATION_ID/end
    Description
      This method ends a Presentation.
    Example
      $ curl -i -X POST http://livestream.plug.org.au/presentation/:PRESENTATION_ID/end

Channels

  POST /channel
    Description
      This method is used to submit a new Channel.
    Required Parameters
      topic
        string
      description
        string
      irc
        url
      source
        url
    Example
      $ curl -i http://livestream.plug.org.au/channel \
        -d '{ \
              "topic": "CHANNEL_TOPIC", \
              "description": "CHANNEL_DESCRIPTION", \
              "irc": "CHANNEL_IRC", \
              "source": "CHANNEL_SOURCE" \
            }'

  POST /channel/:CHANNEL_ID
    Description
      This method is used to update a Channel.
      It takes as a parameter the channel attribute[s] to be updated.
    Valid Parameters
      title
      description
      irc
      source
    Example
      $ curl -i -X POST http://livestream.plug.org.au/channel/:CHANNEL_ID?source=NEWSOURCE

Events

  POST /event
    Description
      This method is used to submit a new Event.
    Required Parameters
      title
        string
      description
        string
      irc
        url
      scheduled_start
        ISO 8601 date
      scheduled_end
        ISO 8601 date
    Optional Parameters
      channels
        array of channels
      auto_start
        boolean (default true)
    Example
      $ curl -i http://livestream.plug.org.au/event \
        -d '{ \
              "title": "EVENT_TITLE", \
              "description": "EVENT_DESCRIPTION", \
              "irc": "EVENT_IRC", \
              "scheduled_start": "EVENT_SCHEDULED_START", \
              "scheduled_end": "EVENT_SCHEDULED_END", \
              "channels": "[\'CHANNEL_ID\']" \
            }'
  POST /event/:EVENT_ID
    Description
      This method is used to update a Event.
      It takes as a parameter the event attribute[s] to be updated.
    Valid Parameters
      title
      description
      irc
      scheduled_start
      scheduled_end
      channels
      auto_start
    Example
      $ curl -i -X POST http://livestream.plug.org.au/event/:EVENT_ID?auto_start=false

  POST /event/:EVENT_ID/start
    Description
      This method starts a Event.
    Example
      $ curl -i -X POST http://livestream.plug.org.au/event/:EVENT_ID/start

  POST /event/:EVENT_ID/end
    Description
      This method ends a Event.
    Example
      $ curl -i -X POST http://livestream.plug.org.au/event/:EVENT_ID/end
amrollah commented 10 years ago

I would like to contribute to this issue under GSoC. I've submitted my application to the system.