diff --git a/pym/euscan/handlers/freecode.py b/pym/euscan/handlers/freecode.py new file mode 100644 index 0000000..ebfe852 --- /dev/null +++ b/pym/euscan/handlers/freecode.py @@ -0,0 +1,48 @@ +import urllib +import re + +import portage + +from euscan import mangling, helpers, 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'] + + output.einfo("Using FreeCode handler: " + package) + + fp = urllib.urlopen("http://freecode.com/projects/%s/releases" % package) + content = 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.urlopen("http://freecode.com/projects/%s/releases/%s" % + (package, release_id)) + content = fp.read() + download_page = re.findall(r'