mirror of
https://gitlab.archlinux.org/archlinux/aurweb.git
synced 2025-02-03 10:43:03 +01:00
All DB code currently uses the quickly aging mysql_* functions. These functions are strongly discouraged and may eventually be deprecated. Transition all code to utilize the PDO data access abstraction layer. PDO allows for consistent query code across multiple databases. This could potentially allow for someone to use a database other than MySQL with minimal code changes. All functions and behaviors are reproduced as faithfully as possible with PDO equivalents and some changes in code. Signed-off-by: canyonknight <canyonknight@gmail.com> Signed-off-by: Lukas Fleischer <archlinux@cryptocrack.de>
67 lines
2.4 KiB
PHP
67 lines
2.4 KiB
PHP
<?php
|
|
|
|
include_once('aur.inc.php');
|
|
|
|
function updates_table($dbh) {
|
|
$key = 'recent_updates';
|
|
if(!($newest_packages = get_cache_value($key))) {
|
|
$q = 'SELECT * FROM Packages ORDER BY ModifiedTS DESC LIMIT 10';
|
|
$result = $dbh->query($q);
|
|
|
|
$newest_packages = new ArrayObject();
|
|
while ($row = $result->fetch(PDO::FETCH_ASSOC)) {
|
|
$newest_packages->append($row);
|
|
}
|
|
set_cache_value($key, $newest_packages);
|
|
}
|
|
include('stats/updates_table.php');
|
|
}
|
|
|
|
function user_table($userid, $dbh) {
|
|
$base_q = "SELECT count(*) FROM Packages WHERE Packages.MaintainerUID = " . $userid;
|
|
|
|
$maintainer_unsupported_count = db_cache_value($base_q, $dbh,
|
|
'user_unsupported_count:' . $userid);
|
|
|
|
$q = "SELECT count(*) FROM Packages WHERE Packages.OutOfDateTS IS NOT NULL AND Packages.MaintainerUID = " . $userid;
|
|
|
|
$flagged_outdated = db_cache_value($q, $dbh,
|
|
'user_flagged_outdated:' . $userid);
|
|
|
|
# If the user is a TU calculate the number of the packages
|
|
$atype = account_from_sid($_COOKIE["AURSID"]);
|
|
|
|
include('stats/user_table.php');
|
|
}
|
|
|
|
function general_stats_table($dbh) {
|
|
# AUR statistics
|
|
$q = "SELECT count(*) FROM Packages";
|
|
$unsupported_count = db_cache_value($q, $dbh, 'unsupported_count');
|
|
|
|
$q = "SELECT count(*) FROM Packages WHERE MaintainerUID IS NULL";
|
|
$orphan_count = db_cache_value($q, $dbh, 'orphan_count');
|
|
|
|
$q = "SELECT count(*) FROM Users";
|
|
$user_count = db_cache_value($q, $dbh, 'user_count');
|
|
|
|
$q = "SELECT count(*) FROM Users,AccountTypes WHERE Users.AccountTypeID = AccountTypes.ID AND AccountTypes.AccountType = 'Trusted User'";
|
|
$tu_count = db_cache_value($q, $dbh, 'tu_count');
|
|
|
|
$targstamp = intval(strtotime("-7 days"));
|
|
$yearstamp = intval(strtotime("-1 year"));
|
|
|
|
$q = "SELECT count(*) FROM Packages WHERE Packages.ModifiedTS >= $targstamp AND Packages.ModifiedTS = Packages.SubmittedTS";
|
|
$add_count = db_cache_value($q, $dbh, 'add_count');
|
|
|
|
$q = "SELECT count(*) FROM Packages WHERE Packages.ModifiedTS >= $targstamp AND Packages.ModifiedTS != Packages.SubmittedTS";
|
|
$update_count = db_cache_value($q, $dbh, 'update_count');
|
|
|
|
$q = "SELECT count(*) FROM Packages WHERE Packages.ModifiedTS >= $yearstamp AND Packages.ModifiedTS != Packages.SubmittedTS";
|
|
$update_year_count = db_cache_value($q, $dbh, 'update_year_count');
|
|
|
|
$q = "SELECT count(*) FROM Packages WHERE Packages.ModifiedTS = Packages.SubmittedTS";
|
|
$never_update_count = db_cache_value($q, $dbh, 'never_update_count');
|
|
|
|
include('stats/general_stats_table.php');
|
|
}
|