@@ -3677,75 +3677,80 @@ def clear(self):
36773677 self ._chapters_file = None
36783678
36793679 def write_chapters_to_file (self , input_file ):
3680- if input_file :
3681- logger .error ('input_file = "{}"' .format (input_file ))
3680+ logger .error ('input_file: "{}"' .format (input_file ))
3681+ if input_file is None or input_file == '' :
3682+ if logger .isEnabledFor (logging .INFO ):
3683+ logger .info ('empty input file provided! Exiting!' )
3684+ else :
36823685 if self .HAS_MKVTOOLNIX :
36833686 if logger .isEnabledFor (logging .INFO ):
36843687 logger .info ('starting mkvmerge!' )
3688+ logger .info ('input_file: "{}"' .format (input_file ))
36853689 threading .Thread (
36863690 target = self .write_chapters_to_file_thread (input_file )
36873691 )
36883692 else :
36893693 if logger .isEnabledFor (logging .INFO ):
36903694 logger .info ('mkvmerge not found!' )
3691- else :
3692- if logger .isEnabledFor (logging .INFO ):
3693- logger .info ('empty input file provided! Exiting!' )
36943695
36953696 def write_chapters_to_file_thread (self , input_file ):
3696- if not input_file :
3697- return False
3697+ opts = []
3698+ self ._tag_file = input_file [:- 4 ] + '.xml'
3699+ opts = [self .mkvmerge ,
3700+ '--global-tags' , self ._tag_file ,
3701+ ]
36983702 if self .create_chapter_file (input_file ):
3699- opts = [self .mkvmerge ,
3700- '--global-tags' , self ._tag_file ,
3701- ]
37023703 if len (self ._list ) > 1 :
37033704 opts .extend ([
37043705 '--chapters' , self ._chapters_file ,
37053706 ])
3706- t_dir_dir = os .path .dirname (self ._output_file )
3707- for n in (os .path .join (t_dir_dir , 'recording.png' ), \
3708- os .path .join (t_dir_dir , 'pyradio.png' )):
3709- logger .error ('looking for: "{}"' .format (n ))
3710- if os .path .exists (n ):
3711- cover_file = n
3712- break
3713- if cover_file :
3714- opts .extend ([
3715- '--attachment-mime-type' , 'image/png' ,
3716- '--attachment-name' , 'cover' ,
3717- '--attach-file' , cover_file
3718- ])
3707+ t_dir_dir = os .path .dirname (self ._tag_file )
3708+ cover_file = None
3709+ for n in (os .path .join (t_dir_dir , 'user-recording.png' ), \
3710+ os .path .join (t_dir_dir , 'recording.png' )):
3711+ if logger .isEnabledFor (logging .DEBUG ):
3712+ logger .debug ('cover file is: "{}"' .format (n ))
3713+ if os .path .exists (n ):
3714+ cover_file = n
3715+ break
3716+ if cover_file :
37193717 opts .extend ([
3720- '-o' , self ._output_file ,
3721- self ._mkv_file
3718+ '--attachment-mime-type' , 'image/png' ,
3719+ '--attachment-name' , 'cover' ,
3720+ '--attach-file' , cover_file
37223721 ])
3723- if logger .isEnabledFor (logging .DEBUG ):
3724- logger .debug ('merge options = {}' .format (opts ))
3725- p = subprocess .Popen (
3726- opts , shell = False ,
3727- stdout = subprocess .PIPE ,
3728- stdin = subprocess .PIPE ,
3729- stderr = subprocess .PIPE
3730- )
3731- outs , err = p .communicate ()
3732- # logger.error('outs = "{0}", err = "{1}"'.format(outs, err))
3733- if p .returncode == 0 :
3734- if logger .isEnabledFor (logging .INFO ):
3735- logger .info ('MKV merge successful!' )
3736- for n in self ._chapters_file , self ._tag_file , self ._mkv_file :
3737- try :
3738- os .remove (n )
3739- except :
3740- pass
3741- return True
3742- else :
3743- if logger .isEnabledFor (logging .ERROR ):
3744- logger .error ('MKV merge failed!' )
3745- return False
3722+ opts .extend ([
3723+ '-o' , self ._output_file ,
3724+ self ._mkv_file
3725+ ])
3726+ if logger .isEnabledFor (logging .DEBUG ):
3727+ logger .debug ('merge options = {}' .format (opts ))
3728+ p = subprocess .Popen (
3729+ opts , shell = False ,
3730+ stdout = subprocess .PIPE ,
3731+ stdin = subprocess .PIPE ,
3732+ stderr = subprocess .PIPE
3733+ )
3734+ outs , err = p .communicate ()
3735+ # logger.error('outs = "{0}", err = "{1}"'.format(outs, err))
3736+ if p .returncode == 0 :
3737+ if logger .isEnabledFor (logging .INFO ):
3738+ logger .info ('MKV merge successful!' )
3739+ for n in self ._chapters_file , self ._tag_file , self ._mkv_file :
3740+ try :
3741+ os .remove (n )
3742+ except :
3743+ pass
3744+ return True
3745+ else :
3746+ if logger .isEnabledFor (logging .ERROR ):
3747+ logger .error ('MKV merge failed with error:\n {}' .format (err ))
3748+ return False
37463749
37473750 def create_chapter_file (self , input_file ):
37483751 if not input_file :
3752+ if logger .isEnabledFor (logging .ERROR ):
3753+ logger .error ('input file not found!!!' )
37493754 return False
37503755 # logger.error('HAS_MKVTOOLNIX = {}'.format(self.HAS_MKVTOOLNIX))
37513756 # logger.error('input_file = "{}"'.format(input_file))
@@ -3754,7 +3759,6 @@ def create_chapter_file(self, input_file):
37543759 # input_file.endswith('.mkv'):
37553760 self ._mkv_file = input_file
37563761 self ._chapters_file = input_file [:- 4 ] + '-chapters.txt'
3757- self ._tag_file = input_file [:- 4 ] + '.xml'
37583762 self ._output_file = os .path .join (
37593763 self ._output_dir ,
37603764 os .path .basename (self ._mkv_file )
0 commit comments