<?xml version="1.0" encoding="UTF-8"?>
<commit>
  <added type="array"/>
  <modified type="array">
    <modified>
      <diff>@@ -1,6 +1,8 @@
 import BeautifulSoup
 import feedgenerator
 import functools
+import hashlib
+import logging
 import os
 import uuid
 import urllib
@@ -185,6 +187,14 @@ class BaseRequestHandler(webapp.RequestHandler):
         if img:
             return {&quot;url&quot;: img[&quot;src&quot;]}
         return None
+
+    def generate_sup_id(self, url=None):
+        return hashlib.md5(url or self.request.url).hexdigest()[:10]
+
+    def set_sup_id_header(self):
+        sup_id = self.generate_sup_id()
+        self.response.headers[&quot;X-SUP-ID&quot;] = \
+            &quot;http://friendfeed.com/api/public-sup.json#%s&quot; % sup_id
             
     def render_feed(self, entries):
         f = MediaRSSFeed(
@@ -205,6 +215,7 @@ class BaseRequestHandler(webapp.RequestHandler):
             )
         data = f.writeString(&quot;utf-8&quot;)
         self.response.headers[&quot;Content-Type&quot;] = &quot;application/atom+xml&quot;
+        self.set_sup_id_header()
         self.response.out.write(data)
 
     def render_json(self, entries):
@@ -241,13 +252,19 @@ class BaseRequestHandler(webapp.RequestHandler):
         self.response.out.write(template.render(path, extra_context))
 
     def ping(self, entry=None):
+        feed = &quot;http://&quot; + self.request.host + &quot;/?format=atom&quot;
         args = urllib.urlencode({
             &quot;name&quot;: TITLE,
             &quot;url&quot;: &quot;http://&quot; + self.request.host + &quot;/&quot;,
-            &quot;changesURL&quot;: &quot;http://&quot; + self.request.host + &quot;/?format=atom&quot;,
+            &quot;changesURL&quot;: feed,
         })
         response = urlfetch.fetch(&quot;http://blogsearch.google.com/ping?&quot; + args)
-        return response.status_code
+        args = urllib.urlencode({
+            &quot;url&quot;: feed,
+            &quot;supid&quot;: self.generate_sup_id(feed),
+        })
+        response = urlfetch.fetch(&quot;http://friendfeed.com/api/public-sup-ping?&quot; \
+            + args)
 
     def is_valid_xhtml(self, entry):
         args = urllib.urlencode({
@@ -315,6 +332,10 @@ class FeedRedirectHandler(BaseRequestHandler):
 
 
 class MainPageHandler(BaseRequestHandler):
+    def head(self):
+        if self.request.get(&quot;format&quot;, None) == &quot;atom&quot;:
+            self.set_sup_id_header()
+
     def get(self):
         offset = self.get_integer_argument(&quot;start&quot;, 0)
         if not offset:
@@ -428,6 +449,7 @@ application = webapp.WSGIApplication([
 ], debug=True)
 
 def main():
+    logging.getLogger().setLevel(logging.DEBUG)
     run_wsgi_app(application)
 
 if __name__ == &quot;__main__&quot;:</diff>
      <filename>main.py</filename>
    </modified>
  </modified>
  <removed type="array"/>
  <parents type="array">
    <parent>
      <id>ab6b7f34ef0daba45367985966afd8d3e44a8af7</id>
    </parent>
  </parents>
  <author>
    <name>Benjamin Golub</name>
    <email>bgolub@benjamingolub.com</email>
  </author>
  <url>http://github.com/bgolub/blog/commit/1c700dcff649efdf6d675714eb278370e04cf902</url>
  <id>1c700dcff649efdf6d675714eb278370e04cf902</id>
  <committed-date>2008-11-30T07:13:42-08:00</committed-date>
  <authored-date>2008-11-30T07:13:42-08:00</authored-date>
  <message>SUP, logging</message>
  <tree>01ba2587f051b84d1bf4c7a499bc6418a5288a79</tree>
  <committer>
    <name>Benjamin Golub</name>
    <email>bgolub@benjamingolub.com</email>
  </committer>
</commit>
