<?xml version="1.0" encoding="UTF-8"?>
<commit>
  <added type="array">
    <added>
      <filename>bin/hookah</filename>
    </added>
    <added>
      <filename>hookah/styles.css</filename>
    </added>
    <added>
      <filename>setup.py</filename>
    </added>
  </added>
  <modified type="array">
    <modified>
      <diff>@@ -1,4 +1,5 @@
-from twisted.web import client, error, http
+from twisted.python.util import sibpath
+from twisted.web import client, error, http, static
 from twisted.web.resource import Resource
 
 import dispatch, pubsub
@@ -16,8 +17,47 @@ class HookahResource(Resource):
         
         if path in ['favicon.ico', 'robots.txt']:
             return
+
+        return self.index()
+
+    def index(self):
         
-        return &quot;TODO: Show some documentation&quot;
+        def subscriberRow(url):
+            return '&lt;div&gt;&lt;a href=&quot;%s&quot;&gt;%s&lt;/a&gt;&lt;/div&gt;' % (url, url)
+
+        subscriptionList = &quot;\n&quot;.join(
+            '&lt;dt&gt;Topic: &lt;span class=&quot;topic&quot;&gt;%s&lt;/span&gt;&lt;/dt&gt;&lt;dd&gt;%s&lt;/dd&gt;' % (
+                topic, '\n'.join(map(subscriberRow, subscribers)))
+            for topic, subscribers in
+            sorted(pubsub.subscriptions.items()))
+        
+        return &quot;&quot;&quot;&lt;html&gt;
+                    &lt;head&gt;
+		      &lt;title&gt;hookah admin&lt;/title&gt;
+		      &lt;link rel=&quot;stylesheet&quot; href=&quot;style.css&quot;/&gt;
+		    &lt;/head&gt;
+		    &lt;body&gt;
+		      &lt;h1&gt;hookah admin&lt;/h1&gt;
+                      &lt;h2&gt;Create subscription&lt;/h2&gt;
+                      &lt;form method=&quot;post&quot; action=&quot;subscribe&quot;&gt;
+                        &lt;div&gt;Callback URL (POST target):
+                             &lt;input type=&quot;text&quot; name=&quot;hub.callback&quot;/&gt;&lt;/div&gt;
+                        &lt;div&gt;Topic: &lt;input type=&quot;text&quot; name=&quot;hub.topic&quot;/&gt;&lt;/div&gt;
+                        &lt;div&gt;Mode: &lt;select name=&quot;hub.mode&quot;&gt;
+                          &lt;option value=&quot;subscribe&quot;&gt;subscribe&lt;/option&gt;
+                          &lt;option value=&quot;unsubscribe&quot;&gt;unsubscribe&lt;/option&gt;
+                          &lt;/select&gt;&lt;/div&gt;
+                        &lt;div&gt;Verify: &lt;select name=&quot;hub.verify&quot;&gt;
+                          &lt;option value=&quot;sync&quot;&gt;sync&lt;/option&gt;
+                          &lt;option value=&quot;async&quot;&gt;async&lt;/option&gt;
+                          &lt;/select&gt;&lt;/div&gt;
+                        &lt;div&gt;&lt;input type=&quot;submit&quot; value=&quot;Submit&quot;/&gt;&lt;/div&gt;
+                      &lt;/form&gt;
+		      &lt;h2&gt;Current subscriptions&lt;/h2&gt;
+		      &lt;dl&gt;%(subscriptionList)s&lt;/dl&gt;
+		    &lt;/body&gt;
+                  &lt;/html&gt;&quot;&quot;&quot; % vars()
+
     
     @classmethod
     def setup(cls):
@@ -30,4 +70,5 @@ class HookahResource(Resource):
         r.putChild('dispatch', dispatch.DispatchResource())
         r.putChild('subscribe', pubsub.SubscribeResource())
         r.putChild('publish', pubsub.PublishResource())
+        r.putChild('style.css', static.File(sibpath(__file__, 'styles.css')))
         return r</diff>
      <filename>hookah/web.py</filename>
    </modified>
  </modified>
  <removed type="array"/>
  <parents type="array">
    <parent>
      <id>2d969983f2c58200be7ebd77d082bead5c401a6d</id>
    </parent>
  </parents>
  <author>
    <name>drewp</name>
    <email>drewp@plus.(none)</email>
  </author>
  <url>http://github.com/progrium/hookah/commit/82140f80cbbc85d19fc673b7532830c73d937516</url>
  <id>82140f80cbbc85d19fc673b7532830c73d937516</id>
  <committed-date>2009-07-11T17:42:30-07:00</committed-date>
  <authored-date>2009-07-11T17:42:30-07:00</authored-date>
  <message>initial setup.py, bin/hookah (not using twistd at all), and some actual GUI at the / resource</message>
  <tree>65d3988525fbc212046008e4ad437c5ca73338bf</tree>
  <committer>
    <name>drewp</name>
    <email>drewp@plus.(none)</email>
  </committer>
</commit>
