update:使用商店源来显示更新,而非直接aptss

This commit is contained in:
2025-06-04 09:59:47 +08:00
parent 24f3be1373
commit 93dfdbc57c
2 changed files with 19 additions and 25 deletions

View File

@@ -14,31 +14,35 @@ QStringList aptssUpdater::getUpdateablePackages()
{ {
QStringList packageDetails; QStringList packageDetails;
QProcess process; QProcess process;
process.start("bash", QStringList() << "-c" << "aptss list --upgradable"); QString command = R"(env LANGUAGE=en_US /usr/bin/apt -c /opt/durapps/spark-store/bin/apt-fast-conf/aptss-apt.conf list --upgradable -o Dir::Etc::sourcelist="/opt/durapps/spark-store/bin/apt-fast-conf/sources.list.d/sparkstore.list" -o Dir::Etc::sourceparts="/dev/null" -o APT::Get::List-Cleanup="0" | awk 'NR>1')";
process.waitForFinished();
process.start("bash", QStringList() << "-c" << command);
if (!process.waitForFinished()) {
qWarning() << "Process failed to finish.";
return packageDetails;
}
QString output = process.readAllStandardOutput(); QString output = process.readAllStandardOutput();
QTextStream stream(&output); QStringList lines = output.split('\n', Qt::SkipEmptyParts);
// 跳过第一行(提示信息) for (const QString &line : lines) {
stream.readLine(); // 示例行格式:
// code/unknown 1.100.3-1748872405 amd64 [upgradable from: 1.100.2-1747260578]
while (!stream.atEnd()) { QRegularExpression regex(R"(([\w\-\+\.]+)/\S+\s+([^\s]+)\s+\S+\s+\[upgradable from: ([^\]]+)\])");
QString line = stream.readLine();
QRegularExpression regex(R"((\S+)/\S+\s+(\S+)\s+\S+\s+\[(.+)\])");
QRegularExpressionMatch match = regex.match(line); QRegularExpressionMatch match = regex.match(line);
if (match.hasMatch()) { if (match.hasMatch()) {
QString packageName = match.captured(1); QString name = match.captured(1);
QString updateVersion = match.captured(2); QString newVersion = match.captured(2);
QString currentVersion = match.captured(3); QString oldVersion = match.captured(3);
packageDetails << QString("%1 (%2 -> %3)").arg(packageName, currentVersion, updateVersion); packageDetails << QString("%1: %2 %3").arg(name, oldVersion, newVersion);
} }
} }
return packageDetails; return packageDetails;
} }
QStringList aptssUpdater::getPackageSizes() QStringList aptssUpdater::getPackageSizes()
{ {
QStringList packageSizes; QStringList packageSizes;

View File

@@ -5,7 +5,7 @@ MainWindow::MainWindow(QWidget *parent)
: QMainWindow(parent) : QMainWindow(parent)
, ui(new Ui::MainWindow) , ui(new Ui::MainWindow)
{ {
// checkUpdates(); checkUpdates();
ui->setupUi(this); ui->setupUi(this);
initStyle(); initStyle();
} }
@@ -105,17 +105,7 @@ void MainWindow::checkUpdates()
// 获取可更新包列表 // 获取可更新包列表
QStringList updateablePackages = updater.getUpdateablePackages(); QStringList updateablePackages = updater.getUpdateablePackages();
QStringList packageSizes = updater.getPackageSizes(); qDebug()<<updateablePackages;
QStringList appNames = updater.getDesktopAppNames();
qDebug() << "可更新包列表:";
for (int i = 0; i < updateablePackages.size(); ++i) {
QString packageInfo = updateablePackages.at(i);
QString packageSize = (i < packageSizes.size()) ? packageSizes.at(i) : "未知大小";
qDebug() << QString("%1 (%2)").arg(packageInfo, packageSize);
}
for (const QString &appName : appNames) {
qDebug() << appName;
}
} }
MainWindow::~MainWindow() MainWindow::~MainWindow()