Skip to content

Instantly share code, notes, and snippets.

@torus
Created January 21, 2010 07:52
Show Gist options
  • Save torus/282654 to your computer and use it in GitHub Desktop.
Save torus/282654 to your computer and use it in GitHub Desktop.
Opakapaka Web API.

Opakapaka API

pull.cgi

method: GET

Query parameters:

pull.cgi?o=opakapaka&p=0
pull.cgi?p=123&q=data/data.12345.log
  • o: name of the room (optional)
  • p: latest file position (optional)
  • q: log filename (optional)

Response body example:

<res>
  <pos>507</pos>
  <file>data/opakapaka.1264296045.460.log</file>
  <content>
    <chat-entry room="opakapaka">
      <link>
       <file>data/opakapaka.1264296045.460.log</file>
       <pos>0</pos>
      </link>
      <date><posix-time>1264296160</posix-time></date>
      <from>
       <user-by-nickname><string>toru</string></user-by-nickname>
       <avatar-image>
         <string>http://www.gravatar.com/avatar/5efc507a8db7167e2db7889a5597a3cd?s=40&amp;default=identicon</string>
       </avatar-image>
      </from>
      <content>
       <string>Hi there.</string>
      </content>
    </chat-entry>
    <chat-entry room="opakapaka">
      <link><file>data/opakapaka.1264296045.460.log</file><pos>255</pos></link>
      <date><posix-time>1264296188</posix-time></date>
      <from><user-by-nickname><string>toru</string></user-by-nickname>
      <avatar-image><string>http://www.gravatar.com/avatar/5efc507a8db7167e2db7889a5597a3cd?s=40&amp;default=identicon</string></avatar-image>
      </from>
      <content><string>Hi there</string></content>
    </chat-entry>
  </content>
</res>

push.cgi

method: POST

Request body example:

<chat-entry room="opakapaka">
  <from>
    <user-by-nickname><string>toru</string></user-by-nickname>
    <avatar-image><string>http://example.com/avatar/image.jpg</string></avatar-image>
  </from>
  <content><string>Hi there.</string></content>
</chat-entry>

Data Schema

Element res

Children

  • pos
  • file
  • content

Element pos

Latest file position.

Element file

Latest log file name.

Element content

Chat content. content element can contain arbitrary number of chat-entry elements.

Children

  • chat-entry

Element chat-entry

A chat entry.

Attributes

  • room: name of the room

Children

  • from
  • content
  • date (push.cgi inserts automatically.)

Element from

Children

  • user-by-nickname
  • avatar-image (if not contained in a posted data, push.cgi inserts automatically.)

Element content

Chat content.

Children

  • string

Element string

String data container. Content must be text only.

Element date

Posted date.

Children

  • posix-time

Element posix-time

POSIX time represented by a integer.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment