Skip to content

Commit

Permalink
Merge branch 'beta'
Browse files Browse the repository at this point in the history
  • Loading branch information
JGeek00 committed Oct 27, 2023
2 parents 5201077 + 2ad739e commit 7cff86e
Show file tree
Hide file tree
Showing 5 changed files with 108 additions and 34 deletions.
1 change: 1 addition & 0 deletions lib/constants/urls.dart
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@ class Urls {
static const String gitHub = "https://github.com/JGeek00/adguard-home-manager";
static const String customRuleDocs = "https://kb.adguard.com/en/general/how-to-create-your-own-ad-filters";
static const String getReleasesGitHub = "https://api.github.com/repos/JGeek00/adguard-home-manager/releases";
static const String getLatestReleaseGitHub = "https://api.github.com/repos/JGeek00/adguard-home-manager/releases/latest";
static const String adGuardHomeReleasesTags = "https://api.github.com/repos/AdGuardTeam/AdGuardHome/releases/tags";
static const String googleSearchUrl = "https://www.google.com/search";
static const String connectionInstructions = "https://github.com/JGeek00/adguard-home-manager/wiki/Create-a-connection";
Expand Down
24 changes: 15 additions & 9 deletions lib/functions/check_app_updates.dart
Original file line number Diff line number Diff line change
Expand Up @@ -12,29 +12,35 @@ Future<GitHubRelease?> checkAppUpdates({
required Source installationSource,
required bool isBeta
}) async {
final result = await checkAppUpdatesGitHub();
var result = isBeta
? await getReleasesGitHub()
: await getLatestReleaseGitHub();

if (result['result'] == 'success') {
late GitHubRelease gitHubRelease;
if (isBeta) {
gitHubRelease = (result['body'] as List<GitHubRelease>).firstWhere((r) => r.prerelease == true);
}
else {
gitHubRelease = result['body'] as GitHubRelease;
}

final update = gitHubUpdateExists(
currentBuildNumber: currentBuildNumber,
gitHubReleases: result['body'],
gitHubRelease: gitHubRelease,
isBeta: isBeta
);

if (update == true) {
final release = isBeta == true
? result['body'].firstWhere((release) => release.prerelease == true)
: result['body'].firstWhere((release) => release.prerelease == false);

setUpdateAvailable(release);
setUpdateAvailable(gitHubRelease);

if (Platform.isAndroid) {
if (
installationSource == Source.IS_INSTALLED_FROM_LOCAL_SOURCE ||
installationSource == Source.IS_INSTALLED_FROM_PLAY_PACKAGE_INSTALLER ||
installationSource == Source.UNKNOWN
) {
return release;
return gitHubRelease;
}
else {
return null;
Expand All @@ -44,7 +50,7 @@ Future<GitHubRelease?> checkAppUpdates({
return null;
}
else {
return release;
return gitHubRelease;
}
}
else {
Expand Down
12 changes: 4 additions & 8 deletions lib/functions/compare_versions.dart
Original file line number Diff line number Diff line change
Expand Up @@ -151,15 +151,11 @@ bool serverVersionIsAhead({

bool gitHubUpdateExists({
required String currentBuildNumber,
required List<GitHubRelease> gitHubReleases,
required GitHubRelease gitHubRelease,
required bool isBeta
}) {
final release = isBeta == true
? gitHubReleases.firstWhere((release) => release.prerelease == true)
: gitHubReleases.firstWhere((release) => release.prerelease == false);

final versionNumberRegex = RegExp(r'\(\d+\)');
final releaseNumberExtractedMatches = versionNumberRegex.allMatches(release.tagName);
final releaseNumberExtractedMatches = versionNumberRegex.allMatches(gitHubRelease.tagName);

if (releaseNumberExtractedMatches.isNotEmpty) {
final releaseNumberExtracted = releaseNumberExtractedMatches.first.group(0);
Expand All @@ -181,12 +177,12 @@ bool gitHubUpdateExists({
}
}
else {
Sentry.captureMessage("Invalid release number. Tagname: ${release.tagName}");
Sentry.captureMessage("Invalid release number. Tagname: ${gitHubRelease.tagName}");
return false;
}
}
else {
Sentry.captureMessage("No matches. ${release.tagName}");
Sentry.captureMessage("No matches. ${gitHubRelease.tagName}");
return false;
}
}
32 changes: 16 additions & 16 deletions lib/l10n/app_tr.arb
Original file line number Diff line number Diff line change
Expand Up @@ -139,7 +139,7 @@
"clas": "Sınıf",
"response": "Yanıt",
"dnsServer": "DNS sunucusu",
"elapsedTime": "Zaman aşımı",
"elapsedTime": "İşlem süresi",
"responseCode": "Yanıt kodu",
"client": "İstemci",
"deviceIp": "IP adresi",
Expand Down Expand Up @@ -171,7 +171,7 @@
"dnsQueries": "DNS sorguları",
"average": "Ortalama",
"blockedFilters": "Engellenen (Alan adları)",
"malwarePhisingBlocked": "Engellenen (Zararlı içerik)",
"malwarePhishingBlocked": "Engellenen (Zararlı içerik)",
"blockedAdultWebsites": "Engellenen (Yetişkin içerik)",
"generalSettings": "Genel ayarlar",
"generalSettingsDescription": "Çeşitli farklı ayarlar",
Expand Down Expand Up @@ -267,9 +267,9 @@
"seeDnsAddresses": "DNS adreslerine bak",
"dnsPort": "DNS bağlantı noktası",
"httpPort": "HTTP bağlantı noktası",
"protectionEnabled": "Koruma etkin",
"dhcpAvailable": "DHCP mevcut",
"serverRunning": "Sunucu çalışıyor",
"protectionEnabled": "Koruma etkin mi?",
"dhcpAvailable": "DHCP mevcut mu?",
"serverRunning": "Sunucu çalışıyor mu?",
"serverVersion": "Sunucu sürümü",
"serverLanguage": "Sunucu dili",
"yes": "Evet",
Expand All @@ -281,9 +281,9 @@
"accessSettingsDescription": "Sunucu için erişim kurallarını yapılandır",
"loadingClients": "İstemciler yükleniyor...",
"clientsNotLoaded": "İstemciler yüklenemedi.",
"noAllowedClients": "İzin verilen istemci yok",
"allowedClientsDescription": "Eğer bu liste girişlere sahipse, AdGuard Home sadece bu istemcilerden gelen istekleri kabul edecek.",
"blockedClientsDescription": "Eğer bu liste girişlere sahipse, AdGuard Home bu istemcilerden gelen istekleri reddedecektir. Bu alan, İzin Verilen İstemciler bölümünde girişler varsa dikkate alınmaz.",
"noAllowedClients": "İzin verilmiş istemci yok",
"allowedClientsDescription": "Eğer bu liste girdiler içeriyorsa, AdGuard Home yalnızca bu istemcilerden gelen talepleri kabul edecektir.",
"blockedClientsDescription": "Bu liste girdiler içeriyorsa, AdGuard Home bu istemcilerden gelen talepleri reddedecektir. Bu alan, İzin Verilen İstemciler'de girdi varsa görmezden gelinir.",
"disallowedDomainsDescription": "AdGuard Home, bu alan adlarına uyan DNS sorgularını reddeder ve bu sorgular sorgu günlüğünde bile görünmez.",
"addClientFieldDescription": "CIDR'ler, IP adresi veya ClientID",
"clientIdentifier": "İstemci tanımlayıcısı",
Expand Down Expand Up @@ -396,7 +396,7 @@
"dnsRewritesDescription": "Özel DNS kurallarını yapılandır",
"loadingRewriteRules": "Yeniden yazma kuralları yükleniyor...",
"rewriteRulesNotLoaded": "DNS yeniden yazma kuralları yüklenemedi.",
"noRewriteRules": "DNS yeniden yazma kuralları yok",
"noRewriteRules": "DNS yeniden yazım kuralları yok",
"answer": "Cevap",
"deleteDnsRewrite": "DNS yeniden yazmayı sil",
"deleteDnsRewriteMessage": "Bu DNS yeniden yazmasını silmek istediğinizden emin misiniz? Bu işlem geri alınamaz.",
Expand Down Expand Up @@ -511,15 +511,15 @@
"dnsOverQuicPort": "DNS-over-QUIC bağlantı noktası",
"certificates": "Sertifikalar",
"certificatesDescription": "Şifreleme kullanmak için, alan adınız için geçerli bir SSL sertifikası zinciri sağlamanız gereklidir. letsencrypt.org'dan ücretsiz bir sertifika alabilir veya güvenilir sertifika yetkililerinden satın alabilirsiniz.",
"certificateFilePath": "Sertifika dosyası yolu ayarla",
"certificateFilePath": "Sertifika dosyası yolunu ayarla",
"pasteCertificateContent": "Sertifika içeriğini yapıştır",
"certificatePath": "Sertifika dosya yolu",
"certificateContent": "Sertifika içeriği",
"privateKey": "Özel anahtar",
"privateKeyFile": "Özel bir anahtar dosyası belirle",
"privateKeyFile": "Özel anahtar dosyası belirle",
"pastePrivateKey": "Özel anahtar içeriğini yapıştır",
"usePreviousKey": "Önceden kaydedilmiş anahtarı kullan",
"privateKeyPath": "Özel anahtar yolu",
"privateKeyPath": "Özel anahtar dosya yolu",
"invalidCertificate": "Geçersiz sertifika",
"invalidPrivateKey": "Geçersiz özel anahtar",
"validatingData": "Veri doğrulama",
Expand Down Expand Up @@ -561,7 +561,7 @@
"expirationDate": "Son kullanma tarihi",
"keysNotMatch": "Geçersiz bir sertifika veya anahtar: tls: özel anahtar genel anahtarla eşleşmiyor.",
"timeLogs": "Günlüklerdeki zaman",
"timeLogsDescription": "Günlükler listesinde işlem süresini göster",
"timeLogsDescription": "Günlükler listesinde zaman yerine işlem süresini göster",
"hostNames": "Ana bilgisayar adları",
"keyType": "Anahtar türü",
"updateAvailable": "Güncelleme mevcut",
Expand Down Expand Up @@ -651,14 +651,14 @@
"october": "Ekim",
"november": "Kasım",
"december": "Aralık",
"malwarePhising": "Zararlı yazılım/oltalama",
"malwarePhishing": "Zararlı yazılım/oltalama",
"queries": "Sorgular",
"adultSites": "Yetişkin içerikler",
"quickFilters": "Hızlı filtreler",
"searchDomainInternet": "İnternette alan adı ara",
"hideServerAddress": "Sunucu adresini gizle",
"hideServerAddressDescription": "Ana ekranda sunucu adresini gizler",
"topItemsOrder": "Öne çıkan öğe sıralaması",
"topItemsOrder": "Öne çıkan öğeler sıralaması",
"topItemsOrderDescription": "Ana ekrandaki öne çıkan öğe listelerini sırala",
"topItemsReorderInfo": "Yeniden sıralamak için bir öğeyi basılı tutun ve kaydırın.",
"discardChanges": "Değişiklikleri iptal et",
Expand All @@ -668,4 +668,4 @@
"hideChart": "Gizle",
"showTopItemsChart": "Öne çıkan öğeler grafiği",
"showTopItemsChartDescription": "Varsayılan olarak öne çıkan öğeler bölümünde halka grafiğini gösterir. Sadece mobil görünümü etkiler."
}
}
73 changes: 72 additions & 1 deletion lib/services/http_requests.dart
Original file line number Diff line number Diff line change
Expand Up @@ -2322,7 +2322,7 @@ class ApiClient {
}
}

Future checkAppUpdatesGitHub() async {
Future getReleasesGitHub() async {
try {
HttpClient httpClient = HttpClient();
HttpClientRequest request = await httpClient.getUrl(Uri.parse(Urls.getReleasesGitHub));
Expand Down Expand Up @@ -2391,4 +2391,75 @@ Future checkAppUpdatesGitHub() async {
)
};
}
}

Future getLatestReleaseGitHub() async {
try {
HttpClient httpClient = HttpClient();
HttpClientRequest request = await httpClient.getUrl(Uri.parse(Urls.getLatestReleaseGitHub));
HttpClientResponse response = await request.close();
String reply = await response.transform(utf8.decoder).join();
httpClient.close();
if (response.statusCode == 200) {
return {
'result': 'success',
'hasResponse': true,
'error': false,
'statusCode': response.statusCode,
'body': GitHubRelease.fromJson(jsonDecode(reply))
};
}
else {
return {
'result': 'error',
'log': AppLog(
type: 'update_encryption_settings',
dateTime: DateTime.now(),
message: 'error_code_not_expected',
statusCode: response.statusCode.toString(),
resBody: reply,
)
};
}
} on SocketException {
return {
'result': 'no_connection',
'message': 'SocketException',
'log': AppLog(
type: 'check_latest_release_github',
dateTime: DateTime.now(),
message: 'SocketException'
)
};
} on TimeoutException {
return {
'result': 'no_connection',
'message': 'TimeoutException',
'log': AppLog(
type: 'check_latest_release_github',
dateTime: DateTime.now(),
message: 'TimeoutException'
)
};
} on HandshakeException {
return {
'result': 'ssl_error',
'message': 'HandshakeException',
'log': AppLog(
type: 'check_latest_release_github',
dateTime: DateTime.now(),
message: 'HandshakeException'
)
};
} catch (e) {
return {
'result': 'error',
'message': e.toString(),
'log': AppLog(
type: 'check_latest_release_github',
dateTime: DateTime.now(),
message: e.toString()
)
};
}
}

0 comments on commit 7cff86e

Please sign in to comment.