@@ -132,8 +132,8 @@ def __init__(self, item: dict | None) -> None:
132
132
#Post processing
133
133
self .subtitles = item .get ("subtitles" , [])
134
134
135
- def store_state (self ) -> None :
136
- new_state = self ._determine_state ()
135
+ def store_state (self , given_state = None ) -> None :
136
+ new_state = given_state if given_state else self ._determine_state ()
137
137
if self .last_state and self .last_state != new_state :
138
138
sse_manager .publish_event ("item_update" , {"last_state" : self .last_state , "new_state" : new_state , "item_id" : self ._id })
139
139
self .last_state = new_state
@@ -145,6 +145,10 @@ def is_stream_blacklisted(self, stream: Stream):
145
145
session .refresh (self , attribute_names = ['blacklisted_streams' ])
146
146
return stream in self .blacklisted_streams
147
147
148
+ def blacklist_active_stream (self ):
149
+ stream = next (stream for stream in self .streams if stream .infohash == self .active_stream ["infohash" ])
150
+ self .blacklist_stream (stream )
151
+
148
152
def blacklist_stream (self , stream : Stream ):
149
153
value = blacklist_stream (self , stream )
150
154
if value :
@@ -321,20 +325,23 @@ def get_aliases(self) -> dict:
321
325
def __hash__ (self ):
322
326
return hash (self ._id )
323
327
324
- def reset (self , soft_reset : bool = False ):
328
+ def reset (self ):
325
329
"""Reset item attributes."""
326
330
if self .type == "show" :
327
331
for season in self .seasons :
328
332
for episode in season .episodes :
329
- episode ._reset (soft_reset )
330
- season ._reset (soft_reset )
333
+ episode ._reset ()
334
+ season ._reset ()
331
335
elif self .type == "season" :
332
336
for episode in self .episodes :
333
- episode ._reset (soft_reset )
334
- self ._reset (soft_reset )
335
- self .store_state ()
337
+ episode ._reset ()
338
+ self ._reset ()
339
+ if self .title :
340
+ self .store_state (States .Indexed )
341
+ else :
342
+ self .store_state (States .Requested )
336
343
337
- def _reset (self , soft_reset ):
344
+ def _reset (self ):
338
345
"""Reset item attributes for rescraping."""
339
346
if self .symlink_path :
340
347
if Path (self .symlink_path ).exists ():
@@ -351,16 +358,8 @@ def _reset(self, soft_reset):
351
358
self .set ("folder" , None )
352
359
self .set ("alternative_folder" , None )
353
360
354
- if not self .active_stream :
355
- self .active_stream = {}
356
- if not soft_reset :
357
- if self .active_stream .get ("infohash" , False ):
358
- reset_streams (self , self .active_stream ["infohash" ])
359
- else :
360
- if self .active_stream .get ("infohash" , False ):
361
- stream = next ((stream for stream in self .streams if stream .infohash == self .active_stream ["infohash" ]), None )
362
- if stream :
363
- self .blacklist_stream (stream )
361
+ reset_streams (self )
362
+ self .active_stream = {}
364
363
365
364
self .set ("active_stream" , {})
366
365
self .set ("symlinked" , False )
@@ -371,7 +370,7 @@ def _reset(self, soft_reset):
371
370
self .set ("symlinked_times" , 0 )
372
371
self .set ("scraped_times" , 0 )
373
372
374
- logger .debug (f"Item { self .log_string } reset for rescraping " )
373
+ logger .debug (f"Item { self .log_string } has been reset " )
375
374
376
375
@property
377
376
def log_string (self ):
@@ -456,10 +455,10 @@ def _determine_state(self):
456
455
return States .Requested
457
456
return States .Unknown
458
457
459
- def store_state (self ) -> None :
458
+ def store_state (self , given_state : States = None ) -> None :
460
459
for season in self .seasons :
461
- season .store_state ()
462
- super ().store_state ()
460
+ season .store_state (given_state )
461
+ super ().store_state (given_state )
463
462
464
463
def __repr__ (self ):
465
464
return f"Show:{ self .log_string } :{ self .state .name } "
@@ -527,10 +526,10 @@ class Season(MediaItem):
527
526
"polymorphic_load" : "inline" ,
528
527
}
529
528
530
- def store_state (self ) -> None :
529
+ def store_state (self , given_state : States = None ) -> None :
531
530
for episode in self .episodes :
532
- episode .store_state ()
533
- super ().store_state ()
531
+ episode .store_state (given_state )
532
+ super ().store_state (given_state )
534
533
535
534
def __init__ (self , item ):
536
535
self .type = "season"
0 commit comments