# Copyright 2011 Corentin Chary # Copyright 2020-2023 src_prepare group # Distributed under the terms of the GNU General Public License v2 import re import urllib.error import urllib.parse import urllib.request import portage from euscan import helpers, mangling, output HANDLER_NAME = "freecode" CONFIDENCE = 100 PRIORITY = 90 def can_handle(pkg, url=None): return False def scan_pkg(pkg, options): cp, ver, rev = portage.pkgsplit(pkg.cpv) package = options["data"].strip() output.einfo("Using FreeCode handler: " + package) fp = urllib.request.urlopen("http://freecode.com/projects/%s/releases" % package) content = str(fp.read()) result = re.findall( r'([^<]+)' % package, content ) ret = [] for release_id, up_pv in result: pv = mangling.mangle_version(up_pv, options) if helpers.version_filtered(cp, ver, pv): continue fp = urllib.request.urlopen( f"http://freecode.com/projects/{package}/releases/{release_id}" ) content = str(fp.read()) download_page = re.findall(r'