diff --git a/pym/euscan/handlers/berlios.py b/pym/euscan/handlers/berlios.py index bbfe6e1..11471e4 100644 --- a/pym/euscan/handlers/berlios.py +++ b/pym/euscan/handlers/berlios.py @@ -16,7 +16,14 @@ berlios_regex = r"mirror://berlios/([^/]+)/([^/]+)" def can_handle(pkg, url=None): - return url and re.search(berlios_regex, url) + if not url: + return False + + cp, ver, rev = portage.pkgsplit(pkg.cpv) + if ver not in url: + return False + + return re.search(berlios_regex, url) def scan_url(pkg, url, options): diff --git a/pym/euscan/handlers/google_code.py b/pym/euscan/handlers/google_code.py index 892064f..d6c5bd1 100644 --- a/pym/euscan/handlers/google_code.py +++ b/pym/euscan/handlers/google_code.py @@ -14,8 +14,14 @@ package_name_regex = r"http://(.+).googlecode.com/files/.+" def can_handle(pkg, url=None): - return url and re.match(package_name_regex, url) + if not url: + return False + cp, ver, rev = portage.pkgsplit(pkg.cpv) + if ver not in url: + return False + + return re.match(package_name_regex, url) def scan_url(pkg, url, options): output.einfo("Using Google Code handler") diff --git a/pym/euscan/handlers/sourceforge.py b/pym/euscan/handlers/sourceforge.py index 11563e0..0508289 100644 --- a/pym/euscan/handlers/sourceforge.py +++ b/pym/euscan/handlers/sourceforge.py @@ -12,7 +12,14 @@ PRIORITY = 90 def can_handle(pkg, url=None): - return url and "mirror://sourceforge/" in url + if not url: + return False + + cp, ver, rev = portage.pkgsplit(pkg.cpv) + if ver not in url: + return False + + return "mirror://sourceforge/" in url def scan_url(pkg, url, options):