qBitrr2 5.4.4__py3-none-any.whl → 5.5.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.
- qBitrr/arss.py +457 -127
- qBitrr/bundled_data.py +2 -2
- qBitrr/config_version.py +144 -0
- qBitrr/db_lock.py +189 -0
- qBitrr/db_recovery.py +202 -0
- qBitrr/gen_config.py +285 -3
- qBitrr/main.py +171 -5
- qBitrr/search_activity_store.py +6 -2
- qBitrr/static/assets/ArrView.js +1 -1
- qBitrr/static/assets/ArrView.js.map +1 -1
- qBitrr/static/assets/ConfigView.js +4 -3
- qBitrr/static/assets/ConfigView.js.map +1 -1
- qBitrr/static/assets/LogsView.js +17 -39
- qBitrr/static/assets/LogsView.js.map +1 -1
- qBitrr/static/assets/ProcessesView.js +1 -1
- qBitrr/static/assets/ProcessesView.js.map +1 -1
- qBitrr/static/assets/app.css +1 -1
- qBitrr/static/assets/app.js +1 -9
- qBitrr/static/assets/app.js.map +1 -1
- qBitrr/static/assets/react-select.esm.js +1 -8
- qBitrr/static/assets/react-select.esm.js.map +1 -1
- qBitrr/static/assets/table.js +2 -20
- qBitrr/static/assets/table.js.map +1 -1
- qBitrr/static/assets/vendor.js +1 -25
- qBitrr/static/assets/vendor.js.map +1 -1
- qBitrr/static/sw.js +5 -0
- qBitrr/tables.py +27 -0
- qBitrr/webui.py +523 -23
- {qbitrr2-5.4.4.dist-info → qbitrr2-5.5.0.dist-info}/METADATA +88 -13
- qbitrr2-5.5.0.dist-info/RECORD +63 -0
- qbitrr2-5.4.4.dist-info/RECORD +0 -61
- {qbitrr2-5.4.4.dist-info → qbitrr2-5.5.0.dist-info}/WHEEL +0 -0
- {qbitrr2-5.4.4.dist-info → qbitrr2-5.5.0.dist-info}/entry_points.txt +0 -0
- {qbitrr2-5.4.4.dist-info → qbitrr2-5.5.0.dist-info}/licenses/LICENSE +0 -0
- {qbitrr2-5.4.4.dist-info → qbitrr2-5.5.0.dist-info}/top_level.txt +0 -0
qBitrr/static/sw.js
CHANGED
|
@@ -60,6 +60,11 @@ self.addEventListener('fetch', (event) => {
|
|
|
60
60
|
return;
|
|
61
61
|
}
|
|
62
62
|
|
|
63
|
+
// Skip log file requests - they can be very large and shouldn't be cached
|
|
64
|
+
if (url.pathname.startsWith('/web/logs/') && !url.pathname.endsWith('/download')) {
|
|
65
|
+
return;
|
|
66
|
+
}
|
|
67
|
+
|
|
63
68
|
// Network-first for API calls
|
|
64
69
|
if (url.pathname.startsWith('/api/')) {
|
|
65
70
|
event.respondWith(
|
qBitrr/tables.py
CHANGED
|
@@ -20,6 +20,13 @@ class MoviesFilesModel(Model):
|
|
|
20
20
|
MinCustomFormatScore = IntegerField(null=True)
|
|
21
21
|
CustomFormatMet = BooleanField(default=False)
|
|
22
22
|
Reason = TextField(null=True)
|
|
23
|
+
# Quality profile from Arr API
|
|
24
|
+
QualityProfileId = IntegerField(null=True)
|
|
25
|
+
QualityProfileName = TextField(null=True)
|
|
26
|
+
# Profile switching state tracking
|
|
27
|
+
LastProfileSwitchTime = DateTimeField(formats=["%Y-%m-%d %H:%M:%S.%f"], null=True)
|
|
28
|
+
CurrentProfileId = IntegerField(null=True)
|
|
29
|
+
OriginalProfileId = IntegerField(null=True)
|
|
23
30
|
|
|
24
31
|
|
|
25
32
|
class EpisodeFilesModel(Model):
|
|
@@ -42,6 +49,13 @@ class EpisodeFilesModel(Model):
|
|
|
42
49
|
MinCustomFormatScore = IntegerField(null=True)
|
|
43
50
|
CustomFormatMet = BooleanField(default=False)
|
|
44
51
|
Reason = TextField(null=True)
|
|
52
|
+
# Quality profile from Arr API (inherited from series)
|
|
53
|
+
QualityProfileId = IntegerField(null=True)
|
|
54
|
+
QualityProfileName = TextField(null=True)
|
|
55
|
+
# Profile switching state tracking
|
|
56
|
+
LastProfileSwitchTime = DateTimeField(formats=["%Y-%m-%d %H:%M:%S.%f"], null=True)
|
|
57
|
+
CurrentProfileId = IntegerField(null=True)
|
|
58
|
+
OriginalProfileId = IntegerField(null=True)
|
|
45
59
|
|
|
46
60
|
|
|
47
61
|
class SeriesFilesModel(Model):
|
|
@@ -51,6 +65,9 @@ class SeriesFilesModel(Model):
|
|
|
51
65
|
Searched = BooleanField(default=False)
|
|
52
66
|
Upgrade = BooleanField(default=False)
|
|
53
67
|
MinCustomFormatScore = IntegerField(null=True)
|
|
68
|
+
# Quality profile from Arr API
|
|
69
|
+
QualityProfileId = IntegerField(null=True)
|
|
70
|
+
QualityProfileName = TextField(null=True)
|
|
54
71
|
|
|
55
72
|
|
|
56
73
|
class MovieQueueModel(Model):
|
|
@@ -80,6 +97,13 @@ class AlbumFilesModel(Model):
|
|
|
80
97
|
Reason = TextField(null=True)
|
|
81
98
|
ArtistId = IntegerField(null=False)
|
|
82
99
|
ArtistTitle = TextField(null=True)
|
|
100
|
+
# Quality profile from Arr API
|
|
101
|
+
QualityProfileId = IntegerField(null=True)
|
|
102
|
+
QualityProfileName = TextField(null=True)
|
|
103
|
+
# Profile switching state tracking
|
|
104
|
+
LastProfileSwitchTime = DateTimeField(formats=["%Y-%m-%d %H:%M:%S.%f"], null=True)
|
|
105
|
+
CurrentProfileId = IntegerField(null=True)
|
|
106
|
+
OriginalProfileId = IntegerField(null=True)
|
|
83
107
|
|
|
84
108
|
|
|
85
109
|
class TrackFilesModel(Model):
|
|
@@ -100,6 +124,9 @@ class ArtistFilesModel(Model):
|
|
|
100
124
|
Searched = BooleanField(default=False)
|
|
101
125
|
Upgrade = BooleanField(default=False)
|
|
102
126
|
MinCustomFormatScore = IntegerField(null=True)
|
|
127
|
+
# Quality profile from Arr API
|
|
128
|
+
QualityProfileId = IntegerField(null=True)
|
|
129
|
+
QualityProfileName = TextField(null=True)
|
|
103
130
|
|
|
104
131
|
|
|
105
132
|
class AlbumQueueModel(Model):
|