wi1-bot 1.4.13__py3-none-any.whl → 2.0.0__py3-none-any.whl
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.
- wi1_bot/config.py +19 -65
- {wi1_bot-1.4.13.dist-info → wi1_bot-2.0.0.dist-info}/METADATA +5 -4
- {wi1_bot-1.4.13.dist-info → wi1_bot-2.0.0.dist-info}/RECORD +6 -6
- {wi1_bot-1.4.13.dist-info → wi1_bot-2.0.0.dist-info}/WHEEL +0 -0
- {wi1_bot-1.4.13.dist-info → wi1_bot-2.0.0.dist-info}/entry_points.txt +0 -0
- {wi1_bot-1.4.13.dist-info → wi1_bot-2.0.0.dist-info}/licenses/LICENSE +0 -0
wi1_bot/config.py
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
import os
|
2
2
|
import pathlib
|
3
|
-
from typing import TypedDict
|
3
|
+
from typing import NotRequired, TypedDict
|
4
4
|
|
5
5
|
import yaml
|
6
6
|
|
@@ -39,65 +39,26 @@ class PushoverConfig(TypedDict):
|
|
39
39
|
devices: str
|
40
40
|
|
41
41
|
|
42
|
-
|
43
|
-
|
44
|
-
# from typing import NotRequired
|
45
|
-
|
46
|
-
# class DiscordConfig(TypedDict):
|
47
|
-
# bot_token: str
|
48
|
-
# channel_id: int
|
49
|
-
# admin_id: int
|
50
|
-
# bot_presence: NotRequired[str]
|
51
|
-
# quotas: NotRequired[dict[int, float]]
|
52
|
-
|
53
|
-
|
54
|
-
# class TranscodingProfile(TypedDict):
|
55
|
-
# video_codec: NotRequired[str]
|
56
|
-
# video_bitrate: NotRequired[int]
|
57
|
-
# audio_codec: NotRequired[str]
|
58
|
-
# audio_channels: NotRequired[int]
|
59
|
-
# audio_bitrate: NotRequired[str]
|
60
|
-
|
61
|
-
|
62
|
-
# class TranscodingConfig(TypedDict):
|
63
|
-
# profiles: dict[str, TranscodingProfile]
|
64
|
-
# hwaccel: NotRequired[str]
|
65
|
-
|
66
|
-
|
67
|
-
# class Config(TypedDict):
|
68
|
-
# radarr: ArrConfig
|
69
|
-
# sonarr: ArrConfig
|
70
|
-
# discord: DiscordConfig
|
71
|
-
# pushover: NotRequired[PushoverConfig]
|
72
|
-
# transcoding: NotRequired[TranscodingConfig]
|
73
|
-
|
74
|
-
|
75
|
-
class DiscordConfigOptional(TypedDict, total=False):
|
76
|
-
bot_presence: str
|
77
|
-
quotas: dict[int, float]
|
78
|
-
|
79
|
-
|
80
|
-
class DiscordConfig(DiscordConfigOptional):
|
42
|
+
class DiscordConfig(TypedDict):
|
81
43
|
bot_token: str
|
82
44
|
channel_id: int
|
83
45
|
admin_id: int
|
46
|
+
bot_presence: NotRequired[str]
|
47
|
+
quotas: NotRequired[dict[int, float]]
|
84
48
|
|
85
49
|
|
86
|
-
class TranscodingProfile(TypedDict
|
50
|
+
class TranscodingProfile(TypedDict):
|
87
51
|
copy_all_streams: bool
|
88
|
-
video_codec: str
|
89
|
-
video_bitrate: int
|
90
|
-
audio_codec: str
|
91
|
-
audio_channels: int
|
92
|
-
audio_bitrate: str
|
93
|
-
|
94
|
-
|
95
|
-
class TranscodingConfigOptional(TypedDict, total=False):
|
96
|
-
hwaccel: str # optional
|
52
|
+
video_codec: NotRequired[str]
|
53
|
+
video_bitrate: NotRequired[int]
|
54
|
+
audio_codec: NotRequired[str]
|
55
|
+
audio_channels: NotRequired[int]
|
56
|
+
audio_bitrate: NotRequired[str]
|
97
57
|
|
98
58
|
|
99
|
-
class TranscodingConfig(
|
59
|
+
class TranscodingConfig(TypedDict):
|
100
60
|
profiles: dict[str, TranscodingProfile]
|
61
|
+
hwaccel: NotRequired[str]
|
101
62
|
|
102
63
|
|
103
64
|
class RemotePathMapping(TypedDict):
|
@@ -105,25 +66,18 @@ class RemotePathMapping(TypedDict):
|
|
105
66
|
local: str
|
106
67
|
|
107
68
|
|
108
|
-
class
|
109
|
-
log_dir: str
|
110
|
-
remote_path_mappings: list[RemotePathMapping]
|
111
|
-
|
112
|
-
|
113
|
-
class GeneralConfig(GeneralConfigOptional):
|
114
|
-
pass
|
115
|
-
|
116
|
-
|
117
|
-
class ConfigOptional(TypedDict, total=False):
|
118
|
-
general: GeneralConfig # optional
|
119
|
-
pushover: PushoverConfig # optional
|
120
|
-
transcoding: TranscodingConfig # optional
|
69
|
+
class GeneralConfig(TypedDict):
|
70
|
+
log_dir: NotRequired[str]
|
71
|
+
remote_path_mappings: NotRequired[list[RemotePathMapping]]
|
121
72
|
|
122
73
|
|
123
|
-
class Config(
|
74
|
+
class Config(TypedDict):
|
75
|
+
general: NotRequired[GeneralConfig] # optional
|
124
76
|
radarr: ArrConfig
|
125
77
|
sonarr: ArrConfig
|
126
78
|
discord: DiscordConfig
|
79
|
+
pushover: NotRequired[PushoverConfig]
|
80
|
+
transcoding: NotRequired[TranscodingConfig]
|
127
81
|
|
128
82
|
|
129
83
|
with open(_config_path, "r") as f:
|
@@ -1,6 +1,6 @@
|
|
1
1
|
Metadata-Version: 2.4
|
2
2
|
Name: wi1-bot
|
3
|
-
Version:
|
3
|
+
Version: 2.0.0
|
4
4
|
Summary: Discord bot for Radarr/Sonarr integration
|
5
5
|
Project-URL: Homepage, https://github.com/wthueb/wi1-bot
|
6
6
|
Author-email: William Huebner <wilhueb@gmail.com>
|
@@ -8,8 +8,8 @@ License-Expression: MIT
|
|
8
8
|
License-File: LICENSE
|
9
9
|
Classifier: Programming Language :: Python :: 3
|
10
10
|
Classifier: Programming Language :: Python :: 3 :: Only
|
11
|
-
Classifier: Programming Language :: Python :: 3.
|
12
|
-
Requires-Python: >=3.
|
11
|
+
Classifier: Programming Language :: Python :: 3.11
|
12
|
+
Requires-Python: >=3.11
|
13
13
|
Requires-Dist: discord-py==2.3.2
|
14
14
|
Requires-Dist: flask==3.0.2
|
15
15
|
Requires-Dist: mongoengine==0.29.1
|
@@ -35,13 +35,14 @@ A Discord bot to integrate [Radarr](https://radarr.video/) & [Sonarr](https://so
|
|
35
35
|
3. `pip install -e .[dev]`
|
36
36
|
4. `pre-commit install`
|
37
37
|
|
38
|
-
Requires Python >=3.
|
38
|
+
Requires Python >=3.11.
|
39
39
|
|
40
40
|
### TODO
|
41
41
|
|
42
42
|
- use sqlite
|
43
43
|
- dynamically copy streams
|
44
44
|
- i.e. if mov_text in input, -c:s srt
|
45
|
+
- https://github.com/HaveAGitGat/Tdarr_Plugins/blob/aef12f3c65905f5fc7d045b1a96ddc6a58dc55e7/FlowPluginsTs/CommunityFlowPlugins/ffmpegCommand/ffmpegCommandSetContainer/1.0.0/index.ts#L77
|
45
46
|
- https://docs.docker.com/build/ci/github-actions/multi-platform/#distribute-build-across-multiple-runners
|
46
47
|
- link discord user to overseerr user
|
47
48
|
- https://github.com/kkroening/ffmpeg-python
|
@@ -1,5 +1,5 @@
|
|
1
1
|
wi1_bot/__init__.py,sha256=dYlvBffClqwInBRSxSAoJHuujuh4yuPderFR4n7Odko,161
|
2
|
-
wi1_bot/config.py,sha256=
|
2
|
+
wi1_bot/config.py,sha256=2gN9Hx2-nl2L4n3tLlW-XmmKMxL6jOSGMD4Re9um0jI,2181
|
3
3
|
wi1_bot/push.py,sha256=6EwQ1eXcJnQimAi0dOm1_t7Am056zob-1-EOkytGZWg,783
|
4
4
|
wi1_bot/webhook.py,sha256=11rzmxhXnDeXWlgEnOLh26WP79rLeG71HaDvKUXuUcA,3665
|
5
5
|
wi1_bot/arr/__init__.py,sha256=-6UE81yY6OhD6-nbLindChE_HlwsNRuL8JijUmo_Q6k,149
|
@@ -23,8 +23,8 @@ wi1_bot/scripts/transcode_item.py,sha256=21MeeIZ9wIRhAY-FOEgOdPsg6YOLlSUj59r8NkT
|
|
23
23
|
wi1_bot/transcoder/__init__.py,sha256=B4xr82UtIFc3tyy_MEZdZKMukYW0yejPnfsGowaTIM0,105
|
24
24
|
wi1_bot/transcoder/transcode_queue.py,sha256=W7r2I7OD8QuxseCEb7_ddOvYXiBBLmKLvCs2IgJJ92I,1856
|
25
25
|
wi1_bot/transcoder/transcoder.py,sha256=2wIgDPkrrXcrSjA1HpYGd0RX5wonw1zfltJqGzCaorM,9163
|
26
|
-
wi1_bot-
|
27
|
-
wi1_bot-
|
28
|
-
wi1_bot-
|
29
|
-
wi1_bot-
|
30
|
-
wi1_bot-
|
26
|
+
wi1_bot-2.0.0.dist-info/METADATA,sha256=Bwt1ZBD6ZLxmbMt3rn5sU2yl-JMMxYlxYCAfeGnO4bY,3663
|
27
|
+
wi1_bot-2.0.0.dist-info/WHEEL,sha256=qtCwoSJWgHk21S1Kb4ihdzI2rlJ1ZKaIurTj_ngOhyQ,87
|
28
|
+
wi1_bot-2.0.0.dist-info/entry_points.txt,sha256=pF5EawAQsUNMHs5exynpNdRq9g4dODg-RaPkx2MyYLU,184
|
29
|
+
wi1_bot-2.0.0.dist-info/licenses/LICENSE,sha256=6V4_mQoPoLJl77_WMsQRQMDG2mnIhDUdfCmMkqM9Qwc,1072
|
30
|
+
wi1_bot-2.0.0.dist-info/RECORD,,
|
File without changes
|
File without changes
|
File without changes
|