re-working pkgsearch, NumVotes add to Packages table

This commit is contained in:
eric 2004-06-28 19:37:02 +00:00
parent efcca46f26
commit 4b80bc34ff
7 changed files with 216 additions and 112 deletions

View file

@ -110,6 +110,7 @@ CREATE TABLE Packages (
URL CHAR(255) NOT NULL DEFAULT "http://www.archlinux.org",
Source CHAR(255) NOT NULL DEFAULT "/dev/null",
LocationID TINYINT UNSIGNED NOT NULL,
NumVotes INTEGER UNSIGNED NOT NULL DEFAULT 0,
OutOfDate TINYINT UNSIGNED DEFAULT 0,
SubmittedTS BIGINT UNSIGNED NOT NULL,
SubmitterUID INTEGER UNSIGNED NOT NULL DEFAULT 0,
@ -119,6 +120,7 @@ CREATE TABLE Packages (
INDEX (CategoryID),
INDEX (LocationID),
INDEX (OutOfDate),
INDEX (NumVotes),
INDEX (SubmitterUID),
INDEX (MaintainerUID),
FOREIGN KEY (CategoryID) REFERENCES PackageCategories(ID) ON DELETE NO ACTION,

View file

@ -15,12 +15,12 @@ DB_USER = "aur"
DB_PASS = "aur"
USER_ID = 5 # Users.ID of first user
PKG_ID = 1 # Packages.ID of first package
MAX_USERS = 200 # how many users to 'register'
MAX_USERS = 1000 # how many users to 'register'
MAX_DEVS = .1 # what percentage of MAX_USERS are Developers
MAX_TUS = .2 # what percentage of MAX_USERS are Trusted Users
MAX_PKGS = 2500 # how many packages to load
PKG_FILES = (8, 30) # min/max number of files in a package
VOTING = (.3, .8) # percentage range for package voting
VOTING = (.1, .4) # percentage range for package voting
RANDOM_PATHS = [ # random path locations for package files
"/usr/bin", "/usr/lib", "/etc", "/etc/rc.d", "/usr/share", "/lib",
"/var/spool", "/var/log", "/usr/sbin", "/opt", "/usr/X11R6/bin",
@ -299,22 +299,32 @@ if DBUG: print "."
# Cast votes
#
track_votes = {}
if DBUG: print "Casting votes for packages.",
count = 0
for u in user_keys:
num_votes = random.randrange(len(seen_pkgs)*VOTING[0],
len(seen_pkgs)*VOTING[1])
num_votes = random.randrange(int(len(seen_pkgs)*VOTING[0]),
int(len(seen_pkgs)*VOTING[1]))
pkgvote = {}
for v in range(num_votes):
pkg = random.randrange(0, len(seen_pkgs))
if not pkgvote.has_key(pkg):
s = "INSERT INTO PackageVotes (UsersID, PackageID) VALUES (%d, %d);\n" % (seen_users[u], pkg)
pkgvote[pkg] = 1
if not track_votes.has_key(pkg):
track_votes[pkg] = 0
track_votes[pkg] += 1
out.write(s)
if count % 100 == 0:
if DBUG: print ".",
count += 1
# Update statements for package votes
#
for p in track_votes.keys():
s = "UPDATE Packages SET NumVotes = %d WHERE ID = %d;\n" % (track_votes[p], p)
out.write(s)
# close output file
#
out.write("\n")