129 Commits

Author SHA1 Message Date
Jagandeep Brar
0b59b7202d release: v10.2.2
[skip ci]
2022-12-22 10:49:42 -06:00
Jagandeep Brar
d86a5a0c72 release(testflight): candidate
[skip ci]
2022-12-21 15:14:01 -06:00
Jagandeep Brar
7a6c9772f3 release(testflight): beta
[skip ci]
2022-12-21 14:25:41 -06:00
Weblate (bot)
b22b87b6d8 chore: translations update from Hosted Weblate (#723)
Co-authored-by: Gil <almontegil@gmail.com>
Co-authored-by: Oğuz Ersen <oguz@ersen.moe>
Co-authored-by: 愿你多年归来仍是少年 <onestime@126.com>
2022-12-21 13:59:32 -05:00
Jagandeep Brar
d4774b0542 feat(android): add option to disable back action to open drawer
[skip ci]
2022-12-21 12:57:44 -06:00
Jagandeep Brar
e6d7e50a45 docs: remove documentation from main repository
[skip ci]
2022-12-18 01:38:04 -05:00
Jagandeep Brar
7ba4b2f018 release(testflight): beta
[skip ci]
2022-12-17 19:47:49 -05:00
Jagandeep Brar
4c99ecf927 fix(tautulli): cached or downloaded activity sessions could not be opened 2022-12-16 16:57:59 -05:00
Jagandeep Brar
edb645f887 fix(linux): install binaries to /usr/share instead of /usr/local/lib
[skip ci]
2022-11-30 16:35:28 -05:00
Jagandeep Brar
d688fe84ef release(testflight): beta
[skip ci]
2022-11-28 22:11:42 -05:00
Jagandeep Brar
c46924c996 feat(linux): include MD5 sums in Debian distributions 2022-11-27 13:34:18 -05:00
Jagandeep Brar
56f26e701e chore(flutter): upgrade Flutter packages 2022-11-27 13:34:18 -05:00
Jagandeep Brar
968fe9cbbc refactor(uiux): disable horizontal swiping/scrolling between pages 2022-11-27 13:34:18 -05:00
Jagandeep Brar
19f7ecf885 chore(flutter): upgrade to Flutter 3.3.9/8f2221fbef 2022-11-27 13:34:18 -05:00
Jagandeep Brar
3f10675422 fix(calendar): scroll to last past date with content when selected date has no content 2022-11-27 13:34:18 -05:00
Jagandeep Brar
746bcc5ac9 chore(ci): update using actions versions 2022-11-24 22:38:09 -05:00
Jagandeep Brar
721c1c957e chore(ci): set required iptables policy for Ubuntu 22.04 2022-11-24 22:26:14 -05:00
Jagandeep Brar
0e09821842 chore(ci): supply web-app-id to Firebase configuration tool 2022-11-24 22:00:27 -05:00
Jagandeep Brar
607ac4391a chore: bump version to v10.2.2 2022-11-24 21:52:43 -05:00
Jagandeep Brar
b1d01e02ca feat(linux): publish Linux builds as Debian archive (.deb)
[skip ci]
2022-11-24 21:51:21 -05:00
Jagandeep Brar
3858de8d65 chore(ci): install required Linux build tools
[skip ci]
2022-11-24 20:19:08 -05:00
Jagandeep Brar
a390a80ef1 feat(linux): publish Linux builds as tarball (.tar.gz)
[skip ci]
2022-11-24 19:50:50 -05:00
Jagandeep Brar
322ec55546 release: v10.2.1
[skip ci]
2022-11-06 18:40:32 -05:00
Jagandeep Brar
34169bb1ff release(testflight): candidate
[skip ci]
2022-11-05 01:32:23 -04:00
Jagandeep Brar
0f4aef0e32 release(testflight): beta
[skip ci]
2022-11-04 19:39:21 -04:00
Jagandeep Brar
cf5bfca265 chore(flutter): upgrade to Flutter 3.3.7/857bd6b74c 2022-11-04 16:53:53 -04:00
Jagandeep Brar
affac3abc6 chore(flutter): update packages
[skip ci]
2022-11-04 15:43:33 -04:00
Jagandeep Brar
9826c5604d chore(node): update packages
[ski ci]
2022-11-04 15:21:26 -04:00
Jagandeep Brar
ea7a8ffc22 chore(ruby): update to Ruby@2.7.6, update gems
[skip ci]
2022-11-04 15:20:21 -04:00
Jagandeep Brar
4cb8caaa1d release(testflight): candidate
[skip ci]
2022-10-26 14:12:21 -05:00
Jagandeep Brar
53cb7f6675 release(testflight): beta
[skip ci]
2022-10-26 13:06:00 -05:00
Jagandeep Brar
123ab7f6a7 chore(locale): generate localizations 2022-10-26 11:00:53 -05:00
Jagandeep Brar
caf054aea2 chore: update CONTRIBUTORS.md
[skip ci]
2022-10-26 11:00:23 -05:00
Weblate (bot)
125596498e chore(locale): translations update from Hosted Weblate (#712)
Co-authored-by: Robert <rob2310@yahoo.de>
Co-authored-by: Florin Voicu <florin.bkk@gmail.com>
Co-authored-by: fyu0h <biiigback@gmail.com>

[skip ci]
2022-10-26 11:57:35 -04:00
Jagandeep Brar
38f2eb4cb2 fix(firebase): inject service file for older OS versions 2022-10-26 11:52:20 -04:00
Jagandeep Brar
7d437d5c3a feat(web): support local filesystem read/save actions 2022-10-25 12:32:30 -04:00
Jagandeep Brar
3d794099a5 chore(flutter): upgrade packages 2022-10-22 14:17:09 -05:00
Jagandeep Brar
b7ceebcb67 fix(android): utilize Kotlin v1.7.20 & Gradle v7.1.2 2022-10-22 14:15:56 -05:00
Jagandeep Brar
25e0d05142 fix(android): support Android 13 filesystem access 2022-10-22 13:19:36 -05:00
Jagandeep Brar
250a494903 fix(android): revert applying Google Play Services plugin during gradle build
[skip ci]
2022-10-22 13:08:57 -05:00
Jagandeep Brar
b47ef16001 chore(fastlane): update gems
[skip ci]
2022-10-22 12:50:05 -05:00
Jagandeep Brar
71f597baa7 fix(android): apply Google Play Services plugin during gradle build
[skip ci]
2022-10-21 18:36:17 -05:00
Jagandeep Brar
abf117ac92 chore(ci): fix typo in workflow configuration 2022-10-21 14:47:47 -05:00
Jagandeep Brar
f3a3f222bd fix(firebase): upgrade to Firebase v10 (#717) 2022-10-21 15:45:52 -04:00
Jagandeep Brar
f9a2a1c85c chore(flutter): lock Flutter version during CI/CD builds 2022-10-20 15:56:42 -05:00
Jagandeep Brar
7d469e7bad chore(github): update issue template links
[skip ci]
2022-10-20 15:32:33 -05:00
Mário Franco
137a52ccd4 chore(build): rename Android debug build (#714)
[skip ci]
2022-10-20 16:18:59 -04:00
Jagandeep Brar
9a1769595d release(testflight): beta
[skip ci]
2022-09-28 14:03:10 -04:00
Jagandeep Brar
9b930493d7 chore(contributors): add @osjurso for translation
[skip ci]
2022-09-28 13:05:34 -04:00
Weblate (bot)
bfe5dc77a0 chore: translations update from Hosted Weblate (#706)
Co-authored-by: Oğuz Ersen <oguz@ersen.moe>
Co-authored-by: Olav Markus Sjursø <olav.markus@sjurso.no>
Co-authored-by: 愿你多年归来仍是少年 <onestime@126.com>

[skip ci]
2022-09-28 13:03:40 -04:00
Jagandeep Brar
3ac2c5d791 feat(calendar): remove option to show previous days in schedule view, now always shows them 2022-09-28 01:43:53 -04:00
Jagandeep Brar
f1226e5638 feat(calendar): scroll to selected date when switching from calendar to schedule view 2022-09-28 01:28:16 -04:00
Jagandeep Brar
ee91085b07 release(testflight): beta
[skip ci]
2022-09-27 22:59:34 -04:00
Jagandeep Brar
e287baf046 chore(window): do not initialize window manager in debug mode
[skip ci]
2022-09-27 22:57:36 -04:00
Jagandeep Brar
8788f76e5c chore(recovery): small refactoring of recovery mode implementation
[skip ci]
2022-09-27 22:53:49 -04:00
Jagandeep Brar
6eff6c902c fix(calendar): start to current date when past days are enabled 2022-09-27 02:03:21 -04:00
Jagandeep Brar
d9623e992d fix(uiux): add circular radius to linear progression bars 2022-09-26 21:02:50 -04:00
Jagandeep Brar
958e6f1568 refactor(uiux): remove forced-upper case on headers 2022-09-26 18:41:10 -04:00
Jagandeep Brar
f3931c6b08 fix(backup): edge-case where backup/restore would fail 2022-09-26 12:54:14 -04:00
Jagandeep Brar
3dd087e361 feat(modules): ability to set the boot module 2022-09-26 11:48:14 -04:00
Jagandeep Brar
ac838f99a9 refactor(settings): consolidate appearance, network, and localization pages 2022-09-26 11:44:07 -04:00
Jagandeep Brar
c9bd02b750 feat(radarr): support moving files when editing the storage path 2022-09-26 11:07:19 -04:00
Jagandeep Brar
cfbfb2b3ad docs: update platform restrictions
[skip ci]
2022-09-25 14:31:29 -04:00
Jagandeep Brar
bccd1a43c4 feat(-arr): button to open indexer information page 2022-09-23 23:51:56 -04:00
Jagandeep Brar
70ed750652 fix(calendar): label unreleased movies as unreleased instead of missing 2022-09-23 23:34:57 -04:00
Jagandeep Brar
c76418d26f feat(lidarr): add MusicBrainz to links 2022-09-23 23:25:02 -04:00
Jagandeep Brar
c062b3d786 feat: launch recovery mode on bootstrap failure 2022-09-23 17:13:37 -04:00
Jagandeep Brar
a9d551df5e chore: bump version to v10.2.1
[skip ci]
2022-09-22 14:55:24 -04:00
Jagandeep Brar
dc617ed151 chore(ci): do not overwrite PATH environmental variable
[skip ci]
2022-09-22 13:05:56 -04:00
Jagandeep Brar
9f31120cd5 release: v10.2.0
[skip ci]
2022-09-22 12:14:26 -04:00
Jagandeep Brar
e9c922ff39 chore(ci): notify Discord after successful S3 deployment
[skip ci]
2022-09-22 11:34:22 -04:00
Jagandeep Brar
2ab098962d chore(router): migrate to go_router v5
[skip ci]
2022-09-22 11:09:23 -04:00
Jagandeep Brar
863972cf86 release(testflight): candidate
[skip ci]
2022-09-22 11:06:29 -04:00
Jagandeep Brar
fd170106b4 release(testflight): beta
[skip ci]
2022-09-22 10:29:19 -04:00
Jagandeep Brar
af83820b85 chore(api): create stub APIs for remaining modules (#707) 2022-09-22 09:28:17 -04:00
Jagandeep Brar
a6be658164 feat(search): view download client queue via overlay sheet 2022-09-22 00:57:31 -04:00
Jagandeep Brar
0c59886657 feat(-arr): view download client queue via overlay sheet 2022-09-21 23:43:55 -04:00
Jagandeep Brar
a78aa001fa release(testflight): candidate
[skip ci]
2022-09-19 18:40:13 -04:00
Jagandeep Brar
1e94621ce6 release(testflight): beta
[skip ci]
2022-09-19 11:12:42 -04:00
Jagandeep Brar
e477ecafcc fix(sonarr): support Sonarr v4 API changes 2022-09-18 21:31:58 -04:00
Jagandeep Brar
da20cbb127 docs(contributors): add @carlesmu & @timrettop for translation
[skip ci]
2022-09-17 12:03:14 -04:00
Jagandeep Brar
fb5cd59d6b chore(locale): add support for Catalan
[skip ci]
2022-09-17 11:59:32 -04:00
Jagandeep Brar
d3d090e277 fix(resources): remove feedback board resource 2022-09-17 11:16:15 -04:00
Jagandeep Brar
3a5e19b02c fix(sheets): set default overlay theme for sheets, remove bottom radius clipping 2022-09-17 02:06:24 -04:00
Jagandeep Brar
83e8374c33 fix(android): support Android 13 notification prompt 2022-09-17 00:27:53 -04:00
Jagandeep Brar
82ef5f0c52 fix(notifications): correctly inject service worker for notification handling 2022-09-17 00:14:53 -04:00
Jagandeep Brar
7aae480722 fix(cache): add type-safety to LRU cache 2022-09-17 00:07:29 -04:00
Jagandeep Brar
750d96ec13 chore: upgrade to Flutter 3.3.2/a4ff2c53d8 2022-09-17 00:07:17 -04:00
Jagandeep Brar
35cba0ab27 chore: update node & ruby packages
[skip ci]
2022-09-15 15:38:22 -04:00
Jagandeep Brar
b23f8ad633 release(testflight): candidate
[skip ci]
2022-09-10 11:55:25 -04:00
Jagandeep Brar
85d9aff094 release(testflight): beta
[skip ci]
2022-09-10 11:54:26 -04:00
Jagandeep Brar
a8827b5c9e chore(ci): install Firebase configuration via pregenerated options via secrets 2022-09-08 17:33:21 -04:00
Jagandeep Brar
d76713dcd6 chore(ci): install xcodeproj gem during build 2022-09-08 15:13:57 -04:00
Jagandeep Brar
e3b771bed1 chore(ci): inject service worker only during web build 2022-09-08 14:33:17 -04:00
Jagandeep Brar
136cda5215 fix(settings): show notification settings area on web 2022-09-08 10:00:33 -04:00
Jagandeep Brar
579531c30a fix(web): correctly register notification service worker 2022-09-08 00:51:05 -04:00
Jagandeep Brar
dcb59667c1 chore: upgrade to Flutter 3.3.1/3efdf03e73 2022-09-08 00:47:58 -04:00
Jagandeep Brar
4b411107f7 feat(web): enable service worker processing of notifications
[skip ci]
2022-09-08 00:14:21 -04:00
Jagandeep Brar
c0810574ce chore(sabnzbd): remove cononical export files
[skip ci]
2022-09-07 23:55:41 -04:00
Jagandeep Brar
3c9d705f80 chore(wake_on_lan): refactor wake on LAN integration
[skip ci]
2022-09-07 23:44:07 -04:00
Jagandeep Brar
6f9e0e87ce fix(images): validate image availability before fading-in
[skip ci]
2022-09-07 23:40:08 -04:00
Jagandeep Brar
c4945351ca release(testflight): beta
[skip ci]
2022-09-03 02:22:19 -04:00
Jagandeep Brar
a1b736ae0c feat(sabnzbd): rewrite SABnzbd API interface
[skip ci]
2022-09-03 02:04:50 -04:00
David K
2adfe59bd5 refactor(remove logos): removes unused logo pngs 2022-09-02 19:43:39 -04:00
David K
113b294346 feat(logo): add Vectorized app logos 2022-09-02 19:43:39 -04:00
Jagandeep Brar
19133df94b release(testflight): beta
[skip ci]
2022-09-02 19:41:54 -04:00
Jagandeep Brar
731e3c93c8 chore(contributors): add @Slam4uk for translation
[skip ci]
2022-09-01 16:35:54 -04:00
Jagandeep Brar
a160f0941f feat(locale): support Croatian 2022-09-01 16:32:18 -04:00
Weblate (bot)
65d1478b00 chore: translations update from Hosted Weblate (#697)
Co-authored-by: Gil <almontegil@gmail.com>
Co-authored-by: 愿你多年归来仍是少年 <onestime@126.com>
Co-authored-by: Darinko Stojanovic <tee_feste.0t@icloud.com>
Co-authored-by: Александр Лахин <slam4uk@gmail.com>
2022-09-01 16:22:54 -04:00
Jagandeep Brar
b851b87515 chore(contributors): add @Irishsmurf for design
[skip ci]
2022-09-01 16:20:15 -04:00
David K
96b2b1b5b0 feat(android): add support for monochromatic adaptive icon (#701) 2022-09-01 16:18:53 -04:00
Jagandeep Brar
3d0c5209cb feat(settings): re-add option to disable Sentry logging 2022-09-01 16:14:10 -04:00
Jagandeep Brar
57bbb80a01 feat(logging): integrate Sentry logging support for all platforms 2022-09-01 16:14:10 -04:00
Jagandeep Brar
3593eb329b fix(notifications): enable in-app notifications config was inversed 2022-08-31 23:22:45 -04:00
Jagandeep Brar
f8dca60331 chore(android): target Android SDK 33 2022-08-31 23:22:45 -04:00
Jagandeep Brar
864082fd40 fix(scrolling): remove custom scrolling behaviour 2022-08-31 23:22:45 -04:00
Jagandeep Brar
b963ddf401 chore: upgrade to Flutter 3.3.0/5e9e0e0aa8 2022-08-31 23:22:45 -04:00
Jagandeep Brar
83d3ec42e3 chore(flutter): update packages 2022-08-30 09:29:39 -04:00
Jagandeep Brar
8ba4fb3b8d docs: add app ID to Algolia configuration
[skip ci]
2022-08-30 09:10:34 -04:00
Jagandeep Brar
383c728481 docs: remove Overseerr from docs homepage
[skip ci]
2022-08-30 09:07:46 -04:00
Jagandeep Brar
ea01a21189 docs: integrate Algolia search
[skip ci]
2022-08-30 09:06:25 -04:00
Jagandeep Brar
b812c7b4a1 fix(graphs): support fl_chart@0.55.1
[skip ci]
2022-08-29 23:25:38 -04:00
Jagandeep Brar
96b2067577 chore(refactor): move API models, types, controllers to root of module API
[skip ci]
2022-08-29 22:59:37 -04:00
Jagandeep Brar
1d4207ae51 feat(router): re-implementation of routing via go_router
[skip ci]
2022-08-29 22:51:21 -04:00
Jagandeep Brar
9960124d32 fix(database): prevent deadlock in database deletion actions 2022-08-29 14:56:37 -04:00
Jagandeep Brar
aed7e8526f release(testflight): candidate
[skip ci]
2022-08-21 19:20:25 -04:00
Jagandeep Brar
b67c916ac6 release(testflight): beta
[skip ci]
2022-08-21 18:52:13 -04:00
Jagandeep Brar
77b12bc969 release(testflight): edge
[skip ci]
2022-08-21 18:03:23 -04:00
Jagandeep Brar
11ae4a2644 chore(version): bump to 10.1.2
[skip ci]
2022-08-21 17:38:41 -04:00
1122 changed files with 10731 additions and 9628 deletions

View File

@@ -322,6 +322,78 @@
"contributions": [
"translation"
]
},
{
"login": "Irishsmurf",
"name": "David K",
"avatar_url": "https://avatars.githubusercontent.com/u/587220?v=4",
"profile": "http://www.paddez.com/",
"contributions": [
"design"
]
},
{
"login": "Slam4uk",
"name": "Slam4uk",
"avatar_url": "https://avatars.githubusercontent.com/u/78175288?v=4",
"profile": "https://github.com/Slam4uk",
"contributions": [
"translation"
]
},
{
"login": "timrettop",
"name": "Tim Potter",
"avatar_url": "https://avatars.githubusercontent.com/u/434913?v=4",
"profile": "https://github.com/timrettop",
"contributions": [
"translation"
]
},
{
"login": "carlesmu",
"name": "Carles Muñoz Gorriz",
"avatar_url": "https://avatars.githubusercontent.com/u/1310090?v=4",
"profile": "https://github.com/carlesmu",
"contributions": [
"translation"
]
},
{
"login": "osjurso",
"name": "Olav Markus Sjursø",
"avatar_url": "https://avatars.githubusercontent.com/u/17827103?v=4",
"profile": "https://github.com/osjurso",
"contributions": [
"translation"
]
},
{
"login": "fyu0h",
"name": "fyu0h",
"avatar_url": "https://avatars.githubusercontent.com/u/33602841?v=4",
"profile": "https://github.com/fyu0h",
"contributions": [
"translation"
]
},
{
"login": "johnflorin",
"name": "Florin",
"avatar_url": "https://avatars.githubusercontent.com/u/45756085?v=4",
"profile": "https://github.com/johnflorin",
"contributions": [
"translation"
]
},
{
"login": "tuzumbear",
"name": "tuzumbear",
"avatar_url": "https://avatars.githubusercontent.com/u/61370405?v=4",
"profile": "https://github.com/tuzumbear",
"contributions": [
"translation"
]
}
],
"contributorsPerLine": 8,

View File

@@ -2,7 +2,6 @@
.dart_tool/
android/
build/
docs/
ios/
linux/
localization/

View File

@@ -1,14 +1,11 @@
blank_issues_enabled: false
contact_links:
- name: Support via Discord
- name: Feature Requests & Support via Discord
url: https://www.lunasea.app/discord
about: Chat with the developer and users on support and setup related topics.
about: Request new features and get support from the community
- name: Support via GitHub Discussions
url: https://github.com/JagandeepBrar/LunaSea/discussions
about: Ask questions and discuss with other community members
- name: Support via Reddit
url: https://www.lunasea.app/reddit
about: Ask the developer and other redditors for support and setup related topics.
- name: Feedback & Feature Requests Board
url: https://feedback.lunasea.app
about: Request new features and modules to be implemented into LunaSea.
about: Ask the developer and other redditors for support and setup related topics

View File

@@ -33,6 +33,10 @@ inputs:
description: 'Code Signing Certificate'
required: false
default: ''
firebase-service-worker:
description: 'Firebase Service Worker'
required: false
default: ''
google-play-key:
description: 'Google Play Store API Key'
required: false
@@ -46,7 +50,7 @@ runs:
using: composite
steps:
- name: Checkout Repository
uses: actions/checkout@v2
uses: actions/checkout@v3
with:
fetch-depth: 0
@@ -65,13 +69,14 @@ runs:
- name: Install Flutter
uses: subosito/flutter-action@v2
with:
flutter-version: '3.3.9'
channel: stable
cache: true
cache-key: ${{ github.sha }}
- name: Install Java
if: ${{ inputs.platform == 'android' }}
uses: actions/setup-java@v2
uses: actions/setup-java@v3
with:
distribution: zulu
java-version: 11
@@ -95,11 +100,11 @@ runs:
- name: Setup Docker
if: ${{ inputs.platform == 'web' }}
uses: docker/setup-buildx-action@v1
uses: docker/setup-buildx-action@v2
- name: Setup Match SSH Keys
if: ${{ inputs.platform == 'ios' || inputs.platform == 'macos' }}
uses: webfactory/ssh-agent@v0.5.4
uses: webfactory/ssh-agent@v0.6.0
with:
ssh-private-key: ${{ inputs.match-ssh-private-key }}
@@ -115,21 +120,27 @@ runs:
- name: Setup Firebase Configuration
if: ${{ inputs.firebase-token != '' }}
shell: bash
env:
FIREBASE_TOKEN: ${{ inputs.firebase-token }}
run: |
npm install -g firebase-tools
gem install --user-install xcodeproj
dart pub global activate flutterfire_cli
flutterfire configure \
--project=comettools-lunasea \
--token=${{ inputs.firebase-token }} \
--platforms=android,ios,macos,web \
--android-package-name=app.lunasea.lunasea \
--ios-bundle-id=app.lunasea.lunasea \
--macos-bundle-id=app.lunasea.lunasea \
--web-app-id=1:511093487055:web:37d2f8e4c960708add8eba \
--out=lib/firebase/options.dart \
--platforms=android,ios,macos,web \
--no-apply-gradle-plugins \
--yes
- name: Setup Firebase Service Worker
if: ${{ inputs.firebase-service-worker != '' }}
shell: bash
run: echo ${{ inputs.firebase-service-worker }} | base64 --decode > web/firebase-messaging-sw.js
- name: Setup Android Platform
if: ${{ inputs.platform == 'android' }}
shell: bash
@@ -147,6 +158,9 @@ runs:
shell: bash
run: |
flutter config --enable-linux-desktop
sudo iptables -P FORWARD ACCEPT
sudo apt-get update -y
sudo apt-get install -y clang cmake ninja-build pkg-config libgtk-3-dev liblzma-dev
- name: Setup macOS Platform
if: ${{ inputs.platform == 'macos' }}

View File

@@ -28,7 +28,7 @@ runs:
using: composite
steps:
- name: Checkout Repository
uses: actions/checkout@v2
uses: actions/checkout@v3
with:
fetch-depth: 0
@@ -52,11 +52,11 @@ runs:
- name: Set up Docker Buildx
if: ${{ inputs.channel == 'docker' }}
uses: docker/setup-buildx-action@v1
uses: docker/setup-buildx-action@v2
- name: Setup GitHub Package Registry
if: ${{ inputs.channel == 'docker' }}
uses: docker/login-action@v1
uses: docker/login-action@v2
with:
registry: ghcr.io
username: ${{ inputs.ghcr-actor }}

View File

@@ -1,4 +1,4 @@
name: Release
name: Build
on:
push:
@@ -25,6 +25,7 @@ jobs:
flavor: ${{ inputs.flavor }}
secrets:
FIREBASE_TOKEN: ${{ secrets.FIREBASE_TOKEN }}
SENTRY_DSN: ${{ secrets.SENTRY_DSN }}
build-android:
name: Build Android
@@ -58,6 +59,9 @@ jobs:
name: Build Linux
needs: [ prepare ]
uses: JagandeepBrar/LunaSea/.github/workflows/build_linux.yml@master
with:
build-number: ${{ needs.prepare.outputs.build-number }}
build-version: ${{ needs.prepare.outputs.build-version }}
build-macos:
name: Build macOS
@@ -89,6 +93,7 @@ jobs:
build-flavor: ${{ needs.prepare.outputs.build-flavor }}
build-title: ${{ needs.prepare.outputs.build-title }}
secrets:
FIREBASE_SERVICE_WORKER: ${{ secrets.FIREBASE_SERVICE_WORKER }}
FIREBASE_TOKEN: ${{ secrets.FIREBASE_TOKEN }}
build-windows:
@@ -106,8 +111,8 @@ jobs:
needs: [ prepare, build-android ]
uses: JagandeepBrar/LunaSea/.github/workflows/publish_android.yml@master
with:
build-changelog: ${{ needs.prepare.outputs.build-changelog }}
build-flavor: ${{ needs.prepare.outputs.build-flavor }}
build-motd: ${{ needs.prepare.outputs.build-motd }}
build-title: ${{ needs.prepare.outputs.build-title }}
secrets:
GOOGLE_PLAY_API: ${{ secrets.GOOGLE_PLAY_API }}
@@ -117,8 +122,8 @@ jobs:
needs: [ prepare, build-ios ]
uses: JagandeepBrar/LunaSea/.github/workflows/publish_ios.yml@master
with:
build-changelog: ${{ needs.prepare.outputs.build-changelog }}
build-flavor: ${{ needs.prepare.outputs.build-flavor }}
build-motd: ${{ needs.prepare.outputs.build-motd }}
secrets:
APPLE_ID: ${{ secrets.APPLE_ID }}
APPLE_ITC_TEAM_ID: ${{ secrets.APPLE_ITC_TEAM_ID }}
@@ -141,8 +146,8 @@ jobs:
needs: [ prepare, build-macos ]
uses: JagandeepBrar/LunaSea/.github/workflows/publish_macos.yml@master
with:
build-changelog: ${{ needs.prepare.outputs.build-changelog }}
build-flavor: ${{ needs.prepare.outputs.build-flavor }}
build-motd: ${{ needs.prepare.outputs.build-motd }}
secrets:
APPLE_ID: ${{ secrets.APPLE_ID }}
APPLE_ITC_TEAM_ID: ${{ secrets.APPLE_ITC_TEAM_ID }}
@@ -178,10 +183,9 @@ jobs:
notify:
name: Notify
needs: [ prepare, publish-android, publish-ios, publish-linux, publish-macos, publish-web, publish-s3 ]
needs: [ prepare, publish-s3 ]
uses: JagandeepBrar/LunaSea/.github/workflows/notify.yml@master
with:
build-changelog: ${{ needs.prepare.outputs.build-changelog }}
build-flavor: ${{ needs.prepare.outputs.build-flavor }}
build-title: ${{ needs.prepare.outputs.build-title }}
secrets:

View File

@@ -2,8 +2,57 @@ name: 'Build Linux'
on:
workflow_call:
inputs:
build-number:
required: true
type: string
build-version:
required: true
type: string
jobs:
build-debian:
name: Debian Archive
runs-on: ubuntu-latest
steps:
- name: Setup Environment
uses: JagandeepBrar/LunaSea/.github/actions/prepare_for_build@master
with:
platform: linux
- name: Build LunaSea
run: flutter build linux
- name: Prepare Artifact
run: dart ${{github.workspace }}/scripts/generate_debian.dart "${{ inputs.build-version }}+${{ inputs.build-number }}"
- name: Upload Artifact
uses: actions/upload-artifact@v3
with:
name: linux-debian
path: ${{ github.workspace }}/output
build-tarball:
name: Tarball Archive
runs-on: ubuntu-latest
steps:
- name: Setup Environment
uses: JagandeepBrar/LunaSea/.github/actions/prepare_for_build@master
with:
platform: linux
- name: Build LunaSea
run: flutter build linux
- name: Prepare Artifact
run: tar czf output/lunasea-linux-amd64.tar.gz -C build/linux/x64/release/bundle/ .
- name: Upload Artifact
uses: actions/upload-artifact@v3
with:
name: linux-tarball
path: ${{ github.workspace }}/output
build-snapcraft:
name: Snapcraft
runs-on: ubuntu-latest
@@ -25,3 +74,5 @@ jobs:
with:
name: linux-snapcraft
path: ${{ github.workspace }}/output

View File

@@ -13,6 +13,8 @@ on:
secrets:
FIREBASE_TOKEN:
required: true
FIREBASE_SERVICE_WORKER:
required: true
jobs:
build-hosted:
@@ -23,6 +25,7 @@ jobs:
uses: JagandeepBrar/LunaSea/.github/actions/prepare_for_build@master
with:
firebase-token: ${{ secrets.FIREBASE_TOKEN }}
firebase-service-worker: ${{ secrets.FIREBASE_SERVICE_WORKER }}
platform: web
- name: Build LunaSea
@@ -84,7 +87,7 @@ jobs:
return tags.map((tag) => `ghcr.io/jagandeepbrar/lunasea:${tag}`).join(',');
- name: Build LunaSea
uses: docker/build-push-action@v2
uses: docker/build-push-action@v3
with:
context: .
outputs: type=docker,dest=${{ github.workspace}}/output/lunasea-web-docker.tar

View File

@@ -1,20 +0,0 @@
name: Clear Flutter Cache
on:
workflow_dispatch
jobs:
clear:
name: Clear Cache
runs-on: ubuntu-latest
steps:
- name: Install Flutter
uses: subosito/flutter-action@v2
with:
channel: stable
cache: true
cache-key: ${{ github.sha }}
- name: Flutter Doctor
working-directory: ${{ github.workspace }}
run: flutter doctor -v

View File

@@ -16,11 +16,8 @@ jobs:
issue-comment: >
Hi @{issue-author}! We use the issue tracker exclusively
for bug reports and issues. However, this issue appears
to be a feature request. Please use the following channels:
- [Feedback & Feature Requests Board](https://feedback.lunasea.app)
- [Discord](https://www.lunasea.app/discord)
to be a feature request. Please use the [Discord](https://www.lunasea.app/discord)
to request new features.
close-issue: true
lock-issue: true
issue-lock-reason: 'off-topic'

View File

@@ -3,9 +3,6 @@ name: Notify
on:
workflow_call:
inputs:
build-changelog:
required: true
type: string
build-flavor:
required: true
type: string
@@ -29,7 +26,7 @@ jobs:
runs-on: ubuntu-latest
steps:
- name: Checkout Repository
uses: actions/checkout@v2
uses: actions/checkout@v3
with:
fetch-depth: 0
@@ -57,12 +54,11 @@ jobs:
id: embed
uses: actions/github-script@v6
env:
BUILD_CHANGELOG: ${{ inputs.build-changelog }}
BUILD_FLAVOR: ${{ inputs.build-flavor }}
BUILD_TITLE: ${{ inputs.build-title }}
with:
result-encoding: string
script: return require('.github/scripts/notify-embed.js')();
script: return require('.github/scripts/notify_discord_embed.js')();
- name: Send Discord Message
uses: Ilshidur/action-discord@0.3.2

View File

@@ -8,12 +8,12 @@ on:
required: true
outputs:
build-changelog:
description: "Build Changelog"
value: ${{ jobs.build-details.outputs.build-changelog }}
build-flavor:
description: "Build Flavor"
value: ${{ jobs.build-details.outputs.build-flavor }}
build-motd:
description: "Build MOTD"
value: ${{ jobs.build-details.outputs.build-motd }}
build-number:
description: "Build Number"
value: ${{ jobs.build-details.outputs.build-number }}
@@ -27,20 +27,22 @@ on:
secrets:
FIREBASE_TOKEN:
required: true
SENTRY_DSN:
required: true
jobs:
build-details:
name: Build Details
runs-on: ubuntu-latest
outputs:
build-changelog: ${{ steps.build-changelog.outputs.result }}
build-motd: ${{ steps.build-motd.outputs.result }}
build-flavor: ${{ steps.build-flavor.outputs.result }}
build-number: ${{ steps.build-number.outputs.result }}
build-title: ${{ steps.build-title.outputs.output }}
build-version: ${{ steps.build-version.outputs.current-version }}
steps:
- name: Checkout Repository
uses: actions/checkout@v2
uses: actions/checkout@v3
with:
fetch-depth: 0
@@ -48,7 +50,7 @@ jobs:
id: commit-count
run: |
COUNT=`git rev-list HEAD --count`
echo "::set-output name=commit-count::$COUNT"
echo "commit-count=$COUNT" >> $GITHUB_OUTPUT
- name: Build Flavor
id: build-flavor
@@ -68,8 +70,8 @@ jobs:
}
return 'edge';
- name: Build Changelog
id: build-changelog
- name: Build MOTD
id: build-motd
uses: actions/github-script@v6
env:
FLAVOR: ${{ steps.build-flavor.outputs.result }}
@@ -91,24 +93,24 @@ jobs:
- name: Build Version
id: build-version
uses: martinbeentjes/npm-get-version-action@v1.1.0
uses: martinbeentjes/npm-get-version-action@main
- name: Build Title
id: build-title
run: |
HASH=`git rev-parse --short ${{ github.sha }}`
TITLE="v${{ steps.build-version.outputs.current-version }}-${{ steps.build-flavor.outputs.result }}-${{ steps.build-number.outputs.result }}-$HASH"
echo "::set-output name=output::$TITLE"
echo "output=$TITLE" >> $GITHUB_OUTPUT
- name: Log Build Details
env:
CHANGELOG: ${{ steps.build-changelog.outputs.result }}
FLAVOR: ${{ steps.build-flavor.outputs.result }}
MOTD: ${{ steps.build-motd.outputs.result }}
NUMBER: ${{ steps.build-number.outputs.result }}
TITLE: ${{ steps.build-title.outputs.output }}
VERSION: ${{ steps.build-version.outputs.current-version }}
run: |
echo "Build Changelog: $CHANGELOG"
echo "Build MOTD: $MOTD"
echo "Build Flavor: $FLAVOR"
echo "Build Number: $NUMBER"
echo "Build Title: $TITLE"
@@ -131,6 +133,7 @@ jobs:
export FLAVOR=${{ needs.build-details.outputs.build-flavor }}
export COMMIT=${{ github.sha }}
export BUILD=${{ needs.build-details.outputs.build-number }}
export SENTRY_DSN=${{ secrets.SENTRY_DSN }}
flutter packages pub run environment_config:generate
- name: Generate Localization

View File

@@ -3,10 +3,10 @@ name: Publish Android
on:
workflow_call:
inputs:
build-changelog:
build-flavor:
required: true
type: string
build-flavor:
build-motd:
required: true
type: string
build-title:
@@ -53,11 +53,11 @@ jobs:
- name: Generate Changelog
env:
CHANGELOG: ${{ inputs.build-changelog }}
CHANGELOG_PATH: ${{ github.workspace }}/android/fastlane/metadata/android/en-CA/changelogs
MOTD: ${{ inputs.build-motd }}
OUTPUT_PATH: ${{ github.workspace }}/android/fastlane/metadata/android/en-CA/changelogs
run: |
mkdir -p $CHANGELOG_PATH
echo $CHANGELOG > $CHANGELOG_PATH/default.txt
mkdir -p $OUTPUT_PATH
echo $MOTD > $OUTPUT_PATH/default.txt
- name: Deploy to Google Play Store
working-directory: ${{ github.workspace }}/android

View File

@@ -3,10 +3,10 @@ name: Publish iOS
on:
workflow_call:
inputs:
build-changelog:
build-flavor:
required: true
type: string
build-flavor:
build-motd:
required: true
type: string
@@ -43,11 +43,11 @@ jobs:
- name: Generate Changelog
env:
CHANGELOG: ${{ inputs.build-changelog }}
CHANGELOG_PATH: ${{ github.workspace }}/ios/fastlane
MOTD: ${{ inputs.build-motd }}
OUTPUT_PATH: ${{ github.workspace }}/ios/fastlane
run: |
mkdir -p $CHANGELOG_PATH
echo $CHANGELOG > $CHANGELOG_PATH/changelog.txt
mkdir -p $OUTPUT_PATH
echo $MOTD > $OUTPUT_PATH/changelog.txt
- name: Deploy to App Store Connect
working-directory: ${{ github.workspace }}/ios

View File

@@ -3,10 +3,10 @@ name: Publish macOS
on:
workflow_call:
inputs:
build-changelog:
build-flavor:
required: true
type: string
build-flavor:
build-motd:
required: true
type: string
@@ -43,11 +43,11 @@ jobs:
- name: Generate Changelog
env:
CHANGELOG: ${{ inputs.build-changelog }}
CHANGELOG_PATH: ${{ github.workspace }}/macos/fastlane
MOTD: ${{ inputs.build-motd }}
OUTPUT_PATH: ${{ github.workspace }}/macos/fastlane
run: |
mkdir -p $CHANGELOG_PATH
echo $CHANGELOG > $CHANGELOG_PATH/changelog.txt
mkdir -p $OUTPUT_PATH
echo $MOTD > $OUTPUT_PATH/changelog.txt
- name: Deploy to App Store Connect
working-directory: ${{ github.workspace }}/macos

View File

@@ -1,4 +1,4 @@
name: Publish s3
name: Publish S3
on:
workflow_call:
@@ -47,6 +47,18 @@ jobs:
name: ios-appstore-package
path: ${{ github.workspace }}/output
- name: Download Linux Debian
uses: actions/download-artifact@v3
with:
name: linux-debian
path: ${{ github.workspace }}/output
- name: Download Linux Tarball
uses: actions/download-artifact@v3
with:
name: linux-tarball
path: ${{ github.workspace }}/output
- name: Download Linux Snap
uses: actions/download-artifact@v3
with:

View File

@@ -1,4 +1,4 @@
name: Publish Web (Docker)
name: Publish Web
on:
workflow_call:

7
.gitignore vendored
View File

@@ -66,8 +66,11 @@ android/key.properties
# Firebase
android/firebase_app_id_file.json
android/app/google-services.json
ios/firebase_app_id_file.json
ios/Runner/GoogleService-Info.plist
macos/firebase_app_id_file.json
macos/Runner/GoogleService-Info.plist
# Node Dependency directories
node_modules/
@@ -80,4 +83,8 @@ output/
*.ipa
*.dmg
*.pkg
# Linux Artifacts
debian/DEBIAN/md5sums
debian/usr/share/lunasea
*.snap

View File

@@ -1,10 +1,30 @@
# This file tracks properties of this Flutter project.
# Used by Flutter tool to assess capabilities and perform upgrades etc.
#
# This file should be version controlled and should not be manually edited.
# This file should be version controlled.
version:
revision: 7e9793dee1b85a243edd0e06cb1658e98b077561
revision: ffccd96b62ee8cec7740dab303538c5fc26ac543
channel: stable
project_type: app
# Tracks metadata for the flutter migrate command
migration:
platforms:
- platform: root
create_revision: ffccd96b62ee8cec7740dab303538c5fc26ac543
base_revision: ffccd96b62ee8cec7740dab303538c5fc26ac543
- platform: windows
create_revision: ffccd96b62ee8cec7740dab303538c5fc26ac543
base_revision: ffccd96b62ee8cec7740dab303538c5fc26ac543
# User provided section
# List of Local paths (relative to this file) that should be
# ignored by the migrate tool.
#
# Files that are not part of the templates will be ignored by default.
unmanaged_files:
- 'lib/main.dart'
- 'ios/Runner.xcodeproj/project.pbxproj'

View File

@@ -1 +1 @@
2.6.8
2.7.6

4
.vscode/cspell.json vendored
View File

@@ -45,6 +45,7 @@
"LunaConfig",
"lunasea",
"LunaTable",
"microtask",
"msix",
"Newznab",
"NZBGet",
@@ -54,6 +55,7 @@
"prefill",
"Radarr",
"Riverpod",
"roboto",
"SABnzbd",
"scrollview",
"sksl",
@@ -61,9 +63,11 @@
"Sonarr",
"stickied",
"subheaders",
"subroutes",
"Tautulli",
"TestFlight",
"Trakt",
"typescale",
"unencrypted",
"unignore",
"Weblate",

5
.vscode/settings.json vendored Normal file
View File

@@ -0,0 +1,5 @@
{
"yaml.schemas": {
"https://json.schemastore.org/github-issue-config.json": "file:///Users/jagandeepbrar/Git/LunaSea/.github/ISSUE_TEMPLATE/config.yml"
}
}

View File

@@ -2,6 +2,100 @@
All notable changes to this project will be documented in this file. See [standard-version](https://github.com/conventional-changelog/standard-version) for commit guidelines.
### [10.2.2](https://github.com/JagandeepBrar/LunaSea/compare/v10.2.1...v10.2.2) (2022-12-22)
### Features
* **android:** add option to disable back action to open drawer ([d4774b0](https://github.com/JagandeepBrar/LunaSea/commit/d4774b054204546490ef9f78090e28303eefc1fc))
* **linux:** include MD5 sums in Debian distributions ([c46924c](https://github.com/JagandeepBrar/LunaSea/commit/c46924c99645a2d9c27e2d3532d30ecf93882e2a))
* **linux:** publish Linux builds as Debian archive (.deb) ([b1d01e0](https://github.com/JagandeepBrar/LunaSea/commit/b1d01e02ca4cdb8a2775700930ada2d1d40a1031))
* **linux:** publish Linux builds as tarball (.tar.gz) ([a390a80](https://github.com/JagandeepBrar/LunaSea/commit/a390a80ef1897d4c95812045a3472527ff38fd49))
### Bug Fixes
* **calendar:** scroll to last past date with content when selected date has no content ([3f10675](https://github.com/JagandeepBrar/LunaSea/commit/3f10675422b9a32c43f4f49c16b6e9723f267f50))
* **linux:** install binaries to /usr/share instead of /usr/local/lib ([edb645f](https://github.com/JagandeepBrar/LunaSea/commit/edb645f8871d8f3a59c122191e8d8219e9957924))
* **tautulli:** cached or downloaded activity sessions could not be opened ([4c99ecf](https://github.com/JagandeepBrar/LunaSea/commit/4c99ecf927e21538f875bb7ee93fc7aaf20de479))
### Tweaks
* **uiux:** disable horizontal swiping/scrolling between pages ([968fe9c](https://github.com/JagandeepBrar/LunaSea/commit/968fe9cbbc4aff3ae584682e462defbf09ea5699))
### [10.2.1](https://github.com/JagandeepBrar/LunaSea/compare/v10.2.0...v10.2.1) (2022-11-06)
### Features
* **-arr:** button to open indexer information page ([bccd1a4](https://github.com/JagandeepBrar/LunaSea/commit/bccd1a43c42b349901137f8fc605f393b51d541a))
* **calendar:** remove option to show previous days in schedule view, now always shows them ([3ac2c5d](https://github.com/JagandeepBrar/LunaSea/commit/3ac2c5d791f94208a4004d161bb046c24b698345))
* **calendar:** scroll to selected date when switching from calendar to schedule view ([f1226e5](https://github.com/JagandeepBrar/LunaSea/commit/f1226e563899cfc0950865a9734448d4e00601b9))
* launch recovery mode on bootstrap failure ([c062b3d](https://github.com/JagandeepBrar/LunaSea/commit/c062b3d786e55bc3ba7fe767dd946d73efbef64f))
* **lidarr:** add MusicBrainz to links ([c76418d](https://github.com/JagandeepBrar/LunaSea/commit/c76418d26f1a5f52f5cb1e46951f1cf6726508c2))
* **modules:** ability to set the boot module ([3dd087e](https://github.com/JagandeepBrar/LunaSea/commit/3dd087e361619889057a0b037b1eef35157a0988))
* **radarr:** support moving files when editing the storage path ([c9bd02b](https://github.com/JagandeepBrar/LunaSea/commit/c9bd02b75086579f60ad8987c42ab217c12f6d43))
* **web:** support local filesystem read/save actions ([7d437d5](https://github.com/JagandeepBrar/LunaSea/commit/7d437d5c3a34a8681c372570fc366e869f0b2090))
### Bug Fixes
* **android:** apply Google Play Services plugin during gradle build ([71f597b](https://github.com/JagandeepBrar/LunaSea/commit/71f597baa7c23102b711c3ca3c1ea5b2f8e1f5e9))
* **android:** revert applying Google Play Services plugin during gradle build ([250a494](https://github.com/JagandeepBrar/LunaSea/commit/250a49490333f4de726226dc4aa15a681f32a70c))
* **android:** support Android 13 filesystem access ([25e0d05](https://github.com/JagandeepBrar/LunaSea/commit/25e0d051422b399de8c90e0fc71e57349e3355b7))
* **android:** utilize Kotlin v1.7.20 & Gradle v7.1.2 ([b7ceebc](https://github.com/JagandeepBrar/LunaSea/commit/b7ceebcb679dbca935b6a1810c0c67a14002e358))
* **backup:** edge-case where backup/restore would fail ([f3931c6](https://github.com/JagandeepBrar/LunaSea/commit/f3931c6b08025a70920039e5cbbc9cf7120c0b36))
* **calendar:** label unreleased movies as unreleased instead of missing ([70ed750](https://github.com/JagandeepBrar/LunaSea/commit/70ed750652ff419e6fed659a0785adc5064654e7))
* **calendar:** start to current date when past days are enabled ([6eff6c9](https://github.com/JagandeepBrar/LunaSea/commit/6eff6c902cd7bcd523d83be09034098234679a79))
* **firebase:** inject service file for older OS versions ([38f2eb4](https://github.com/JagandeepBrar/LunaSea/commit/38f2eb4cb2a8e400ce2ecb0b6f2854469c9626fc))
* **firebase:** upgrade to Firebase v10 ([#717](https://github.com/JagandeepBrar/LunaSea/issues/717)) ([f3a3f22](https://github.com/JagandeepBrar/LunaSea/commit/f3a3f222bd56beb4e961817b18d71f01fb7c5e81))
* **uiux:** add circular radius to linear progression bars ([d9623e9](https://github.com/JagandeepBrar/LunaSea/commit/d9623e992d2ac2039eaa4f069c739d968c921cc6))
### Tweaks
* **settings:** consolidate appearance, network, and localization pages ([ac838f9](https://github.com/JagandeepBrar/LunaSea/commit/ac838f99a9c839ce4e36e5eae80f1100e2787dc5))
* **uiux:** remove forced-upper case on headers ([958e6f1](https://github.com/JagandeepBrar/LunaSea/commit/958e6f156862c1092399649baa361cd955299c88))
## [10.2.0](https://github.com/JagandeepBrar/LunaSea/compare/v10.1.1...v10.2.0) (2022-09-22)
### Features
* **-arr:** view download client queue via overlay sheet ([0c59886](https://github.com/JagandeepBrar/LunaSea/commit/0c59886657db0ed05a9d741c82689cb1272c6ad2))
* **android:** add support for monochromatic adaptive icon ([#701](https://github.com/JagandeepBrar/LunaSea/issues/701)) ([96b2b1b](https://github.com/JagandeepBrar/LunaSea/commit/96b2b1b5b010507dd7ece3421bf02eac6ba32486))
* **locale:** support Croatian ([a160f09](https://github.com/JagandeepBrar/LunaSea/commit/a160f0941f2e0c86d2e2fab5e01a577ceba2a8f3))
* **logging:** integrate Sentry logging support for all platforms ([57bbb80](https://github.com/JagandeepBrar/LunaSea/commit/57bbb80a0188d3bed9ca70846a89df6a3c2c0953))
* **logo:** add Vectorized app logos ([113b294](https://github.com/JagandeepBrar/LunaSea/commit/113b2943469464598ce07b931818c7e29c6cc63a))
* **router:** re-implementation of routing via go_router ([1d4207a](https://github.com/JagandeepBrar/LunaSea/commit/1d4207ae5106c2a0648b77a3b3ef6508665561e8))
* **sabnzbd:** rewrite SABnzbd API interface ([a1b736a](https://github.com/JagandeepBrar/LunaSea/commit/a1b736ae0c9bf754d913e86c69d15c27f256c413))
* **search:** view download client queue via overlay sheet ([a6be658](https://github.com/JagandeepBrar/LunaSea/commit/a6be658164fed7dd2411a167dec6b4c53eab70f0))
* **settings:** re-add option to disable Sentry logging ([3d0c520](https://github.com/JagandeepBrar/LunaSea/commit/3d0c5209cb3e796629817dee986634154e7ffe9e))
* **web:** enable service worker processing of notifications ([4b41110](https://github.com/JagandeepBrar/LunaSea/commit/4b411107f74f048e6f3d571845590a5d29720ac3))
### Bug Fixes
* **android:** support Android 13 notification prompt ([83e8374](https://github.com/JagandeepBrar/LunaSea/commit/83e8374c33977c82096fcf8d5a4d94da5c291f8f))
* **cache:** add type-safety to LRU cache ([7aae480](https://github.com/JagandeepBrar/LunaSea/commit/7aae4807221184dbe1d02454f73998a0458dd7f6))
* **database:** prevent deadlock in database deletion actions ([9960124](https://github.com/JagandeepBrar/LunaSea/commit/9960124d3219e2ab72e14443a1a79a1bac6b2cd3))
* **graphs:** support fl_chart@0.55.1 ([b812c7b](https://github.com/JagandeepBrar/LunaSea/commit/b812c7b4a12b4766e04b5d4023b45320e6b7927c))
* **images:** validate image availability before fading-in ([6f9e0e8](https://github.com/JagandeepBrar/LunaSea/commit/6f9e0e87ce3d02dfff7dec439a2e975585c5b986))
* **notifications:** correctly inject service worker for notification handling ([82ef5f0](https://github.com/JagandeepBrar/LunaSea/commit/82ef5f0c529a9e30475f86f496fa63c18785e87c))
* **notifications:** enable in-app notifications config was inversed ([3593eb3](https://github.com/JagandeepBrar/LunaSea/commit/3593eb329b38fb4a5b776cf1b165ad6f463e371b))
* **resources:** remove feedback board resource ([d3d090e](https://github.com/JagandeepBrar/LunaSea/commit/d3d090e277f7dda7d4ef3d7808e7341cf79178fe))
* **scrolling:** remove custom scrolling behaviour ([864082f](https://github.com/JagandeepBrar/LunaSea/commit/864082fd4045ef7dea0e0ab6a17d41ca86015fcb))
* **settings:** show notification settings area on web ([136cda5](https://github.com/JagandeepBrar/LunaSea/commit/136cda5215ae1d44dcd898e8e8e0b1e1912b3a41))
* **sheets:** set default overlay theme for sheets, remove bottom radius clipping ([3a5e19b](https://github.com/JagandeepBrar/LunaSea/commit/3a5e19b02c048df21bd169a0a06f1e9ae741debb))
* **sonarr:** support Sonarr v4 API changes ([e477eca](https://github.com/JagandeepBrar/LunaSea/commit/e477ecafcce268d7de112f33711fc02a089a4206))
* **web:** correctly register notification service worker ([579531c](https://github.com/JagandeepBrar/LunaSea/commit/579531c30a17e2c8d53d011dbecf710f42598ec8))
### Tweaks
* **remove logos:** removes unused logo pngs ([2adfe59](https://github.com/JagandeepBrar/LunaSea/commit/2adfe59bd5cd289beb7f7c703fe26397310dbc90))
### [10.1.1](https://github.com/JagandeepBrar/LunaSea/compare/v10.1.0...v10.1.1) (2022-08-21)

View File

@@ -3,7 +3,7 @@
<!-- prettier-ignore-start -->
<!-- markdownlint-disable -->
<!-- ALL-CONTRIBUTORS-BADGE:START - Do not remove or modify this section -->
[![All Contributors](https://img.shields.io/badge/all_contributors-35-orange.svg?style=flat-square)](#contributors-)
[![All Contributors](https://img.shields.io/badge/all_contributors-43-orange.svg?style=flat-square)](#contributors-)
<!-- ALL-CONTRIBUTORS-BADGE:END -->
<!-- markdownlint-restore -->
<!-- prettier-ignore-end -->
@@ -14,51 +14,63 @@ Thank you to everyone who has helped contribute to LunaSea, from development to
<!-- prettier-ignore-start -->
<!-- markdownlint-disable -->
<table>
<tr>
<td align="center"><a href="https://www.jagandeepbrar.io"><img src="https://avatars.githubusercontent.com/u/3048295?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Jagandeep Brar</b></sub></a><br /><a href="https://github.com/JagandeepBrar/LunaSea/commits?author=JagandeepBrar" title="Code">💻</a> <a href="#design-JagandeepBrar" title="Design">🎨</a> <a href="#ideas-JagandeepBrar" title="Ideas, Planning, & Feedback">🤔</a></td>
<td align="center"><a href="https://github.com/lightglitch"><img src="https://avatars.githubusercontent.com/u/196953?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Mário Franco</b></sub></a><br /><a href="https://github.com/JagandeepBrar/LunaSea/commits?author=lightglitch" title="Code">💻</a> <a href="#translation-lightglitch" title="Translation">🌍</a></td>
<td align="center"><a href="https://github.com/Qstick"><img src="https://avatars.githubusercontent.com/u/376117?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Qstick</b></sub></a><br /><a href="https://github.com/JagandeepBrar/LunaSea/commits?author=Qstick" title="Code">💻</a></td>
<td align="center"><a href="https://github.com/AliMickey"><img src="https://avatars.githubusercontent.com/u/60691199?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Micky</b></sub></a><br /><a href="https://github.com/JagandeepBrar/LunaSea/commits?author=AliMickey" title="Documentation">📖</a></td>
<td align="center"><a href="http://www.xrths.fr"><img src="https://avatars.githubusercontent.com/u/40337934?v=4?s=100" width="100px;" alt=""/><br /><sub><b>xrths</b></sub></a><br /><a href="https://github.com/JagandeepBrar/LunaSea/commits?author=xrths" title="Documentation">📖</a></td>
<td align="center"><a href="https://pythonexplainedto.me/"><img src="https://avatars.githubusercontent.com/u/41962737?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Patrik Hauguth</b></sub></a><br /><a href="#translation-Phaugt" title="Translation">🌍</a></td>
<td align="center"><a href="https://liberapay.com/kingu/"><img src="https://avatars.githubusercontent.com/u/13802408?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Allan Nordhøy</b></sub></a><br /><a href="#translation-comradekingu" title="Translation">🌍</a></td>
<td align="center"><a href="https://github.com/cpt-kuesel"><img src="https://avatars.githubusercontent.com/u/79487102?v=4?s=100" width="100px;" alt=""/><br /><sub><b>cpt-kuesel</b></sub></a><br /><a href="#translation-cpt-kuesel" title="Translation">🌍</a></td>
</tr>
<tr>
<td align="center"><a href="https://github.com/KovalevArtem"><img src="https://avatars.githubusercontent.com/u/36500228?v=4?s=100" width="100px;" alt=""/><br /><sub><b>KovalevArtem</b></sub></a><br /><a href="#translation-KovalevArtem" title="Translation">🌍</a></td>
<td align="center"><a href="https://github.com/iFelix18"><img src="https://avatars.githubusercontent.com/u/19800006?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Davide</b></sub></a><br /><a href="#translation-iFelix18" title="Translation">🌍</a></td>
<td align="center"><a href="https://ersen.srht.site/"><img src="https://avatars.githubusercontent.com/u/88676873?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Oğuz Ersen</b></sub></a><br /><a href="#translation-ersen0" title="Translation">🌍</a></td>
<td align="center"><a href="https://github.com/bittin"><img src="https://avatars.githubusercontent.com/u/43197?v=4?s=100" width="100px;" alt=""/><br /><sub><b>bittin</b></sub></a><br /><a href="#translation-bittin" title="Translation">🌍</a></td>
<td align="center"><a href="https://github.com/almontegil"><img src="https://avatars.githubusercontent.com/u/68232356?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Gil</b></sub></a><br /><a href="#translation-almontegil" title="Translation">🌍</a></td>
<td align="center"><a href="https://github.com/TheSander562"><img src="https://avatars.githubusercontent.com/u/14059770?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Sander Lambrechts</b></sub></a><br /><a href="#translation-TheSander562" title="Translation">🌍</a></td>
<td align="center"><a href="https://github.com/Guilhermerrrr"><img src="https://avatars.githubusercontent.com/u/92966143?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Guilhermerrrr</b></sub></a><br /><a href="#translation-Guilhermerrrr" title="Translation">🌍</a></td>
<td align="center"><a href="https://github.com/Ben-Wallner"><img src="https://avatars.githubusercontent.com/u/24373331?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Ben Biber</b></sub></a><br /><a href="#translation-Ben-Wallner" title="Translation">🌍</a></td>
</tr>
<tr>
<td align="center"><a href="https://github.com/Sytom"><img src="https://avatars.githubusercontent.com/u/30535521?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Sytom</b></sub></a><br /><a href="#translation-Sytom" title="Translation">🌍</a></td>
<td align="center"><a href="https://xxzj990.top"><img src="https://avatars.githubusercontent.com/u/5134154?v=4?s=100" width="100px;" alt=""/><br /><sub><b>xxzj990</b></sub></a><br /><a href="#translation-xxzj990" title="Translation">🌍</a></td>
<td align="center"><a href="https://www.openflixr.com"><img src="https://avatars.githubusercontent.com/u/3245077?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Mark Frelink</b></sub></a><br /><a href="#translation-mfrelink" title="Translation">🌍</a></td>
<td align="center"><a href="https://github.com/diemade"><img src="https://avatars.githubusercontent.com/u/174809?v=4?s=100" width="100px;" alt=""/><br /><sub><b>diemade</b></sub></a><br /><a href="#translation-diemade" title="Translation">🌍</a></td>
<td align="center"><a href="https://feikojoosten.com"><img src="https://avatars.githubusercontent.com/u/10920052?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Feiko Joosten</b></sub></a><br /><a href="#translation-FeikoJoosten" title="Translation">🌍</a></td>
<td align="center"><a href="https://github.com/TheMaxul"><img src="https://avatars.githubusercontent.com/u/2436527?v=4?s=100" width="100px;" alt=""/><br /><sub><b>TheMaxul</b></sub></a><br /><a href="#translation-TheMaxul" title="Translation">🌍</a></td>
<td align="center"><a href="https://lisacintosh.itch.io"><img src="https://avatars.githubusercontent.com/u/6952213?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Maxime Leroy</b></sub></a><br /><a href="#translation-Lisapple" title="Translation">🌍</a></td>
<td align="center"><a href="https://github.com/vc5"><img src="https://avatars.githubusercontent.com/u/13097192?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Vincent</b></sub></a><br /><a href="#translation-vc5" title="Translation">🌍</a></td>
</tr>
<tr>
<td align="center"><a href="https://github.com/gmcinalli"><img src="https://avatars.githubusercontent.com/u/9024983?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Gian Marco Cinalli</b></sub></a><br /><a href="#translation-gmcinalli" title="Translation">🌍</a></td>
<td align="center"><a href="https://www.issacc.top/"><img src="https://avatars.githubusercontent.com/u/17275050?v=4?s=100" width="100px;" alt=""/><br /><sub><b>八月的蠢</b></sub></a><br /><a href="#translation-issaccv" title="Translation">🌍</a></td>
<td align="center"><a href="https://github.com/neoestremi"><img src="https://avatars.githubusercontent.com/u/1340877?v=4?s=100" width="100px;" alt=""/><br /><sub><b>neoestremi</b></sub></a><br /><a href="#translation-neoestremi" title="Translation">🌍</a></td>
<td align="center"><a href="https://github.com/marcosvdiasofc"><img src="https://avatars.githubusercontent.com/u/96720080?v=4?s=100" width="100px;" alt=""/><br /><sub><b>marcosvdiasofc</b></sub></a><br /><a href="#translation-marcosvdiasofc" title="Translation">🌍</a></td>
<td align="center"><a href="https://liberapay.com/FSCorrupt/donate"><img src="https://avatars.githubusercontent.com/u/45659314?v=4?s=100" width="100px;" alt=""/><br /><sub><b>FSCorrupt</b></sub></a><br /><a href="#translation-fscorrupt" title="Translation">🌍</a></td>
<td align="center"><a href="https://github.com/iHunterX"><img src="https://avatars.githubusercontent.com/u/16854718?v=4?s=100" width="100px;" alt=""/><br /><sub><b>iHunterX</b></sub></a><br /><a href="#translation-iHunterX" title="Translation">🌍</a></td>
<td align="center"><a href="https://github.com/Brokeos"><img src="https://avatars.githubusercontent.com/u/8388746?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Brokeos</b></sub></a><br /><a href="#translation-Brokeos" title="Translation">🌍</a></td>
<td align="center"><a href="https://github.com/punchy98"><img src="https://avatars.githubusercontent.com/u/12002902?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Michael Maldonado</b></sub></a><br /><a href="#translation-punchy98" title="Translation">🌍</a></td>
</tr>
<tr>
<td align="center"><a href="https://github.com/natiz"><img src="https://avatars.githubusercontent.com/u/3515888?v=4?s=100" width="100px;" alt=""/><br /><sub><b>natiz</b></sub></a><br /><a href="https://github.com/JagandeepBrar/LunaSea/commits?author=natiz" title="Code">💻</a></td>
<td align="center"><a href="https://github.com/KevoM"><img src="https://avatars.githubusercontent.com/u/8274366?v=4?s=100" width="100px;" alt=""/><br /><sub><b>KevoM</b></sub></a><br /><a href="#translation-KevoM" title="Translation">🌍</a></td>
<td align="center"><a href="https://github.com/rogeriomendes"><img src="https://avatars.githubusercontent.com/u/1494503?v=4?s=100" width="100px;" alt=""/><br /><sub><b>rogeriomendes</b></sub></a><br /><a href="#translation-rogeriomendes" title="Translation">🌍</a></td>
</tr>
<tbody>
<tr>
<td align="center"><a href="https://www.jagandeepbrar.io"><img src="https://avatars.githubusercontent.com/u/3048295?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Jagandeep Brar</b></sub></a><br /><a href="https://github.com/JagandeepBrar/LunaSea/commits?author=JagandeepBrar" title="Code">💻</a> <a href="#design-JagandeepBrar" title="Design">🎨</a> <a href="#ideas-JagandeepBrar" title="Ideas, Planning, & Feedback">🤔</a></td>
<td align="center"><a href="https://github.com/lightglitch"><img src="https://avatars.githubusercontent.com/u/196953?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Mário Franco</b></sub></a><br /><a href="https://github.com/JagandeepBrar/LunaSea/commits?author=lightglitch" title="Code">💻</a> <a href="#translation-lightglitch" title="Translation">🌍</a></td>
<td align="center"><a href="https://github.com/Qstick"><img src="https://avatars.githubusercontent.com/u/376117?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Qstick</b></sub></a><br /><a href="https://github.com/JagandeepBrar/LunaSea/commits?author=Qstick" title="Code">💻</a></td>
<td align="center"><a href="https://github.com/AliMickey"><img src="https://avatars.githubusercontent.com/u/60691199?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Micky</b></sub></a><br /><a href="https://github.com/JagandeepBrar/LunaSea/commits?author=AliMickey" title="Documentation">📖</a></td>
<td align="center"><a href="http://www.xrths.fr"><img src="https://avatars.githubusercontent.com/u/40337934?v=4?s=100" width="100px;" alt=""/><br /><sub><b>xrths</b></sub></a><br /><a href="https://github.com/JagandeepBrar/LunaSea/commits?author=xrths" title="Documentation">📖</a></td>
<td align="center"><a href="https://pythonexplainedto.me/"><img src="https://avatars.githubusercontent.com/u/41962737?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Patrik Hauguth</b></sub></a><br /><a href="#translation-Phaugt" title="Translation">🌍</a></td>
<td align="center"><a href="https://liberapay.com/kingu/"><img src="https://avatars.githubusercontent.com/u/13802408?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Allan Nordhøy</b></sub></a><br /><a href="#translation-comradekingu" title="Translation">🌍</a></td>
<td align="center"><a href="https://github.com/cpt-kuesel"><img src="https://avatars.githubusercontent.com/u/79487102?v=4?s=100" width="100px;" alt=""/><br /><sub><b>cpt-kuesel</b></sub></a><br /><a href="#translation-cpt-kuesel" title="Translation">🌍</a></td>
</tr>
<tr>
<td align="center"><a href="https://github.com/KovalevArtem"><img src="https://avatars.githubusercontent.com/u/36500228?v=4?s=100" width="100px;" alt=""/><br /><sub><b>KovalevArtem</b></sub></a><br /><a href="#translation-KovalevArtem" title="Translation">🌍</a></td>
<td align="center"><a href="https://github.com/iFelix18"><img src="https://avatars.githubusercontent.com/u/19800006?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Davide</b></sub></a><br /><a href="#translation-iFelix18" title="Translation">🌍</a></td>
<td align="center"><a href="https://ersen.srht.site/"><img src="https://avatars.githubusercontent.com/u/88676873?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Oğuz Ersen</b></sub></a><br /><a href="#translation-ersen0" title="Translation">🌍</a></td>
<td align="center"><a href="https://github.com/bittin"><img src="https://avatars.githubusercontent.com/u/43197?v=4?s=100" width="100px;" alt=""/><br /><sub><b>bittin</b></sub></a><br /><a href="#translation-bittin" title="Translation">🌍</a></td>
<td align="center"><a href="https://github.com/almontegil"><img src="https://avatars.githubusercontent.com/u/68232356?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Gil</b></sub></a><br /><a href="#translation-almontegil" title="Translation">🌍</a></td>
<td align="center"><a href="https://github.com/TheSander562"><img src="https://avatars.githubusercontent.com/u/14059770?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Sander Lambrechts</b></sub></a><br /><a href="#translation-TheSander562" title="Translation">🌍</a></td>
<td align="center"><a href="https://github.com/Guilhermerrrr"><img src="https://avatars.githubusercontent.com/u/92966143?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Guilhermerrrr</b></sub></a><br /><a href="#translation-Guilhermerrrr" title="Translation">🌍</a></td>
<td align="center"><a href="https://github.com/Ben-Wallner"><img src="https://avatars.githubusercontent.com/u/24373331?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Ben Biber</b></sub></a><br /><a href="#translation-Ben-Wallner" title="Translation">🌍</a></td>
</tr>
<tr>
<td align="center"><a href="https://github.com/Sytom"><img src="https://avatars.githubusercontent.com/u/30535521?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Sytom</b></sub></a><br /><a href="#translation-Sytom" title="Translation">🌍</a></td>
<td align="center"><a href="https://xxzj990.top"><img src="https://avatars.githubusercontent.com/u/5134154?v=4?s=100" width="100px;" alt=""/><br /><sub><b>xxzj990</b></sub></a><br /><a href="#translation-xxzj990" title="Translation">🌍</a></td>
<td align="center"><a href="https://www.openflixr.com"><img src="https://avatars.githubusercontent.com/u/3245077?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Mark Frelink</b></sub></a><br /><a href="#translation-mfrelink" title="Translation">🌍</a></td>
<td align="center"><a href="https://github.com/diemade"><img src="https://avatars.githubusercontent.com/u/174809?v=4?s=100" width="100px;" alt=""/><br /><sub><b>diemade</b></sub></a><br /><a href="#translation-diemade" title="Translation">🌍</a></td>
<td align="center"><a href="https://feikojoosten.com"><img src="https://avatars.githubusercontent.com/u/10920052?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Feiko Joosten</b></sub></a><br /><a href="#translation-FeikoJoosten" title="Translation">🌍</a></td>
<td align="center"><a href="https://github.com/TheMaxul"><img src="https://avatars.githubusercontent.com/u/2436527?v=4?s=100" width="100px;" alt=""/><br /><sub><b>TheMaxul</b></sub></a><br /><a href="#translation-TheMaxul" title="Translation">🌍</a></td>
<td align="center"><a href="https://lisacintosh.itch.io"><img src="https://avatars.githubusercontent.com/u/6952213?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Maxime Leroy</b></sub></a><br /><a href="#translation-Lisapple" title="Translation">🌍</a></td>
<td align="center"><a href="https://github.com/vc5"><img src="https://avatars.githubusercontent.com/u/13097192?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Vincent</b></sub></a><br /><a href="#translation-vc5" title="Translation">🌍</a></td>
</tr>
<tr>
<td align="center"><a href="https://github.com/gmcinalli"><img src="https://avatars.githubusercontent.com/u/9024983?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Gian Marco Cinalli</b></sub></a><br /><a href="#translation-gmcinalli" title="Translation">🌍</a></td>
<td align="center"><a href="https://www.issacc.top/"><img src="https://avatars.githubusercontent.com/u/17275050?v=4?s=100" width="100px;" alt=""/><br /><sub><b>八月的蠢</b></sub></a><br /><a href="#translation-issaccv" title="Translation">🌍</a></td>
<td align="center"><a href="https://github.com/neoestremi"><img src="https://avatars.githubusercontent.com/u/1340877?v=4?s=100" width="100px;" alt=""/><br /><sub><b>neoestremi</b></sub></a><br /><a href="#translation-neoestremi" title="Translation">🌍</a></td>
<td align="center"><a href="https://github.com/marcosvdiasofc"><img src="https://avatars.githubusercontent.com/u/96720080?v=4?s=100" width="100px;" alt=""/><br /><sub><b>marcosvdiasofc</b></sub></a><br /><a href="#translation-marcosvdiasofc" title="Translation">🌍</a></td>
<td align="center"><a href="https://liberapay.com/FSCorrupt/donate"><img src="https://avatars.githubusercontent.com/u/45659314?v=4?s=100" width="100px;" alt=""/><br /><sub><b>FSCorrupt</b></sub></a><br /><a href="#translation-fscorrupt" title="Translation">🌍</a></td>
<td align="center"><a href="https://github.com/iHunterX"><img src="https://avatars.githubusercontent.com/u/16854718?v=4?s=100" width="100px;" alt=""/><br /><sub><b>iHunterX</b></sub></a><br /><a href="#translation-iHunterX" title="Translation">🌍</a></td>
<td align="center"><a href="https://github.com/Brokeos"><img src="https://avatars.githubusercontent.com/u/8388746?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Brokeos</b></sub></a><br /><a href="#translation-Brokeos" title="Translation">🌍</a></td>
<td align="center"><a href="https://github.com/punchy98"><img src="https://avatars.githubusercontent.com/u/12002902?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Michael Maldonado</b></sub></a><br /><a href="#translation-punchy98" title="Translation">🌍</a></td>
</tr>
<tr>
<td align="center"><a href="https://github.com/natiz"><img src="https://avatars.githubusercontent.com/u/3515888?v=4?s=100" width="100px;" alt=""/><br /><sub><b>natiz</b></sub></a><br /><a href="https://github.com/JagandeepBrar/LunaSea/commits?author=natiz" title="Code">💻</a></td>
<td align="center"><a href="https://github.com/KevoM"><img src="https://avatars.githubusercontent.com/u/8274366?v=4?s=100" width="100px;" alt=""/><br /><sub><b>KevoM</b></sub></a><br /><a href="#translation-KevoM" title="Translation">🌍</a></td>
<td align="center"><a href="https://github.com/rogeriomendes"><img src="https://avatars.githubusercontent.com/u/1494503?v=4?s=100" width="100px;" alt=""/><br /><sub><b>rogeriomendes</b></sub></a><br /><a href="#translation-rogeriomendes" title="Translation">🌍</a></td>
<td align="center"><a href="http://www.paddez.com/"><img src="https://avatars.githubusercontent.com/u/587220?v=4?s=100" width="100px;" alt=""/><br /><sub><b>David K</b></sub></a><br /><a href="#design-Irishsmurf" title="Design">🎨</a></td>
<td align="center"><a href="https://github.com/Slam4uk"><img src="https://avatars.githubusercontent.com/u/78175288?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Slam4uk</b></sub></a><br /><a href="#translation-Slam4uk" title="Translation">🌍</a></td>
<td align="center"><a href="https://github.com/timrettop"><img src="https://avatars.githubusercontent.com/u/434913?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Tim Potter</b></sub></a><br /><a href="#translation-timrettop" title="Translation">🌍</a></td>
<td align="center"><a href="https://github.com/carlesmu"><img src="https://avatars.githubusercontent.com/u/1310090?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Carles Muñoz Gorriz</b></sub></a><br /><a href="#translation-carlesmu" title="Translation">🌍</a></td>
<td align="center"><a href="https://github.com/osjurso"><img src="https://avatars.githubusercontent.com/u/17827103?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Olav Markus Sjursø</b></sub></a><br /><a href="#translation-osjurso" title="Translation">🌍</a></td>
</tr>
<tr>
<td align="center"><a href="https://github.com/fyu0h"><img src="https://avatars.githubusercontent.com/u/33602841?v=4?s=100" width="100px;" alt=""/><br /><sub><b>fyu0h</b></sub></a><br /><a href="#translation-fyu0h" title="Translation">🌍</a></td>
<td align="center"><a href="https://github.com/johnflorin"><img src="https://avatars.githubusercontent.com/u/45756085?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Florin</b></sub></a><br /><a href="#translation-johnflorin" title="Translation">🌍</a></td>
<td align="center"><a href="https://github.com/tuzumbear"><img src="https://avatars.githubusercontent.com/u/61370405?v=4?s=100" width="100px;" alt=""/><br /><sub><b>tuzumbear</b></sub></a><br /><a href="#translation-tuzumbear" title="Translation">🌍</a></td>
</tr>
</tbody>
</table>
<!-- markdownlint-restore -->

View File

@@ -33,7 +33,6 @@ Interested in using prerelease build channels of LunaSea? Learn the differences
- [Build Guide](https://github.com/JagandeepBrar/LunaSea/wiki/Build-Guide)
- [Documentation](https://www.lunasea.app/docs)
- [Feedback & Feature Requests Board](https://www.lunasea.app/feedback)
- [Frequently Asked Questions](https://docs.lunasea.app/getting-started/frequently-asked-questions)
## Support
@@ -41,9 +40,8 @@ Interested in using prerelease build channels of LunaSea? Learn the differences
[![Discord](https://img.shields.io/discord/673591529834807358?label=Discord&style=flat)](https://www.lunasea.app/discord)
[![Reddit](https://img.shields.io/reddit/subreddit-subscribers/LunaSeaApp?label=r%2FLunaSeaApp&style=flat)](https://www.lunasea.app/reddit)
**Please only create an issue on GitHub for bugs and software issues**. Post in the [discussions board](https://github.com/JagandeepBrar/LunaSea/discussions) or the [feedback & feature requests board](https://www.lunasea.app/feedback) for requests and general feedback.
**Please only create an issue on GitHub for bugs and software issues**. Post in the [discussions board](https://github.com/JagandeepBrar/LunaSea/discussions) or the [Discord forum](https://www.lunasea.app/discord) for requests and general feedback.
- [Discord](https://www.lunasea.app/discord)
- [Email](mailto:hello@lunasea.app)
- [Reddit](https://www.lunasea.app/reddit)
- [Website](https://www.lunasea.app)
@@ -54,6 +52,5 @@ Interested in using prerelease build channels of LunaSea? Learn the differences
Thank you to all tools and services for offering free subscriptions for open-source projects!
- [docs.page](https://docs.page/): docs.page is used to host LunaSea's documentation
- [Hellonext](https://www.hellonext.co): Hellonext is used to host LunaSea's feedback board
- [Gitbook](https://www.gitbook.com): Gitbook is used to host LunaSea's documentation
- [Weblate](https://weblate.org): Weblate is used to gather community localization for LunaSea

View File

@@ -2,6 +2,8 @@ include: package:flutter_lints/flutter.yaml
analyzer:
exclude:
- 'test/**'
- 'test.g.dart'
- 'lib/**/*.g.dart'
linter:
rules:

View File

@@ -3,25 +3,25 @@ GEM
specs:
CFPropertyList (3.0.5)
rexml
addressable (2.8.0)
public_suffix (>= 2.0.2, < 5.0)
addressable (2.8.1)
public_suffix (>= 2.0.2, < 6.0)
artifactory (3.0.15)
atomos (0.1.3)
aws-eventstream (1.2.0)
aws-partitions (1.618.0)
aws-sdk-core (3.132.0)
aws-partitions (1.655.0)
aws-sdk-core (3.166.0)
aws-eventstream (~> 1, >= 1.0.2)
aws-partitions (~> 1, >= 1.525.0)
aws-sigv4 (~> 1.1)
aws-partitions (~> 1, >= 1.651.0)
aws-sigv4 (~> 1.5)
jmespath (~> 1, >= 1.6.1)
aws-sdk-kms (1.58.0)
aws-sdk-core (~> 3, >= 3.127.0)
aws-sdk-kms (1.59.0)
aws-sdk-core (~> 3, >= 3.165.0)
aws-sigv4 (~> 1.1)
aws-sdk-s3 (1.114.0)
aws-sdk-core (~> 3, >= 3.127.0)
aws-sdk-s3 (1.117.1)
aws-sdk-core (~> 3, >= 3.165.0)
aws-sdk-kms (~> 1)
aws-sigv4 (~> 1.4)
aws-sigv4 (1.5.1)
aws-sigv4 (1.5.2)
aws-eventstream (~> 1, >= 1.0.2)
babosa (1.0.4)
claide (1.1.0)
@@ -36,8 +36,8 @@ GEM
unf (>= 0.0.5, < 1.0.0)
dotenv (2.8.1)
emoji_regex (3.2.3)
excon (0.92.4)
faraday (1.10.1)
excon (0.93.1)
faraday (1.10.2)
faraday-em_http (~> 1.0)
faraday-em_synchrony (~> 1.0)
faraday-excon (~> 1.1)
@@ -66,7 +66,7 @@ GEM
faraday_middleware (1.2.0)
faraday (~> 1.0)
fastimage (2.2.6)
fastlane (2.209.0)
fastlane (2.210.1)
CFPropertyList (>= 2.3, < 4.0.0)
addressable (>= 2.8, < 3.0.0)
artifactory (~> 3.0)
@@ -106,9 +106,9 @@ GEM
xcpretty (~> 0.3.0)
xcpretty-travis-formatter (>= 0.0.3)
gh_inspector (1.1.3)
google-apis-androidpublisher_v3 (0.25.0)
google-apis-core (>= 0.7, < 2.a)
google-apis-core (0.7.0)
google-apis-androidpublisher_v3 (0.30.0)
google-apis-core (>= 0.9.1, < 2.a)
google-apis-core (0.9.1)
addressable (~> 2.5, >= 2.5.1)
googleauth (>= 0.16.2, < 2.a)
httpclient (>= 2.8.1, < 3.a)
@@ -117,27 +117,27 @@ GEM
retriable (>= 2.0, < 4.a)
rexml
webrick
google-apis-iamcredentials_v1 (0.13.0)
google-apis-core (>= 0.7, < 2.a)
google-apis-playcustomapp_v1 (0.10.0)
google-apis-core (>= 0.7, < 2.a)
google-apis-storage_v1 (0.17.0)
google-apis-core (>= 0.7, < 2.a)
google-apis-iamcredentials_v1 (0.16.0)
google-apis-core (>= 0.9.1, < 2.a)
google-apis-playcustomapp_v1 (0.12.0)
google-apis-core (>= 0.9.1, < 2.a)
google-apis-storage_v1 (0.19.0)
google-apis-core (>= 0.9.0, < 2.a)
google-cloud-core (1.6.0)
google-cloud-env (~> 1.0)
google-cloud-errors (~> 1.0)
google-cloud-env (1.6.0)
faraday (>= 0.17.3, < 3.0)
google-cloud-errors (1.2.0)
google-cloud-storage (1.38.0)
google-cloud-errors (1.3.0)
google-cloud-storage (1.44.0)
addressable (~> 2.8)
digest-crc (~> 0.4)
google-apis-iamcredentials_v1 (~> 0.1)
google-apis-storage_v1 (~> 0.17.0)
google-apis-storage_v1 (~> 0.19.0)
google-cloud-core (~> 1.6)
googleauth (>= 0.16.2, < 2.a)
mini_mime (~> 1.0)
googleauth (1.2.0)
googleauth (1.3.0)
faraday (>= 0.17.3, < 3.a)
jwt (>= 1.4, < 3.0)
memoist (~> 0.16)
@@ -150,7 +150,7 @@ GEM
httpclient (2.8.3)
jmespath (1.6.1)
json (2.6.2)
jwt (2.4.1)
jwt (2.5.0)
memoist (0.16.2)
mini_magick (4.11.0)
mini_mime (1.1.2)
@@ -161,7 +161,7 @@ GEM
optparse (0.1.1)
os (1.1.4)
plist (3.6.0)
public_suffix (4.0.7)
public_suffix (5.0.0)
rake (13.0.6)
representable (3.2.0)
declarative (< 0.1.0)
@@ -215,4 +215,4 @@ DEPENDENCIES
fastlane
BUNDLED WITH
2.3.19
2.3.25

View File

@@ -32,7 +32,7 @@ if (keystorePropertiesFile.exists()) {
}
android {
compileSdkVersion 31
compileSdkVersion 33
compileOptions {
sourceCompatibility JavaVersion.VERSION_1_8
@@ -50,7 +50,7 @@ android {
defaultConfig {
applicationId "app.lunasea.lunasea"
minSdkVersion 24
targetSdkVersion 31
targetSdkVersion 33
versionCode flutterVersionCode.toInteger()
versionName flutterVersionName
}
@@ -65,6 +65,10 @@ android {
}
buildTypes {
debug {
applicationIdSuffix ".debug"
versionNameSuffix "-dev"
}
release {
signingConfig signingConfigs.release
}

View File

@@ -1,7 +1,8 @@
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="app.lunasea.lunasea">
<uses-permission android:name="android.permission.INTERNET"/>
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
<uses-permission android:name="android.permission.POST_NOTIFICATIONS"/>
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/>
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
<uses-permission android:name="com.android.vending.BILLING" />
</manifest>

View File

@@ -36,7 +36,8 @@
android:value="2" />
</application>
<uses-permission android:name="android.permission.INTERNET"/>
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
<uses-permission android:name="android.permission.POST_NOTIFICATIONS"/>
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/>
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
<uses-permission android:name="com.android.vending.BILLING" />
</manifest>

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.1 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.0 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.3 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 6.6 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 9.3 KiB

View File

@@ -0,0 +1,12 @@
<vector xmlns:android="http://schemas.android.com/apk/res/android" xmlns:aapt="http://schemas.android.com/aapt"
android:viewportWidth="432"
android:viewportHeight="432"
android:width="108dp"
android:height="108dp">
<path
android:pathData="M262.3 163.2c2.6 -0.2 3.5 0.2 3.2 1.1 -0.3 0.6 -3.1 2.3 -6.2 3.7 -3.1 1.4 -7.9 4.5 -10.5 6.9 -2.7 2.4 -6.1 6.4 -7.5 9 -1.5 2.5 -3.5 7.2 -4.5 10.4 -1 3.1 -1.8 8 -1.8 10.7 0 2.8 0.8 7.6 1.8 10.8 1 3.1 2.9 7.7 4.4 10.2 1.4 2.5 4.8 6.5 7.4 9 2.7 2.4 7.8 5.8 11.4 7.4 5.8 2.7 7.5 3 16 3 7.5 0 10.6 -0.5 14.7 -2.2 2.9 -1.2 7.6 -3.9 10.4 -5.9 2.8 -2.1 6.8 -6.5 9.1 -9.8 2.2 -3.3 4.3 -7.2 4.6 -8.8 0.4 -1.5 1.3 -2.9 1.9 -3.2 1 -0.4 1.2 1 0.7 5.8 -0.4 3.4 -1.5 8.9 -2.6 12.2 -1.1 3.3 -3.5 8.3 -5.3 11 -1.8 2.8 -5.7 7.3 -8.6 10.1 -3 2.8 -7.4 6.2 -9.9 7.6 -2.5 1.4 -7.6 3.5 -11.5 4.7 -4.6 1.4 -9.6 2.1 -14.5 2.1 -4.1 0 -10 -0.7 -13 -1.5 -3 -0.8 -8 -2.7 -11 -4.2 -3 -1.5 -7.8 -4.7 -10.5 -7.1 -2.8 -2.3 -6.9 -7.1 -9.2 -10.5 -2.4 -3.4 -5.3 -9.1 -6.4 -12.7 -1.7 -5 -2.2 -9.1 -2.3 -17.7 -0.1 -6.2 0.2 -11.3 0.6 -11.3 0.5 0 0.8 -0.6 0.8 -1.2 0 -0.7 1.9 -5.1 4.2 -9.8 3 -6 6 -10.2 10.3 -14.4 3.8 -3.7 8.7 -7.1 13.5 -9.4 4.1 -2 7.9 -4 8.4 -4.4 0.5 -0.3 2.5 -0.8 4.5 -1.1 2 -0.2 5.3 -0.4 7.3 -0.5z"
android:fillColor="#4ECCA2" />
<path
android:pathData="M247 165.1c3.2 -0.1 2.8 0.3 -4.5 3.8 -5.3 2.6 -10 5.8 -14 9.7 -4.3 4.2 -7.3 8.4 -10.3 14.4 -2.3 4.7 -4.2 8.9 -4.2 9.5 0 0.6 -2.3 2.1 -5.2 3.5 -2.9 1.4 -7.9 4.2 -11.3 6.4 -3.3 2.1 -14.6 12.3 -25 22.5 -10.4 10.3 -20.8 20.1 -23 21.8 -2.2 1.7 -6.7 4.4 -10 6.1 -3.3 1.6 -8.8 3.8 -12.2 4.8 -3.5 1.1 -6.5 1.6 -6.8 1.2 -0.3 -0.5 1.4 -2.2 3.8 -3.9 2.3 -1.8 5.9 -5 8 -7.3 2.1 -2.3 6.2 -7 9.1 -10.6 2.9 -3.6 8.8 -11 13.2 -16.5 4.3 -5.5 9.4 -11.8 11.3 -14 1.9 -2.2 8.2 -8.7 14 -14.5 5.9 -5.8 14.2 -13 18.6 -16.1 4.4 -3.1 10.9 -7.2 14.5 -9.2 3.6 -2 8.5 -4.4 11 -5.3 2.5 -0.9 7.9 -2.7 12 -4 4.1 -1.2 9.1 -2.3 11 -2.3z"
android:fillColor="#2EA07B" />
</vector>

View File

@@ -0,0 +1,13 @@
<vector xmlns:android="http://schemas.android.com/apk/res/android" xmlns:aapt="http://schemas.android.com/aapt"
android:viewportWidth="432"
android:viewportHeight="432"
android:width="108dp"
android:height="108dp">
<path
android:fillAlpha="0.6"
android:pathData="M262.3 163.2c2.6 -0.2 3.5 0.2 3.2 1.1 -0.3 0.6 -3.1 2.3 -6.2 3.7 -3.1 1.4 -7.9 4.5 -10.5 6.9 -2.7 2.4 -6.1 6.4 -7.5 9 -1.5 2.5 -3.5 7.2 -4.5 10.4 -1 3.1 -1.8 8 -1.8 10.7 0 2.8 0.8 7.6 1.8 10.8 1 3.1 2.9 7.7 4.4 10.2 1.4 2.5 4.8 6.5 7.4 9 2.7 2.4 7.8 5.8 11.4 7.4 5.8 2.7 7.5 3 16 3 7.5 0 10.6 -0.5 14.7 -2.2 2.9 -1.2 7.6 -3.9 10.4 -5.9 2.8 -2.1 6.8 -6.5 9.1 -9.8 2.2 -3.3 4.3 -7.2 4.6 -8.8 0.4 -1.5 1.3 -2.9 1.9 -3.2 1 -0.4 1.2 1 0.7 5.8 -0.4 3.4 -1.5 8.9 -2.6 12.2 -1.1 3.3 -3.5 8.3 -5.3 11 -1.8 2.8 -5.7 7.3 -8.6 10.1 -3 2.8 -7.4 6.2 -9.9 7.6 -2.5 1.4 -7.6 3.5 -11.5 4.7 -4.6 1.4 -9.6 2.1 -14.5 2.1 -4.1 0 -10 -0.7 -13 -1.5 -3 -0.8 -8 -2.7 -11 -4.2 -3 -1.5 -7.8 -4.7 -10.5 -7.1 -2.8 -2.3 -6.9 -7.1 -9.2 -10.5 -2.4 -3.4 -5.3 -9.1 -6.4 -12.7 -1.7 -5 -2.2 -9.1 -2.3 -17.7 -0.1 -6.2 0.2 -11.3 0.6 -11.3 0.5 0 0.8 -0.6 0.8 -1.2 0 -0.7 1.9 -5.1 4.2 -9.8 3 -6 6 -10.2 10.3 -14.4 3.8 -3.7 8.7 -7.1 13.5 -9.4 4.1 -2 7.9 -4 8.4 -4.4 0.5 -0.3 2.5 -0.8 4.5 -1.1 2 -0.2 5.3 -0.4 7.3 -0.5z"
android:fillColor="#4ECCA2" />
<path
android:pathData="M247 165.1c3.2 -0.1 2.8 0.3 -4.5 3.8 -5.3 2.6 -10 5.8 -14 9.7 -4.3 4.2 -7.3 8.4 -10.3 14.4 -2.3 4.7 -4.2 8.9 -4.2 9.5 0 0.6 -2.3 2.1 -5.2 3.5 -2.9 1.4 -7.9 4.2 -11.3 6.4 -3.3 2.1 -14.6 12.3 -25 22.5 -10.4 10.3 -20.8 20.1 -23 21.8 -2.2 1.7 -6.7 4.4 -10 6.1 -3.3 1.6 -8.8 3.8 -12.2 4.8 -3.5 1.1 -6.5 1.6 -6.8 1.2 -0.3 -0.5 1.4 -2.2 3.8 -3.9 2.3 -1.8 5.9 -5 8 -7.3 2.1 -2.3 6.2 -7 9.1 -10.6 2.9 -3.6 8.8 -11 13.2 -16.5 4.3 -5.5 9.4 -11.8 11.3 -14 1.9 -2.2 8.2 -8.7 14 -14.5 5.9 -5.8 14.2 -13 18.6 -16.1 4.4 -3.1 10.9 -7.2 14.5 -9.2 3.6 -2 8.5 -4.4 11 -5.3 2.5 -0.9 7.9 -2.7 12 -4 4.1 -1.2 9.1 -2.3 11 -2.3z"
android:fillColor="#2EA07B" />
</vector>

View File

@@ -2,4 +2,5 @@
<adaptive-icon xmlns:android="http://schemas.android.com/apk/res/android">
<background android:drawable="@color/ic_launcher_background"/>
<foreground android:drawable="@drawable/ic_launcher_foreground"/>
<monochrome android:drawable="@drawable/ic_launcher_monochrome"/>
</adaptive-icon>

View File

@@ -4,7 +4,8 @@
to allow setting breakpoints, to provide hot reload, etc.
-->
<uses-permission android:name="android.permission.INTERNET"/>
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
<uses-permission android:name="android.permission.POST_NOTIFICATIONS"/>
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/>
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
<uses-permission android:name="com.android.vending.BILLING" />
</manifest>

View File

@@ -1,12 +1,12 @@
buildscript {
ext.kotlin_version = '1.5.32'
ext.kotlin_version = '1.7.20'
repositories {
google()
mavenCentral()
}
dependencies {
classpath 'com.android.tools.build:gradle:4.1.0'
classpath 'com.android.tools.build:gradle:7.1.2'
classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"
}
}

View File

@@ -1,6 +1,5 @@
#Fri Jun 23 08:50:38 CEST 2017
distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists
zipStoreBase=GRADLE_USER_HOME
zipStorePath=wrapper/dists
distributionUrl=https\://services.gradle.org/distributions/gradle-6.7-all.zip
distributionUrl=https\://services.gradle.org/distributions/gradle-7.4-all.zip

Binary file not shown.

View File

@@ -1,96 +1,56 @@
{
"motd": "Welcome to LunaSea v10.1.0!\n\nThis release contains a wide variety of bug fixes including a completely rewritten database interface to detect and be resilient against corruption.",
"motd": "Welcome to LunaSea v10.2.2!\n\nThis release adds support for official .deb and .tar.gz builds for Linux releases!\n\nThis build also fixes an issue with cached activity sessions in Tautulli and fixes cases where it would not automatically scroll to the current date in the calendar schedule view.\n\nFinally, this release has a UX change that disables the horizontal swiping to change pages on routes with a bottom navigation bar. This will allow future extensibility of the UX to utilize horizontal actions more cleanly!",
"feat": {
"changelog": [
"android": [
{
"commit": "df65f53a4b00d11abc998f681274d22d94254f14",
"message": "prepare and show changelog on pre-release builds"
"commit": "d4774b054204546490ef9f78090e28303eefc1fc",
"message": "add option to disable back action to open drawer"
}
],
"calendar": [
"linux": [
{
"commit": "925f163e1534aeb45e5b22e8254eaf391eabd79f",
"message": "show current month in header"
"commit": "c46924c99645a2d9c27e2d3532d30ecf93882e2a",
"message": "include MD5 sums in Debian distributions"
},
{
"commit": "b1d01e02ca4cdb8a2775700930ada2d1d40a1031",
"message": "publish Linux builds as Debian archive (.deb)"
},
{
"commit": "a390a80ef1897d4c95812045a3472527ff38fd49",
"message": "publish Linux builds as tarball (.tar.gz)"
}
]
},
"fix": {
"database": [
"tautulli": [
{
"commit": "8fe81d11ab5c5aa484f0c2b471932d5364e6209c",
"message": "correctly store manually ordered module list"
},
{
"commit": "758756fcf2456996c7ee02be2bd523cca91c45d3",
"message": "detect and recover from database corruption"
},
{
"commit": "fb3e8e53255c457d0922505ad6c2d91f5c0fcf03",
"message": "fallback to defaults on null values in profile"
},
{
"commit": "f1dcd0c36d558882bfbc7f4465ed56fac0743c55",
"message": "safely type indexer fields and headers"
},
{
"commit": "d4d9816c945b1930ecfda0382d809a7c67839a26",
"message": "utilize stricter typing for module headers map"
},
{
"commit": "d8506ee2834ca6a83394c11f6d4d329f03a3647f",
"message": "validate enabled profile exists on restore"
"commit": "4c99ecf927e21538f875bb7ee93fc7aaf20de479",
"message": "cached or downloaded activity sessions could not be opened"
}
],
"sonarr": [
"calendar": [
{
"commit": "b5bb300046431d8c1c26fd8ac4a26c42444f4f53",
"message": "fanart image requests did not including headers"
"commit": "3f10675422b9a32c43f4f49c16b6e9723f267f50",
"message": "scroll to last past date with content when selected date has no content"
}
],
"flutter": [
{
"commit": "56f26e701eda951cd292431e23646e037332c78e",
"message": "upgrade Flutter packages"
},
{
"commit": "80678a75bb871a4835d1c73934e043564d80b6b0",
"message": "invalid links to theTVDB content"
}
],
"lidarr": [
{
"commit": "ad22820d6662371d3d2bc7fbf596f86619002d20",
"message": "(history) sort list by date descending"
}
],
"radarr": [
{
"commit": "22bf728a3dab6b7d76c7674cb4d97dc73e849201",
"message": "(queue) allow loading queue list when associated movie is not found"
}
],
"android": [
{
"commit": "c91ba2ce8134fdc796d0431ba1c9134908fddd91",
"message": "correctly handle back-button to open drawer on applicable routes"
}
],
"ui/ux": [
{
"commit": "95a645c06cf2a76231c4b8dbea87ec593961c205",
"message": "(lists) reorderable lists could not be reordered on some platforms"
},
{
"commit": "e05b17ae5ed35cec85ade5b910b82869cb7ad3f2",
"message": "(timestamps) display 0-length timestamps as \"0 Minutes\" instead of \"Under a Minute\""
"commit": "19f7ecf8858409f702f0656cfb7f485113c3d680",
"message": "upgrade to Flutter 3.3.9/8f2221fbef"
}
]
},
"refactor": {
"purchases": [
"uiux": [
{
"commit": "9cb3fabdf1f5fa10d65770a181ced937413642a2",
"message": "rewrite interface to in-app purchase APIs"
}
],
"database": [
{
"commit": "a0eaca084a399a2e249b142cb720cc50739a3f51",
"message": "rewrite interface to key-value database"
"commit": "968fe9cbbc4aff3ae584682e462defbf09ea5699",
"message": "disable horizontal swiping/scrolling between pages"
}
]
}

BIN
assets/icon/icon_linux.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 58 KiB

View File

@@ -131,6 +131,20 @@
"search": [
"tvmaze"
]
},
{
"uid": "5d832b893437e33c4a22b7029c2b781b",
"css": "musicbrainz",
"code": 59401,
"src": "custom_icons",
"selected": true,
"svg": {
"path": "M475.1 106.5C469 110.1 462.8 113.7 461.1 114.5 459.5 115.2 456.5 117 454.3 118.4 449.9 121.3 436.7 129.1 426.7 134.6 423.1 136.7 408.2 145.3 393.7 153.9 379.2 162.5 366.3 170 365.1 170.5 363.9 171.1 360.9 172.9 358.5 174.5 356.1 176.1 353.1 177.9 351.9 178.5 350 179.4 330.3 191 319.9 197.2 315.9 199.6 301.8 207.7 295.5 211.2 282.4 218.4 276.4 222.1 275.9 223.2 275.6 223.8 274.8 224.3 274 224.3 273.2 224.3 263.9 229.5 253.2 235.8 242.6 242.1 232.9 247.7 231.7 248.3 230.5 248.8 227.5 250.6 225.1 252.2 222.7 253.8 219.7 255.6 218.5 256.2 214.9 258 196.6 268.8 192.3 271.6 190.2 273 187.4 274.6 186.2 275.2 185 275.8 178.7 279.4 172.3 283.1 165.8 286.9 156.9 292 152.5 294.5L144.4 298.9 144.4 500 144.4 701.1 152.5 705.5C156.9 708 165.8 713.1 172.3 716.9 178.7 720.6 185 724.2 186.2 724.8 187.4 725.4 190.2 727 192.3 728.4 196.6 731.2 214.9 742 218.5 743.8 219.7 744.4 222.7 746.2 225.1 747.8 227.5 749.4 230.5 751.2 231.7 751.7 232.9 752.3 242.6 757.9 253.2 764.2 263.9 770.5 273.2 775.7 274 775.7 274.8 775.7 275.6 776.2 275.9 776.8 276.4 777.9 282.4 781.6 295.5 788.8 301.8 792.3 315.9 800.4 319.9 802.8 330.3 809 350 820.6 351.9 821.5 353.1 822.1 356.1 823.9 358.5 825.5 360.9 827.1 363.9 828.9 365.1 829.5 366.3 830 379.2 837.5 393.7 846.1 408.2 854.7 423.1 863.3 426.7 865.4 436.7 870.9 449.9 878.7 454.3 881.6 456.5 883 459.5 884.8 461.1 885.5 462.8 886.3 469 889.9 475.1 893.5L486.1 900 486.4 700C486.6 590 486.6 410 486.4 300L486.1 100 475.1 106.5M513.2 500L513.2 900.4 520.2 896.4C524 894.2 529.6 890.9 532.6 889 535.6 887.2 538.5 885.6 538.9 885.6 539.4 885.6 543.2 883.4 547.4 880.7 557.1 874.4 570.3 866.6 571 866.6 571.3 866.6 585.4 858.5 602.2 848.5 619 838.6 633.7 830 634.9 829.5 636.1 828.9 639.1 827.1 641.5 825.5 643.9 823.9 646.9 822.1 648.1 821.5 650 820.6 669.7 809 680.1 802.8 684.1 800.4 698.2 792.3 704.5 788.8 717.6 781.6 723.6 777.9 724.1 776.8 724.4 776.2 725.2 775.7 726 775.7 726.8 775.7 736.1 770.5 746.8 764.2 757.4 757.9 767.1 752.3 768.3 751.7 769.5 751.2 772.5 749.4 774.9 747.8 777.3 746.2 780.3 744.4 781.5 743.8 785.1 742 803.4 731.2 807.7 728.4 809.8 727 812.6 725.4 813.8 724.8 815 724.2 821.3 720.6 827.7 716.9 834.2 713.1 843.1 708 847.5 705.5L855.6 701.1 855.6 500 855.6 298.9 847.5 294.5C843.1 292 834.2 286.9 827.7 283.1 821.3 279.4 815 275.8 813.8 275.2 812.6 274.6 809.8 273 807.7 271.6 803.4 268.8 785.1 258 781.5 256.2 780.3 255.6 777.3 253.8 774.9 252.2 772.5 250.6 769.5 248.8 768.3 248.3 767.1 247.7 757.4 242.1 746.8 235.8 736.1 229.5 726.8 224.3 726 224.3 725.2 224.3 724.4 223.8 724.1 223.2 723.6 222.1 717.6 218.4 704.5 211.2 698.2 207.7 684.1 199.6 680.1 197.2 669.7 191 650 179.4 648.1 178.5 646.9 177.9 643.9 176.1 641.5 174.5 639.1 172.9 636.1 171.1 634.9 170.5 633.7 170 619 161.4 602.2 151.5 585.4 141.5 571.3 133.4 571 133.4 570.3 133.4 557.1 125.6 547.4 119.3 543.2 116.6 539.4 114.4 538.9 114.4 538.5 114.4 535.6 112.8 532.6 111 529.6 109.1 524 105.8 520.2 103.6L513.2 99.6 513.2 500",
"width": 1000
},
"search": [
"musicbrainz"
]
}
]
}

View File

@@ -0,0 +1 @@
<svg id="svg" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="400" height="400" viewBox="0, 0, 400,400"><g id="svgg"><path id="path0" d="M190.029 42.611 C 187.610 44.044,185.103 45.471,184.457 45.784 C 183.812 46.096,182.582 46.810,181.723 47.369 C 179.975 48.509,174.674 51.621,170.674 53.855 C 169.223 54.666,163.284 58.136,157.478 61.566 C 151.672 64.996,146.525 67.990,146.041 68.219 C 145.557 68.447,144.370 69.156,143.402 69.794 C 142.434 70.432,141.240 71.155,140.748 71.401 C 140.019 71.765,132.107 76.395,127.957 78.886 C 126.362 79.843,120.705 83.073,118.182 84.468 C 112.956 87.356,110.547 88.836,110.362 89.274 C 110.254 89.528,109.910 89.736,109.597 89.736 C 109.284 89.736,105.545 91.796,101.288 94.313 C 97.031 96.830,93.152 99.077,92.669 99.305 C 92.185 99.533,90.997 100.242,90.029 100.879 C 89.062 101.517,87.874 102.240,87.390 102.486 C 85.978 103.203,78.623 107.531,76.923 108.645 C 76.067 109.206,74.971 109.853,74.487 110.083 C 74.003 110.313,71.496 111.741,68.915 113.257 C 66.334 114.772,62.771 116.811,60.997 117.788 L 57.771 119.564 57.771 200.000 L 57.771 280.436 60.997 282.212 C 62.771 283.189,66.334 285.228,68.915 286.743 C 71.496 288.259,74.003 289.687,74.487 289.917 C 74.971 290.147,76.067 290.794,76.923 291.355 C 78.623 292.469,85.978 296.797,87.390 297.514 C 87.874 297.760,89.062 298.483,90.029 299.121 C 90.997 299.758,92.185 300.467,92.669 300.695 C 93.152 300.923,97.031 303.170,101.288 305.687 C 105.545 308.204,109.284 310.264,109.597 310.264 C 109.910 310.264,110.254 310.472,110.362 310.726 C 110.547 311.164,112.956 312.644,118.182 315.532 C 120.705 316.927,126.362 320.157,127.957 321.114 C 132.107 323.605,140.019 328.235,140.748 328.599 C 141.240 328.845,142.434 329.568,143.402 330.206 C 144.370 330.844,145.557 331.553,146.041 331.781 C 146.525 332.010,151.672 335.004,157.478 338.434 C 163.284 341.864,169.223 345.334,170.674 346.145 C 174.674 348.379,179.975 351.491,181.723 352.631 C 182.582 353.190,183.812 353.904,184.457 354.216 C 185.103 354.529,187.610 355.956,190.029 357.389 L 194.428 359.994 194.577 279.997 C 194.659 235.999,194.659 164.001,194.577 120.003 L 194.428 40.006 190.029 42.611 M205.279 200.000 L 205.279 360.167 208.065 358.562 C 209.597 357.679,211.835 356.348,213.038 355.604 C 214.241 354.861,215.384 354.252,215.578 354.252 C 215.772 354.252,217.295 353.370,218.962 352.291 C 222.855 349.773,228.101 346.628,228.408 346.628 C 228.539 346.628,234.144 343.381,240.863 339.413 C 247.582 335.445,253.475 332.011,253.959 331.782 C 254.443 331.553,255.630 330.844,256.598 330.206 C 257.566 329.568,258.760 328.845,259.252 328.599 C 259.981 328.235,267.893 323.605,272.043 321.114 C 273.638 320.157,279.295 316.927,281.818 315.532 C 287.044 312.644,289.453 311.164,289.638 310.726 C 289.746 310.472,290.090 310.264,290.403 310.264 C 290.716 310.264,294.455 308.204,298.712 305.687 C 302.969 303.170,306.848 300.923,307.331 300.695 C 307.815 300.467,309.003 299.758,309.971 299.121 C 310.938 298.483,312.126 297.760,312.610 297.514 C 314.022 296.797,321.377 292.469,323.077 291.355 C 323.933 290.794,325.029 290.147,325.513 289.917 C 325.997 289.687,328.504 288.259,331.085 286.743 C 333.666 285.228,337.229 283.189,339.003 282.212 L 342.229 280.436 342.229 200.000 L 342.229 119.564 339.003 117.788 C 337.229 116.811,333.666 114.772,331.085 113.257 C 328.504 111.741,325.997 110.313,325.513 110.083 C 325.029 109.853,323.933 109.206,323.077 108.645 C 321.377 107.531,314.022 103.203,312.610 102.486 C 312.126 102.240,310.938 101.517,309.971 100.879 C 309.003 100.242,307.815 99.533,307.331 99.305 C 306.848 99.077,302.969 96.830,298.712 94.313 C 294.455 91.796,290.716 89.736,290.403 89.736 C 290.090 89.736,289.746 89.528,289.638 89.274 C 289.453 88.836,287.044 87.356,281.818 84.468 C 279.295 83.073,273.638 79.843,272.043 78.886 C 267.893 76.395,259.981 71.765,259.252 71.401 C 258.760 71.155,257.566 70.432,256.598 69.794 C 255.630 69.156,254.443 68.447,253.959 68.218 C 253.475 67.989,247.582 64.555,240.863 60.587 C 234.144 56.619,228.539 53.372,228.408 53.372 C 228.101 53.372,222.855 50.227,218.962 47.709 C 217.295 46.630,215.772 45.748,215.578 45.748 C 215.384 45.748,214.241 45.139,213.038 44.396 C 211.835 43.652,209.597 42.321,208.065 41.438 L 205.279 39.833 205.279 200.000 " stroke="none" fill="#000000" fill-rule="evenodd"></path></g></svg>

After

Width:  |  Height:  |  Size: 4.3 KiB

125
assets/localization/ca.json Normal file
View File

@@ -0,0 +1,125 @@
{
"radarr.AddMovie": "Afegeix una pel·lícula",
"radarr.AddMovieAndSearch": "Afegeix i cerca",
"radarr.AddedTag": "S'ha afegit l'etiqueta",
"radarr.Age": "Edat",
"radarr.All": "Tot",
"radarr.Alphabetical": "Alfabètic",
"radarr.Approved": "Aprovat",
"radarr.Audio": "Àudio",
"radarr.Automatic": "Automàtic",
"radarr.AvailabilityUnknown": "Disponibilitat desconeguda",
"radarr.AvailableIn": "Disponible a {}",
"radarr.AvailableToday": "Disponible avui",
"radarr.BackupDatabase": "Còpia de seguretat de la Base de Dades",
"radarr.BitDepth": "Profunditat de bits",
"radarr.Channels": "Canals",
"radarr.CinemaDateUnknown": "Data en cinemes desconeguda",
"radarr.Codec": "Còdec",
"radarr.Configure": "Configura",
"radarr.Copy": "Copia",
"radarr.CopyFull": "Enllaç fort/Copia fitxers",
"radarr.CutoffUnmet": "Data límit no trobada",
"radarr.DateAdded": "Data d'alta",
"radarr.DigitalRelease": "Versió digital",
"radarr.DirectoryNotFound": "Directori no trobat",
"radarr.Discover": "Descobreix",
"radarr.Disks": "Discs",
"radarr.DownloadFailed": "La baixada ha fallat",
"radarr.DownloadIgnored": "Descàrrega ignorada",
"radarr.DynamicRange": "Interval dinàmic",
"radarr.EditMovie": "Edita la pel·lícula",
"radarr.FPS": "FPS",
"radarr.FailedToAddTag": "No s'ha pogut afegir l'etiqueta",
"radarr.FileBrowser": "Explorador d'arxius…",
"radarr.FilterCatalogue": "Filtra el catàleg",
"radarr.GrabbedFrom": "Obtingut de {}",
"radarr.History": "Historial",
"radarr.HistoryDescription": "Mostra l'activitat recent",
"radarr.Import": "Importa",
"radarr.ImportMode": "Mode d'importació",
"radarr.InCinemas": "Als cinemes",
"radarr.InCinemasIn": "Als cinemes el {}",
"radarr.InCinemasToday": "Als cinemes avui",
"radarr.Interactive": "Interactiu",
"radarr.Language": "Idioma",
"radarr.Languages": "Llengues",
"radarr.ManualImport": "Importació manual",
"radarr.ManualImportDescription": "Importa pel·lícules des del sistema de fitxers",
"radarr.MinimumAvailability": "Disponibilitat mínima",
"radarr.Missing": "Perdudes",
"radarr.Monitor": "Segueix",
"radarr.MonitorMovie": "Segueix la pel·lícula",
"radarr.Monitored": "Seguida",
"radarr.MonitoredDescription": "Segueix les noves versions",
"radarr.More": "Més",
"radarr.Move": "Mou",
"radarr.MoveFull": "Mou fitxers",
"radarr.Movie": "Pel·lícula",
"radarr.MovieFileDeleted": "S'ha suprimit el fitxer de la pel·lícula",
"radarr.MovieFileRenamed": "S'ha reanomenat el fitxer de la pel·lícula",
"radarr.MovieImported": "S'ha importat la pel·lícula ({})",
"radarr.MovieNotFound": "No s'ha trobat la pel·lícula",
"radarr.MoviePath": "Camí de la pel·lícula",
"radarr.Movies": "Pel·lícules",
"radarr.NoDisksFound": "No s'han trobat discs",
"radarr.NoFilesFound": "No s'ha trobat cap fitxer",
"radarr.NoHistoryFound": "No s'ha trobat l'historial",
"radarr.NoMoviesFound": "No s'han trobat pel·lícules",
"radarr.NoResultsFound": "No s'ha trobat cap resultat",
"radarr.NoRootFoldersFound": "No s'han trobat carpetes arrel",
"radarr.NoSubdirectoriesFound": "No s'han trobat subdirectoris",
"radarr.NoSummaryIsAvailable": "El resum no està disponible.",
"radarr.NoTagsFound": "No s'han trobat etiquetes",
"radarr.Other": "Altri",
"radarr.ParentDirectory": "Directori superior",
"radarr.PhysicalRelease": "Versió física",
"radarr.Quality": "Qualitat",
"radarr.QualityProfile": "Perfil de qualitat",
"radarr.Queue": "Posa a la cua",
"radarr.QueueDescription": "Mostra actius i en la cua",
"radarr.Quick": "Ràpid",
"radarr.RefreshMovie": "Refresca la pel·lícula",
"radarr.Rejected": "Rebutjada",
"radarr.Released": "Estrenada",
"radarr.ReleasedToday": "Estrenada avui",
"radarr.Releases": "Versions",
"radarr.RemoveMovie": "Elimina la pel·lícula",
"radarr.Resolution": "Resolució",
"radarr.RootFolder": "Carpeta arrel",
"radarr.RootFolders": "Carpetes arrels",
"radarr.RunRSSSync": "Executa la sincronització RSS",
"radarr.Runtime": "Durada",
"radarr.ScanType": "Tipus d'escaneig",
"radarr.Search": "Cerca",
"radarr.SearchAllMissing": "Cerca tots els que falten",
"radarr.SearchFor": "Cerca {}",
"radarr.Seeders": "Llavors",
"radarr.SelectLanguage": "Selecciona els idiomes",
"radarr.SelectMovie": "Seleccioneu la pel·lícula",
"radarr.SelectQuality": "Selecciona la qualitat",
"radarr.Size": "Mida",
"radarr.SortCatalogue": "Ordena el catàleg",
"radarr.StartSearchFor": "Inicia la cerca de…",
"radarr.StartSearchForMissingMovie": "Comença a buscar una pel·lícula que falta",
"radarr.Streams": "Fluxos de reproducció",
"radarr.Studio": "Estudi",
"radarr.Subtitles": "Subtítols",
"radarr.SystemStatus": "Estat del sistema",
"radarr.SystemStatusDescription": "Estat del sistema i espai al disc",
"radarr.Tags": "Etiquetes",
"radarr.TagsDescription": "Gestiona les teves etiquetes",
"radarr.Type": "Tipus",
"radarr.UnmappedFolder": "1 carpeta no assignada",
"radarr.UnmappedFolders": "{} carpetes no assignades",
"radarr.UnmonitorMovie": "Deixa de seguir la pel·lícula",
"radarr.Unmonitored": "Deixa de seguir",
"radarr.Upcoming": "Proper",
"radarr.UpdateLibrary": "Actualitza la biblioteca",
"radarr.UpdateMovie": "Actualitza la pel·lícula",
"radarr.Video": "Vídeo",
"radarr.ViewWebGUI": "Mostra la GUI de la WEB",
"radarr.Wanted": "Volgudes",
"radarr.Weight": "Mida",
"radarr.Year": "Any"
}

View File

@@ -33,7 +33,9 @@
"lunasea.BuyMeASoda": "Kauf mir eine Limonade",
"lunasea.Cancel": "Abbrechen",
"lunasea.ChangeProfiles": "Profile wechseln",
"lunasea.Changelog": "Änderungsprotokoll",
"lunasea.CheckLogsMessage": "Überprüfe die Protokolle für mehr Details",
"lunasea.Chores": "Aufgaben",
"lunasea.Clear": "Entfernen",
"lunasea.Close": "Schließen",
"lunasea.ComingSoon": "Bald verfügbar",
@@ -129,6 +131,7 @@
"radarr.Codec": "Kodec",
"radarr.Configure": "Konfigurieren",
"radarr.Copy": "Kopieren",
"radarr.CopyFiles": "Dateien Kopieren",
"radarr.CopyFull": "Hardlink/Dateien kopieren",
"radarr.CutoffUnmet": "Cutoff nicht erreicht",
"radarr.DateAdded": "Hinzugefügt am",
@@ -164,7 +167,9 @@
"radarr.Monitored": "Überwacht",
"radarr.MonitoredDescription": "Neue Veröffentlichungen überwachen",
"radarr.More": "Mehr",
"radarr.Move": "Übertragen",
"radarr.Move": "Verschieben",
"radarr.MoveFiles": "Datei verschieben",
"radarr.MoveFilesDescription": "Möchten Sie die Dateien verschieben?",
"radarr.MoveFull": "Dateien übertragen",
"radarr.Movie": "Film",
"radarr.MovieFileDeleted": "Filmdatei gelöscht",
@@ -233,6 +238,30 @@
"radarr.Wanted": "Gesucht",
"radarr.Weight": "Gewicht",
"radarr.Year": "Jahr",
"sabnzbd.Age": "Alter",
"sabnzbd.All": "Alle",
"sabnzbd.Ascending": "Aufsteigend",
"sabnzbd.CategoryDefault": "Standard Kategorie",
"sabnzbd.Completed": "Abgeschlossen",
"sabnzbd.Descending": "Absteigend",
"sabnzbd.Duplicate": "Duplikat",
"sabnzbd.Failed": "fehlgeschlagen",
"sabnzbd.Force": "erzwingen",
"sabnzbd.HibernatePC": "Ruhezustand",
"sabnzbd.High": "Hoch",
"sabnzbd.Low": "Niedrig",
"sabnzbd.Name": "Name",
"sabnzbd.None": "Keines",
"sabnzbd.Normal": "Normal",
"sabnzbd.Paused": "Pausiert",
"sabnzbd.Repair": "Reparieren",
"sabnzbd.RepairUnpack": "Reparieren/Entpacken",
"sabnzbd.RepairUnpackDelete": "Reparieren/Entpacken/Löschen",
"sabnzbd.Size": "Größe",
"sabnzbd.ShutdownPC": "PC Herunterfahren",
"sabnzbd.ShutdownSABnzbd": "SABnzbd Herunterfahren",
"sabnzbd.StandbyPC": "PC in den Standbymodus setzten",
"sabnzbd.Stop": "Stopp",
"search.NoCategoriesFound": "Keine Kategorien gefunden",
"search.FailedToSend": "Senden fehlgeschlagen",
"search.FailedToDownloadNZB": "Herunterladen der NZB fehlgeschlagen",
@@ -455,9 +484,7 @@
"settings.SortCategory": "Kategorie sortieren",
"settings.SortDirection": "Sortierrichtung",
"settings.ViewRecentChanges": "Letzte Änderungen anzeigen",
"settings.DiscordDescription": "Chat & Diskussionen",
"settings.Documentation": "Dokumentation",
"settings.FeedbackBoard": "Feedback-Seite",
"settings.GitHubDescription": "Sieh dir den Quellcode an",
"settings.SystemStatus": "Systemstatus",
"settings.SystemStatusDescription": "Statusseite für gehostete Dienste",
@@ -466,7 +493,6 @@
"settings.RedditDescription": "Stelle Fragen und erhalte Unterstützung",
"settings.TestBuildsDescription": "Vorabversionen von LunaSea installieren",
"settings.DocumentationDescription": "Sieh dir die Dokumentation an",
"settings.FeedbackBoardDescription": "Neue Funktionen anfragen",
"settings.WeblateDescription": "Hilf LunaSea zu lokalisieren",
"settings.Website": "Webseite",
"settings.CalendarSettings": "Kalendereinstellungen",
@@ -484,6 +510,35 @@
"settings.Home": "Startseite",
"settings.PasswordHint1": "Wenn Ihr Passwort Sonderzeichen enthält, sollten Sie stattdessen einen Basic Authentication Header mit Ihrem Benutzernamen und Passwort hinzufügen, um eine bessere Unterstützung zu gewährleisten",
"settings.QuickActionsBannerLine1": "Mit den Schnellaktionen können Sie direkt vom Startbildschirm oder dem Launcher Ihres Geräts in die Module springen, indem Sie lange auf das LunaSea-Symbol drücken.",
"settings.EmailValidation": "Falsche E-Mail Adresse",
"settings.Channel": "Kanal",
"settings.FailedToUpdateEmail": "E-Mail konnte nicht aktualisiert werden",
"settings.NoAdditionalProfilesAdded": "Es wurden keine zusätzlichen Profile hinzugefügt",
"settings.DatabaseCorruptionDetected": "Datenbankbeschädigung erkannt",
"settings.DatabaseCorruptionDetectedMessageLine1": "Datenbankbeschädigung wurde erkannt und Ihre Konfiguration wurde gelöscht.",
"settings.DatabaseCorruptionDetectedMessageLine2": "Entschuldigen Sie die Unannehmlichkeiten, alle zuvor erstellten Sicherungen sollten wiederherstellbar sein, auch wenn sie zuvor mit einer beschädigten Datenbank exportiert wurden.",
"settings.NoProfilesFound": "Keine Profile gefunden",
"settings.Platform": "Plattform",
"settings.BuildChannels": "Build Kanäle",
"settings.BuildChannelsDescription": "Erfahre mehr über zusätzliche Build-Kanäle",
"settings.FailedToUpdatePassword": "Passwort konnte nicht aktualisiert werden",
"settings.NewPassword": "Neues Passwort",
"settings.PasswordUpdated": "Passwort aktualisiert",
"settings.PleaseSignInAgain": "Bitte erneut anmelden",
"settings.RestoreFromDeviceDescription": "Konfigurationsdaten wiederherstellen",
"settings.AddedProfile": "Profil hinzugefügt",
"settings.Build": "Build",
"settings.ChangedProfile": "Profil geändert",
"settings.CurrentPassword": "Aktuelles Passwort",
"settings.DeletedProfile": "Profil gelöscht",
"settings.ProfileToProfile": "\"{}\" zu \"{}\"",
"settings.RenamedProfile": "Profil umbenannt",
"settings.RestoreFromDevice": "Vom Gerät wiederherstellen",
"settings.BackupToDevice": "Sicherung auf Gerät",
"settings.BackupToDeviceDescription": "Konfigurationsdaten sichern",
"settings.DownloadUpdate": "Update herunterladen",
"settings.EmailUpdated": "E-Mail aktualisiert",
"settings.EnableInAppNotifications": "App-Benachrichtigungen Aktivieren",
"sonarr.AddSeries": "Serie hinzufügen",
"sonarr.AddToExclusionList": "Zur Ignorierliste hinzufügen",
"sonarr.AllSeasons": "Alle Staffeln",

View File

@@ -54,6 +54,7 @@
"lunasea.Disabled": "Disabled",
"lunasea.Dismiss": "Dismiss",
"lunasea.Docs": "Docs",
"lunasea.DownloadClient": "Download Client",
"lunasea.Edge": "Edge",
"lunasea.Error": "Error",
"lunasea.ExternalModules": "External Modules",
@@ -77,6 +78,7 @@
"lunasea.Months": "{} Months",
"lunasea.MonthsAgo": "{} Months Ago",
"lunasea.New": "New",
"lunasea.No": "No",
"lunasea.NotSet": "Not Set",
"lunasea.NoModulesEnabled": "No Modules Enabled",
"lunasea.OneDay": "1 Day",
@@ -126,6 +128,7 @@
"lunasea.Website": "Website",
"lunasea.Years": "{} Years",
"lunasea.YearsAgo": "{} Years Ago",
"lunasea.Yes": "Yes",
"overseerr.Audio": "Audio",
"overseerr.Approved": "Approved",
"overseerr.Available": "Available",
@@ -171,6 +174,7 @@
"radarr.Codec": "Codec",
"radarr.Configure": "Configure",
"radarr.Copy": "Copy",
"radarr.CopyFiles": "Hardlink/Copy Files",
"radarr.CopyFull": "Hardlink/Copy Files",
"radarr.CutoffUnmet": "Cutoff Unmet",
"radarr.DateAdded": "Date Added",
@@ -207,6 +211,8 @@
"radarr.MonitorMovie": "Monitor Movie",
"radarr.More": "More",
"radarr.Move": "Move",
"radarr.MoveFiles": "Move Files",
"radarr.MoveFilesDescription": "Would you like to move the files?",
"radarr.MoveFull": "Move Files",
"radarr.Movie": "Movie",
"radarr.Movies": "Movies",
@@ -267,6 +273,7 @@
"radarr.UnmappedFolders": "{} Unmapped Folders",
"radarr.Unmonitored": "Unmonitored",
"radarr.UnmonitorMovie": "Unmonitor Movie",
"radarr.Unreleased": "Unreleased",
"radarr.Upcoming": "Upcoming",
"radarr.UpdateLibrary": "Update Library",
"radarr.UpdateMovie": "Update Movie",
@@ -275,6 +282,30 @@
"radarr.Wanted": "Wanted",
"radarr.Weight": "Weight",
"radarr.Year": "Year",
"sabnzbd.Age": "Age",
"sabnzbd.All": "All",
"sabnzbd.Ascending": "Ascending",
"sabnzbd.CategoryDefault": "Category Default",
"sabnzbd.Completed": "Completed",
"sabnzbd.Descending": "Descending",
"sabnzbd.Duplicate": "Duplicate",
"sabnzbd.Failed": "Failed",
"sabnzbd.Force": "Force",
"sabnzbd.HibernatePC": "Hibernate PC",
"sabnzbd.High": "High",
"sabnzbd.Low": "Low",
"sabnzbd.Name": "Name",
"sabnzbd.None": "None",
"sabnzbd.Normal": "Normal",
"sabnzbd.Paused": "Paused",
"sabnzbd.Repair": "Repair",
"sabnzbd.RepairUnpack": "Repair/Unpack",
"sabnzbd.RepairUnpackDelete": "Repair/Unpack/Delete",
"sabnzbd.Size": "Size",
"sabnzbd.ShutdownPC": "Shutdown PC",
"sabnzbd.ShutdownSABnzbd": "Shutdown SABnzbd",
"sabnzbd.StandbyPC": "Standby PC",
"sabnzbd.Stop": "Stop",
"search.Age": "Age",
"search.AllSubcategories": "All Subcategories",
"search.Alphabetical": "Alphabetical",
@@ -340,6 +371,7 @@
"settings.BasicAuthenticationHint1": "The username must not contain a colon",
"settings.BasicAuthenticationHint2": "The password can contain a colon",
"settings.BasicAuthenticationHint3": "The username and password are automatically converted to base64 encoding",
"settings.BootModule": "Boot Module",
"settings.BroadcastAddress": "Broadcast Address",
"settings.BroadcastAddressHint1": "This is the broadcast address of your local network",
"settings.BroadcastAddressHint2": "Typically this is the IP address of your machine with the last octet set to 255",
@@ -408,7 +440,7 @@
"settings.DeleteModuleSuccess": "Module Deleted",
"settings.DeleteProfile": "Delete Profile",
"settings.DeleteProfileDescription": "Delete an Existing Profile",
"settings.DiscordDescription": "Chat & Discussions",
"settings.DiscordDescription": "Request Features & Get Support",
"settings.DismissBanners": "Dismiss Banners",
"settings.DismissBannersHint1": "Are you sure you want to dismiss all tooltip banners?",
"settings.DismissBannersHint2": "The tooltip banners will give you tips and hints for features available within LunaSea.",
@@ -434,11 +466,11 @@
"settings.FailedToDeleteAccount": "Failed to Delete Account",
"settings.FailedToUpdateEmail": "Failed to Update Email",
"settings.FailedToUpdatePassword": "Failed to Update Password",
"settings.FeedbackBoard": "Feedback Board",
"settings.FeedbackBoardDescription": "Request New Features",
"settings.FilterCategory": "Filter Category",
"settings.ForgotYourPassword": "Forgot Your Password?",
"settings.FutureDays": "Future Days",
"settings.General": "General",
"settings.GeneralDescription": "Customize LunaSea",
"settings.GitHubDescription": "View the Source Code",
"settings.HeaderAdded": "Header Added",
"settings.HeaderDeleted": "Header Deleted",
@@ -485,6 +517,8 @@
"settings.NoExternalModulesFound": "No External Modules Found",
"settings.NoHeadersAdded": "No Headers Added",
"settings.NoProfilesFound": "No Profiles Found",
"settings.OpenDrawerOnBackAction": "Open Drawer on Back Action",
"settings.OpenDrawerOnBackActionDescription": "Open the drawer instead of closing LunaSea",
"settings.OpenLinksIn": "Open Links In…",
"settings.Password": "Password",
"settings.PasswordHint1": "If your password includes special characters, considering adding a basic authentication header with your username and password instead for better support",
@@ -523,6 +557,8 @@
"settings.RestoreFromCloudSuccessMessage": "Your configuration has been restored",
"settings.RestoreFromDevice": "Restore from Device",
"settings.RestoreFromDeviceDescription": "Restore Configuration Data",
"settings.SentryLogging": "Sentry Logging",
"settings.SentryLoggingDescription": "Upload Errors & Crashes to Sentry",
"settings.SignedInFailure": "Failed to Sign In",
"settings.SignedInSuccess": "Successfully Signed In",
"settings.SignedOutFailure": "Failed to Sign Out",

View File

@@ -45,7 +45,7 @@
"lunasea.Critical": "Crítica",
"lunasea.Dashboard": "Tablero",
"lunasea.Days": "{} Días",
"lunasea.DaysAgo": "{} Hace días",
"lunasea.DaysAgo": "Hace {} días",
"lunasea.Debug": "Depurar",
"lunasea.Delete": "Eliminar",
"lunasea.Descending": "Descendente",
@@ -63,24 +63,68 @@
"lunasea.GoBack": "Regresar",
"lunasea.GoToSettings": "Ve a Configuración",
"lunasea.GridView": "Vista de cuadrícula",
"lunasea.Home": "Inicio",
"lunasea.Hours": "{} horas",
"lunasea.HoursAgo": "Hace {} horas",
"lunasea.IncorrectEncryptionKey": "Clave de cifrado incorrecta",
"lunasea.Internal": "Interno",
"lunasea.InvalidFileTypeSelected": "Tipo de archivo seleccionado no válido",
"lunasea.JustNow": "Ahora mismo",
"lunasea.Minutes": "{} minutos",
"lunasea.MinutesAgo": "Hace {} minutos",
"lunasea.Module": "Módulo",
"lunasea.ModuleIsNotEnabled": "{} No está habilitado",
"lunasea.Months": "{} meses",
"lunasea.MonthsAgo": "Hace {} meses",
"lunasea.New": "Nuevo",
"lunasea.NoModulesEnabled": "Sin módulos habilitados",
"lunasea.NotSet": "No establecido",
"lunasea.OneDay": "1 día",
"lunasea.OneDayAgo": "Hace 1 día",
"lunasea.OneHour": "1 hora",
"lunasea.OneHourAgo": "Hace 1 hora",
"lunasea.OneMinute": "1 minuto",
"lunasea.OneMinuteAgo": "Hace 1 minuto",
"lunasea.OneMonth": "1 mes",
"lunasea.OneMonthAgo": "Hace 1 mes",
"lunasea.OneSecond": "1 segundo",
"lunasea.OneSecondAgo": "Hace 1 segundo",
"lunasea.OneYear": "1 año",
"lunasea.OneYearAgo": "Hace 1 año",
"lunasea.Options": "Opciones",
"lunasea.Other": "Otro",
"lunasea.Page": "Página",
"lunasea.PleaseTryAgain": "Por favor, inténtelo de nuevo",
"lunasea.Production": "Producción",
"lunasea.Refresh": "Actualizar",
"lunasea.Refreshing": "Refrescando…",
"lunasea.Remove": "Eliminar",
"lunasea.Rename": "Renombrar",
"lunasea.Restore": "Restaurar",
"lunasea.Retry": "Reintentar",
"lunasea.ReturnToDashboard": "Regresar al Tablero",
"lunasea.SearchTextBar": "Buscar…",
"lunasea.Seconds": "{} segundos",
"lunasea.SecondsAgo": "Hace {} segundos",
"lunasea.Set": "Establecer",
"lunasea.Settings": "Configuración",
"lunasea.Stable": "Estable",
"lunasea.StartingView": "Vista inicial",
"lunasea.Today": "Hoy",
"lunasea.TransactionFailure": "Error de transacción",
"lunasea.TryAgain": "Volver a intentar",
"lunasea.Tweaks": "Ajustes",
"lunasea.UnderAMinute": "Menos de un minuto",
"lunasea.Unknown": "Desconocido",
"lunasea.UnknownDate": "Fecha desconocida",
"lunasea.UnknownError": "Error desconocido",
"lunasea.UnknownModule": "Módulo desconocido",
"lunasea.Update": "Actualizar",
"lunasea.View": "Ver",
"lunasea.Warning": "Aviso",
"lunasea.Website": "Sitio web",
"lunasea.Years": "{} años",
"lunasea.YearsAgo": "Hace {} años",
"overseerr.NoRequests": "Sin solicitudes",
"overseerr.OneRequest": "1 solicitud",
"overseerr.SomeRequests": "{} solicitudes",
@@ -89,6 +133,24 @@
"overseerr.UnknownUser": "Usuario desconocido",
"overseerr.NoUsersFound": "No se encontraron usuarios",
"overseerr.Users": "Usuarios",
"overseerr.Audio": "Audio",
"overseerr.Issues": "Incidencias",
"overseerr.Open": "Abrir",
"overseerr.OpenedBy": "Abierto por {}",
"overseerr.Other": "Otro",
"overseerr.Processing": "Procesando",
"overseerr.Resolved": "Resuelto",
"overseerr.Requested": "Solicitado",
"overseerr.RequestedBy": "Solicitado por {}",
"overseerr.Subtitle": "Subtítulo",
"overseerr.Video": "Vídeo",
"overseerr.NoIssuesFound": "No se han encontrado incidencias",
"overseerr.NoIssues": "No hay Incidencias",
"overseerr.Approved": "Aprobado",
"overseerr.Available": "Disponible",
"overseerr.Declined": "Rechazado",
"overseerr.PartiallyAvailable": "Parcialmente disponible",
"overseerr.Pending": "Pendiente",
"radarr.AddMovie": "Añadir película",
"radarr.AddMovieAndSearch": "Añadir y Buscar",
"radarr.AddedTag": "Etiqueta añadida",
@@ -212,6 +274,14 @@
"radarr.Wanted": "Se busca",
"radarr.Weight": "Peso",
"radarr.Year": "Año",
"sabnzbd.Age": "Años",
"sabnzbd.All": "Todos",
"sabnzbd.Ascending": "Ascendente",
"sabnzbd.CategoryDefault": "Categoría Predeterminada",
"sabnzbd.Completed": "Terminado",
"sabnzbd.Descending": "Descendente",
"sabnzbd.Duplicate": "Duplicado",
"sabnzbd.Failed": "Fallido",
"search.Alphabetical": "Alfabética",
"search.Category": "Categoria",
"search.Comments": "Comentarios",
@@ -271,7 +341,7 @@
"settings.ConfigureModule": "Configurar {}",
"settings.Configuration": "Configuración",
"settings.ConfigurationDescription": "Configurar LunaSea",
"settings.ConnectedSuccessfully": "Conectado exitosamente",
"settings.ConnectedSuccessfully": "Conectado",
"settings.ConnectedSuccessfullyMessage": "{} está listo para usar con LunaSea!",
"settings.ConnectionDetails": "Detalles de conexión",
"settings.ConnectionDetailsDescription": "Detalles de conexión para {}",
@@ -321,7 +391,7 @@
"settings.HostValidation": "Servidor debe incluir http:// o https://",
"settings.DisplayName": "Nombre para mostrar",
"settings.ImageBackgroundOpacity": "Opacidad de las imágenes de fondo",
"settings.InvalidEmail": "Email invalido",
"settings.InvalidEmail": "Dirección de correo invalida",
"settings.InvalidEmailMessage": "La dirección de correo es invalida",
"settings.InvalidPasswordMessage": "La contraseña es invalida",
"settings.Language": "Idioma",
@@ -346,7 +416,7 @@
"settings.QuickActions": "Acciones rápidas",
"settings.QuickActionsDescription": "Acciones rápidas en la pantalla principal",
"settings.RegisteredFailure": "Registro fallido",
"settings.RegisteredSuccess": "Registrado exitosamente",
"settings.RegisteredSuccess": "Registrado",
"settings.RenameProfile": "Renombrar perfil",
"settings.ResetPassword": "Restablecer contraseña",
"settings.Resources": "Recursos",
@@ -387,7 +457,7 @@
"settings.Custom": "Personalizar…",
"settings.DeleteHeaderHint1": "¿Está seguro de que desea eliminar esta cabecera?",
"settings.DeleteCloudBackup": "Borrar copia de seguridad en la nube",
"settings.DeleteCloudBackupSuccess": "Eliminado exitosamente",
"settings.DeleteCloudBackupSuccess": "Eliminado",
"settings.DismissBannersHint2": "Los banners le darán consejos y sugerencias sobre las funciones disponibles en LunaSea.",
"settings.DeleteModule": "Eliminar módulo",
"settings.ImageBackgroundOpacityHint1": "Configura la opacidad de las imágenes de fondo.",
@@ -419,6 +489,197 @@
"settings.AccountDeletedMessage": "Borrado su cuenta de LunaSea",
"settings.Channel": "Canal",
"settings.Build": "Construir",
"settings.DeleteProfileDescription": "Eliminar un perfil existente",
"settings.EmailValidation": "Dirección de correo electrónico no válida",
"settings.EnableModule": "Habilitar {}",
"settings.CurrentPassword": "Contraseña actual",
"settings.DaysOne": "1 Día",
"settings.DaysCount": "{} Días",
"settings.DeleteAccountWarning1": "Este proceso es irreversible",
"settings.DeletedProfile": "Perfil eliminado",
"settings.Documentation": "Documentación",
"settings.DocumentationDescription": "Ver la documentación",
"settings.DownloadUpdate": "Descargar actualización",
"settings.EmailUpdated": "Correo electrónico actualizado",
"settings.DeleteAccount": "Eliminar cuenta",
"settings.DeleteAccountDescription": "Eliminar permanentemente su cuenta",
"settings.DeleteAccountHint1": "¿Estás seguro de que quieres eliminar tu cuenta de LunaSea?",
"settings.DeleteAccountHint2": "Este proceso también eliminará todas las copias de seguridad almacenadas en la nube y los datos adjuntos a esta cuenta.",
"settings.Version": "Versión",
"settings.FilterCategory": "Filtrar categoría",
"settings.FutureDays": "Días futuros",
"settings.EnableInAppNotifications": "Activar notificaciones en la app",
"settings.UpdateEmail": "Actualizar correo",
"settings.SortCategory": "Ordenar categoría",
"settings.ProfileToProfile": "\"{}\" a \"{}\"",
"settings.Network": "Red",
"settings.GitHubDescription": "Ver código fuente",
"settings.NetworkDescription": "Personalizar funciones de red",
"settings.NewPassword": "Nueva contraseña",
"settings.StartingView": "Vista inicial",
"settings.PasswordUpdated": "Contraseña actualizada",
"settings.PastDays": "Días pasados",
"settings.Platform": "Plataforma",
"settings.RenameProfileDescription": "Renombrar un perfil existente",
"settings.RestoreFromDevice": "Restaurar desde el dispositivo",
"settings.RestoreFromDeviceDescription": "Restaurar la configuración",
"settings.ViewTypeLogs": "Ver registros de {}",
"settings.Home": "Inicio",
"settings.UpdatePassword": "Actualizar contraseña",
"settings.UpToDate": "Al día",
"settings.Use24HourTime": "Usar horario de 24 horas",
"settings.ViewRecentChanges": "Ver cambios recientes",
"settings.WeblateDescription": "Ayuda a traducir a LunaSea",
"settings.Website": "Página web",
"settings.WebsiteDescription": "Visitar la página web de LunaSea",
"settings.PleaseSignInAgain": "Por favor, inicie sesión de nuevo",
"settings.SystemStatus": "Estado de sistema",
"settings.RenamedProfile": "Perfil renombrado",
"settings.SortDirection": "Ordenar Dirección",
"sonarr.AddedOn": "Añadido",
"sonarr.AddedTag": "Etiqueta añadida",
"sonarr.AddSeries": "Añadir serie",
"sonarr.AddToExclusionList": "Añadir a la lista de exclusión",
"sonarr.Age": "Edad",
"sonarr.AllSeasons": "Todas las temporadas",
"sonarr.Approved": "Aprobado",
"sonarr.Audio": "Audio",
"sonarr.Automatic": "Automático",
"sonarr.AutomaticSearch": "Búsqueda automática",
"sonarr.Bitrate": "Bitrate",
"sonarr.Client": "Cliente",
"sonarr.DeleteFile": "Eliminar archivo",
"sonarr.DeleteFiles": "Borrar archivos",
"sonarr.DeleteEpisodeFile": "Eliminar archivo del episodio",
"sonarr.Continuing": "Continuando",
"sonarr.Destination": "Destino",
"sonarr.EditSeries": "Editar serie",
"sonarr.Ended": "Terminado",
"sonarr.Episode": "Episodio",
"sonarr.Episodes": "Episodios",
"sonarr.EpisodesAvailable": "Episodios disponibles",
"sonarr.EpisodeFileDeleted": "Archivo del episodio eliminado",
"sonarr.EpisodeNumber": "Episodio {}",
"sonarr.FilterCatalogue": "Filtrar catálogo",
"sonarr.FPS": "FPS",
"sonarr.FilterReleases": "Filtrar lanzamientos",
"sonarr.History": "Historia",
"sonarr.HistoryDescription": "Ver actividad reciente",
"sonarr.Indexer": "Indexador",
"sonarr.Interactive": "Interactivo",
"sonarr.InteractiveSearch": "Búsqueda interactiva",
"sonarr.Language": "Idioma",
"sonarr.Languages": "Idiomas",
"sonarr.Monitored": "Monitoreado",
"sonarr.MonitorEpisode": "Monitorear episodio",
"sonarr.Monitor": "Monitorear",
"sonarr.More": "Más",
"sonarr.Name": "Nombre",
"sonarr.Other": "Otro",
"sonarr.OneSeason": "1 temporada",
"sonarr.Path": "Ruta",
"sonarr.Quality": "Calidad",
"sonarr.PublishedDate": "Fecha de publicación",
"sonarr.QualityProfile": "Perfil de calidad",
"sonarr.Queue": "Cola",
"sonarr.Reason": "Razón",
"sonarr.QueueDescription": "Ver contenido activo y en cola",
"sonarr.RefreshSeries": "Actualizar serie",
"sonarr.Releases": "Lanzamientos",
"sonarr.RelativePath": "Ruta relativa",
"sonarr.ReleaseGroup": "Grupo de lanzamiento",
"sonarr.RemoveSeries": "Eliminar la serie",
"sonarr.RemovedSeries": "Serie eliminada",
"sonarr.RootFolder": "Carpeta raíz",
"sonarr.Resolution": "Resolución",
"sonarr.Search": "Buscar",
"sonarr.Searching": "Buscando {}",
"sonarr.SearchingForEpisode": "Buscando el episodio…",
"sonarr.Season": "Temporada",
"sonarr.SearchFor": "Buscar {}",
"sonarr.Seasons": "Temporadas",
"sonarr.SearchingForSeason": "Buscando la temporada…",
"sonarr.SearchingDescription": "Buscando todos los episodios faltantes",
"sonarr.Seeders": "Seeders",
"sonarr.SeasonFolders": "Carpetas de temporada",
"sonarr.SeasonDetails": "Detalles de la temporada",
"sonarr.SeasonNumber": "Temporada {}",
"sonarr.SeriesDetails": "Detalles de la serie",
"sonarr.SeriesEnded": "Serie ha terminado",
"sonarr.SeriesNotFound": "Serie no encontrada",
"sonarr.SeriesPath": "Ruta de la serie",
"sonarr.SortCatalogue": "Ordenar catálogo",
"sonarr.Size": "Tamaño",
"sonarr.SeriesType": "Tipo de serie",
"sonarr.Source": "Fuente",
"sonarr.SortReleases": "Ordenar lanzamientos",
"sonarr.SourceTitle": "Título de la fuente",
"sonarr.StartSearchFor": "Comenzar búsqueda por…",
"sonarr.Tags": "Etiquetas",
"sonarr.Unaired": "No emitido",
"sonarr.Unmonitored": "No monitoreada",
"sonarr.Upcoming": "Próximamente",
"sonarr.UpdateLibrary": "Actualizar biblioteca",
"sonarr.UseSeasonFolders": "Usar carpetas de temporada",
"sonarr.UpdateSeries": "Actualizar serie",
"sonarr.UpdatingLibrary": "Actualización de la biblioteca",
"sonarr.Queued": "En cola",
"sonarr.PendingWithMessage": "Pendiente: {}",
"sonarr.Pending": "Pendiente",
"sonarr.Paused": "Pausada",
"sonarr.Files": "Archivos",
"sonarr.Missing": "Falta",
"sonarr.Rejected": "Rechazado",
"sonarr.MissingEpisodes": "Episodios faltantes",
"sonarr.RemoveFromQueue": "Eliminar de la cola",
"sonarr.RemovedFromQueue": "Eliminada de la cola",
"sonarr.SearchMonitored": "Búsqueda monitorizada",
"sonarr.SearchingForMonitoredEpisodes": "Buscando episodios monitoreados…",
"sonarr.RemoveFromDownloadClient": "Eliminar del cliente de descarga",
"sonarr.Series": "Series",
"sonarr.StartSearchForMissingEpisodes": "Comenzar búsqueda por episodios faltantes",
"sonarr.Title": "Título",
"sonarr.TimeLeft": "Tiempo restante",
"sonarr.Video": "Vídeo",
"sonarr.Subtitles": "Subtítulos",
"sonarr.Torrent": "Torrente",
"sonarr.Usenet": "Usenet",
"sonarr.SystemStatus": "Estado de sistema",
"sonarr.SystemStatusDescription": "Estado de sistema y Espacio de disco",
"sonarr.AddedSeries": "Series añadidas",
"sonarr.Download": "Descargar",
"sonarr.Downloaded": "Descargado",
"sonarr.DownloadedWaitingToProcess": "Descargado: Esperando para procesar",
"sonarr.UpdatedSeries": "Serie actualizada",
"sonarr.Monitoring": "Monitoreando",
"sonarr.Specials": "Especiales",
"sonarr.ManySeasons": "{} temporadas",
"sonarr.MonitorSeries": "Monitorear serie",
"sonarr.ManualImport": "Importación manual",
"sonarr.SourceRelative": "Fuente relativa",
"sonarr.All": "Todo",
"sonarr.Channels": "Canales",
"sonarr.Codec": "Códec",
"sonarr.DestinationRelative": "Destino relativo",
"sonarr.DownloadedImporting": "Descargado: Importando",
"sonarr.DownloadedWaitingToImport": "Descargado: Esperando para importar",
"sonarr.Downloading": "Descargando",
"sonarr.DownloadingWithMessage": "Descargando: {}",
"sonarr.DownloadClientUnavailable": "El cliente de descarga no está disponible",
"sonarr.DownloadIgnored": "Descarga ignorada",
"sonarr.DownloadWarningWithMessage": "Advertencia de descarga: {}",
"sonarr.DownloadingRelease": "Descargando lanzamiento…",
"sonarr.Leechers": "Leechers",
"sonarr.LanguageProfile": "Perfil de idioma",
"sonarr.Messages": "Mensajes",
"sonarr.Import": "Importar",
"sonarr.Message": "Mensaje",
"sonarr.BackupDatabase": "Respaldar base de datos",
"sonarr.ImportedTo": "Importado a",
"sonarr.Runtime": "Duración",
"sonarr.Streams": "Transmisiones",
"sonarr.DownloadID": "ID de descarga",
"sonarr.DownloadFailed": "Descarga fracasó",
"tautulli.Quality": "Calidad",
"tautulli.None": "Ninguno",
"tautulli.Terminate": "Terminar",

View File

@@ -498,16 +498,13 @@
"settings.TLSCertificateValidationDescription": "Valider les certificats dans les connexions TLS",
"settings.ViewRecentChanges": "Afficher les changements récents",
"settings.DocumentationDescription": "Voir la documentation",
"settings.FeedbackBoard": "Page des remarques",
"settings.RedditDescription": "Poser des questions et obtenir de l'aide",
"settings.TestBuilds": "Versions de tests",
"settings.Documentation": "Documentation",
"settings.WeblateDescription": "Aidez à traduire LunaSea",
"settings.DiscordDescription": "Tchat et discussions",
"settings.SystemStatus": "État du système",
"settings.SystemStatusDescription": "Page d'état pour les services hébergés",
"settings.TestBuildsDescription": "Installer les versions préliminaires de LunaSea",
"settings.FeedbackBoardDescription": "Demander de nouvelles fonctionnalités",
"settings.Website": "Site web",
"settings.GitHubDescription": "Afficher le code source",
"settings.WebsiteDescription": "Visitez le site web de LunaSea",
@@ -557,6 +554,11 @@
"settings.RenamedProfile": "Profil renommé",
"settings.Platform": "Plateforme",
"settings.Version": "Version",
"settings.SentryLogging": "Journaux de Sentry",
"settings.SentryLoggingDescription": "Soumettre toutes les erreurs et plantages à Sentry",
"settings.DatabaseCorruptionDetectedMessageLine1": "Une corruption de la base de données a été détectée et votre configuration a été effacée.",
"settings.DatabaseCorruptionDetectedMessageLine2": "Désolé pour ce problème, toutes les sauvegardes devraient pouvoir être restaurés même celles créés avec une base de données corrompue.",
"settings.DatabaseCorruptionDetected": "Base de données corrompue détectée",
"sonarr.AddedOn": "Ajouté le",
"sonarr.AddedSeries": "Série ajoutée",
"sonarr.AddedTag": "Étiquette ajoutée",

View File

@@ -0,0 +1,21 @@
{
"dashboard.Calendar": "Kalendar",
"dashboard.Friday": "Petak",
"dashboard.FutureDays": "Budući dani",
"dashboard.FutureDaysDescription": "Postavi broj dana da se ubuduće dohvate unosi iz kalendara.",
"dashboard.MinimumOfOneDay": "Najmanje 1 dan",
"dashboard.Modules": "Moduli",
"dashboard.Monday": "Ponedjeljak",
"dashboard.NoNewContent": "Bez novog sadrzaja",
"dashboard.OneMonth": "Jedan mjesec",
"dashboard.OneWeek": "Jedan tjedan",
"dashboard.PastDays": "Prošli dani",
"dashboard.PastDaysDescription": "Postavi broj dana iz prošlosti da se dohvate unosi iz kalendara.",
"dashboard.Saturday": "Subota",
"dashboard.Schedule": "Raspored",
"dashboard.Sunday": "Nedjelja",
"dashboard.Thursday": "Četvrtak",
"dashboard.Tuesday": "Utorak",
"dashboard.TwoWeeks": "Dva tjedna",
"dashboard.Wednesday": "Srijeda"
}

View File

@@ -444,7 +444,6 @@
"settings.DaysOne": "1 nap",
"settings.DefaultPages": "Alapértelmezett oldalak",
"settings.DocumentationDescription": "Tekintse meg a Dokumentációt",
"settings.FeedbackBoardDescription": "Kérjen új funkciókat",
"settings.ProfilesBannerLine1": "A profilok lehetővé teszik több modulpéldány hozzáadását a LunaSea-hoz. A fő navigációs fiókban válthat a profilok között.",
"settings.PasswordHint1": "Ha a jelszava speciális karaktereket tartalmaz, fontolja meg egy alapvető hitelesítési fejléc hozzáadását felhasználónevével és jelszavával a jobb támogatás érdekében",
"settings.PasswordUpdated": "Jelszó frissítve",
@@ -476,13 +475,11 @@
"settings.DefaultSortingAndFilteringDescription": "Állítsa be az alapértelmezett rendezési és szűrési módszereket",
"settings.DeleteAccountDescription": "A Fiók végleges törlése",
"settings.DeleteProfileDescription": "Meglévő profil törlése",
"settings.DiscordDescription": "Csevegés és beszélgetések",
"settings.Documentation": "Dokumentáció",
"settings.EnableModule": "Engedélyezze {}",
"settings.FailedToDeleteAccount": "Nem sikerült törölni a fiókot",
"settings.FailedToUpdateEmail": "Nem sikerült frissíteni az e-mailt",
"settings.FailedToUpdatePassword": "Nem sikerült frissíteni a jelszót",
"settings.FeedbackBoard": "Visszajelzési tábla",
"settings.Home": "Főképernyő",
"settings.PastDays": "Elmúlt napokban",
"settings.PleaseSignInAgain": "Kérem jelentkezzen be újra",

View File

@@ -84,61 +84,101 @@
"lunasea.Website": "Nettside",
"radarr.AddMovie": "Legg til film",
"radarr.AddMovieAndSearch": "Legg til + søk",
"radarr.AddedTag": "La til emne",
"radarr.Age": "Alder",
"radarr.All": "Alle",
"radarr.Alphabetical": "Alfabetisk",
"radarr.Approved": "Godkjent",
"radarr.Audio": "Lyd",
"radarr.Automatic": "Automatisk",
"radarr.AvailabilityUnknown": "Ukjent tilgjengelighet",
"radarr.AvailableIn": "Tilgjengelig i {}",
"radarr.AvailableToday": "Tilgjengelig i dag",
"radarr.BackupDatabase": "Sikkerhetskopier database",
"radarr.Channels": "Kanaler",
"radarr.CinemaDateUnknown": "Kinodato ukjent",
"radarr.Codec": "Kodek",
"radarr.Configure": "Konfigurer",
"radarr.Copy": "Kopier",
"radarr.CutoffUnmet": "Ikke oppfylt",
"radarr.DateAdded": "Dato lagt til",
"radarr.DirectoryNotFound": "Mappe ble ikke funnet",
"radarr.Discover": "Oppdag",
"radarr.Disks": "Disker",
"radarr.DownloadFailed": "Nedlasting mislyktes",
"radarr.DownloadIgnored": "Nedlasting ignorert",
"radarr.DynamicRange": "Dynamisk rekkevidde",
"radarr.EditMovie": "Rediger fil",
"radarr.FailedToAddTag": "Klarte ikke legge til emne",
"radarr.FileBrowser": "Filutforsker …",
"radarr.FilterCatalogue": "Filtrer katalog",
"radarr.GrabbedFrom": "Hentat fra {}",
"radarr.History": "Historikk",
"radarr.HistoryDescription": "Vis nylig historikk",
"radarr.Import": "Importer",
"radarr.ImportMode": "Importmodus",
"radarr.InCinemasIn": "På kino {}",
"radarr.InCinemasToday": "På kino i dag",
"radarr.Interactive": "Interaktiv",
"radarr.Language": "Språk",
"radarr.Languages": "Språk",
"radarr.ManualImport": "Manuell import",
"radarr.ManualImportDescription": "Importer filmer fra filsystemet",
"radarr.MinimumAvailability": "Minimumstilgjengelighet",
"radarr.Missing": "Mangler",
"radarr.MonitorMovie": "Hold oppsyn med film",
"radarr.Monitored": "På oppsynsliste",
"radarr.MonitoredDescription": "Hold oppsyn med nye utgivelser",
"radarr.More": "Mer",
"radarr.Move": "Flytt",
"radarr.MoveFull": "Flytt filer",
"radarr.Movie": "Film",
"radarr.MovieFileDeleted": "Filmfil slettet",
"radarr.MovieFileRenamed": "Filmfilsnavn endret",
"radarr.MovieImported": "Film importert ({})",
"radarr.MovieNotFound": "Fant ikke filmen",
"radarr.MoviePath": "Filmsti",
"radarr.Movies": "Filmer",
"radarr.NoDisksFound": "Ingen disker funnet",
"radarr.NoFilesFound": "Ingen filer funnet",
"radarr.NoHistoryFound": "Fant ingen historikk",
"radarr.NoMoviesFound": "Fant ingen filmer",
"radarr.NoResultsFound": "Resultatløst",
"radarr.NoRootFoldersFound": "Ingen rotmapper funnet",
"radarr.NoSubdirectoriesFound": "Ingen undermapper funnet",
"radarr.NoSummaryIsAvailable": "Mangler sammendrag.",
"radarr.NoTagsFound": "Ingen emner funnet",
"radarr.Other": "Annet",
"radarr.Quality": "Kvalitet",
"radarr.QualityProfile": "Kvalitetsprofil",
"radarr.Queue": "Kø",
"radarr.QueueDescription": "Vis aktivt og køplassert innhold",
"radarr.Quick": "Rask",
"radarr.RefreshMovie": "Gjenoppfrisk film",
"radarr.Rejected": "Forkastet",
"radarr.Released": "Utgitt",
"radarr.ReleasedToday": "Utgitt i dag",
"radarr.Releases": "Utgivelser",
"radarr.RemoveMovie": "Fjern film",
"radarr.Resolution": "Oppløsning",
"radarr.RootFolder": "Rotmappe",
"radarr.RootFolders": "Rotmapper",
"radarr.RunRSSSync": "Kjør RSS-synkronisering",
"radarr.Runtime": "Spilletid",
"radarr.ScanType": "Skannetype",
"radarr.Search": "Søk",
"radarr.SearchAllMissing": "Søk i alle manglende",
"radarr.SearchFor": "Søkk etter {}",
"radarr.Seeders": "Delere",
"radarr.SelectLanguage": "Velg språk",
"radarr.SelectMovie": "Velg film",
"radarr.SelectQuality": "Velg kvalitet",
"radarr.Size": "Størrelse",
"radarr.SortCatalogue": "Sorter katelog",
"radarr.StartSearchFor": "Start søk etter …",
"radarr.StartSearchForMissingMovie": "Start søk etter manglende film",
"radarr.Studio": "Studio",
"radarr.Subtitles": "Undertekster",
"radarr.SystemStatus": "Systemstatus",
"radarr.SystemStatusDescription": "Systemstatus og diskplass",
"radarr.Tags": "Etiketter",
@@ -149,10 +189,35 @@
"radarr.Upcoming": "Kommende",
"radarr.UpdateLibrary": "Oppdater bibliotek",
"radarr.UpdateMovie": "Oppdater film",
"radarr.Video": "Video",
"radarr.ViewWebGUI": "Vis vev-grensesnitt",
"radarr.Wanted": "Ønsket",
"radarr.Weight": "Vekt",
"radarr.Year": "År",
"sabnzbd.All": "Alle",
"sabnzbd.Completed": "Fullført",
"sabnzbd.Descending": "Synkende",
"sabnzbd.Duplicate": "Duplikat",
"sabnzbd.Failed": "Feilet",
"sabnzbd.Force": "Tving",
"sabnzbd.HibernatePC": "Dvalemodus",
"sabnzbd.Name": "Navn",
"sabnzbd.RepairUnpack": "Reparer/Pakk ut",
"sabnzbd.RepairUnpackDelete": "Reparer/Pakk ut/Slett",
"sabnzbd.Size": "Størrelse",
"sabnzbd.ShutdownPC": "Skru av PC",
"sabnzbd.StandbyPC": "Ventemodus",
"sabnzbd.Stop": "Stopp",
"sabnzbd.Age": "Alder",
"sabnzbd.Ascending": "Stigende",
"sabnzbd.CategoryDefault": "Standardkategori",
"sabnzbd.High": "Høy",
"sabnzbd.Low": "Lav",
"sabnzbd.None": "Ingen",
"sabnzbd.Paused": "Pauset",
"sabnzbd.Normal": "Normal",
"sabnzbd.Repair": "Reparer",
"sabnzbd.ShutdownSABnzbd": "Skru av SABnzbd",
"search.NoCategoriesFound": "Fant ingen kategorier",
"search.Subcategories": "Underkategorier",
"search.Search": "Søk",
@@ -275,7 +340,7 @@
"settings.HeaderKey": "Hode-nøkkel",
"settings.HeaderKeyValidation": "Hodenøkkel påkrevd",
"settings.Email": "E-post",
"tautulli.ETA": "Estimert tid til ankomst",
"tautulli.ETA": "Estimert tid igjen",
"tautulli.Throttled": "Strupet",
"tautulli.TerminationAttachMessage": "Du kan alternativt legge ved en avsluttingsmelding nedenfor.",
"tautulli.Location": "Sted",

View File

@@ -417,11 +417,8 @@
"settings.DefaultOptions": "Opções padrão",
"settings.DefaultOptionsDescription": "Definir opções de classificação, filtragem e visualização",
"settings.DeleteProfileDescription": "Excluir um perfil existente",
"settings.DiscordDescription": "Bate-papo e discussões",
"settings.EmailUpdated": "E-mail atualizado",
"settings.FailedToUpdatePassword": "Falha ao atualizar a senha",
"settings.FeedbackBoard": "Painel de comentários",
"settings.FeedbackBoardDescription": "Solicitar novos recursos",
"settings.FilterCategory": "Categoria de filtro",
"settings.FutureDays": "Dias futuros",
"settings.GitHubDescription": "Veja o código fonte",
@@ -450,6 +447,36 @@
"settings.Documentation": "Documentação",
"settings.AccountDeletedMessage": "Deletar sua Conta LunaSea",
"settings.ConfigurationDescription": "Ajustar e Configurar LunaSea",
"settings.SortCategory": "Classificar categoria",
"settings.SortDirection": "Direção de classificação",
"settings.TLSCertificateValidation": "Validação do certificado TLS",
"settings.DatabaseCorruptionDetectedMessageLine1": "Banco de dados corrompido foi detectado e sua configurações foram limpas.",
"settings.DatabaseCorruptionDetectedMessageLine2": "Desculpe a inconveniência, todos os backups criados anteriormente devem ser restaurados mesmo quando exportados anteriormente com um banco de dados corrompido.",
"settings.DatabaseCorruptionDetected": "Detectado banco de dados corrompido",
"settings.AddedProfile": "Perfil Adicionado",
"settings.ChangedProfile": "Perfil Alterado",
"settings.DeletedProfile": "Perfil Excluído",
"settings.NoAdditionalProfilesAdded": "Nenhum perfil adicional foi adicionado",
"settings.NoProfilesFound": "Nenhum perfil encontrado",
"settings.Platform": "Plataforma",
"settings.ProfileToProfile": "\"{}\" para \"{}\"",
"settings.RenamedProfile": "Perfil Renomeado",
"settings.SystemStatusDescription": "Página de status para serviços hospedados",
"settings.Version": "Versão",
"settings.UpToDate": "Atualizado",
"settings.WeblateDescription": "Ajude a localizar o LunaSea",
"settings.ViewRecentChanges": "Ver alterações recentes",
"settings.Website": "Site",
"settings.WebsiteDescription": "Visitar o site da LunaSea",
"settings.ViewTypeLogs": "Ver {} registros",
"settings.Build": "Build",
"settings.Channel": "Canal",
"settings.DownloadUpdate": "Baixar Atualização",
"settings.EnableInAppNotifications": "Ativar notificações no aplicativo",
"settings.SystemStatus": "Status do Sistema",
"settings.TLSCertificateValidationDescription": "Validar certificados em conexões TLS",
"settings.UpdateEmail": "Atualizar e-mail",
"settings.UpdatePassword": "Atualizar senha",
"sonarr.AddedTag": "Tag Adicionada",
"sonarr.AddSeries": "Adicionar Série",
"sonarr.DeleteFile": "Deletar Arquivo",
@@ -579,5 +606,15 @@
"tautulli.Users": "Utilizadores",
"tautulli.Video": "Vídeo",
"tautulli.ViewWebGUI": "Ver WEB GUI",
"tautulli.Year": "Ano"
"tautulli.Year": "Ano",
"tautulli.TerminationAttachMessage": "Opcionalmente, você pode anexar uma mensagem de rescisão abaixo.",
"tautulli.TerminationConfirmMessage": "Deseja encerrar esta sessão?",
"tautulli.TerminationMessage": "Mensagem de Rescisão",
"tautulli.Transcode": "Transcodificar",
"tautulli.TerminateSession": "Encerrar Sessão",
"tautulli.TerminatedSession": "Sessão Encerrada",
"tautulli.TerminateSessionFailed": "Falha ao encerrar a sessão",
"wake_on_lan.MagicPacketSent": "Pacote mágico enviado",
"wake_on_lan.MagicPacketSentMessage": "Sua máquina deve estar acordando!",
"wake_on_lan.MagicPacketFailedToSend": "Falha ao enviar pacote mágico"
}

View File

@@ -0,0 +1,17 @@
{
"dashboard.Modules": "Module",
"dashboard.Calendar": "Calendar",
"dashboard.Friday": "Vineri",
"dashboard.OneMonth": "O lună",
"dashboard.OneWeek": "O săptămână",
"dashboard.PastDays": "Zile trecute",
"dashboard.Saturday": "Sâmbătă",
"dashboard.Schedule": "Program",
"dashboard.Sunday": "Duminică",
"dashboard.Thursday": "Joi",
"dashboard.Tuesday": "Marți",
"dashboard.TwoWeeks": "Două săptămâni",
"dashboard.Wednesday": "Miercuri",
"dashboard.FutureDays": "Zile în viitor",
"dashboard.Monday": "Luni"
}

View File

@@ -153,6 +153,37 @@
"settings.AccountHelp": "Аккаунт LunaSea",
"settings.AccountDescription": "Ваш аккаунт в LunaSea",
"settings.Account": "Аккаунт",
"sonarr.AddedOn": "Добавлено на",
"sonarr.AddedSeries": "Добавленны серии",
"sonarr.AddedTag": "Добавить Тег",
"sonarr.AddSeries": "Добавить серии",
"sonarr.Audio": "Аудио",
"sonarr.Automatic": "Автоматически",
"sonarr.Channels": "Каналы",
"sonarr.Codec": "Кодек",
"sonarr.Client": "Клиент",
"sonarr.DeleteReasonManual": "Файл был удален с помощью пользовательского интерфейса",
"sonarr.BackingUpDatabase": "Резервное копирование базы данных{}",
"sonarr.Approved": "Одобрено",
"sonarr.AutomaticSearch": "Автоматический поиск",
"sonarr.BackingUpDatabaseDescription": "Резервное копирование базы данных в фоновом режиме",
"sonarr.Bitrate": "Битрейт",
"sonarr.Continuing": "Продолжение",
"sonarr.Age": "Возраст",
"sonarr.All": "Все",
"sonarr.AllSeasons": "Все Сезоны",
"sonarr.DeleteReasonMissingFromDisk": "Sonarr не смог найти файл на диске, поэтому он был удален",
"sonarr.AddReleaseToBlocklist": "Добавить Релиз в Блок-Лист",
"sonarr.DeleteReasonUpgrade": "Файл был удален для импорта обновления",
"sonarr.BackupDatabase": "Резервная база данных",
"sonarr.CheckDownloadClient": "Проверьте клиент загрузки для получения более подробной информации",
"sonarr.BitDepth": "Битовая глубина",
"sonarr.DeleteEpisodeFileHint1": "Вы уверены, что хотите удалить этот файл?",
"sonarr.DeleteFiles": "Удалить файлы",
"sonarr.DeleteEpisodeFile": "Удалить файл эпизода",
"sonarr.DeleteFile": "Удалить файл",
"sonarr.Destination": "Назначение",
"sonarr.DestinationRelative": "Относительное назначение",
"tautulli.Year": "Год",
"tautulli.Video": "Видео",
"tautulli.Users": "Пользователи",

View File

@@ -54,6 +54,7 @@
"lunasea.Disabled": "Devre Dışı",
"lunasea.Dismiss": "Kapat",
"lunasea.Docs": "Belgeler",
"lunasea.DownloadClient": "İstemciyi İndir",
"lunasea.Edge": "Kenar",
"lunasea.Error": "Hata",
"lunasea.ExternalModules": "Harici Modüller",
@@ -77,6 +78,7 @@
"lunasea.Months": "{} Ay",
"lunasea.MonthsAgo": "{} Ay Önce",
"lunasea.New": "Yeni",
"lunasea.No": "Hayır",
"lunasea.NoModulesEnabled": "Etkin Modül Yok",
"lunasea.NotSet": "Ayarlanmadı",
"lunasea.OneDay": "1 Gün",
@@ -126,6 +128,7 @@
"lunasea.Website": "Web Sitesi",
"lunasea.Years": "{} Yıl",
"lunasea.YearsAgo": "{} Yıl Önce",
"lunasea.Yes": "Evet",
"overseerr.Users": "Kullanıcılar",
"overseerr.UnknownUser": "Bilinmeyen Kullanıcı",
"overseerr.NoUsersFound": "Kullanıcı Bulunamadı",
@@ -171,6 +174,7 @@
"radarr.Codec": "Kodek",
"radarr.Configure": "Yapılandır",
"radarr.Copy": "Kopyala",
"radarr.CopyFiles": "Dosyaları Kopyala/Sabit Bağlantı Oluştur",
"radarr.CopyFull": "Dosyaları Kopyala/Sabit Bağlantı Oluştur",
"radarr.CutoffUnmet": "Karşılanmayanı Kes",
"radarr.DateAdded": "Eklenme Tarihi",
@@ -207,6 +211,8 @@
"radarr.MonitoredDescription": "Yeni yayınlar için takip edin",
"radarr.More": "Daha Fazla",
"radarr.Move": "Taşı",
"radarr.MoveFiles": "Dosyaları Taşı",
"radarr.MoveFilesDescription": "Dosyaları taşımak istiyor musunuz?",
"radarr.MoveFull": "Dosyaları Taşı",
"radarr.Movie": "Film",
"radarr.MovieFileDeleted": "Film Dosyası Silindi",
@@ -267,6 +273,7 @@
"radarr.UnmappedFolders": "{} Eşlenmeyen Klasörler",
"radarr.UnmonitorMovie": "Filmi Takip Etmeyi Bırak",
"radarr.Unmonitored": "Takip Edilmeyen",
"radarr.Unreleased": "Yayınlanmadı",
"radarr.Upcoming": "Yakında",
"radarr.UpdateLibrary": "Kütüphaneyi Güncelle",
"radarr.UpdateMovie": "Filmi Güncelle",
@@ -506,11 +513,9 @@
"settings.BackupToDevice": "Aygıta Yedekle",
"settings.BackupToDeviceDescription": "Yapılandırma Verilerini Yedekle",
"settings.CalendarSettings": "Takvim Ayarları",
"settings.DiscordDescription": "Sohbet & Tartışma",
"settings.DaysOne": "1 Gün",
"settings.DaysCount": "{} Gün",
"settings.EmailValidation": "Geçersiz E-posta Adresi",
"settings.FeedbackBoard": "Geri Bildirim Panosu",
"settings.FailedToUpdatePassword": "Parola Güncellenemedi",
"settings.FailedToUpdateEmail": "E-posta Güncellenemedi",
"settings.GitHubDescription": "Kaynak Kodu Görüntüleyin",
@@ -522,7 +527,6 @@
"settings.Use24HourTimeDescription": "Zaman Damgalarını 24 Saat Tarzında Göster",
"settings.WeblateDescription": "LunaSea'yi Yerelleştirmeye Yardım Edin",
"settings.Website": "Web Sitesi",
"settings.FeedbackBoardDescription": "Yeni Özellikler İsteyin",
"settings.RestoreFromDevice": "Aygıttan Geri Yükle",
"settings.FutureDays": "Gelecek Günler",
"settings.QuickActionsBannerLine2": "Bir seferde sınırlı sayıda hızlı eylem ayarlanabilir ve başlatıcınızın destekleyebileceğinden fazlasını etkinleştirmenin bir etkisi olmayacaktır.",
@@ -555,6 +559,15 @@
"settings.RenamedProfile": "Profil Yeniden Adlandırıldı",
"settings.DeletedProfile": "Profil Silindi",
"settings.NoProfilesFound": "Profil Bulunamadı",
"settings.SentryLogging": "Sentry Günlüğü",
"settings.SentryLoggingDescription": "Hataları ve Çökmeleri Sentry'ye Yükleyin",
"settings.DatabaseCorruptionDetected": "Veri Tabanı Bozulması Tespit Edildi",
"settings.DatabaseCorruptionDetectedMessageLine1": "Veri tabanı bozulması tespit edildi ve yapılandırmanız temizlendi.",
"settings.DatabaseCorruptionDetectedMessageLine2": "Rahatsızlık için özür dileriz, daha önce oluşturulan tüm yedeklemeler, daha önce bozuk bir veri tabanı ile dışa aktarılmış olsa bile geri yüklenebilir olmalıdır.",
"settings.DiscordDescription": "Özellik İsteyin & Destek Alın",
"settings.BootModule": "Önyükleme Modülü",
"settings.GeneralDescription": "LunaSea'yi Özelleştirin",
"settings.General": "Genel",
"sonarr.AddedSeries": "Eklenen Diziler",
"sonarr.Age": "Yıl",
"sonarr.All": "Her Şey",

View File

@@ -54,6 +54,7 @@
"lunasea.Disabled": "不可用",
"lunasea.Dismiss": "解散",
"lunasea.Docs": "文档",
"lunasea.DownloadClient": "下载客户端",
"lunasea.Edge": "边缘",
"lunasea.Error": "错误",
"lunasea.ExternalModules": "外部模块",
@@ -77,6 +78,7 @@
"lunasea.Months": "{} 个月",
"lunasea.MonthsAgo": "{} 几个月前",
"lunasea.New": "新的",
"lunasea.No": "否",
"lunasea.NoModulesEnabled": "未启用模块",
"lunasea.NotSet": "未设置",
"lunasea.OneDay": "1天",
@@ -126,6 +128,7 @@
"lunasea.Website": "网站",
"lunasea.Years": "{} 年",
"lunasea.YearsAgo": "{} 年前",
"lunasea.Yes": "是",
"overseerr.NoRequests": "没有请求",
"overseerr.OneRequest": "1个请求",
"overseerr.SomeRequests": "{} 请求",
@@ -171,6 +174,7 @@
"radarr.Codec": "编解码器",
"radarr.Configure": "配置",
"radarr.Copy": "复制",
"radarr.CopyFiles": "硬链接/复制文件",
"radarr.CopyFull": "硬链接/复制文件",
"radarr.CutoffUnmet": "截止未满足",
"radarr.DateAdded": "添加日期",
@@ -207,6 +211,8 @@
"radarr.MonitoredDescription": "监控新版本",
"radarr.More": "更多",
"radarr.Move": "移动",
"radarr.MoveFiles": "移动文件",
"radarr.MoveFilesDescription": "确定要移动这些文件吗?",
"radarr.MoveFull": "移动文件",
"radarr.Movie": "电影",
"radarr.MovieFileDeleted": "电影文件已删除",
@@ -267,6 +273,7 @@
"radarr.UnmappedFolders": "{} 未映射的文件夹",
"radarr.UnmonitorMovie": "监控电影",
"radarr.Unmonitored": "不受监控",
"radarr.Unreleased": "未发布",
"radarr.Upcoming": "即将到来",
"radarr.UpdateLibrary": "更新库",
"radarr.UpdateMovie": "更新电影",
@@ -275,6 +282,30 @@
"radarr.Wanted": "需要",
"radarr.Weight": "轻重",
"radarr.Year": "年",
"sabnzbd.CategoryDefault": "默认类别",
"sabnzbd.Completed": "完成",
"sabnzbd.Ascending": "升序",
"sabnzbd.Paused": "暂停",
"sabnzbd.Normal": "一般",
"sabnzbd.Name": "名称",
"sabnzbd.None": "没有",
"sabnzbd.RepairUnpack": "纠正/拆包",
"sabnzbd.All": "全部",
"sabnzbd.Descending": "降序",
"sabnzbd.Duplicate": "复制",
"sabnzbd.Failed": "失败",
"sabnzbd.Age": "时代",
"sabnzbd.Force": "强制",
"sabnzbd.HibernatePC": "电脑休眠",
"sabnzbd.High": "高",
"sabnzbd.Low": "低",
"sabnzbd.Repair": "纠正",
"sabnzbd.RepairUnpackDelete": "纠正/拆包/删除",
"sabnzbd.Size": "大小",
"sabnzbd.ShutdownPC": "关机",
"sabnzbd.ShutdownSABnzbd": "关闭SABnzbd",
"sabnzbd.StandbyPC": "备用PC",
"sabnzbd.Stop": "停止",
"search.AllSubcategories": "所有子类别",
"search.Alphabetical": "字母顺序",
"search.Categories": "类别",
@@ -498,16 +529,13 @@
"settings.TLSCertificateValidation": "TLS 证书验证",
"settings.ViewRecentChanges": "查看最近的更改",
"settings.DocumentationDescription": "查看文档",
"settings.FeedbackBoard": "反馈板",
"settings.GitHubDescription": "查看源代码",
"settings.TestBuilds": "测试构建",
"settings.TestBuildsDescription": "安装 LunaSea 的预发布版本",
"settings.Website": "网站",
"settings.WebsiteDescription": "访问 LunaSea 的网站",
"settings.FeedbackBoardDescription": "请求新功能",
"settings.RedditDescription": "提出问题并获得支持",
"settings.WeblateDescription": "帮助 LunaSea 本地化",
"settings.DiscordDescription": "聊天和讨论",
"settings.Documentation": "文档",
"settings.SystemStatus": "系统状况",
"settings.SystemStatusDescription": "托管服务的状态页面",
@@ -557,6 +585,14 @@
"settings.ProfileToProfile": "\"{}\" 至 \"{}\"",
"settings.RenamedProfile": "重命名配置文件",
"settings.ViewTypeLogs": "查看 {} 日志",
"settings.DatabaseCorruptionDetected": "检测到数据库损坏",
"settings.DatabaseCorruptionDetectedMessageLine1": "已检测到数据库损坏,并且已清除您的配置。",
"settings.DatabaseCorruptionDetectedMessageLine2": "很抱歉给您带来不便,即使以前导出的数据库已损坏,所有以前创建的备份都应该是可恢复的。",
"settings.SentryLogging": "哨兵日志记录",
"settings.SentryLoggingDescription": "上传错误崩溃到Sentry",
"settings.DiscordDescription": "请求功能获得支持",
"settings.General": "通用",
"settings.GeneralDescription": "自定义LunaSea",
"sonarr.AddSeries": "添加系列",
"sonarr.AddedOn": "添加于",
"sonarr.Age": "年龄",

6
debian/DEBIAN/control vendored Normal file
View File

@@ -0,0 +1,6 @@
Package:LunaSea
Architecture:amd64
Essential:no
Priority:optional
Maintainer:LunaSea Support <hello@lunasea.app>
Description:Self-hosted software controller built using Flutter

3
debian/DEBIAN/postinst vendored Executable file
View File

@@ -0,0 +1,3 @@
#!/bin/bash
ln -sf '/usr/share/lunasea/lunasea' '/usr/bin/lunasea'

3
debian/DEBIAN/postrm vendored Executable file
View File

@@ -0,0 +1,3 @@
#!/bin/bash
rm -f '/usr/bin/lunasea'

View File

@@ -0,0 +1,9 @@
[Desktop Entry]
Name=LunaSea
Comment=Self-hosted software controller built using Flutter
Icon=/usr/share/icons/lunasea.png
Terminal=false
Type=Application
Categories=Utilities;Entertainment;
Exec=/usr/bin/lunasea
TryExec=/usr/bin/lunasea

BIN
debian/usr/share/icons/lunasea.png vendored Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 58 KiB

158
docs.json
View File

@@ -1,158 +0,0 @@
{
"name": "LunaSea",
"favicon": "/assets/logo.png",
"logo": "/assets/logo.png",
"logoDark": "/assets/logo.png",
"theme": "#4ECCA3",
"sidebar": [
[
"Overview",
"/"
],
[
"Getting Started",
[
[
"Build Channels",
"/getting-started/build-channels"
],
[
"Donations",
"/getting-started/donations"
],
[
"Frequently Asked Questions",
"/getting-started/frequently-asked-questions"
],
[
"Platform Restrictions",
"/getting-started/platform-restrictions"
]
]
],
[
"LunaSea",
[
[
"Account",
"/lunasea/account"
],
[
"Local Backup & Restore",
"/lunasea/local-backup-restore"
],
[
"Logs",
"/lunasea/logs"
],
[
"Notifications",
"/lunasea/notifications"
],
[
"Profiles",
"/lunasea/profiles"
]
]
],
[
"Modules",
[
[
"Lidarr",
"/modules/lidarr"
],
[
"Newznab Search",
"/modules/newznab-search"
],
[
"NZBGet",
"/modules/nzbget"
],
[
"Overseerr",
"/modules/overseerr"
],
[
"Radarr",
"/modules/radarr"
],
[
"SABnzbd",
"/modules/sabnzbd"
],
[
"Sonarr",
"/modules/sonarr"
],
[
"Tautulli",
"/modules/tautulli"
],
[
"Wake on LAN",
"/modules/wake-on-lan"
]
]
],
[
"Notifications",
[
[
"Custom",
"/notifications/custom"
],
[
"Lidarr",
"/notifications/lidarr"
],
[
"Overseerr",
"/notifications/overseerr"
],
[
"Radarr",
"/notifications/radarr"
],
[
"Sonarr",
"/notifications/sonarr"
],
[
"Tautulli",
"/notifications/tautulli"
]
]
],
[
"Releases",
[
[
"Android",
"/releases/android"
],
[
"iOS",
"/releases/ios"
],
[
"Linux",
"/releases/linux"
],
[
"macOS",
"/releases/macos"
],
[
"Web",
"/releases/web"
],
[
"Windows",
"/releases/windows"
]
]
]
]
}

Binary file not shown.

Before

Width:  |  Height:  |  Size: 26 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 259 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 282 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 253 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 265 KiB

View File

@@ -1,37 +0,0 @@
---
title: Build Channels
description: How to use different builds of LunaSea
---
# Build Channels
LunaSea offers four different build channels, each of which supply signed and notarized copies of LunaSea.
All releases for every build channel can be downloaded from the [build bucket](https://builds.lunasea.app), and all stable releases for all platforms are also available on [GitHub](https://github.com/JagandeepBrar/LunaSea/releases).
- [Android](/releases/android)
- [iOS](/releases/ios)
- [Linux](/releases/linux)
- [macOS](/releases/macos)
- [Web](/releases/web)
- [Windows](/releases/windows/)
## Stable
This is the store version and will remain the most stable version. No in-progress features will be deployed to this channel.
## Candidate
This channel is focused around _final release candidate testing of completed new features_ leading up to the release to stable. This channel is intended to help catch any remaining bugs from beta builds and overall should remain relatively stable.
## Beta
This channel is focused around _early previews and testing of work-in-progress features_. This channel is intended to allow users to give feedback to the developer on features that are actively being worked on.
## Edge
This channel's purpose is to _ensure that every commit made to master is building across all platforms_ and allows for easier access to a build for each commit. This is not intended to be used by the average user, but is for community developers or users who need to test a recently added fix that has not yet reached the beta channel.
There are no restrictions on features in these builds (barring a very specific subset used for debugging/testing) so it gives full access to everything that is work in progress.
**Do not expect a fully stable experience if you use these builds**, as it is entirely possible that a single build could cause problems including but not limited to database corruption. If you are running these builds, please ensure you have either a cloud or offline backup available for easy restoration.

View File

@@ -1,26 +0,0 @@
---
title: Donations
description: How to donate to the developer of LunaSea
---
# Donations
Thanks for considering donating to LunaSea! Donations are what keep the project alive and completely free for everyone to use. There are a few options available:
## In-App Purchases
If you have downloaded LunaSea through the Play Store or App Store, you can directly donate using in-app purchases! Simply head to the Settings and tap the "Donations" tile. There are four options available (all scaled to USD): $0.99, $2.99, $4.99, and $9.99.
> If you are using TestFlight builds on iOS devices, you will need to switch to the App Store version to donate. Any in-app purchases executed on a TestFlight build do not actually get processed.
## Ko-Fi
I have setup a Ko-Fi account for LunaSea, available here: https://ko-fi.com/JagandeepBrar.
Ko-Fi allows you to make a one-time donation in $1 increments using PayPal.
## GitHub Sponsors
I also have setup a GitHub Sponsors account, which is available here: https://github.com/sponsors/JagandeepBrar.
GitHub Sponsors allow you to setup a recurring donation in the amount of $1 to $5.

View File

@@ -1,115 +0,0 @@
---
title: Frequently Asked Questions
description: Frequently asked questions regarding LunaSea
---
# Frequently Asked Questions
## Modules
#### How Do I Install a "Module"?
The software, or as used in LunaSea, _Modules_, are all pieces of software that must be installed on a home computer or server. None of the currently supported software has been developed by me, so the amount of support offered for each module is limited. LunaSea itself does not have the functionality of that software, it acts as a remote.
#### Can You Support "X" Feature/Module?
I take all requests into consideration! If you would like to request a feature there are a few ways I recommend:
- [Feedback Board](https://www.lunasea.app/feedback): The feedback board allows users to create, comment on, and vote on new features and general requests! This is the ideal way to request a new feature, as it allows other users to see active requests, it allows discussions to stay per-request, and the voting system gives me a good indication on the active demand for a feature.
- [Discord](https://www.lunasea.app/discord)
- [Email](mailto:hello@lunasea.app)
- [Reddit](https://www.lunasea.app/reddit)
> I may not have the ability to respond to all requests directly, but please be ensured I do read everything!
#### Why Isn't Feature/Module "X" Supported Yet?
LunaSea is only developed by one person and while I try to put as much time into LunaSea as I can, I still do have a family, career, and I want to enjoy my personal time.
I also want to point out that I don't want to make LunaSea a wide ranging but no depth application. I want every application to have as full of an implementation as possible, which can mean that new modules will take time to get implemented between one another.
#### Torrent Client Support: Is It Coming?
Support for torrent clients is easily the most requested new module, and I definitely see the demand. However, torrent support currently is not possible in LunaSea because of the restrictions Apple has put forward. Apple does not allow integration of P2P/torrent clients in any capacity for applications that are hosted on the App Store. This includes a P2P client that runs directly on the device and linking to a P2P client that is running on an external machine.
Torrent support is not completely off the table and may come in the future! But at the moment, over 90% of the active user base is using iOS-based devices and it is hard to justify building a module (that takes a lot of time) that the mass majority of the user base would not be able to use.
> I am actively thinking of methods to get around this limitation, if you have any ideas consider commenting on the torrent client support [feedback board request](https://feedback.lunasea.app/b/New-Modules/p/torrent-clients-support).
## Development
#### Who Makes LunaSea?
Only one person, me! Hi, my name is Jagandeep, and I am a software engineer from Canada. I am currently the main and only developer on LunaSea but I encourage anyone who is interested and wants to contribute to the project to make a pull request on GitHub!
#### What is LunaSea Developed In?
LunaSea is developed using Google's hybrid framework, [Flutter](https://flutter.dev/), which uses [Dart](https://dart.dev/) as its core language. Using Flutter allows an indie developer like myself to build cross-platform applications more easily, as it is one single codebase that allows me to build across many platforms!
#### How is LunaSea Free?
LunaSea started off as (and still is) a passion project fueled by my love for data hoarding. It was open-sourced soon after it's initial launch to allow LunaSea to get into the hands of as many users as possible and to give back to the community where there is a lack of open-source, high quality mobile applications.
#### Are You Ever Going To Charge Money/Insert Ads?
The only possible reason that LunaSea will ever have any kind of payment model is if features are introduced that cost me recurring charges that are too large to bear. Any and all features that do not incur me a charge will be free, and even any features that would cost me money will become open-source, which offers everyone the ability to have a completely free experience in LunaSea.
## Bugs & Feedback
#### I Found a Bug! How Do I Let You Know?
I tried to make it as stable as possible, but bugs obviously will always be there. If you do run into a bug (especially a fatal/crashing bug), please also attach the logs from the application into the report - logs can be exported from the settings.
- [GitHub Issues](https://www.lunasea.app/github): The best place to alert me of new issues is directly on the GitHub page. Please try to follow the template for bug reports, but again I am not overly strict and a good explanation of the issue will suffice (this may change in the future if it gets increasingly hard to manage).
- [Discord](https://www.lunasea.app/discord)
- [Email](mailto:hello@lunasea.app)
- [Reddit](https://www.lunasea.app/reddit)
#### How Can I Request a New Feature?
I consider all feedback and actively try to integrate new features that are requested by the community, big or small! You have a few ways to request new features for LunaSea:
- [Feedback Board](https://www.lunasea.app/feedback): The feedback board allows users to create, comment on, and vote on new features and general requests! This is the ideal way to request a new feature, as it allows other users to see active requests, it allows discussions to stay per-request, and the voting system gives me a good indication on the active demand for a feature.
- [Discord](https://www.lunasea.app/discord)
- [Email](mailto:hello@lunasea.app)
- [Reddit](https://www.lunasea.app/reddit)
## Support
#### Why Don't The Settings Explain Much?
I understand that the settings section could definitely use better documentation and linking, but this ambiguity and sparse documentation directly within LunaSea is by design.
LunaSea took quite a runaround to initially get on the App Store because of its relationship with how you acquire Linux ISOs. After successfully getting it on the App Store, I want to avoid adding anything to LunaSea that would potentially get it revoked.
#### "X" Won't Connect, Help!
The initial setup can either be incredibly easy or make you want to pull your hair out, I get that and that's what the community is here for! Please feel free to send a message to any of the listed methods to get support where either I or an awesome user in the community will surely come to help you out:
- [Discord](https://www.lunasea.app/discord)
- [Email](mailto:hello@lunasea.app)
- [Reddit](https://www.lunasea.app/reddit)
A few quick tips on common problems:
- `localhost` and `0.0.0.0` are internal hostnames that means "this computer". They cannot and should not be used as the host, but is commonly used because users mainly access the service from the computer running it. In order for LunaSea to connect, you must find the local IP of your computer (most common home networking configurations have it start with `192.168.0.x` or `192.168.1.x`)
- Ensure you match the right API key to the right service. I know this seems like an obvious thing, but you'd be surprised how easy it is to mix up 3-4 API keys when you're going back and forth copying and pasting!
- For the -arr services, ensure the binding address in the advanced general settings is not set to `127.0.0.1` or `localhost`, but instead set to either `0.0.0.0`, `*`, or the local IP for the computer/server.
- Similarly for the clients, ensure that the host is set to `0.0.0.0`, or the local IP.
- As noted in the host prompt, you must add either `http://` or `https://` before the IP or domain. LunaSea does not make any assumptions on the protocol to use (http or https).
- Do not use `3xx` redirecting webpages. This is not supported for POST and PUT requests (sending data back to the module) and can cause many headaches, so ideally you should be pointing directly to the module on your network.
- _(Windows Only)_: For a lot of software to correctly bind to your network, you need to ensure that you run the software as administrator. This is specifically very important for the -arrs, which will only bind to your host machine if you do not run it as administrator.
#### How Can I Access My Services Remotely?
While this is outside of the scope of this project, I can try to point you in the right direction!
- **Reverse Proxy**: A reverse proxy allows you to open 1 or 2 ports on your network (typically 443 for SSL/https connections and 80 for http connections). Using a reverse proxy also allows you to attach a domain name to your IP and generate a free SSL certificate for https (hint, [LetsEncrypt](https://letsencrypt.org/)). Some common options for reverse proxies are [NGINX Proxy Manager](https://nginxproxymanager.com/), [Traefik](https://traefik.io/), [NGINX](https://nginx.org/), and [Apache](https://www.apache.org/).
- **VPN Tunnelling**: Another option is to create a VPN tunnel back to your home network, which would allow you to access your services as if you are on your home network. Tools like [WireGuard](https://www.wireguard.com/) and [OpenVPN](https://openvpn.net/) are perfect for this use case. This is technically the most secure method, but a bit less convenient than using a reverse proxy.
- **Direct Port Forwarding**: This method is _not recommended_, but another option is directly forward the ports of the services on your router and access the services via `<External IP>:<Port>`. The reason this is not recommended is because all of the traffic is sent unencrypted (you can use self-signed certificates, but this causes more headaches related to certificate authorities), and the more ports that are open on your network the less secure it is.
#### I Want to Complain! Where Can I Complain?
Sorry that LunaSea is not meeting your expectations, feel free to post criticisms or complaints to any of the social platforms or directly [email me](mailto:hello@lunasea.app). I hope that I can remedy your complaints, all I ask is that you do not be abusive or disrespectful to myself or others in the community.
I also kindly request that before you submit a 1-star App Store/Play Store review that you consider contacting me directly with your complaints. 1-star reviews can really hurt a smaller application's rating since we do not typically get lots of reviews.

View File

@@ -1,41 +0,0 @@
---
title: Platform Restrictions
description: Breaking down what is and isn't supported on different platforms
---
# Platform Restrictions
The tables below showcases which modules or features may not be supported on each platform. If a module or feature is not listed, you can assume that every platform has full support for said module or feature!
> Work will continuously be down to try to achieve 100% feature parity between all platforms when possible!
## Module Support
| Module | Android | iOS | Linux | macOS | Windows | Web (Hosted) | Web (Self-Hosted) |
| :---------: | :-----: | :-: | :---: | :---: | :-----: | :----------: | :---------------: |
| NZBGet | ✅ | ✅ | ✅ | ✅ | ✅ | ❌ | ❌ |
| Overseerr | ✅ | ✅ | ✅ | ✅ | ✅ | ❌ | ❌ |
| Tautulli | ✅ | ✅ | ✅ | ✅ | ✅ | ❌ | ❌ |
| Wake on LAN | ✅ | ✅ | ✅ | ✅ | ✅ | ❌ | ❌ |
## Feature Support
| Feature | Android | iOS | Linux | macOS | Windows | Web (Hosted) | Web (Self-Hosted) |
| :--------------------: | :-----: | :-: | :---: | :---: | :-----: | :----------: | :---------------: |
| Local Backup & Restore | ✅ | ✅ | ✅ | ✅ | ✅ | ❌ | ❌ |
| LunaSea Accounts | ✅ | ✅ | ❌ | ✅ | ❌ | ✅ | ❌ |
| Notifications | ✅ | ✅ | ❌ | ✅ | ❌ | ❌ | ❌ |
## Web-Specific Restrictions
#### HTTPS Requirement
LunaSea's web instances are hosted on [Netlify](https://www.netlify.com) and use [LetsEncrypt](https://letsencrypt.org/) TLS certificates to ensure that an encrypted connection is utilized when loading the LunaSea web application package.
One limitation this incurs is that most modern web browsers no longer support [mixed content](https://developer.mozilla.org/en-US/docs/Web/Security/Mixed_content), so it is required when using these browsers to utilize a reverse proxy (or something similar) to expose a secure (`HTTPS`) connection to your instances even when hosted on the same machine.
**All network communication occurs directly between your web browser and host machine**, but this is a limitation put forward by the web browsers.
#### Wake on LAN Support
Wake on LAN support will **never** be supported when using LunaSea on the web, because the Wake on LAN protocol relies on the [User Datagram Protocol (UDP)](https://en.wikipedia.org/wiki/User_Datagram_Protocol). UDP connections are not supported in the web browser because of underlying security constraints, and so it will not be possible to utilize wake on LAN now or at any point in the future when using LunaSea on the web.

View File

@@ -1,47 +0,0 @@
---
title: LunaSea
description: Self-hosted software controller built using Flutter
---
<Image
src="https://raw.githubusercontent.com/JagandeepBrar/LunaSea/master/assets/images/branding_logo.png"
width="250px"
alt="LunaSea"
zoom={false}
caption="Self-hosted software controller built using Flutter"
/>
LunaSea is a fully featured, open source self-hosted controller focused on giving you a seamless experience between all of your self-hosted media software remotely on your devices.
## Modules
- [Lidarr](/modules/lidarr)
- [Newznab Search + NZBHydra2](/modules/newznab-search)
- [NZBGet](/modules/nzbget)
- [Radarr](/modules/radarr)
- [Overseerr (WIP)](/modules/radarr)
- [SABnzbd](/modules/sabnzbd)
- [Sonarr](/modules/sonarr)
- [Tautulli](/modules/tautulli)
- [Wake on LAN](/modules/wake-on-lan)
LunaSea even comes with support for webhook-based push notifications, multiple instances of applications using profiles, backup and restore functionality for your configuration, an AMOLED black theme, and more!
> LunaSea is purely a remote control application, it does not offer any functionality without software installed on a server/computer.
## Releases
All releases for every build channel can be downloaded from the [build bucket](https://builds.lunasea.app), and all stable releases for all platforms are also available on [GitHub](https://github.com/JagandeepBrar/LunaSea/releases).
- [Android](/releases/android)
- [iOS](/releases/ios)
- [Linux](/releases/linux)
- [macOS](/releases/macos)
- [Web](/releases/web)
- [Windows](/releases/windows/)
Interested in using prerelease build channels of LunaSea? Learn the differences between all the build channels and how to join one [here](https://www.lunasea.app/build-channels)!
## License
See [LICENSE.md](https://github.com/JagandeepBrar/LunaSea/blob/master/LICENSE.md) for more information.

View File

@@ -1,18 +0,0 @@
---
title: Account
description: Accounts to extend LunaSea's functionality
---
# Account
LunaSea currently offers a _free_ cloud account that can be used for extending the functionality of LunaSea. The only details required to register for an account are an email address and password. At no point will LunaSea or the developers send you any emails, unless you explicitly request a password reset email.
If you want to protect your privacy, you are free to use a fake email when registering for an account, as there is no required account verification. Be warned that you will be unable to reset your password if you decide to use a fake email, as these functions are handled through Firebase Authentication via email.
## Encrypted Cloud Configuration Storage
The three options related to backing up your encrypted backups should be self-explanatory. All configurations are encrypted on-device before being sent off the device. When restoring an encrypted backup, the encrypted backup is downloaded to the device and you will be prompted to decrypt the backup on-device.
Deleting a backup is a permanent action, **there is no way to restore that backup**.
> Because all encryption and decryption occurs on-device, it is fully end-to-end encrypted. Forgetting the encryption password will result in there being no way to retrieve the configuration.

View File

@@ -1,22 +0,0 @@
---
title: Local Backup & Restore
description: How to backup and restore your LunaSea configuration locally to your device
---
# Local Backup & Restore
Alongside cloud-based backups, LunaSea offers the ability to create local backups of your configuration which you can manually transfer between devices and restore from. This gives you the freedom to have complete control of your data, and never have your configuration saved in a cloud server. Local backups are fully encrypted on-device, there are currently no plans to offer unencrypted backups.
> Because all encryption and decryption occurs on-device, it is fully end-to-end encrypted. Forgetting the encryption password will result in there being no way to retrieve the configuration.
## Creating a Backup
Creating a backup in LunaSea is simple and painless! Simply go to Settings -> System -> "Backup to Device" to start the backup process.
The backup will use the system-level share menu or dialog prompt to allow you to save the backup (a `.lunasea` file). Please ensure to keep the `.lunasea` extension when saving the file, as backups without a `.lunasea` extension will not be selectable when attempting to restore your configuration.
## Restoring a Backup
Restoring a backup in LunaSea is as simple as creating the backup! Simply go to Settings -> System -> "Restore from Device" to start the restore process.
The restoration process will request the password used to encrypt the original backup.

View File

@@ -1,55 +0,0 @@
---
title: Logs
description: Breaking down LunaSea's built-in on-device logger
---
# Logs
LunaSea includes an on-device logging system that helps debug crashes, issues, and support requests. LunaSea stores 4 different levels of logs: **Debug**, **Warning**, **Error**, and **Critical**.
<Tabs
defaultValue="debug"
values={[
{ label: "Debug", value: "debug" },
{ label: "Warning", value: "warning" },
{ label: "Error", value: "error" },
{ label: "Critical", value: "critical" },
]}
>
<TabItem value="debug">
_Debug logs are visible/available on prerelease builds only_
Debug logs are informational logs and messages that are intended to help debug processes.
</TabItem>
<TabItem value="warning">
Warning logs are non-crashing and non-critical errors that have occurred on the device. Warning logs would occur when failing to load an image, passing an incorrect encryption key when trying to restore a backup, etc.
</TabItem>
<TabItem value="error">
Error logs are non-crashing but critical errors that have occurred on the device. Error logs would occur on network errors, connection issues, errors returned from the module, etc.
</TabItem>
<TabItem value="critical">
Fatal logs are crashing errors or unhandled errors that have occurred on the device. Fatal logs would occur when LunaSea fails to complete the boot process, fails to render the UI, etc.
</TabItem>
</Tabs>
## Viewing Log History
When a _handled_ error occurs, a toast notification will appear that allows you to directly view the error that just occurred.
LunaSea also stores a list of the **last 100 logs** that have occurred on the device. To access the history of logs, go to Settings -> System -> Logs. The log database size is checked on startup, so all logs that have occurred in the active session will remain in the log history until LunaSea is closed and reopened.
## Exporting Logs
LunaSea offers the ability to export your logs into a JSON file, which can be easily sent to the developer to help debug the problems. The exported logs also include additional information, including the code-execution stack trace to see exactly where in the code the error occurred.
To export your logs, go to Settings -> System -> Logs -> "Export" to trigger an export of your logs. A system-level share menu or dialog prompt will appear with the ability to share or save the exported logs to your device.
> Because the exported logs contain code-execution stack traces, **the logs may unintentionally contain private information**.
>
> Please ensure you do not publicly share your exported logs (or before sharing, manually scrub the exported logs). Only share the logs to trusted parties through private channels such as email or direct messages.
## Clearing Logs
LunaSea offers the ability to clear all recorded logs from your device. While an available option, it is not recommended to clear your logs often as LunaSea will internally ensure the log database does not grow to an obscenely large size.
To clear your logs, go to Settings -> System -> Logs -> "Clear" to trigger a clean of the logs database.

View File

@@ -1,62 +0,0 @@
---
title: Notifications
description: How to setup webhook-based push notifications with LunaSea
---
# Notifications
Many of the supported modules have support for webhooks, which we can utilize with the hosted notification relay to get rich, instant notifications with deep-linking support sent as push notifications directly to your devices running LunaSea!
## Platform Support
Notifications are only supported on a limited set of platforms at this time. Plans are to support all platforms in the future as support from the underlying notification service is added!
| Platform | Supported? |
| :------: | :--------: |
| Android | ✅ |
| iOS | ✅ |
| Linux | ❌ |
| macOS | ✅ |
| Windows | ❌ |
| Web | ❌ |
## Module Support
Not all modules are currently supported, below is a list of all supported modules and if they supported deep linking to the relevant content. Additional support and deeper integration will arrive in future updates!
| Module | Supported? | Deep Linking? |
| :-----------------------------------: | :--------: | :-----------: |
| [Lidarr](/notifications/lidarr) | ✅ | ❌ |
| NZBGet | ❌ | ❌ |
| [Overseerr](/notifications/overseerr) | ✅ | ❌ |
| [Radarr](/notifications/radarr) | ✅ | ✅ |
| SABnzbd | ❌ | ❌ |
| [Sonarr](/notifications/sonarr) | ✅ | ✅ |
| [Tautulli](/notifications/tautulli) | ✅ | ✅ |
## Notification Types
LunaSea supports two different types of notifications: **User-Based** and **Device-Based**.
<Tabs
defaultValue="user"
values={[
{ label: "User-Based", value: "user" },
{ label: "Device-Based", value: "device" },
]}
>
<TabItem value="user">
User-based notifications send notifications to all devices that are linked to your LunaSea account. Your device is automatically linked when you register or sign in to your account. This means that any current and future devices that are signed-in to your account will receive notifications automatically.
</TabItem>
<TabItem value="device">
Device-based notifications send notifications to a single, specific device. Device-based notifications do not require a LunaSea account, but require you to register every device as a new webhook in the module.
</TabItem>
</Tabs>
## Getting Your Webhook URLs
To get the correct webhook URL for each module simply head to the Settings within LunaSea, then into the "Notifications" page! The buttons on each module card will copy the full, constructed webhook URL to receive user-based or device-based notifications for that specific module. Please ensure to copy and use the correct webhook URL for each module, as mixing them up can lead to unexpected results.
> **Do not publicly share your user-based or device-based URL!**
>
> Anyone with access to your user or device webhook URLs can send notifications to your account or device.

View File

@@ -1,3 +0,0 @@
---
redirect: /notifications/custom
---

View File

@@ -1,3 +0,0 @@
---
redirect: /notifications/lidarr
---

View File

@@ -1,3 +0,0 @@
---
redirect: /notifications/overseerr
---

View File

@@ -1,3 +0,0 @@
---
redirect: /notifications/radarr
---

View File

@@ -1,3 +0,0 @@
---
redirect: /notifications/sonarr
---

View File

@@ -1,3 +0,0 @@
---
redirect: /notifications/tautulli
---

View File

@@ -1,39 +0,0 @@
---
title: Profiles
description: Use multiple instances of modules with LunaSea
---
# Profiles
Do you have multiple instances of modules you want to add to LunaSea? Profiles are the way to do this! LunaSea allows you to have an infinite amount of profiles, each of which can contain a whole new set of configurations for modules.
## Adding, Deleting, and Renaming Profiles
To add, delete, or rename a profile, head to Settings -> Profiles. There are a small collection of simple options on this page, each of which should be self-explanatory.
## Changing Profiles
There are many ways to switch profiles within LunaSea, but let it be noted that switching profiles clears all state-stored data from memory, and all fetched data will be fully refreshed.
<Tabs
defaultValue="drawer"
values={[
{ label: "Drawer", value: "drawer" },
{ label: "AppBar", value: "appbar" },
{ label: "Settings", value: "settings" },
]}
>
<TabItem value="drawer">
When you have more than a single profile enabled, the top header of the drawer will show the currently active profile and can be tapped to trigger a dropdown allowing you to select any profile to switch to.
When in a module and you switch to a profile that does not have the module enabled, the only option available on that page will be to return to the dashboard.
</TabItem>
<TabItem value="appbar">
When on the home/base route of a module that has another instance enabled in another profile, a dropdown arrow will be displayed beside the module title in the AppBar. Simply tap the module name to get a dropdown list of profiles that have that module enabled.
Any additional profiles that do not have the module enabled will not be shown within the dropdown. If you have additional profiles but no profile has that specific module enabled, the dropdown will not be accessible.
</TabItem>
<TabItem value="settings">
You can change your profile within the Settings, either by entering the "Profiles" page and selecting the enabled profile or by entering the "Configuration" page and hitting the profile icon in the AppBar.
</TabItem>
</Tabs>

View File

@@ -1,64 +0,0 @@
---
title: Lidarr
description: How to configure and add Lidarr to LunaSea
---
# Lidarr
Adding your Lidarr instance to LunaSea only requires a few steps to get going!
> This documentation only covers adding Lidarr to LunaSea via local area network (LAN) connections, and does not cover exposing Lidarr externally and connecting remotely.
## Preparation
#### Find Your Local Area Network IP Address
Finding your local area network IP address of the machine running Lidarr is the first step to get setup. To find your local IP address, please look at the following guides:
- [Linux](https://ubuntuhandbook.org/index.php/2020/07/find-ip-address-ubuntu-20-04/)
- [macOS](https://osxdaily.com/2010/11/21/find-ip-address-mac/)
- [Windows](https://support.microsoft.com/en-us/windows/find-your-ip-address-in-windows-f21a9bbc-c582-55cd-35e0-73431160a1b9)
If you are running a different operating system, you can use any search engine to look up "Find local IP address on \<your operating system\>" to typically find tons of guides for any platform.
> It is recommended to set your host machine's IP address to be statically assigned instead of dynamic/DHCP. This ensures that the IP address will not change through machine or network reboots.
#### Check What Port is Being Used
If using the default installation, Lidarr runs on port **8686**. In most cases, this port is not changed and does not need to be changed.
The simplest way to check is to go to Lidarr's web GUI, go to Settings -> General and note the value entered into "Port Number".
#### Ensure Lidarr is Accessible Across Your Network
To ensure that Lidarr is accessible across your local network, check the following:
- In Lidarr's web GUI, go to Settings -> General and enable advanced settings, then ensure that the "Bind Address" is set to `*`
- Check any enabled firewalls to confirm that the port running Lidarr is not being blocked
- _(Windows Only)_: Ensure that Lidarr has been run as administrator at least once
#### Check If You Are Using a URL Base
In Lidarr's web GUI, go to Settings -> General and check the value of "URL Base". If you have nothing set, you can move on. If you do have a value set, please remember the set value as it will be necessary when setting the host within LunaSea.
## Connecting in LunaSea
#### Host
The host is a combination of multiple values found above:
- The local IP address
- The port
- If being used, the URL base
Combine all the values into the following format: `<IP address>:<port>/<URL base>`
For example, if Lidarr is running on port `8686` on a machine that has the IP address `192.168.100.100` with a URL base set to `/lidarr`, the host is: `http://192.168.100.100:8686/lidarr`. If it had no URL base set, it would be `http://192.168.100.100:8686`.
#### API Key
The API key is copied from Lidarr's web GUI, by going to Settings -> General and finding the API key value.
#### Custom Headers
Custom headers allows users to attach custom request headers to each API call that is made. This is typically an advanced feature, and is not necessary in most network configurations.

View File

@@ -1,50 +0,0 @@
---
title: Newznab Search
description: How to configure and add Newznab Search to LunaSea
---
# Newznab Search
LunaSea supports any indexer that supports the [Newznab API specification](https://newznab.readthedocs.io/en/latest/). Most modern indexers (including NZBHydra2) are fully compliant with this specification, and compatible with LunaSea.
> LunaSea supports infinite scrolling of search and category results, which can result in multiple API hits. It is only recommended to add indexers with high API limits to prevent quickly reaching your API limit.
## Adding an Indexer
#### Display Name
Your personal display name for the indexer. The display name can be anything, but indexers are displayed in _alphabetical order_ and the display name you choose will determine where it lands in your list of indexers.
#### Indexer API Host
This is the _API host_ from the indexer. Do not confused this with the homepage for the indexer! Some indexers use the same URL, but many indexers will use a separate URL (commonly https://api.indexer.tld).
If your indexer can and has been added to Lidarr, Radarr, or Sonarr, you can simply copy the URL from the indexer configuration page within their settings.
#### Indexer API Key
Your API key that is typically available in the dashboard of the indexer or received by email when originally signing up for the indexer.
If you are unable to find your API key, consider contacting the administrators of the indexer to get help! The LunaSea developer and community users can try to help, but we cannot guarantee support if nobody has access to said indexer.
#### Custom Headers
Custom headers allows users to attach custom request headers to each API call that is made. This is typically an advanced feature, and is not necessary for most public indexers.
## Indexer API Hosts
| Indexer | API Host |
| :------------: | :----------------------------: |
| DOGnzb | https://api.dognzb.cr/ |
| DrunkenSlug | https://api.drunkenslug.com/ |
| NZB.su | https://api.nzb.su/ |
| NZBCat | https://nzb.cat |
| NZBFinder | https://nzbfinder.ws |
| NZBGeek | https://api.nzbgeek.info |
| NZBPlanet | https://api.nzbplanet.net |
| omgwtfnzbs | https://api.omgwtfnzbs.me |
| OZnzb | https://api.oznzb.com |
| SimplyNZBs | https://simplynzbs.com |
| Usenet Crawler | https://www.usenet-crawler.com |
Want to add something to list? Make a pull request on [GitHub](https://www.lunasea.app/github)!

View File

@@ -1,8 +0,0 @@
---
title: NZBGet
description: How to configure and add NZBGet to LunaSea
---
# NZBGet
> Coming soon!

View File

@@ -1,8 +0,0 @@
---
title: Overseerr
description: How to configure and add Overseerr to LunaSea
---
# Overseerr
> Coming soon!

View File

@@ -1,64 +0,0 @@
---
title: Radarr
description: How to configure and add Radarr to LunaSea
---
# Radarr
Adding your Radarr instance to LunaSea only requires a few steps to get going!
> This documentation only covers adding Radarr to LunaSea via local area network (LAN) connections, and does not cover exposing Radarr externally and connecting remotely.
## Preparation
#### Find Your Local Area Network IP Address
Finding your local area network IP address of the machine running Radarr is the first step to get setup. To find your local IP address, please look at the following guides:
- [Linux](https://ubuntuhandbook.org/index.php/2020/07/find-ip-address-ubuntu-20-04/)
- [macOS](https://osxdaily.com/2010/11/21/find-ip-address-mac/)
- [Windows](https://support.microsoft.com/en-us/windows/find-your-ip-address-in-windows-f21a9bbc-c582-55cd-35e0-73431160a1b9)
If you are running a different operating system, you can use any search engine to look up "Find local IP address on \<your operating system\>" to typically find tons of guides for any platform.
> It is recommended to set your host machine's IP address to be statically assigned instead of dynamic/DHCP. This ensures that the IP address will not change through machine or network reboots.
#### Check What Port is Being Used
If using the default installation, Radarr runs on port **7878**. In most cases, this port is not changed and does not need to be changed.
The simplest way to check is to go to Radarr's web GUI, go to Settings -> General and note the value entered into "Port Number".
#### Ensure Radarr is Accessible Across Your Network
To ensure that Radarr is accessible across your local network, check the following:
- In Radarr's web GUI, go to Settings -> General and enable advanced settings, then ensure that the "Bind Address" is set to `*`
- Check any enabled firewalls to confirm that the port running Radarr is not being blocked
- _(Windows Only)_: Ensure that Radarr has been run as administrator at least once
#### Check If You Are Using a URL Base
In Radarr's web GUI, go to Settings -> General and check the value of "URL Base". If you have nothing set, you can move on. If you do have a value set, please remember the set value as it will be necessary when setting the host within LunaSea.
## Connecting in LunaSea
#### Host
The host is a combination of multiple values found above:
- The local IP address
- The port
- If being used, the URL base
Combine all the values into the following format: `<IP address>:<port>/<URL base>`
For example, if Radarr is running on port `7878` on a machine that has the IP address `192.168.100.100` with a URL base set to `/radarr`, the host is: `http://192.168.100.100:7878/radarr`. If it had no URL base set, it would be `http://192.168.100.100:7878`.
#### API Key
The API key is copied from Radarr's web GUI, by going to Settings -> General and finding the API key value.
#### Custom Headers
Custom headers allows users to attach custom request headers to each API call that is made. This is typically an advanced feature, and is not necessary in most network configurations.

View File

@@ -1,8 +0,0 @@
---
title: SABnzbd
description: How to configure and add SABnzbd to LunaSea
---
# SABnzbd
> Coming soon!

View File

@@ -1,64 +0,0 @@
---
title: Sonarr
description: How to configure and add Sonarr to LunaSea
---
# Sonarr
Adding your Sonarr instance to LunaSea only requires a few steps to get going!
> This documentation only covers adding Sonarr to LunaSea via local area network (LAN) connections, and does not cover exposing Sonarr externally and connecting remotely.
## Preparation
#### Find Your Local Area Network IP Address
Finding your local area network IP address of the machine running Sonarr is the first step to get setup. To find your local IP address, please look at the following guides:
- [Linux](https://ubuntuhandbook.org/index.php/2020/07/find-ip-address-ubuntu-20-04/)
- [macOS](https://osxdaily.com/2010/11/21/find-ip-address-mac/)
- [Windows](https://support.microsoft.com/en-us/windows/find-your-ip-address-in-windows-f21a9bbc-c582-55cd-35e0-73431160a1b9)
If you are running a different operating system, you can use any search engine to look up "Find local IP address on \<your operating system\>" to typically find tons of guides for any platform.
> It is recommended to set your host machine's IP address to be statically assigned instead of dynamic/DHCP. This ensures that the IP address will not change through machine or network reboots.
#### Check What Port is Being Used
If using the default installation, Sonarr runs on port **8989**. In most cases, this port is not changed and does not need to be changed.
The simplest way to check is to go to Sonarr's web GUI, go to Settings -> General and note the value entered into "Port Number".
#### Ensure Sonarr is Accessible Across Your Network
To ensure that Sonarr is accessible across your local network, check the following:
- In Sonarr's web GUI, go to Settings -> General and enable advanced settings, then ensure that the "Bind Address" is set to `*`
- Check any enabled firewalls to confirm that the port running Sonarr is not being blocked
- _(Windows Only)_: Ensure that Sonarr has been run as administrator at least once
#### Check If You Are Using a URL Base
In Sonarr's web GUI, go to Settings -> General and check the value of "URL Base". If you have nothing set, you can move on. If you do have a value set, please remember the set value as it will be necessary when setting the host within LunaSea.
## Connecting in LunaSea
#### Host
The host is a combination of multiple values found above:
- The local IP address
- The port
- If being used, the URL base
Combine all the values into the following format: `<IP address>:<port>/<URL base>`
For example, if Sonarr is running on port `8989` on a machine that has the IP address `192.168.100.100` with a URL base set to `/sonarr`, the host is: `http://192.168.100.100:8989/sonarr`. If it had no URL base set, it would be `http://192.168.100.100:8989`.
#### API Key
The API key is copied from Sonarr's web GUI, by going to Settings -> General and finding the API key value.
#### Custom Headers
Custom headers allows users to attach custom request headers to each API call that is made. This is typically an advanced feature, and is not necessary in most network configurations.

View File

@@ -1,8 +0,0 @@
---
title: Tautulli
description: How to configure and add Tautulli to LunaSea
---
# Tautulli
> Coming soon!

View File

@@ -1,8 +0,0 @@
---
title: Wake on LAN
description: How to configure and add Wake on LAN to LunaSea
---
# Wake on LAN
> Coming soon!

View File

@@ -1,125 +0,0 @@
---
title: Custom Notifications
description: Setting up custom webhook-based push notifications
---
# Custom Notifications
## Preparation
> Custom notifications are considered an advanced feature, and requires basic knowledge of JSON syntax and creating your own scripts/tools to handle sending the payloads.
1. Read through the main [Notifications](/lunasea/notifications) page
2. Copy your device-based or user-based webhook URL from LunaSea
You will need to slightly modify the webhook URL you have copied from any of the modules. Simply replace the name of the module within the webhook URL to custom and you're good to go!
Alternatively, you can copy the content of the URL after the last slash (after `device/` or `user/`) to obtain your Firebase device or user identifier.
## Device-Based
Send a custom notification using a device token to a single device running LunaSea.
<Tabs
defaultValue="endpoint"
values={[
{ label: "Endpoint", value: "endpoint" },
{ label: "JSON Body Schema", value: "json_body_schema" },
]}
>
<TabItem value="endpoint">
```bash
POST https://notify.lunasea.app/v1/custom/device/:device_id
```
`device_id`: Firebase device identifier
</TabItem>
<TabItem value="json_body_schema">
```json
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"title": "Device-Based Custom Notification",
"type": "object",
"properties": {
"title": {
"type": "string",
"description": "The notification title"
},
"body": {
"type": "string",
"description": "The notification body content"
},
"image": {
"type": "string",
"description": "A publicly accessible image to be attached to the notification"
}
},
"required": ["title", "body"]
}
```
If `title` or `body` are missing in the request, a notification will still be sent but with a default title or body respectively.
</TabItem>
</Tabs>
## User-Based
<Tabs
defaultValue="endpoint"
values={[
{ label: "Endpoint", value: "endpoint" },
{ label: "JSON Body Schema", value: "json_body_schema" },
]}
>
<TabItem value="endpoint">
```bash
POST https://notify.lunasea.app/v1/custom/user/:user_id
```
`user_id`: Firebase user identifier
</TabItem>
<TabItem value="json_body_schema">
```json
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"title": "User-Based Custom Notification",
"type": "object",
"properties": {
"title": {
"type": "string",
"description": "The notification title"
},
"body": {
"type": "string",
"description": "The notification body content"
},
"image": {
"type": "string",
"description": "A publicly accessible image to be attached to the notification"
}
},
"required": ["title", "body"]
}
```
If `title` or `body` are missing in the request, a notification will still be sent but with a default title or body respectively.
</TabItem>
</Tabs>
## Troubleshooting
- Ensure that the required `title` parameter is a string type
- If the type is not a string, the notification will fail
- Sending no value or a null value will result in the title "Unknown Title" being used
- Ensure that the required `body` parameter is a string type
- If the type is not a string, the notification will fail
- Sending no value or a null value will result in the body "Unknown Content" being used
- If sending an image, ensure that the content is a valid URL
- If the content is not a valid URL, the notification will fail
- The URL must contain the protocol, `http://` or `https://`
- The URL must be a direct link to the image and does not redirect
- The URL must be publicly accessible, not requiring any authentication to access
- If sending an image, the image must be a supported image type
- Supported types include JPGs, PNGs, and animated GIFs

View File

@@ -1,92 +0,0 @@
---
title: Lidarr Notifications
description: Setting up Lidarr for webhook-based push notifications
---
# Lidarr Notifications
## Preparation
1. Read through the main [Notifications](/lunasea/notifications) page
2. Copy your device-based or user-based webhook URL from LunaSea
## Setup the Webhook
In Lidarr's web GUI, head to Settings -> Connect, hit the "+" button to add a new connection and select "Webhook". Please follow each section below to setup the webhook:
<Tabs
defaultValue="name"
values={[
{ label: "Name", value: "name" },
{ label: "Triggers", value: "triggers" },
{ label: "Tags", value: "tags" },
{ label: "URL", value: "url" },
{ label: "Method", value: "method" },
{ label: "Username", value: "username" },
{ label: "Password", value: "password" },
]}
>
<TabItem value="name">
Select any name, for example "LunaSea".
</TabItem>
<TabItem value="triggers">
Select which events should trigger a push notification. The following triggers are supported:
| Trigger | Supported? |
| :---------------------: | :--------: |
| On Grab | ✅ |
| On Release Import | ✅ |
| On Upgrade | ✅ |
| On Download Failure | ❌ |
| On Import Failure | ❌ |
| On Rename | ✅ |
| On Track Retag | ✅ |
| On Application Update | ❌ |
| On Health Issue | ❌ |
| Include Health Warnings | ❌ |
</TabItem>
<TabItem value="tags">
You can _optionally_ select a tag that must be attached to an artist for the webhook to get triggered.
This can be useful when working with a large media collection to only receive notifications for content you are actively monitoring.
If you want to receive notifications for all artists, leave the tags area empty.
</TabItem>
<TabItem value="url">
Paste the full device-based or user-based URL that was copied from LunaSea.
Each webhook can support a single user-based or device-based webhook URL. Attaching multiple device-based or user-based webhooks to a single Lidarr instance requires setting up multiple webhooks.
</TabItem>
<TabItem value="method">
Keep the method on `POST`. Changing the method to `PUT` will cause the webhooks to fail.
</TabItem>
<TabItem value="username">
The username field should be an _exact match_ to the profile that this module instance was added to within LunaSea. Capitalization and punctuation does matter.
> This step is only required if you are not using the default LunaSea profile (`default`). LunaSea will assume the default profile when none is supplied.
>
> Correctly setting up this field is critically important to get full deep-linking support.
</TabItem>
<TabItem value="password">
Leave the password field empty. Setting this field will currently have no effect.
</TabItem>
</Tabs>
Once setup, close LunaSea and run the webhook test in Lidarr. You should receive a new notification letting you know that LunaSea is ready to receive Lidarr notifications!
## Example
An example Lidarr webhook can be seen below:
- No tags are set for this webhook, meaning all artists will trigger a notification
- This is a user-based notification webhook, meaning it will be sent to all devices that are linked to the user ID `1234567890`
- The webhook is associated with the profile named `My Profile`
![Lidarr Notification Example](/assets/notification-lidarr-example.png)

View File

@@ -1,67 +0,0 @@
---
title: Overseerr Notifications
description: Setting up Overseerr for webhook-based push notifications
---
# Overseerr Notifications
## Preparation
1. Read through the main [Notifications](/lunasea/notifications) page
2. Copy your device-based or user-based webhook URL from LunaSea
## Setup the Webhook
In Overseerr's web GUI, head to Settings -> Notifications -> LunaSea. Ensure that the agent is enabled, then follow each section below to setup the webhook:
<Tabs
defaultValue="webhook_url"
values={[
{ label: "Webhook URL", value: "webhook_url" },
{ label: "Profile Name", value: "profile_name" },
{ label: "Notification Types", value: "notification_types" },
]}
>
<TabItem value="webhook_url">
Paste the full device-based or user-based URL that was copied from LunaSea.
Overseerr currently only supports 1 LunaSea notification agent, which means you can only setup a single user-based or device-based notification.
</TabItem>
<TabItem value="profile_name">
The profile name field should be an _exact match_ to the profile that this module instance was added to within LunaSea. Capitalization and punctuation does matter.
> This step is only required if you are not using the default LunaSea profile (`default`). LunaSea will assume the default profile when none is supplied.
>
> Correctly setting up this field is critically important to get full deep-linking support.
</TabItem>
<TabItem value="notification_types">
Select which events should trigger a push notification. The following triggers are supported:
| Trigger | Supported? |
| :----------------------------: | :--------: |
| Request Pending Approval | ✅ |
| Request Automatically Approved | ✅ |
| Request Approved | ✅ |
| Request Declined | ✅ |
| Request Available | ✅ |
| Request Processing Failed | ✅ |
| Issue Reported | ✅ |
| Issue Comment | ✅ |
| Issue Resolved | ✅ |
| Issue Reopened | ✅ |
</TabItem>
</Tabs>
Once setup, close LunaSea and run the webhook test in Overseerr. You should receive a new notification letting you know that LunaSea is ready to receive Overseerr notifications!
## Example
An example Overseerr webhook can be seen below:
- This is a user-based notification webhook, meaning it will be sent to all devices that are linked to the user ID `1234567890`
- The webhook is associated with the profile named `My Profile`
![Overseerr Notification Example](/assets/notification-overseerr-example.png)

View File

@@ -1,92 +0,0 @@
---
title: Radarr Notifications
description: Setting up Radarr for webhook-based push notifications
---
# Radarr Notifications
## Preparation
1. Read through the main [Notifications](/lunasea/notifications) page
2. Copy your device-based or user-based webhook URL from LunaSea
## Setup the Webhook
In Radarr's web GUI, head to Settings -> Connect, hit the "+" button to add a new connection and select "Webhook". Please follow each section below to setup the webhook:
<Tabs
defaultValue="name"
values={[
{ label: "Name", value: "name" },
{ label: "Triggers", value: "triggers" },
{ label: "Tags", value: "tags" },
{ label: "URL", value: "url" },
{ label: "Method", value: "method" },
{ label: "Username", value: "username" },
{ label: "Password", value: "password" },
]}
>
<TabItem value="name">
Select any name, for example "LunaSea".
</TabItem>
<TabItem value="triggers">
Select which events should trigger a push notification. The following triggers are supported:
| Trigger | Supported? |
| :------------------------------: | :--------: |
| On Grab | ✅ |
| On Import | ✅ |
| On Upgrade | ✅ |
| On Rename | ✅ |
| On Movie Delete | ❌ |
| On Movie File Delete | ❌ |
| On Movie File Delete For Upgrade | ❌ |
| On Health Issue | ✅ |
| Include Health Warnings | ✅ |
| On Application Update | ❌ |
</TabItem>
<TabItem value="tags">
You can _optionally_ select a tag that must be attached to a movie for the webhook to get triggered.
This can be useful when working with a large media collection to only receive notifications for content you are actively monitoring.
If you want to receive notifications for all movies, leave the tags area empty.
</TabItem>
<TabItem value="url">
Paste the full device-based or user-based URL that was copied from LunaSea.
Each webhook can support a single user-based or device-based webhook URL. Attaching multiple device-based or user-based webhooks to a single Radarr instance requires setting up multiple webhooks.
</TabItem>
<TabItem value="method">
Keep the method on `POST`. Changing the method to `PUT` will cause the webhooks to fail.
</TabItem>
<TabItem value="username">
The username field should be an _exact match_ to the profile that this module instance was added to within LunaSea. Capitalization and punctuation does matter.
> This step is only required if you are not using the default LunaSea profile (`default`). LunaSea will assume the default profile when none is supplied.
>
> Correctly setting up this field is critically important to get full deep-linking support.
</TabItem>
<TabItem value="password">
Leave the password field empty. Setting this field will currently have no effect.
</TabItem>
</Tabs>
Once setup, close LunaSea and run the webhook test in Radarr. You should receive a new notification letting you know that LunaSea is ready to receive Radarr notifications!
## Example
An example Radarr webhook can be seen below:
- No tags are set for this webhook, meaning all movies will trigger a notification
- This is a user-based notification webhook, meaning it will be sent to all devices that are linked to the user ID `1234567890`
- The webhook is associated with the profile named `My Profile`
![Radarr Notification Example](/assets/notification-radarr-example.png)

Some files were not shown because too many files have changed in this diff Show More