]> Cypherpunks repositories - gostls13.git/commitdiff
godashboard: Show packages at launchpad.net
authorGustavo Niemeyer <gustavo@niemeyer.net>
Wed, 13 Apr 2011 00:34:35 +0000 (10:34 +1000)
committerAndrew Gerrand <adg@golang.org>
Wed, 13 Apr 2011 00:34:35 +0000 (10:34 +1000)
The changes were not tested for real in an App Engine environment,
so extra care should be taken.  That said, some static testing
was done with pyflakes, and a few existent problems were fixed on
the way.

R=adg
CC=golang-dev
https://golang.org/cl/4378053

misc/dashboard/godashboard/gobuild.py
misc/dashboard/godashboard/package.py

index 08d70ec645e11ca19318a44197a5006efb3932e1..1eacdb38ee7c8201859b94e67edf7cb41932af95 100644 (file)
@@ -7,7 +7,6 @@
 
 from google.appengine.api import mail
 from google.appengine.api import memcache
-from google.appengine.runtime import DeadlineExceededError
 from google.appengine.ext import db
 from google.appengine.ext import webapp
 from google.appengine.ext.webapp import template
@@ -219,7 +218,7 @@ class SetHighwater(webapp.RequestHandler):
         q = Commit.all()
         q.order('-__key__')
         recent = q.fetch(N+1)
-        for c in head:
+        for c in recent:
             if c.node == newhw:
                 found = True
                 break
@@ -384,7 +383,6 @@ class Benchmarks(webapp.RequestHandler):
         self.response.headers['Content-Type'] = 'text/plain; charset=utf-8'
         self.response.out.write('{"benchmarks": [')
 
-        first = True
         sep = "\n\t"
         for b in bs:
             self.response.out.write('%s"%s"' % (sep, b.name))
index 7570d2218a34b47ffdde1d5854bbaed04d264497..a1bca19087a8901eb5aa41742316e343936beaf6 100644 (file)
@@ -6,7 +6,6 @@
 # It must be run by App Engine.
 
 from google.appengine.api import memcache
-from google.appengine.runtime import DeadlineExceededError
 from google.appengine.ext import db
 from google.appengine.ext import webapp
 from google.appengine.ext.webapp import template
@@ -14,15 +13,10 @@ from google.appengine.ext.webapp.util import run_wsgi_app
 from google.appengine.api import users
 from google.appengine.api import mail
 from google.appengine.api import urlfetch
-import binascii
 import datetime
-import hashlib
-import hmac
 import logging
 import os
 import re
-import struct
-import time
 import urllib2
 import sets
 
@@ -52,6 +46,8 @@ class Project(db.Model):
 re_bitbucket = re.compile(r'^bitbucket\.org/[a-z0-9A-Z_.\-]+/[a-z0-9A-Z_.\-]+$')
 re_googlecode = re.compile(r'^[a-z0-9\-]+\.googlecode\.com/(svn|hg)$')
 re_github = re.compile(r'^github\.com/[a-z0-9A-Z_.\-]+/[a-z0-9A-Z_.\-]+$')
+re_launchpad = re.compile(r'^launchpad\.net/([a-z0-9A-Z_.\-]+(/[a-z0-9A-Z_.\-]+)?|~[a-z0-9A-Z_.\-]+/(\+junk|[a-z0-9A-Z_.\-]+)/[a-z0-9A-Z_.\-]+)(/[a-z0-9A-Z_.\-/]+)?$')
+
 
 def vc_to_web(path):
     if re_bitbucket.match(path):
@@ -65,6 +61,8 @@ def vc_to_web(path):
     elif re_googlecode.match(path):
         check_url = 'http://'+path
         web = 'http://code.google.com/p/' + path[:path.index('.')]
+    elif re_launchpad.match(path):
+        check_url = web = 'https://'+path
     else:
         return False, False
     return web, check_url
@@ -72,7 +70,8 @@ def vc_to_web(path):
 re_bitbucket_web = re.compile(r'bitbucket\.org/([a-z0-9A-Z_.\-]+)/([a-z0-9A-Z_.\-]+)')
 re_googlecode_web = re.compile(r'code.google.com/p/([a-z0-9\-]+)')
 re_github_web = re.compile(r'github\.com/([a-z0-9A-Z_.\-]+)/([a-z0-9A-Z_.\-]+)')
-re_striphttp = re.compile(r'http://(www\.)?')
+re_launchpad_web = re.compile(r'launchpad\.net/([a-z0-9A-Z_.\-]+(/[a-z0-9A-Z_.\-]+)?|~[a-z0-9A-Z_.\-]+/(\+junk|[a-z0-9A-Z_.\-]+)/[a-z0-9A-Z_.\-]+)(/[a-z0-9A-Z_.\-/]+)?')
+re_striphttp = re.compile(r'https?://(www\.)?')
 
 def web_to_vc(url):
     url = re_striphttp.sub('', url)
@@ -93,6 +92,9 @@ def web_to_vc(url):
                 vcs = 'hg'
         except: pass
         return path + vcs
+    m = re_launchpad_web.match(url)
+    if m:
+        return m.group(0)
     return False
 
 MaxPathLength = 100
@@ -136,7 +138,7 @@ class PackagePage(webapp.RequestHandler):
                 sep = ','
             s += '\n]}\n'
             json = s
-            memcache.set('view-package-json', json, time=CacheTimeoout)
+            memcache.set('view-package-json', json, time=CacheTimeout)
         self.response.out.write(json)
 
     def can_get_url(self, url):
@@ -150,7 +152,8 @@ class PackagePage(webapp.RequestHandler):
     def is_valid_package_path(self, path):
         return (re_bitbucket.match(path) or
             re_googlecode.match(path) or
-            re_github.match(path))
+            re_github.match(path) or
+            re_launchpad.match(path))
 
     def record_pkg(self, path):
         # sanity check string