mirror of
https://github.com/amnezia-vpn/amnezia-client.git
synced 2026-05-08 14:33:23 +00:00
* added changelog drawer * Created a scaffold for Linux installation * implement Linux updating * Add debug logs about installer in service * Add client side of installation logic for Windows and MacOS * Add service side of installation logic for Windows * ru readme * Update README_RU.md * Add files via upload * chore: added clang-format config files (#1293) * Update README_RU.md * Update README.md * feature: added subscription expiration date for premium v2 (#1261) * feature: added subscription expiration date for premium v2 * feature: added a check for the presence of the “services” field in the response body of the getServicesList() function * feature: added prohibition to change location when connection is active * bugfix: renamed public_key->end_date to public_key->expires_at according to the changes on the backend * feature/xray user management (#972) * feature: implement client management functionality for Xray --------- Co-authored-by: aiamnezia <ai@amnezia.org> Co-authored-by: vladimir.kuznetsov <nethiuswork@gmail.com> * Fix formatting * Add some logs * Add logs from installattion shell on Windows * Fix installation for Windows and MacOS * Optimized code * Move installer running to client side for Ubuntu * Move installer launch logic to client side for Windows * Clean service code * Add linux_install script to resources * Add logs for UpdateController * Add draft for MacOS installation * Disable updates checking for Android and iOS * chore: fixed macos update script * chore: remove duplicate lines * chore: post merge fixes * chore: add missing ifdef * decrease version for testing * chore: added changelog text processing depend on OS * add .vscode to .gitignore * Change updater downloading method to retrieving link from the gateway * add Release date file creation to s3 deploy script * Add release date downloading from endpoint * update check refactoring * feat: switch macOS auto-update from DMG to ZIP+PKG installer - Update macOS artifact URL from .dmg to .zip - Rewrite mac_installer.sh to extract ZIP and install PKG via osascript - Increase download timeout to 30s for larger ZIP files * fix: fix Android build * feat: Change get request for updater link to post * refactor: preparing NewsModel for update notifications - Changed `updateModel` to `setNewsList` for better semantic meaning. - Delegate model container updating to private method updateModel - Updated the logic for marking news as read to use item IDs instead of a boolean flag. * feat: Move update notification in news list - Updated `UpdateController` to handle empty release dates in header text. - Added `getVersion` method to `UpdateController` for version retrieval. - Enhanced `NewsModel` to support update notifications with new methods for marking updates as skipped and setting update notifications. - Updated QML pages to display update information and provide actions for updates and skipping them. - Introduced `isUpdate` property in `NewsItem` to differentiate between regular news and updates. * feat: Implement rate limit workaround for gateway requests - Added a delay before contacting the gateway in both `UpdateController` and `ApiNewsController` to prevent rate limit issues caused by simultaneous requests. * refactor: Convert synchronous network requests to asynchronous in UpdateController - Updated `UpdateController` to use asynchronous network requests for fetching gateway URL, version info, changelog, and release date. - Introduced `doGetAsync` method to handle asynchronous GET requests with error handling. - Removed synchronous methods to improve responsiveness and prevent blocking the UI during network operations. - Added a mechanism to prevent multiple concurrent update checks. * chore: Decrease AmneziaVPN version to 4.8.10.0 in CMakeLists.txt for testing * refactor: Improve update check handling to avoid rate limit issues - Updated `CoreController` to initiate update checks after news fetching is complete. - Removed synchronous waiting in `ApiNewsController` to streamline the fetching process. * fix: fixed typo in IsReadRole * fix: fix updater filenames * chore: move updateController to core * refactor: update to mvvm * chore: tiny fix --------- Co-authored-by: aiamnezia <ai@amnezia.org> Co-authored-by: aiamnezia <ai@amnezia.com> Co-authored-by: Pokamest Nikak <pokamest@gmail.com> Co-authored-by: KsZnak <ksu@amnezia.org> Co-authored-by: Cyril Anisimov <cyan84@gmail.com> Co-authored-by: vkamn <vk@amnezia.org>
76 lines
2.1 KiB
C++
76 lines
2.1 KiB
C++
#ifndef SCRIPTSREGISTRY_H
|
|
#define SCRIPTSREGISTRY_H
|
|
|
|
#include <QLatin1String>
|
|
#include <QList>
|
|
#include <QPair>
|
|
#include <QString>
|
|
#include "core/utils/errorCodes.h"
|
|
#include "core/utils/routeModes.h"
|
|
#include "core/utils/commonStructs.h"
|
|
#include "core/utils/containerEnum.h"
|
|
#include "core/utils/containers/containerUtils.h"
|
|
#include "core/utils/protocolEnum.h"
|
|
#include "core/models/containerConfig.h"
|
|
|
|
namespace amnezia {
|
|
|
|
typedef QList<QPair<QString, QString>> ScriptVars;
|
|
|
|
enum SharedScriptType {
|
|
// General scripts
|
|
prepare_host,
|
|
install_docker,
|
|
build_container,
|
|
remove_container,
|
|
remove_all_containers,
|
|
setup_host_firewall,
|
|
check_connection,
|
|
check_server_is_busy,
|
|
check_user_in_sudo
|
|
};
|
|
enum ProtocolScriptType {
|
|
// Protocol scripts
|
|
dockerfile,
|
|
run_container,
|
|
configure_container,
|
|
container_startup,
|
|
openvpn_template,
|
|
wireguard_template,
|
|
awg_template,
|
|
xray_template
|
|
};
|
|
|
|
enum ClientScriptType {
|
|
// Client-side scripts
|
|
linux_installer,
|
|
mac_installer
|
|
};
|
|
|
|
QString scriptFolder(DockerContainer container);
|
|
|
|
QString scriptName(SharedScriptType type);
|
|
QString scriptName(ProtocolScriptType type);
|
|
QString scriptName(ClientScriptType type);
|
|
|
|
QString scriptData(SharedScriptType type);
|
|
QString scriptData(ProtocolScriptType type, DockerContainer container);
|
|
QString scriptData(ClientScriptType type);
|
|
|
|
ScriptVars genBaseVars(const ServerCredentials &credentials,
|
|
DockerContainer container,
|
|
const QString &primaryDns,
|
|
const QString &secondaryDns);
|
|
|
|
ScriptVars genOpenVpnVars(const ContainerConfig &containerConfig);
|
|
ScriptVars genXrayVars(const ContainerConfig &containerConfig);
|
|
ScriptVars genWireGuardVars(const ContainerConfig &containerConfig);
|
|
ScriptVars genAwgVars(const ContainerConfig &containerConfig);
|
|
ScriptVars genSftpVars(const ContainerConfig &containerConfig);
|
|
ScriptVars genSocks5ProxyVars(const ContainerConfig &containerConfig);
|
|
|
|
ScriptVars genProtocolVarsForContainer(DockerContainer container, const ContainerConfig &containerConfig);
|
|
}
|
|
|
|
#endif // SCRIPTSREGISTRY_H
|