@muhammedaksam/easiarr 0.4.3 → 0.5.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/package.json +1 -1
- package/src/api/arr-api.ts +156 -0
- package/src/config/schema.ts +33 -0
- package/src/index.ts +4 -0
- package/src/ui/components/FooterHint.ts +119 -0
- package/src/ui/components/PageLayout.ts +58 -10
- package/src/ui/screens/AdvancedSettings.ts +4 -1
- package/src/ui/screens/ApiKeyViewer.ts +6 -1
- package/src/ui/screens/AppConfigurator.ts +16 -5
- package/src/ui/screens/AppManager.ts +6 -1
- package/src/ui/screens/ContainerControl.ts +4 -1
- package/src/ui/screens/FullAutoSetup.ts +4 -1
- package/src/ui/screens/MainMenu.ts +19 -3
- package/src/ui/screens/MonitorDashboard.ts +866 -0
- package/src/ui/screens/ProwlarrSetup.ts +5 -1
- package/src/ui/screens/QBittorrentSetup.ts +4 -1
- package/src/ui/screens/QuickSetup.ts +36 -8
- package/src/ui/screens/TRaSHProfileSetup.ts +6 -1
|
@@ -45,7 +45,11 @@ export class ProwlarrSetup extends BoxRenderable {
|
|
|
45
45
|
const { container: pageContainer, content: contentBox } = createPageLayout(cliRenderer, {
|
|
46
46
|
title: "Prowlarr Setup",
|
|
47
47
|
stepInfo: "Configure indexer sync and proxies",
|
|
48
|
-
footerHint:
|
|
48
|
+
footerHint: [
|
|
49
|
+
{ type: "key", key: "↑↓", value: "Navigate" },
|
|
50
|
+
{ type: "key", key: "Enter", value: "Select" },
|
|
51
|
+
{ type: "key", key: "Esc", value: "Back" },
|
|
52
|
+
],
|
|
49
53
|
})
|
|
50
54
|
super(cliRenderer, { width: "100%", height: "100%" })
|
|
51
55
|
this.add(pageContainer)
|
|
@@ -34,7 +34,10 @@ export class QBittorrentSetup extends BoxRenderable {
|
|
|
34
34
|
const { container: pageContainer, content: contentBox } = createPageLayout(cliRenderer, {
|
|
35
35
|
title: "qBittorrent Setup",
|
|
36
36
|
stepInfo: "Configure TRaSH-compliant paths and categories",
|
|
37
|
-
footerHint:
|
|
37
|
+
footerHint: [
|
|
38
|
+
{ type: "key", key: "Enter", value: "Submit" },
|
|
39
|
+
{ type: "key", key: "Esc", value: "Back" },
|
|
40
|
+
],
|
|
38
41
|
})
|
|
39
42
|
super(cliRenderer, { width: "100%", height: "100%" })
|
|
40
43
|
this.add(pageContainer)
|
|
@@ -106,7 +106,10 @@ export class QuickSetup {
|
|
|
106
106
|
private renderWelcome(): void {
|
|
107
107
|
const { container: page, content } = createPageLayout(this.renderer, {
|
|
108
108
|
title: "Welcome to easiarr",
|
|
109
|
-
footerHint:
|
|
109
|
+
footerHint: [
|
|
110
|
+
{ type: "key", key: "Enter", value: "Select" },
|
|
111
|
+
{ type: "key", key: "q", value: "Quit" },
|
|
112
|
+
],
|
|
110
113
|
})
|
|
111
114
|
|
|
112
115
|
// Spacer
|
|
@@ -248,7 +251,10 @@ export class QuickSetup {
|
|
|
248
251
|
|
|
249
252
|
const { container: page, content } = createPageLayout(this.renderer, {
|
|
250
253
|
title: "About easiarr",
|
|
251
|
-
footerHint:
|
|
254
|
+
footerHint: [
|
|
255
|
+
{ type: "key", key: "Esc", value: "Back" },
|
|
256
|
+
{ type: "key", key: "q", value: "Quit" },
|
|
257
|
+
],
|
|
252
258
|
})
|
|
253
259
|
|
|
254
260
|
content.add(new TextRenderable(this.renderer, { id: "about-spacer1", content: "" }))
|
|
@@ -347,12 +353,16 @@ export class QuickSetup {
|
|
|
347
353
|
private renderAppSelection(): void {
|
|
348
354
|
const title = "Select Apps"
|
|
349
355
|
const stepInfo = `${title} (${this.selectedApps.size} selected)`
|
|
350
|
-
const footerHint =
|
|
356
|
+
const footerHint = [
|
|
357
|
+
{ type: "key", key: "←→", value: "Tab" },
|
|
358
|
+
{ type: "key", key: "Enter", value: "Toggle" },
|
|
359
|
+
{ type: "key", key: "q", value: "Quit" },
|
|
360
|
+
] as const
|
|
351
361
|
|
|
352
362
|
const { container: page, content } = createPageLayout(this.renderer, {
|
|
353
363
|
title: title,
|
|
354
364
|
stepInfo: stepInfo,
|
|
355
|
-
footerHint: footerHint,
|
|
365
|
+
footerHint: [...footerHint],
|
|
356
366
|
})
|
|
357
367
|
|
|
358
368
|
// Application Selector
|
|
@@ -442,7 +452,12 @@ export class QuickSetup {
|
|
|
442
452
|
const { container: page, content } = createPageLayout(this.renderer, {
|
|
443
453
|
title: "System Configuration",
|
|
444
454
|
stepInfo: `Step 2/${totalSteps}`,
|
|
445
|
-
footerHint:
|
|
455
|
+
footerHint: [
|
|
456
|
+
{ type: "key", key: "Tab", value: "Next" },
|
|
457
|
+
{ type: "key", key: "Enter", value: "Next/Continue" },
|
|
458
|
+
{ type: "key", key: "Esc", value: "Back" },
|
|
459
|
+
{ type: "key", key: "q", value: "Quit" },
|
|
460
|
+
],
|
|
446
461
|
})
|
|
447
462
|
|
|
448
463
|
// Instructions
|
|
@@ -580,7 +595,11 @@ export class QuickSetup {
|
|
|
580
595
|
const { container: page, content } = createPageLayout(this.renderer, {
|
|
581
596
|
title: "VPN Configuration",
|
|
582
597
|
stepInfo: `Step ${stepNum}/${totalSteps}`,
|
|
583
|
-
footerHint:
|
|
598
|
+
footerHint: [
|
|
599
|
+
{ type: "key", key: "Enter", value: "Select" },
|
|
600
|
+
{ type: "key", key: "Esc", value: "Back" },
|
|
601
|
+
{ type: "key", key: "q", value: "Quit" },
|
|
602
|
+
],
|
|
584
603
|
})
|
|
585
604
|
|
|
586
605
|
content.add(
|
|
@@ -667,7 +686,12 @@ export class QuickSetup {
|
|
|
667
686
|
const { container: page, content } = createPageLayout(this.renderer, {
|
|
668
687
|
title: "Traefik Configuration",
|
|
669
688
|
stepInfo: `Step ${stepNum}/${totalSteps}`,
|
|
670
|
-
footerHint:
|
|
689
|
+
footerHint: [
|
|
690
|
+
{ type: "key", key: "Tab", value: "Next Field" },
|
|
691
|
+
{ type: "key", key: "Enter", value: "Continue" },
|
|
692
|
+
{ type: "key", key: "Esc", value: "Back" },
|
|
693
|
+
{ type: "key", key: "q", value: "Quit" },
|
|
694
|
+
],
|
|
671
695
|
})
|
|
672
696
|
|
|
673
697
|
content.add(
|
|
@@ -908,7 +932,11 @@ export class QuickSetup {
|
|
|
908
932
|
const { container: page, content } = createPageLayout(this.renderer, {
|
|
909
933
|
title: "Confirm Setup",
|
|
910
934
|
stepInfo: `Step ${totalSteps}/${totalSteps}`,
|
|
911
|
-
footerHint:
|
|
935
|
+
footerHint: [
|
|
936
|
+
{ type: "key", key: "Enter", value: "Select" },
|
|
937
|
+
{ type: "key", key: "Esc", value: "Back" },
|
|
938
|
+
{ type: "key", key: "q", value: "Quit" },
|
|
939
|
+
],
|
|
912
940
|
})
|
|
913
941
|
|
|
914
942
|
content.add(new TextRenderable(this.renderer, { id: "confirm-spacer", content: "" }))
|
|
@@ -44,7 +44,12 @@ export class TRaSHProfileSetup extends BoxRenderable {
|
|
|
44
44
|
const { container: pageContainer, content: contentBox } = createPageLayout(cliRenderer, {
|
|
45
45
|
title: "TRaSH Guide Setup",
|
|
46
46
|
stepInfo: "Configure quality profiles and custom formats",
|
|
47
|
-
footerHint:
|
|
47
|
+
footerHint: [
|
|
48
|
+
{ type: "key", key: "↑↓", value: "Navigate" },
|
|
49
|
+
{ type: "key", key: "Space", value: "Select" },
|
|
50
|
+
{ type: "key", key: "Enter", value: "Confirm" },
|
|
51
|
+
{ type: "key", key: "Esc", value: "Back" },
|
|
52
|
+
],
|
|
48
53
|
})
|
|
49
54
|
super(cliRenderer, { width: "100%", height: "100%" })
|
|
50
55
|
this.add(pageContainer)
|