From e35433af314b13ff3c951eef4c99f42e460f2b28 Mon Sep 17 00:00:00 2001 From: Jagandeep Brar Date: Tue, 10 May 2022 22:22:37 -0400 Subject: [PATCH] fix: correctly calculate age of releases in -arrs --- .github/workflows/publish_s3.yml | 2 +- assets/localization/en.json | 2 ++ lib/core/extensions.dart | 1 - lib/core/extensions/double.dart | 15 ----------- lib/extensions/double.dart | 25 +++++++++++++++++++ .../lidarr/widgets/search_result_tile.dart | 1 + .../core/extensions/radarr_event_type.dart | 1 + .../core/extensions/radarr_release.dart | 1 + lib/modules/settings/core/dialogs.dart | 1 - .../settings/routes/configuration/route.dart | 1 - .../core/extensions/sonarr_event_type.dart | 1 + .../core/extensions/sonarr_release.dart | 1 + localization/lunasea/en.json | 2 ++ 13 files changed, 35 insertions(+), 19 deletions(-) delete mode 100644 lib/core/extensions/double.dart create mode 100644 lib/extensions/double.dart diff --git a/.github/workflows/publish_s3.yml b/.github/workflows/publish_s3.yml index 9ec04c47..5e1a1758 100644 --- a/.github/workflows/publish_s3.yml +++ b/.github/workflows/publish_s3.yml @@ -179,7 +179,7 @@ jobs: const url = `https://builds.lunasea.app/#${ process.env.BUILD_TITLE }/`; let _base = `[Download](${url})`; if ( ANDROID || IOS || LINUX || MACOS || WEB || WINDOWS) { - _base += '\n\nThis release is only available for the following platforms: '; + _base += '\n\nThis release is available on the following platforms: '; const platforms = []; if (ANDROID) platforms.push('Android'); diff --git a/assets/localization/en.json b/assets/localization/en.json index 42fec600..6f320347 100644 --- a/assets/localization/en.json +++ b/assets/localization/en.json @@ -61,12 +61,14 @@ "lunasea.Internal": "Internal", "lunasea.InvalidFileTypeSelected": "Invalid File Type Selected", "lunasea.JustNow": "Just Now", + "lunasea.MinutesAgo": "{} Minutes Ago", "lunasea.Module": "Module", "lunasea.ModuleIsNotEnabled": "{} Is Not Enabled", "lunasea.New": "New", "lunasea.NotSet": "Not Set", "lunasea.NoModulesEnabled": "No Modules Enabled", "lunasea.OneHourAgo": "1 Hour Ago", + "lunasea.OneMinuteAgo": "1 Minute Ago", "lunasea.Options": "Options", "lunasea.Page": "Page", "lunasea.PlatformSpecific": "Platform-Specific", diff --git a/lib/core/extensions.dart b/lib/core/extensions.dart index f7168a8a..ca53e8a7 100644 --- a/lib/core/extensions.dart +++ b/lib/core/extensions.dart @@ -1,6 +1,5 @@ export 'extensions/async_snapshot.dart'; export 'extensions/datetime.dart'; -export 'extensions/double.dart'; export 'extensions/duration.dart'; export 'extensions/iap_product_details.dart'; export 'extensions/int.dart'; diff --git a/lib/core/extensions/double.dart b/lib/core/extensions/double.dart deleted file mode 100644 index 9007d386..00000000 --- a/lib/core/extensions/double.dart +++ /dev/null @@ -1,15 +0,0 @@ -import 'package:lunasea/core.dart'; - -extension DoubleExtension on double { - String get asTimeAgo { - if (this < 0) return LunaUI.TEXT_EMDASH; - // Small buffer of 5% of an hour, 3 minute - if (this <= 0.05) return 'lunasea.JustNow'.tr(); - - int days = (this / 24).floor(); - if (this > 48) return 'lunasea.DaysAgo'.tr(args: [days.toString()]); - return this == 1 - ? 'lunasea.OneHourAgo'.tr() - : 'lunasea.HoursAgo'.tr(args: [days.toString()]); - } -} diff --git a/lib/extensions/double.dart b/lib/extensions/double.dart new file mode 100644 index 00000000..457b3089 --- /dev/null +++ b/lib/extensions/double.dart @@ -0,0 +1,25 @@ +import 'package:lunasea/core.dart'; + +extension DoubleExtension on double? { + String get asTimeAgo { + if (this == null || this! < 0) return LunaUI.TEXT_EMDASH; + + double hours = this!; + double minutes = (this! * 60); + double days = (this! / 24); + + if (minutes <= 2) { + return 'lunasea.JustNow'.tr(); + } + + if (minutes <= 120) { + return 'lunasea.MinutesAgo'.tr(args: [minutes.round().toString()]); + } + + if (hours <= 48) { + return 'lunasea.HoursAgo'.tr(args: [hours.toStringAsFixed(1)]); + } + + return 'lunasea.DaysAgo'.tr(args: [days.round().toString()]); + } +} diff --git a/lib/modules/lidarr/widgets/search_result_tile.dart b/lib/modules/lidarr/widgets/search_result_tile.dart index 8ea64a2e..65e5b5f0 100644 --- a/lib/modules/lidarr/widgets/search_result_tile.dart +++ b/lib/modules/lidarr/widgets/search_result_tile.dart @@ -1,5 +1,6 @@ import 'package:flutter/material.dart'; import 'package:lunasea/core.dart'; +import 'package:lunasea/extensions/double.dart'; import 'package:lunasea/extensions/string.dart'; import 'package:lunasea/modules/lidarr.dart'; import 'package:lunasea/modules/dashboard/routes/dashboard/route.dart' diff --git a/lib/modules/radarr/core/extensions/radarr_event_type.dart b/lib/modules/radarr/core/extensions/radarr_event_type.dart index ac32bad0..3016b519 100644 --- a/lib/modules/radarr/core/extensions/radarr_event_type.dart +++ b/lib/modules/radarr/core/extensions/radarr_event_type.dart @@ -1,5 +1,6 @@ import 'package:flutter/material.dart'; import 'package:lunasea/core.dart'; +import 'package:lunasea/extensions/double.dart'; import 'package:lunasea/modules/radarr.dart'; extension LunaRadarrEventType on RadarrEventType { diff --git a/lib/modules/radarr/core/extensions/radarr_release.dart b/lib/modules/radarr/core/extensions/radarr_release.dart index ea80a150..148be335 100644 --- a/lib/modules/radarr/core/extensions/radarr_release.dart +++ b/lib/modules/radarr/core/extensions/radarr_release.dart @@ -1,5 +1,6 @@ import 'package:flutter/material.dart'; import 'package:lunasea/core.dart'; +import 'package:lunasea/extensions/double.dart'; import 'package:lunasea/modules/radarr.dart'; extension RadarrReleaseExtension on RadarrRelease { diff --git a/lib/modules/settings/core/dialogs.dart b/lib/modules/settings/core/dialogs.dart index 15f96891..eb7ca266 100644 --- a/lib/modules/settings/core/dialogs.dart +++ b/lib/modules/settings/core/dialogs.dart @@ -3,7 +3,6 @@ import 'package:flutter/material.dart'; import 'package:lunasea/firebase/types.dart'; import 'package:lunasea/modules/settings/core/types/header.dart'; import 'package:lunasea/core/database/luna_database.dart'; -import 'package:lunasea/core/models/types/browser.dart'; import 'package:lunasea/system/localization.dart'; import 'package:lunasea/vendor.dart'; import 'package:lunasea/widgets/ui.dart'; diff --git a/lib/modules/settings/routes/configuration/route.dart b/lib/modules/settings/routes/configuration/route.dart index 1b40abc2..182e5e69 100644 --- a/lib/modules/settings/routes/configuration/route.dart +++ b/lib/modules/settings/routes/configuration/route.dart @@ -2,7 +2,6 @@ import 'package:flutter/material.dart'; import 'package:lunasea/core.dart'; import 'package:lunasea/modules/settings.dart'; import 'package:lunasea/system/network/network.dart'; -import 'package:lunasea/system/platform.dart'; import 'package:lunasea/system/quick_actions/quick_actions.dart'; class SettingsConfigurationRouter extends SettingsPageRouter { diff --git a/lib/modules/sonarr/core/extensions/sonarr_event_type.dart b/lib/modules/sonarr/core/extensions/sonarr_event_type.dart index 3aeb4ab8..ca08805d 100644 --- a/lib/modules/sonarr/core/extensions/sonarr_event_type.dart +++ b/lib/modules/sonarr/core/extensions/sonarr_event_type.dart @@ -1,5 +1,6 @@ import 'package:flutter/material.dart'; import 'package:lunasea/core.dart'; +import 'package:lunasea/extensions/double.dart'; import 'package:lunasea/modules/sonarr.dart'; extension SonarrEventTypeLunaExtension on SonarrEventType { diff --git a/lib/modules/sonarr/core/extensions/sonarr_release.dart b/lib/modules/sonarr/core/extensions/sonarr_release.dart index a3d78c80..72880883 100644 --- a/lib/modules/sonarr/core/extensions/sonarr_release.dart +++ b/lib/modules/sonarr/core/extensions/sonarr_release.dart @@ -1,5 +1,6 @@ import 'package:flutter/material.dart'; import 'package:lunasea/core.dart'; +import 'package:lunasea/extensions/double.dart'; import 'package:lunasea/modules/sonarr.dart'; extension SonarrReleaseExtension on SonarrRelease { diff --git a/localization/lunasea/en.json b/localization/lunasea/en.json index 81d3c03e..8c5aa4c5 100644 --- a/localization/lunasea/en.json +++ b/localization/lunasea/en.json @@ -40,12 +40,14 @@ "lunasea.Internal": "Internal", "lunasea.InvalidFileTypeSelected": "Invalid File Type Selected", "lunasea.JustNow": "Just Now", + "lunasea.MinutesAgo": "{} Minutes Ago", "lunasea.Module": "Module", "lunasea.ModuleIsNotEnabled": "{} Is Not Enabled", "lunasea.New": "New", "lunasea.NotSet": "Not Set", "lunasea.NoModulesEnabled": "No Modules Enabled", "lunasea.OneHourAgo": "1 Hour Ago", + "lunasea.OneMinuteAgo": "1 Minute Ago", "lunasea.Options": "Options", "lunasea.Page": "Page", "lunasea.PlatformSpecific": "Platform-Specific",