diff options
-rw-r--r-- | support/schema/aur-schema.sql | 6 | ||||
-rw-r--r-- | support/schema/dummy-data.sql.bz2 | bin | 782282 -> 1884846 bytes | |||
-rwxr-xr-x | support/schema/gendummydata.py | 38 | ||||
-rw-r--r-- | web/html/packages.php | 13 | ||||
-rw-r--r-- | web/html/pkgsubmit.php | 8 |
5 files changed, 49 insertions, 16 deletions
diff --git a/support/schema/aur-schema.sql b/support/schema/aur-schema.sql index 0b07038..c2cd08b 100644 --- a/support/schema/aur-schema.sql +++ b/support/schema/aur-schema.sql @@ -180,13 +180,13 @@ CREATE TABLE PackageContents ( FOREIGN KEY (PackageID) REFERENCES Packages(ID) ON DELETE CASCADE ); --- Record comments for users submitting packages to AUR/unsupported +-- Record comments for packages -- -CREATE TABLE PackageUploadHistory ( +CREATE TABLE PackageComments ( PackageID INTEGER UNSIGNED NOT NULL, UsersID INTEGER UNSIGNED NOT NULL, Comments TEXT NOT NULl DEFAULT '', - UploadTS BIGINT UNSIGNED NOT NULL DEFAULT 0, + CommentTS BIGINT UNSIGNED NOT NULL DEFAULT 0, INDEX (UsersID), INDEX (PackageID), FOREIGN KEY (UsersID) REFERENCES Users(ID) ON DELETE CASCADE, diff --git a/support/schema/dummy-data.sql.bz2 b/support/schema/dummy-data.sql.bz2 Binary files differindex adace13..cf1c87a 100644 --- a/support/schema/dummy-data.sql.bz2 +++ b/support/schema/dummy-data.sql.bz2 diff --git a/support/schema/gendummydata.py b/support/schema/gendummydata.py index 02299b5..fd82bea 100755 --- a/support/schema/gendummydata.py +++ b/support/schema/gendummydata.py @@ -1,4 +1,7 @@ #!/usr/bin/python +""" +usage: gendummydata.py outputfilename.sql +""" # # This script seeds the AUR database with dummy data for # use during development/testing. It uses random entries @@ -22,16 +25,25 @@ MAX_PKGS = 2500 # how many packages to load PKG_FILES = (8, 30) # min/max number of files in a package PKG_DEPS = (1, 5) # min/max depends a package has PKG_SRC = (1, 3) # min/max sources a package has +PKG_CMNTS = (1, 5) # min/max number of comments a package has VOTING = (0, .30) # percentage range for package voting -RANDOM_PATHS = [ # random path locations for package files +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", "/usr/X11R6/lib", "/usr/libexec", "/usr/man/man1", "/usr/man/man3", "/usr/man/man5", "/usr/X11R6/man/man1", "/etc/profile.d" -] -RANDOM_TLDS = ["edu", "com", "org", "net", "tw", "ru", "pl", "de", "es"] -RANDOM_URL = ["http://www.", "ftp://ftp.", "http://", "ftp://"] -RANDOM_LOCS = ["pub", "release", "files", "downloads", "src"] +) +RANDOM_TLDS = ("edu", "com", "org", "net", "tw", "ru", "pl", "de", "es") +RANDOM_URL = ("http://www.", "ftp://ftp.", "http://", "ftp://") +RANDOM_LOCS = ("pub", "release", "files", "downloads", "src") +FORTUNE_FILES = ("computers", "fortunes", "literature", "science", + "songs-poems", "startrek", "wisdom", "work", "buffy", "calvin", + "futurama", "jargon", "matrix", "starwars", "tao", "chalkboard", + "dune", "dune-messiah", "children-of-dune", "god-emperor", "definitions", + "drugs", "education", "food", "humorists", "kids", "law", "news", + "people", "pets", "politics", "platitudes", "zippy", "riddles" +) +FORTUNE_CMD = "/usr/bin/fortune -l " + " ".join(FORTUNE_FILES) import random @@ -39,6 +51,8 @@ import time import os import sys import cStringIO +import commands + if len(sys.argv) != 2: sys.stderr.write("Missing output filename argument"); @@ -71,6 +85,8 @@ except: sys.stderr.write("Could not connect to database\n"); raise SystemExit +esc = db.escape_string + # track what users/package names have been used # @@ -226,6 +242,7 @@ if DBUG: if DBUG: print "Creating SQL statements for packages.", count = 0 for p in seen_pkgs.keys(): + NOW = int(time.time()) if count % 2 == 0: muid = developers[random.randrange(0,len(developers))] else: @@ -240,12 +257,21 @@ for p in seen_pkgs.keys(): uuid = genUID() # the submitter/user s = "INSERT INTO Packages (ID, Name, Version, CategoryID, LocationID, SubmittedTS, SubmitterUID, MaintainerUID, AURMaintainerUID) VALUES (%d, '%s', '%s', %d, %d, %d, %d, %d, %d);\n" % (seen_pkgs[p], p, genVersion(location_id), - genCategory(), location_id, long(time.time()), uuid, uuid, muid) + genCategory(), location_id, NOW, uuid, uuid, muid) out.write(s) if count % 100 == 0: if DBUG: print ".", count += 1 + # create random comments for this package + # + num_comments = random.randrange(PKG_CMNTS[0], PKG_CMNTS[1]) + for i in range(0, num_comments): + fortune = esc(commands.getoutput(FORTUNE_CMD).replace("'","").replace("\n"," ")) + now = NOW + random.randrange(400, 86400*3) + s = "INSERT INTO PackageComments (PackageID, UsersID, Comments, CommentTS) VALUES (%d, %d, '%s', %d);\n" % (seen_pkgs[p], uuid, fortune, now) + out.write(s) + if location_id == 1: # Unsupported - just a PKGBUILD and maybe other stuff others = random.randrange(0,3) s = "INSERT INTO PackageContents (PackageID, URLPath, FSPath, FileSize) VALUES (%d, '%s', '%s', %d);\n" % (seen_pkgs[p], "PKGBUILD", "/home/aur/incoming/%s/PKGBUILD" % p, diff --git a/web/html/packages.php b/web/html/packages.php index b2dabef..823a4ca 100644 --- a/web/html/packages.php +++ b/web/html/packages.php @@ -209,7 +209,7 @@ if (isset($_REQUEST["do_Flag"])) { } } if (!empty($ids_to_delete)) { - # TODO These are the packages that are safe to delete + # These are the packages that are safe to delete # foreach ($ids_to_delete as $id) { # 1) delete from PackageVotes @@ -228,8 +228,8 @@ if (isset($_REQUEST["do_Flag"])) { $q = "DELETE FROM PackageSources WHERE PackageID = " . $id; $result = db_query($q, $dbh); - # 5) delete from PackageUploadHistory - $q = "DELETE FROM PackageUploadHistory WHERE PackageID = " . $id; + # 5) delete from PackageComments + $q = "DELETE FROM PackageComments WHERE PackageID = " . $id; $result = db_query($q, $dbh); # 6) delete from Packages @@ -239,6 +239,7 @@ if (isset($_REQUEST["do_Flag"])) { # TODO question: Now that the package as been deleted, does # the unsupported repo need to be regenerated? # ANSWER: No, there is no actual repo for unsupported, so no worries! (PJM) + # TODO question: What about regenerating the AUR repo? (EJ) # Print the success message print "<p>\n"; @@ -355,6 +356,12 @@ if (isset($_REQUEST["do_Flag"])) { $q.= $vote_clauses; db_query($q, $dbh); + # Update the LastVoted field for this user + # + $q = "UPDATE Users SET LastVoted = UNIX_TIMESTAMP() "; + $q.= "WHERE ID = ".$uid; + db_query($q, $dbh); + print "<p>\n"; print __("Your votes have been cast for the selected packages."); print "</p>\n"; diff --git a/web/html/pkgsubmit.php b/web/html/pkgsubmit.php index ccf1df7..d679704 100644 --- a/web/html/pkgsubmit.php +++ b/web/html/pkgsubmit.php @@ -371,8 +371,8 @@ if ($_COOKIE["AURSID"]) { # add upload history # - $q = "INSERT INTO PackageUploadHistory "; - $q.= "(PackageID, UsersID, Comments, UploadTS) VALUES ("; + $q = "INSERT INTO PackageComments "; + $q.= "(PackageID, UsersID, Comments, CommentTS) VALUES ("; $q.= $pdata["ID"] . ", " . uid_from_sid($_COOKIE['AURSID']); $q.= ", '" . mysql_escape_string($_REQUEST["comments"]); $q.= "', UNIX_TIMESTAMP())"; @@ -434,8 +434,8 @@ if ($_COOKIE["AURSID"]) { # add upload history # - $q = "INSERT INTO PackageUploadHistory "; - $q.= "(PackageID, UsersID, Comments, UploadTS) VALUES ("; + $q = "INSERT INTO PackageComments "; + $q.= "(PackageID, UsersID, Comments, CommentTS) VALUES ("; $q.= $packageID . ", " . uid_from_sid($_COOKIE["AURSID"]) . ", '"; $q.= mysql_escape_string($_REQUEST["comments"]); $q.= "', UNIX_TIMESTAMP())"; |