feat(tautulli): add ability to open media in Plex

This commit is contained in:
Jagandeep Brar
2023-02-16 17:07:56 -05:00
parent 47ff2628a2
commit 5cf1a06cec
11 changed files with 149 additions and 19 deletions

View File

@@ -1,17 +1,17 @@
import 'package:lunasea/system/logger.dart';
import 'package:url_launcher/url_launcher.dart';
import 'package:url_launcher/url_launcher_string.dart';
extension StringAsLinksExtension on String {
Future<bool> _launchUniversal(uri) async {
return await launchUrl(
Future<bool> _launchUniversal(String uri) async {
return await launchUrlString(
uri,
webOnlyWindowName: '_blank',
mode: LaunchMode.externalNonBrowserApplication,
mode: LaunchMode.externalApplication,
);
}
Future<bool> _launchDefault(uri) async {
return await launchUrl(
Future<bool> _launchDefault(String uri) async {
return await launchUrlString(
uri,
webOnlyWindowName: '_blank',
mode: LaunchMode.platformDefault,
@@ -20,9 +20,8 @@ extension StringAsLinksExtension on String {
Future<void> openLink() async {
try {
Uri uri = Uri.parse(this);
if (await _launchUniversal(uri)) return;
await _launchDefault(uri);
if (await _launchUniversal(this)) return;
await _launchDefault(this);
} catch (error, stack) {
LunaLogger().error(
'Unable to open URL',
@@ -32,6 +31,10 @@ extension StringAsLinksExtension on String {
}
}
Future<bool> canOpenUrl() async {
return canLaunchUrlString(this);
}
Future<void> openImdb() async =>
await 'https://www.imdb.com/title/$this'.openLink();