summaryrefslogtreecommitdiffstats
path: root/cnucnu/package_list.py
diff options
context:
space:
mode:
authorVille Skyttä <ville.skytta@iki.fi>2010-01-06 00:05:06 +0200
committerTill Maas <opensource@till.name>2010-02-02 23:48:16 +0100
commit58aea331e32f6214dcf72e716ebfd21c244ae26a (patch)
tree84faac113553c76906e195736f22bf35c39bd25c /cnucnu/package_list.py
parent11bf5bac9dd16b4a592bc2ab0fe336e2e77158ed (diff)
downloadcnucnu-58aea331e32f6214dcf72e716ebfd21c244ae26a.tar.gz
cnucnu-58aea331e32f6214dcf72e716ebfd21c244ae26a.tar.xz
cnucnu-58aea331e32f6214dcf72e716ebfd21c244ae26a.zip
Allow default regex and URL name overrides.
For example DEFAULT:othername, SF-DEFAULT:othername.
Diffstat (limited to 'cnucnu/package_list.py')
-rwxr-xr-xcnucnu/package_list.py20
1 files changed, 17 insertions, 3 deletions
diff --git a/cnucnu/package_list.py b/cnucnu/package_list.py
index 4c447f3..d3e2fae 100755
--- a/cnucnu/package_list.py
+++ b/cnucnu/package_list.py
@@ -119,8 +119,15 @@ class Package(object):
def set_regex(self, regex):
self.raw_regex = regex
+ name = self.name
+ # allow name override with e.g. DEFAULT:othername
+ if regex:
+ res = re.match(r"^((?:FM-)?DEFAULT)(?::(.+))$", regex)
+ if res:
+ regex = res.group(1)
+ name = res.group(2)
if regex == "DEFAULT":
- regex = r"\b%s[-_]([^-_\s]+?)\.(?:tar|t[bglx]z|tbz2|zip)\b" % re.escape(self.name)
+ regex = r"\b%s[-_]([^-_\s]+?)\.(?:tar|t[bglx]z|tbz2|zip)\b" % re.escape(name)
elif regex == "FM-DEFAULT":
regex = '<a href="/projects/[^/]*/releases/[0-9]*">([^<]*)</a>'
self.__regex = regex
@@ -131,10 +138,17 @@ class Package(object):
def set_url(self, url):
self.raw_url = url
+ name = self.name
+ # allow name override with e.g. SF-DEFAULT:othername
+ if url:
+ res = re.match(r"^((?:SF|FM)-DEFAULT)(?::(.+))$", url)
+ if res:
+ url = res.group(1)
+ name = res.group(2)
if url == "SF-DEFAULT":
- url = "https://sourceforge.net/projects/%s/files/" % self.name
+ url = "https://sourceforge.net/projects/%s/files/" % name
elif url == "FM-DEFAULT":
- url = "http://freshmeat.net/projects/%s" % self.name
+ url = "http://freshmeat.net/projects/%s" % name
self.__url = url
self._invalidate_caches()