Skip to content
GitLab
Projects
Groups
Snippets
/
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Sign in
Toggle navigation
Menu
Open sidebar
Marcus Andersson
aurweb
Commits
993fcb78
Commit
993fcb78
authored
Jul 01, 2004
by
eric
Browse files
still working on pkgsearch.php::do_Details
parent
ab6afc99
Changes
5
Hide whitespace changes
Inline
Side-by-side
support/schema/aur-schema.sql
View file @
993fcb78
...
...
@@ -108,7 +108,6 @@ CREATE TABLE Packages (
CategoryID
TINYINT
UNSIGNED
NOT
NULL
,
Description
CHAR
(
128
)
NOT
NULL
DEFAULT
"An Arch Package"
,
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
,
...
...
@@ -133,6 +132,24 @@ CREATE TABLE Packages (
);
-- Track which dependencies a package has
--
CREATE
TABLE
PackageDepends
(
PackageID
INTEGER
UNSIGNED
NOT
NULL
,
DepPkgID
INTEGER
UNSIGNED
NOT
NULL
,
INDEX
(
PackageID
)
);
-- Track which sources a package has
--
CREATE
TABLE
PackageSources
(
PackageID
INTEGER
UNSIGNED
NOT
NULL
,
Source
CHAR
(
255
)
NOT
NULL
DEFAULT
"/dev/null"
,
INDEX
(
PackageID
)
);
-- Track votes for packages
--
CREATE
TABLE
PackageVotes
(
...
...
support/schema/dummy-data.sql.bz2
View file @
993fcb78
No preview for this file type
support/schema/gendummydata.py
View file @
993fcb78
...
...
@@ -20,6 +20,8 @@ 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
PKG_DEPS
=
(
1
,
5
)
# min/max depends a package has
PKG_SRC
=
(
1
,
3
)
# min/max sources a package has
VOTING
=
(
0
,
.
30
)
# percentage range for package voting
RANDOM_PATHS
=
[
# random path locations for package files
"/usr/bin"
,
"/usr/lib"
,
"/etc"
,
"/etc/rc.d"
,
"/usr/share"
,
"/lib"
,
...
...
@@ -27,6 +29,10 @@ RANDOM_PATHS = [ # random path locations for package files
"/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"
]
import
random
import
time
...
...
@@ -327,6 +333,38 @@ for p in track_votes.keys():
s
=
"UPDATE Packages SET NumVotes = %d WHERE ID = %d;
\n
"
%
(
track_votes
[
p
],
p
)
out
.
write
(
s
)
# Create package dependencies and sources
#
if
DBUG
:
print
"."
;
print
"Creating statements for package depends/sources."
,
count
=
0
for
p
in
seen_pkgs
.
keys
():
num_deps
=
random
.
randrange
(
PKG_DEPS
[
0
],
PKG_DEPS
[
1
])
this_deps
=
{}
i
=
0
while
i
!=
num_deps
:
dep
=
random
.
randrange
(
0
,
len
(
seen_pkgs
))
if
not
this_deps
.
has_key
(
dep
):
s
=
"INSERT INTO PackageDepends VALUES (%d, %d);
\n
"
%
(
seen_pkgs
[
p
],
dep
)
out
.
write
(
s
)
i
+=
1
num_sources
=
random
.
randrange
(
PKG_SRC
[
0
],
PKG_SRC
[
1
])
for
i
in
range
(
num_sources
):
src_file
=
user_keys
[
random
.
randrange
(
0
,
len
(
user_keys
))]
src
=
"%s%s.%s/%s/%s-%s.tar.gz"
%
(
RANDOM_URL
[
random
.
randrange
(
0
,
len
(
RANDOM_URL
))],
p
,
RANDOM_TLDS
[
random
.
randrange
(
0
,
len
(
RANDOM_TLDS
))],
RANDOM_LOCS
[
random
.
randrange
(
0
,
len
(
RANDOM_LOCS
))],
src_file
,
genVersion
())
s
=
"INSERT INTO PackageSources VALUES (%d, '%s');
\n
"
%
(
seen_pkgs
[
p
],
src
)
out
.
write
(
s
)
if
count
%
100
==
0
:
if
DBUG
:
print
"."
,
count
+=
1
# close output file
#
out
.
write
(
"
\n
"
)
...
...
web/lib/aur.inc
View file @
993fcb78
...
...
@@ -140,6 +140,24 @@ function new_sid() {
}
# obtain the username if given their Users.ID
#
function
username_from_id
(
$id
=
""
)
{
if
(
!
$id
)
{
return
""
;
}
$dbh
=
db_connect
();
$q
=
"SELECT Username FROM Users WHERE ID = "
.
mysql_escape_string
(
$id
);
$result
=
db_query
(
$q
,
$dbh
);
if
(
!
$result
)
{
return
"None"
;
}
$row
=
mysql_fetch_row
(
$result
);
return
$row
[
0
];
}
# obtain the username if given their current SID
#
function
username_from_sid
(
$sid
=
""
)
{
...
...
web/lib/pkgfuncs.inc
View file @
993fcb78
...
...
@@ -33,10 +33,51 @@ function pkgLocations() {
return
$locs
;
}
# grab package dependencies
#
function
package_dependencies
(
$pkgid
=
0
)
{
$deps
=
array
();
if
(
$pkgid
)
{
$dbh
=
db_connect
();
$q
=
"SELECT DepPkgID, Name FROM PackageDepends, Packages "
;
$q
.
=
"WHERE PackageDepends.DepPkgID = Packages.ID "
;
$q
.
=
"AND PackageDepends.PackageID = "
.
mysql_escape_string
(
$pkgid
);
$q
.
=
" ORDER BY Name"
;
$result
=
db_query
(
$q
,
$dbh
);
if
(
!
$result
)
{
return
array
();}
while
(
$row
=
mysql_fetch_row
(
$result
))
{
$deps
[]
=
$row
;
}
}
return
$deps
;
}
# grab package sources
#
function
package_sources
(
$pkgid
=
0
)
{
$sources
=
array
();
if
(
$pkgid
)
{
$dbh
=
db_connect
();
$q
=
"SELECT Source FROM PackageSources "
;
$q
.
=
"WHERE PackageID = "
.
mysql_escape_string
(
$pkgid
);
$q
.
=
" ORDER BY Source"
;
$result
=
db_query
(
$q
,
$dbh
);
if
(
!
$result
)
{
return
array
();}
while
(
$row
=
mysql_fetch_row
(
$result
))
{
$sources
[]
=
$row
[
0
];
}
}
return
$sources
;
}
# display package details
#
function
package_details
(
$id
=
0
)
{
$q
=
"SELECT * FROM Packages WHERE ID = "
.
intval
(
$_REQUEST
[
"ID"
]);
$q
=
"SELECT *,Location,Category "
;
$q
.
=
"FROM Packages,PackageLocations,PackageCategories "
;
$q
.
=
"WHERE Packages.LocationID = PackageLocations.ID "
;
$q
.
=
"AND Packages.CategoryID = PackageCategories.ID "
;
$q
.
=
"ANd Packages.ID = "
.
intval
(
$_REQUEST
[
"ID"
]);
$dbh
=
db_connect
();
$results
=
db_query
(
$q
,
$dbh
);
if
(
!
$results
)
{
...
...
@@ -63,7 +104,64 @@ function package_details($id=0) {
print
"<center>
\n
"
;
print
"<table>
\n
"
;
print
"<tr>
\n
"
;
print
" <td colspan='2'><span class='f2'>NAME</span></td>
\n
"
;
print
" <td colspan='2'><span class='f2'>"
;
print
$row
[
"Name"
]
.
"-"
.
$row
[
"Version"
]
.
"</span></td>
\n
"
;
print
"</tr>
\n
"
;
print
"<tr>
\n
"
;
print
" <td colspan='2'><span class='f3'>"
;
print
"<a href='"
.
$row
[
"URL"
]
.
"'>"
.
$row
[
"URL"
]
.
"</a></span></td>
\n
"
;
print
"</tr>
\n
"
;
print
"<tr>
\n
"
;
print
" <td colspan='2'><span class='f3'>"
.
$row
[
"Description"
];
print
"</a></span></td>
\n
"
;
print
"</tr>
\n
"
;
print
"<tr>
\n
"
;
print
" <td colspan='2'><img src='/images/pad.gif' height='30'></td>"
;
print
"</tr>
\n
"
;
print
"<tr>
\n
"
;
print
" <td colspan='2'><span class='f3'>"
;
print
$row
[
"Location"
]
.
" :: "
.
$row
[
"Category"
]
.
"</span></td>"
;
print
"</tr>
\n
"
;
print
"<tr>
\n
"
;
print
" <td colspan='2'><span class='f3'>"
.
__
(
"Maintainer"
)
.
": "
;
if
(
isset
(
$row
[
"AURMaintainerUID"
]))
{
$maintainer
=
username_from_id
(
$row
[
"AURMaintainerUID"
]);
}
elseif
(
isset
(
$row
[
"MaintainerUID"
]))
{
$maintainer
=
username_from_id
(
$row
[
"MaintainerUID"
]);
}
else
{
$maintainer
=
"None"
;
}
print
$maintainer
.
"</span></td>"
;
print
"</tr>
\n
"
;
print
"<tr>
\n
"
;
print
" <td colspan='2'><img src='/images/pad.gif' height='30'></td>"
;
print
"</tr>
\n
"
;
print
"<tr>
\n
"
;
print
" <td valign='top' style='padding-right: 10'>"
;
print
"<table class='boxSoft' style='width: 200px'>"
;
print
"<tr><td class='boxSoftTitle'><span class='f3'>"
;
print
"Dependencies</span></td></tr>
\n
"
;
print
"<tr><td class='boxSoft'>"
;
$deps
=
package_dependencies
(
$row
[
"ID"
]);
# $deps[0] = array('id','name');
while
(
list
(
$k
,
$darr
)
=
each
(
$deps
))
{
print
$darr
[
0
]
.
" - "
.
$darr
[
1
]
.
"<br />
\n
"
;
}
print
"</td></tr>
\n
"
;
print
"</table></td>"
;
print
" <td valign='top'>"
;
print
"<table class='boxSoft' style='width: 200px'>"
;
print
"<tr><td class='boxSoftTitle'><span class='f3'>"
;
print
"Sources</span></td></tr>
\n
"
;
print
"<tr><td class='boxSoft'>"
;
$sources
=
package_sources
(
$row
[
"ID"
]);
# $sources[0] = 'src';
while
(
list
(
$k
,
$src
)
=
each
(
$sources
))
{
# TODO left off here... URLify
print
$src
.
"<br />
\n
"
;
}
print
"</td></tr>
\n
"
;
print
"</table></td>"
;
print
"</tr>
\n
"
;
print
"</table>
\n
"
;
...
...
Write
Preview
Supports
Markdown
0%
Try again
or
attach a new file
.
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment