mirror of
https://gitee.com/spark-store-project/spark-store
synced 2026-03-25 23:09:44 +08:00
update:使用商店源来显示更新,而非直接aptss
This commit is contained in:
@@ -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;
|
||||||
|
|||||||
@@ -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()
|
||||||
|
|||||||
Reference in New Issue
Block a user