Compare commits

..

5 Commits

Author SHA1 Message Date
Imran
225362d351 Merge pull request #2539 from neardaniel-pls/main
Refined translation terms
2025-09-19 23:13:36 -04:00
Imran
089bf97ff2 Merge pull request #2545 from kvak54/rustore-patch
Restore RuStore support through replace URL of API.
2025-09-19 23:13:24 -04:00
kvak54
123cd5b130 Restore RuStore support through replace URL of API.
If the application is published as an AAB,
then the old one produced an unusable file (one of split files).
The new one provide a monolithic file.
2025-09-14 21:07:32 +07:00
Near
bc24f008fa fixed spacing 2025-09-13 22:41:20 +01:00
Near
472ec4e400 refine translation terms 2025-09-13 22:37:19 +01:00
2 changed files with 20 additions and 20 deletions

View File

@@ -337,24 +337,24 @@
"fgServiceNotice": "Esta notificação é necessária para a verificação de actualizações em segundo plano (pode ser ocultada nas definições do SO)",
"excludeSecrets": "Excluir segredos",
"removeAppQuestion": {
"one": "Remover aplicativo?",
"other": "Remover aplicativos?"
"one": "Remover aplicação?",
"other": "Remover aplicações?"
},
"tooManyRequestsTryAgainInMinutes": {
"one": "Muitas solicitações (taxa de solicitações limitada) - tente novamente em {} minuto",
"other": "Muitas solicitações (taxa limitada) - tente novamente em {} minutos"
"one": "Muitos pedidos (taxa de pedidos limitada) - tente novamente em {} minuto",
"other": "Muitos pedidos (taxa limitada) - tente novamente em {} minutos"
},
"bgUpdateGotErrorRetryInMinutes": {
"one": "A verificação de atualizações em segundo-plano encontrou um {}, agendada uma nova verificação em {} minuto",
"other": "A verificação de atualizações em segundo-plano encontrou um {}, agendada uma nova verificação em {} minutos"
"one": "A verificação de atualizações em segundo plano encontrou um {}, agendada uma nova verificação em {} minuto",
"other": "A verificação de atualizações em segundo plano encontrou um {}, agendada uma nova verificação em {} minutos"
},
"bgCheckFoundUpdatesWillNotifyIfNeeded": {
"one": "A verificação de atualizações em segundo-plano encontrou {} atualização, o usuário sera notificado caso necessário",
"other": "A verificação de atualizações em segundo-plano encontrou {} atualizações, o usuário sera notificado caso necessário"
"one": "A verificação de atualizações em segundo plano encontrou {} atualização, o utilizador será notificado caso necessário",
"other": "A verificação de atualizações em segundo plano encontrou {} atualizações, o utilizador será notificado caso necessário"
},
"apps": {
"one": "{} Aplicativo",
"other": "{} Aplicativos"
"one": "{} Aplicação",
"other": "{} Aplicações"
},
"url": {
"one": "{} URL",
@@ -377,20 +377,20 @@
"other": "Foram limpos {n} logs (antes = {antes}, depois = {depois})"
},
"xAndNMoreUpdatesAvailable": {
"one": "{} e um outro aplicativo possui atualizações.",
"other": "{} e {} outros aplicativo possuem atualizações."
"one": "{} e uma outra aplicação possui atualizações.",
"other": "{} e {} outras aplicações possuem atualizações."
},
"xAndNMoreUpdatesInstalled": {
"one": "{} e um outro aplicativo foram atualizado.",
"other": "{} e {} outros aplicativos foram atualizados."
"one": "{} e uma outra aplicação foram atualizadas.",
"other": "{} e {} outras aplicações foram atualizadas."
},
"xAndNMoreUpdatesFailed": {
"one": "Falha ao atualizar {} e mais 1 aplicação.",
"other": "Falha ao atualizar {} e {} mais aplicações."
"other": "Falha ao atualizar {} e {} outras aplicações."
},
"xAndNMoreUpdatesPossiblyInstalled": {
"one": "{} e um outro aplicativo podem ter sido atualizados.",
"other": "{} e {} outros aplicativos podem ter sido atualizados."
"one": "{} e uma outra aplicação podem ter sido atualizadas.",
"other": "{} e {} outras aplicações podem ter sido atualizadas."
},
"apk": {
"one": "{} APK",

View File

@@ -80,20 +80,20 @@ class RuStore extends AppSource {
}
Response res1 = await sourceRequest(
'https://backapi.rustore.ru/applicationData/download-link',
'https://backapi.rustore.ru/applicationData/v2/download-link',
additionalSettings,
followRedirects: false,
postBody: {"appId": appDetails['appId'], "firstInstall": true},
);
var downloadDetails = (await decodeJsonBody(res1.bodyBytes))['body'];
if (res1.statusCode != 200 || downloadDetails['apkUrl'] == null) {
if (res1.statusCode != 200 || downloadDetails['downloadUrls'][0]['url'] == null) {
throw NoAPKError();
}
return APKDetails(
version,
getApkUrlsFromUrls([
(downloadDetails['apkUrl'] as String).replaceAll(
(downloadDetails['downloadUrls'][0]['url'] as String).replaceAll(
RegExp('\\.zip\$'),
'.apk',
),