コード例 #1
0
def explore(url, depth, good, bad, fn_remove, badv, dead, last_crawl):
	#print url
	pkgs = []
	info = helper.open_dir(url)
	
	if depth!=None and depth>0:
		new_depth = depth - 1
	elif depth==None:
		new_depth = None
	
	if info==None:
		return []
	for d,name,date in info:
		if last_crawl!=None and date!=None and depth<2 and date<last_crawl:
			continue
		
		if d and name not in dead and (depth==None or depth>0):
			if not name.endswith("/"):
				name += "/"
			
			pkgs += explore(url+name, new_depth, good, bad, fn_remove, badv, dead, last_crawl)
		elif not d:
			for token in fn_remove:
				if token in name:
					name = name.replace(token, "")
			rel = parsers.parse_filename(name)
			
			if rel!=None and ((good != None and rel.package in good and bad==None) or (good == None and bad != None and rel.package not in bad)) and not contains(rel.version, badv):
				rel.released = date
				#print "*",rel
				pkgs.append(rel)
			elif rel != None:
				#print rel
				pass
	return pkgs
コード例 #2
0
def get_releases(project_num, packages, bad_tokens, bad_versions, paths, last_crawl):
	rels = []
	
	files = get_files(project_num, paths, last_crawl)
	for f in files:
		if contains(f[0],bad_tokens):
			continue
		rel = parsers.parse_filename(f[0])
		
		if rel!=None and rel.package in packages and not contains(rel.version, bad_versions):
			rel.released = f[1]
			rels.append(rel)
	return rels
コード例 #3
0
ファイル: php.py プロジェクト: alerque/open-source-watershed
def get_releases(last_crawl=None):
	pkgs = []
	for version in range(4,8):
		fn = "files/helper/php%d.txt"%version
		helper.open_url(MIRROR+"/releases/index.php?serialize=1&version=%d&max=3000"%version,fn)
		f = open(fn)
		s = f.read()
		f.close()

		d = deserialize(s)
		f = flatten(d)
		if f == None: #no filenames found
			continue
		
		for date,fn in f:
			rel = parsers.parse_filename(fn)
			if rel!=None and "pl" not in rel.version:
				rel.released = date
				pkgs.append(rel)
	return pkgs
コード例 #4
0
def explore(url, depth, good, bad, fn_remove, badv, dead, last_crawl):
    pkgs = []
    print url
    info = helper.open_dir(url)

    if depth != None and depth > 0:
        new_depth = depth - 1
    elif depth == None:
        new_depth = None

    if info == None:
        return []
    for d, name, date in info:
        if last_crawl != None and date != None and depth < 2 and date < last_crawl:
            continue

        if d and name not in dead and (depth == None or depth > 0):
            if not name.endswith("/"):
                name += "/"

            pkgs += explore(url + name, new_depth, good, bad, fn_remove, badv,
                            dead, last_crawl)
        elif not d:
            for token in fn_remove:
                if token in name:
                    name = name.replace(token, "")
            rel = parsers.parse_filename(name)

            if rel != None and (
                (good != None and rel.package in good and bad == None) or
                (good == None and bad != None and rel.package
                 not in bad)) and not contains(rel.version, badv):
                rel.released = date
                #print "*",rel
                pkgs.append(rel)
            elif rel != None:
                #print rel
                pass
    return pkgs
コード例 #5
0
def get_releases(last_crawl=None):
    pkgs = []
    for version in range(4, 8):
        fn = "files/helper/php%d.txt" % version
        helper.open_url(
            MIRROR +
            "/releases/index.php?serialize=1&version=%d&max=3000" % version,
            fn)
        f = open(fn)
        s = f.read()
        f.close()

        d = deserialize(s)
        f = flatten(d)
        if f == None:  #no filenames found
            continue

        for date, fn in f:
            rel = parsers.parse_filename(fn)
            if rel != None and "pl" not in rel.version:
                rel.released = date
                pkgs.append(rel)
    return pkgs