diff options
author | Ville Skyttä <ville.skytta@iki.fi> | 2010-01-06 00:05:06 +0200 |
---|---|---|
committer | Till Maas <opensource@till.name> | 2010-02-02 23:48:16 +0100 |
commit | 58aea331e32f6214dcf72e716ebfd21c244ae26a (patch) | |
tree | 84faac113553c76906e195736f22bf35c39bd25c /cnucnu/package_list.py | |
parent | 11bf5bac9dd16b4a592bc2ab0fe336e2e77158ed (diff) | |
download | cnucnu-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-x | cnucnu/package_list.py | 20 |
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() |