implement URL generation
move code for URL generation to model/urlbuilder.py add format selection to input form create output template
This commit is contained in:
parent
d86965304f
commit
f33f6c7751
7 changed files with 81 additions and 108 deletions
51
ddportfolioservice/model/ddportfolio.ini
Normal file
51
ddportfolioservice/model/ddportfolio.ini
Normal file
|
@ -0,0 +1,51 @@
|
|||
[overview]
|
||||
urls=ddpo,alladdresses
|
||||
ddpo.pattern=http://qa.debian.org/developer.php?login=%(email)s
|
||||
alladdresses.pattern=http://qa.debian.org/developer.php?login=%(name)s
|
||||
|
||||
[bugs]
|
||||
urls=received,reported,bugstats,usertags,searchall,wnpp
|
||||
received.pattern=http://bugs.debian.org/%(email)s
|
||||
reported.pattern=http://bugs.debian.org/from:%(email)s
|
||||
bugstats.pattern=http://asdfasdf.debian.net/~tar/bugstats/?%(email)s
|
||||
usertags.pattern=http://bugs.debian.org/cgi-bin/pkgreport.cgi?users=%(email)s
|
||||
searchall.pattern=http://merkel.debian.org/~don/cgi/search.cgi?phrase=%(name)s&search=search
|
||||
wnpp.pattern=http://qa.debian.org/developer.php?wnpp=%(email)s
|
||||
|
||||
[build]
|
||||
urls=buildd,igloo,svnbuildstat
|
||||
buildd.pattern=http://buildd.debian.org/pkg.cgi?maint=%(email)s
|
||||
igloo.pattern=http://oldpeople.debian.org/~igloo/status.php?email=%(email)s&thin=on
|
||||
svnbuildstat.pattern=http://svnbuildstat.debian.net/packages/list/%(email)s
|
||||
|
||||
[qa]
|
||||
urls=lintian,lintianfull,dehs
|
||||
lintian.pattern=http://lintian.debian.org/maintainer/%(email)s.html
|
||||
lintianfull.pattern=http://lintian.debian.org/full/%(email)s.html
|
||||
dehs.pattern=http://dehs.alioth.debian.org/report.php?login=%(email)s
|
||||
|
||||
[upload]
|
||||
urls=keylog
|
||||
keylog.pattern=http://merkel.debian.org/~enrico/keylog/%(gpgfp)s.html
|
||||
|
||||
[lists]
|
||||
urls=dolists,adolists,gmane
|
||||
dolists.pattern=http://lists.debian.org/cgi-bin/search?author=%(name)s&sort=date
|
||||
adolists.pattern=http://www.google.com/search?q=site%%3Alists.alioth.debian.org+%%22%(name)s%%22
|
||||
gmane.pattern=http://search.gmane.org/?email=%(name)s&group=gmane.linux.debian.*
|
||||
|
||||
[files]
|
||||
urls=people,alioth
|
||||
people.pattern=http://people.debian.org/~%(username)s/
|
||||
alioth.pattern=http://alioth.debian.org/~%(username)s/
|
||||
|
||||
[membership]
|
||||
urls=nm,db,alioth
|
||||
nm.pattern=https://nm.debian.org/nmstatus.php?email=%(email)s
|
||||
db.pattern=http://db.debian.org/search.cgi?uid=%(username)s&dosearch=Search
|
||||
alioth.pattern=http://alioth.debian.org/users/%(username)s/
|
||||
|
||||
[miscellaneous]
|
||||
urls=debtags,links
|
||||
debtags.pattern=http://debtags.alioth.debian.org/todo.html?maint=%(email)s
|
||||
links.pattern=http://www.google.com/search?hl=en&lr=&q=site%%3Adebian.org+%%22%(name)s%%22+-site%%3Anm.debian.org+-site%%3Alintian.debian.org+-site%%3Abugs.debian.org+-site%%3Alists.debian.org+-site%%3Apackages.debian.org+-site%%3Alists.alioth.debian.org+-site%%3Aftp.debian.org++-site%%3Apackages.qa.debian.org++-site%%3Aftp*.*.debian.org+-inurl%%3Adebian.org%%2Fdevel%%2Fpeople.+-inurl%%3Aindices%%2FMaintainers+-inurl%%3Adebian.org%%2Fdebian%%2Fproject++-inurl%%3A%%2Fdists%%2F&btnG=Search
|
30
ddportfolioservice/model/urlbuilder.py
Normal file
30
ddportfolioservice/model/urlbuilder.py
Normal file
|
@ -0,0 +1,30 @@
|
|||
# -*- python -*-
|
||||
# -*- coding: utf8 -*-
|
||||
|
||||
import ConfigParser
|
||||
import pkg_resources
|
||||
from urllib import quote_plus
|
||||
|
||||
my_config = ConfigParser.ConfigParser()
|
||||
my_config.readfp(pkg_resources.resource_stream(__name__, 'ddportfolio.ini'))
|
||||
|
||||
|
||||
def build_urls(fields):
|
||||
"""Build personalized URLs using the developer information in
|
||||
fields."""
|
||||
data = {}
|
||||
errors = {}
|
||||
qfields = dict([(key, quote_plus(fields[key])) for key in fields])
|
||||
for section in my_config.sections():
|
||||
if my_config.has_option(section, 'urls'):
|
||||
for url in my_config.get(section, 'urls').split(','):
|
||||
if my_config.has_option(section, url + '.pattern'):
|
||||
try:
|
||||
data[section + '.' + url] = \
|
||||
my_config.get(section, url + '.pattern',
|
||||
False, qfields)
|
||||
except Exception, e:
|
||||
errors['%s.%s.pattern' % (section, url)] = \
|
||||
[my_config.get(section, '%s.pattern' % url,
|
||||
True), str(e)]
|
||||
return {'data' : data, 'errors' : errors}
|
Loading…
Add table
Add a link
Reference in a new issue