mirror of
https://gitee.com/spark-store-project/spark-store
synced 2025-07-08 14:45:58 +08:00
commit
506ead11f9
14
README.zh.md
14
README.zh.md
@ -1,11 +1,7 @@
|
|||||||
# 星火应用商店
|
# 星火应用商店
|
||||||
[](https://gitee.com/spark-store-project/spark-store/stargazers) [](https://gitee.com/spark-store-project/spark-store/members)
|
[](https://gitee.com/spark-store-project/spark-store/stargazers) [](https://gitee.com/spark-store-project/spark-store/members)
|
||||||
|
|
||||||
https://gitee.com/spark-store-project/spark-store/
|
|
||||||
|
|
||||||
https://gitcode.com/spark-store-project/spark-store/
|
|
||||||
|
|
||||||
https://github.com/spark-store-project/spark-store/
|
|
||||||
|
|
||||||
## 简介
|
## 简介
|
||||||
|
|
||||||
@ -36,7 +32,7 @@ Linux 应用的数量相对有限,Wine 软件的可获得性也颇为困难。
|
|||||||
|
|
||||||
您可以通过以下链接,实时跟踪我们的Issue处理状态:[Gitee Issue看板](https://gitee.com/spark-store-project/spark-store/board)。
|
您可以通过以下链接,实时跟踪我们的Issue处理状态:[Gitee Issue看板](https://gitee.com/spark-store-project/spark-store/board)。
|
||||||
|
|
||||||
若您有软件包想要提交,敬请 [点击此处进行投稿](https://spark-store-project.gitee.io/spark-wiki/#/Submit/Submit)。
|
若您有软件包想要提交,敬请 [点击此处进行投稿](https://wiki.spark-app.store/#/Submit/Submit)。
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@ -88,7 +84,7 @@ Linux 应用的数量相对有限,Wine 软件的可获得性也颇为困难。
|
|||||||
> appstore://deepin-home-appstore-client?app_detail_info/spark-store
|
> appstore://deepin-home-appstore-client?app_detail_info/spark-store
|
||||||
|
|
||||||
|
|
||||||
若要使用最新版本,请访问[星火应用商店的Release页面](https://gitee.com/spark-store-project/spark-store/releases)或[从Gitcode下载](https://gitcode.com/spark-store-project/spark-store/releases)并下载适用于Deepin的最新版本。安装后即可使用。
|
若要使用最新版本,请访问[星火应用商店的Release页面](https://gitee.com/spark-store-project/spark-store/releases)并下载适用于Deepin的最新版本。安装后即可使用。
|
||||||
|
|
||||||
假设您下载到用户目录下的 Downloads 文件夹, 我们推荐您使用 APT 工具安装:
|
假设您下载到用户目录下的 Downloads 文件夹, 我们推荐您使用 APT 工具安装:
|
||||||
|
|
||||||
@ -109,7 +105,7 @@ Linux 应用的数量相对有限,Wine 软件的可获得性也颇为困难。
|
|||||||
|
|
||||||
2. **下载并安装**
|
2. **下载并安装**
|
||||||
|
|
||||||
请访问[星火应用商店的Release页面](https://gitee.com/spark-store-project/spark-store/releases)或[从Gitcode下载](https://gitcode.com/spark-store-project/spark-store/releases),下载和您电脑相同架构的安装包并安装。
|
请访问[星火应用商店的Release页面](https://gitee.com/spark-store-project/spark-store/releases),下载和您电脑相同架构的安装包并安装。
|
||||||
|
|
||||||
假设您下载到用户目录下的 Downloads 文件夹, 我们推荐您使用 APT 工具安装:
|
假设您下载到用户目录下的 Downloads 文件夹, 我们推荐您使用 APT 工具安装:
|
||||||
|
|
||||||
@ -124,7 +120,7 @@ Linux 应用的数量相对有限,Wine 软件的可获得性也颇为困难。
|
|||||||
|
|
||||||
2. **下载并安装**
|
2. **下载并安装**
|
||||||
|
|
||||||
请访问[星火应用商店的Release页面](https://gitee.com/spark-store-project/spark-store/releases)或[从Gitcode下载](https://gitcode.com/spark-store-project/spark-store/releases),下载和您电脑相同架构的安装包并安装。
|
请访问[星火应用商店的Release页面](https://gitee.com/spark-store-project/spark-store/releases),下载和您电脑相同架构的安装包并安装。
|
||||||
|
|
||||||
假设您下载到用户目录下的 Downloads 文件夹, 我们推荐您使用 APT 工具安装:
|
假设您下载到用户目录下的 Downloads 文件夹, 我们推荐您使用 APT 工具安装:
|
||||||
|
|
||||||
@ -144,7 +140,7 @@ Linux 应用的数量相对有限,Wine 软件的可获得性也颇为困难。
|
|||||||
|
|
||||||
2. **下载并安装**
|
2. **下载并安装**
|
||||||
|
|
||||||
请访问[星火应用商店的Release页面](https://gitee.com/spark-store-project/spark-store/releases)或[从Gitcode下载](https://gitcode.com/spark-store-project/spark-store/releases)并下载,安装后即可使用。
|
请访问[星火应用商店的Release页面](https://gitee.com/spark-store-project/spark-store/releases)并下载,安装后即可使用。
|
||||||
|
|
||||||
|
|
||||||
#### 对于 Debian 12+ 用户
|
#### 对于 Debian 12+ 用户
|
||||||
|
10
debian/changelog
vendored
10
debian/changelog
vendored
@ -1,3 +1,13 @@
|
|||||||
|
|
||||||
|
spark-store (4.3) stable; urgency=medium
|
||||||
|
|
||||||
|
* 修复客户端不支持301跳转的问题
|
||||||
|
* 修复UOS下错误地提示开发者模式未启动
|
||||||
|
* 现在会记住上次的窗口大小
|
||||||
|
* 删除无用依赖,修复Debian 13依赖问题
|
||||||
|
|
||||||
|
|
||||||
|
-- shenmo <shenmo@spark-app.store> Sun, 5 Mar 2022 11:45:14 +0800
|
||||||
spark-store (4.2.13) stable; urgency=medium
|
spark-store (4.2.13) stable; urgency=medium
|
||||||
|
|
||||||
* 未经测试文案修改
|
* 未经测试文案修改
|
||||||
|
34
debian/control
vendored
34
debian/control
vendored
@ -7,44 +7,26 @@ Build-Depends:
|
|||||||
pkg-config,
|
pkg-config,
|
||||||
qtchooser (>= 55-gc9562a1-1~) | qt5-default,
|
qtchooser (>= 55-gc9562a1-1~) | qt5-default,
|
||||||
qtbase5-dev,
|
qtbase5-dev,
|
||||||
libqt5core5a,
|
|
||||||
libqt5gui5,
|
|
||||||
libqt5widgets5,
|
|
||||||
libqt5network5,
|
|
||||||
libqt5concurrent5,
|
|
||||||
libdtkcore-dev(>=5.0),
|
|
||||||
libdtkgui-dev(>=5.0),
|
|
||||||
libdtkwidget-dev(>=5.0),
|
|
||||||
libqt5svg5-dev,
|
libqt5svg5-dev,
|
||||||
qttools5-private-dev,
|
qttools5-dev-tools,
|
||||||
qtwebengine5-dev,
|
qtwebengine5-dev,
|
||||||
qtwayland5,
|
libdtkcore-dev (>= 5.0),
|
||||||
qtwayland5-dev-tools,
|
libdtkgui-dev (>= 5.0),
|
||||||
gcc,
|
libdtkwidget-dev (>= 5.0)
|
||||||
g++
|
Standards-Version: 4.1.7
|
||||||
Standards-Version: 4.0.0
|
|
||||||
Homepage: https://www.spark-app.store/
|
Homepage: https://www.spark-app.store/
|
||||||
|
|
||||||
Package: spark-store
|
Package: spark-store
|
||||||
Architecture: any
|
Architecture: any
|
||||||
Provides: spark-store-console-in-container
|
Provides: spark-store-console-in-container
|
||||||
Depends:${shlibs:Depends}, ${misc:Depends},
|
Depends: ${shlibs:Depends}, ${misc:Depends},
|
||||||
libqt5core5a,
|
dde-qt5integration,
|
||||||
libqt5gui5,
|
|
||||||
libqt5widgets5,
|
|
||||||
libqt5network5,
|
|
||||||
libqt5concurrent5,
|
|
||||||
qtwayland5,
|
|
||||||
libdtkcore5,
|
|
||||||
libdtkgui5,
|
|
||||||
libdtkwidget5,
|
|
||||||
curl,
|
curl,
|
||||||
openssl,
|
openssl,
|
||||||
dde-qt5integration,
|
|
||||||
aria2,
|
aria2,
|
||||||
gnupg,
|
gnupg,
|
||||||
zenity,
|
zenity,
|
||||||
policykit-1,
|
policykit-1 | pkexec,
|
||||||
libnotify-bin,
|
libnotify-bin,
|
||||||
desktop-file-utils,
|
desktop-file-utils,
|
||||||
dpkg-dev
|
dpkg-dev
|
||||||
|
@ -1 +0,0 @@
|
|||||||
deb [by-hash=force] https://d.store.deepinos.org.cn /
|
|
@ -7,8 +7,7 @@
|
|||||||
TARGET = spark-store
|
TARGET = spark-store
|
||||||
TEMPLATE = subdirs
|
TEMPLATE = subdirs
|
||||||
|
|
||||||
#CONFIG += ordered
|
CONFIG += ordered
|
||||||
CONFIG += wayland-compositor
|
|
||||||
|
|
||||||
SUBDIRS += \
|
SUBDIRS += \
|
||||||
src/spark-store.pro
|
src/spark-store.pro
|
||||||
|
@ -28,6 +28,7 @@ void SparkAPI::get(QUrl url)
|
|||||||
QNetworkRequest request;
|
QNetworkRequest request;
|
||||||
HttpRequest *httprequest = new HttpRequest;
|
HttpRequest *httprequest = new HttpRequest;
|
||||||
request.setUrl(QUrl(url.toString().replace("+", "%2B")));
|
request.setUrl(QUrl(url.toString().replace("+", "%2B")));
|
||||||
|
request.setAttribute(QNetworkRequest::FollowRedirectsAttribute, true);
|
||||||
connect(httprequest, &HttpRequest::finished, [=](QString data)
|
connect(httprequest, &HttpRequest::finished, [=](QString data)
|
||||||
{
|
{
|
||||||
QByteArray arr = data.toUtf8();
|
QByteArray arr = data.toUtf8();
|
||||||
@ -53,6 +54,7 @@ void SparkAPI::getRAW(QUrl url)
|
|||||||
QNetworkRequest request;
|
QNetworkRequest request;
|
||||||
HttpRequest *httprequest = new HttpRequest;
|
HttpRequest *httprequest = new HttpRequest;
|
||||||
request.setUrl(QUrl(url.toString().replace("+", "%2B")));
|
request.setUrl(QUrl(url.toString().replace("+", "%2B")));
|
||||||
|
request.setAttribute(QNetworkRequest::FollowRedirectsAttribute, true);
|
||||||
connect(httprequest, &HttpRequest::finished, [=](QString data)
|
connect(httprequest, &HttpRequest::finished, [=](QString data)
|
||||||
{
|
{
|
||||||
emit finishedRAW(data);
|
emit finishedRAW(data);
|
||||||
|
@ -13,7 +13,6 @@
|
|||||||
|
|
||||||
#include <DSysInfo>
|
#include <DSysInfo>
|
||||||
#include <DApplicationSettings>
|
#include <DApplicationSettings>
|
||||||
#include <DWidgetUtil>
|
|
||||||
|
|
||||||
#include <QDate>
|
#include <QDate>
|
||||||
#include <QProcessEnvironment>
|
#include <QProcessEnvironment>
|
||||||
@ -196,8 +195,6 @@ int main(int argc, char *argv[])
|
|||||||
|
|
||||||
MainWindow w;
|
MainWindow w;
|
||||||
a.setMainWindow(&w); // 设置应用程序主窗口,用于初始化关于对话框
|
a.setMainWindow(&w); // 设置应用程序主窗口,用于初始化关于对话框
|
||||||
// 让打开时界面显示在正中
|
|
||||||
Dtk::Widget::moveToCenter(&w);
|
|
||||||
|
|
||||||
if (argc > 1)
|
if (argc > 1)
|
||||||
{
|
{
|
||||||
|
@ -48,6 +48,11 @@ MainWindow::~MainWindow()
|
|||||||
delete ui;
|
delete ui;
|
||||||
|
|
||||||
downloadlistwidget->deleteLater();
|
downloadlistwidget->deleteLater();
|
||||||
|
|
||||||
|
QSettings config(QStandardPaths::writableLocation(QStandardPaths::AppConfigLocation) + "/config.ini", QSettings::IniFormat);
|
||||||
|
config.setValue("window/width", width());
|
||||||
|
config.setValue("window/height", height());
|
||||||
|
config.sync();
|
||||||
}
|
}
|
||||||
|
|
||||||
void MainWindow::initDbus()
|
void MainWindow::initDbus()
|
||||||
@ -123,6 +128,17 @@ void MainWindow::closeEvent(QCloseEvent *event)
|
|||||||
|
|
||||||
void MainWindow::initUI()
|
void MainWindow::initUI()
|
||||||
{
|
{
|
||||||
|
QSettings config(QStandardPaths::writableLocation(QStandardPaths::AppConfigLocation) + "/config.ini", QSettings::IniFormat);
|
||||||
|
QSize size;
|
||||||
|
size.rwidth() = config.value("window/width").toInt();
|
||||||
|
size.rheight() = config.value("window/height").toInt();
|
||||||
|
if (!size.isEmpty()) {
|
||||||
|
resize(size);
|
||||||
|
}
|
||||||
|
|
||||||
|
// 让打开时界面显示在正中
|
||||||
|
moveToCenter(this);
|
||||||
|
|
||||||
setWindowTitle(QObject::tr("Spark Store"));
|
setWindowTitle(QObject::tr("Spark Store"));
|
||||||
setMaskAlpha(250);
|
setMaskAlpha(250);
|
||||||
|
|
||||||
@ -495,9 +511,13 @@ void MainWindow::notify(QObject *receiver, QEvent *event)
|
|||||||
|
|
||||||
void MainWindow::on_pushButton_14_clicked()
|
void MainWindow::on_pushButton_14_clicked()
|
||||||
{
|
{
|
||||||
|
/**
|
||||||
|
* NOTE: No need to judget developmode status
|
||||||
|
*/
|
||||||
// Check UOS
|
// Check UOS
|
||||||
QSettings config(QStandardPaths::writableLocation(QStandardPaths::AppConfigLocation) + "/config.ini", QSettings::IniFormat);
|
// QSettings config(QStandardPaths::writableLocation(QStandardPaths::AppConfigLocation) + "/config.ini", QSettings::IniFormat);
|
||||||
if (config.contains("UOS/EnableDeveloperMode") && !config.value("UOS/EnableDeveloperMode").toBool())
|
// if (config.contains("UOS/EnableDeveloperMode") && !config.value("UOS/EnableDeveloperMode").toBool())
|
||||||
|
if (false)
|
||||||
{
|
{
|
||||||
qDebug() << "UOS Developer Mode has not been enabled!";
|
qDebug() << "UOS Developer Mode has not been enabled!";
|
||||||
QtConcurrent::run([=]
|
QtConcurrent::run([=]
|
||||||
|
@ -73,6 +73,7 @@ void AppIntoPage::openUrl(const QUrl &url)
|
|||||||
iconRequest.setUrl(QUrl(pkgUrlBase + "/icon.png"));
|
iconRequest.setUrl(QUrl(pkgUrlBase + "/icon.png"));
|
||||||
iconRequest.setHeader(QNetworkRequest::UserAgentHeader, m_userAgent);
|
iconRequest.setHeader(QNetworkRequest::UserAgentHeader, m_userAgent);
|
||||||
iconRequest.setHeader(QNetworkRequest::ContentTypeHeader, "charset='utf-8'");
|
iconRequest.setHeader(QNetworkRequest::ContentTypeHeader, "charset='utf-8'");
|
||||||
|
iconRequest.setAttribute(QNetworkRequest::FollowRedirectsAttribute, true);
|
||||||
|
|
||||||
iconManager->get(iconRequest);
|
iconManager->get(iconRequest);
|
||||||
QObject::connect(iconManager, &QNetworkAccessManager::finished, [=](QNetworkReply *reply)
|
QObject::connect(iconManager, &QNetworkAccessManager::finished, [=](QNetworkReply *reply)
|
||||||
@ -96,6 +97,7 @@ void AppIntoPage::openUrl(const QUrl &url)
|
|||||||
request.setUrl(QUrl(imgUrl));
|
request.setUrl(QUrl(imgUrl));
|
||||||
request.setHeader(QNetworkRequest::UserAgentHeader, m_userAgent);
|
request.setHeader(QNetworkRequest::UserAgentHeader, m_userAgent);
|
||||||
request.setHeader(QNetworkRequest::ContentTypeHeader, "charset='utf-8'");
|
request.setHeader(QNetworkRequest::ContentTypeHeader, "charset='utf-8'");
|
||||||
|
request.setAttribute(QNetworkRequest::FollowRedirectsAttribute, true);
|
||||||
manager->get(request);
|
manager->get(request);
|
||||||
QObject::connect(manager, &QNetworkAccessManager::finished, [=](QNetworkReply *reply)
|
QObject::connect(manager, &QNetworkAccessManager::finished, [=](QNetworkReply *reply)
|
||||||
{
|
{
|
||||||
@ -114,14 +116,18 @@ void AppIntoPage::openUrl(const QUrl &url)
|
|||||||
qDebug() << imgUrl;
|
qDebug() << imgUrl;
|
||||||
}
|
}
|
||||||
|
|
||||||
manager->deleteLater();
|
manager->deleteLater();
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* NOTE: No need to judget developmode status
|
||||||
|
*/
|
||||||
// Check UOS
|
// Check UOS
|
||||||
QSettings config(QStandardPaths::writableLocation(QStandardPaths::AppConfigLocation) + "/config.ini", QSettings::IniFormat);
|
// QSettings config(QStandardPaths::writableLocation(QStandardPaths::AppConfigLocation) + "/config.ini", QSettings::IniFormat);
|
||||||
if (config.contains("UOS/EnableDeveloperMode") && !config.value("UOS/EnableDeveloperMode").toBool()){
|
// if (config.contains("UOS/EnableDeveloperMode") && !config.value("UOS/EnableDeveloperMode").toBool()){
|
||||||
|
if (false) {
|
||||||
qDebug() << "UOS Developer Mode has not been enabled!";
|
qDebug() << "UOS Developer Mode has not been enabled!";
|
||||||
ui->downloadButton->setText(tr("Developer Mode Disabled"));
|
ui->downloadButton->setText(tr("Developer Mode Disabled"));
|
||||||
ui->downloadButton->setEnabled(false);
|
ui->downloadButton->setEnabled(false);
|
||||||
|
@ -121,8 +121,8 @@ if [ ! -e /usr/bin/deepin-app-store-tool ];then
|
|||||||
exec_uos_package_link
|
exec_uos_package_link
|
||||||
|
|
||||||
fi
|
fi
|
||||||
exec_v23_icon_link
|
#exec_v23_icon_link
|
||||||
exec_link_clean
|
#exec_link_clean
|
||||||
wait
|
wait
|
||||||
exec_uos_package_update
|
exec_uos_package_update
|
||||||
echo "----------------Finished----------------"
|
echo "----------------Finished----------------"
|
||||||
|
@ -83,7 +83,13 @@ function hash_check() {
|
|||||||
IS_SHA512SUM_CHECKED=$(cat "$PACKAGES_DATA_PATH" | grep "$DEB_SHA512SUM")
|
IS_SHA512SUM_CHECKED=$(cat "$PACKAGES_DATA_PATH" | grep "$DEB_SHA512SUM")
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function lock_file(){
|
||||||
|
chattr +i "$1"
|
||||||
|
}
|
||||||
|
|
||||||
|
function unlock_file(){
|
||||||
|
chattr -i "$1"
|
||||||
|
}
|
||||||
|
|
||||||
####################################
|
####################################
|
||||||
|
|
||||||
@ -94,11 +100,7 @@ if [ $# -eq 0 ]; then
|
|||||||
exit
|
exit
|
||||||
fi
|
fi
|
||||||
|
|
||||||
if [ ! -f "$1" ]; then
|
|
||||||
echo "${TRANSHELL_CONTENT_FILE_NOT_EXIST}"
|
|
||||||
echo "OMG-IT-GOES-WRONG"
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
|
|
||||||
if [ "$(id -u)" != "0" ]; then
|
if [ "$(id -u)" != "0" ]; then
|
||||||
echo "${TRANSHELL_CONTENT_PLEASE_RUN_AS_ROOT}"
|
echo "${TRANSHELL_CONTENT_PLEASE_RUN_AS_ROOT}"
|
||||||
@ -106,7 +108,26 @@ if [ "$(id -u)" != "0" ]; then
|
|||||||
exit 1
|
exit 1
|
||||||
fi
|
fi
|
||||||
|
|
||||||
DEBPATH=$(realpath "$1")
|
if [ ! -f "$1" ]; then
|
||||||
|
echo "${TRANSHELL_CONTENT_FILE_NOT_EXIST},Trying to redownload"
|
||||||
|
FILEPATH=$(dirname "$1")
|
||||||
|
FILENAME=$(basename "$1")
|
||||||
|
PACKAGE_NAME=$(echo "$FILENAME" | sed -r 's/^([^_]+)_.*$/\1/')
|
||||||
|
VERSION=$(echo "$FILENAME" | sed -r 's/^[^_]+_([^_]+)_.*$/\1/')
|
||||||
|
pushd ${FILEPATH}
|
||||||
|
aptss download ${PACKAGE_NAME}=${VERSION}
|
||||||
|
popd
|
||||||
|
if [ ! -f "$1" ]; then
|
||||||
|
echo "OMG-IT-GOES-WRONG"
|
||||||
|
exit 1
|
||||||
|
else
|
||||||
|
DEBPATH=$(realpath "$1")
|
||||||
|
fi
|
||||||
|
else
|
||||||
|
DEBPATH=$(realpath "$1")
|
||||||
|
fi
|
||||||
|
|
||||||
|
lock_file "$DEBPATH"
|
||||||
|
|
||||||
hash_check "$DEBPATH"
|
hash_check "$DEBPATH"
|
||||||
|
|
||||||
@ -144,6 +165,8 @@ if [ ! -z "$IS_SHA512SUM_CHECKED" ]; then
|
|||||||
|
|
||||||
dpkg -i "$DEBPATH" || aptss install -yf
|
dpkg -i "$DEBPATH" || aptss install -yf
|
||||||
|
|
||||||
|
unlock_file "$DEBPATH"
|
||||||
|
|
||||||
if [ "$?" = "0" ] && [ "$2" = "--delete-after-install" ]; then
|
if [ "$?" = "0" ] && [ "$2" = "--delete-after-install" ]; then
|
||||||
if dpkg -s "$package_name" >/dev/null 2>&1; then
|
if dpkg -s "$package_name" >/dev/null 2>&1; then
|
||||||
echo "软件包已安装:$package_name"
|
echo "软件包已安装:$package_name"
|
||||||
|
Loading…
x
Reference in New Issue
Block a user