Python Forum
Thread Rating:
  • 0 Vote(s) - 0 Average
  • 1
  • 2
  • 3
  • 4
  • 5
moving from tkinter to wxpython
#62
Still something wrong with the code of the last module...
It's like the last bolt that needs to be removed when working on a car...
It's almost always the stubborn one.
I have to sleep for a few hours, and then have to go out for a couple before we get yet another 14 inches of snow (this I believe is our
16th storm this winter).
But this makes it almost all the way through before it explodes (ugly with all debug stuff included)
I'll finish it up after I get back from wally mart
import BiblePaths
import json
import re


class UpdateBibleIndexAudioLinks:
    """
    Scans bpath.KingJamesAudiopath for all audio files, and either updates existing
    IndexedBible links or adds one if missing. (Larz60+)
    """
    def __init__(self):
        self.bpath = BiblePaths.BiblePaths()
        self.debug = True

        with self.bpath.IndexedBible.open() as f:
            self.bible_dict = json.load(f)

        self.audio_xref = {}
        self.audio_parent_paths = []
        self.bible_dict_chapters = []

        self.update_links()

    def get_parents(self):
        # Get parent paths
        parents = [dir.name for dir in self.bpath.KingJamesAudiopath.iterdir() if dir.is_dir()]
        parents.sort()
        if self.debug:
            print(f'parents: {parents}')

        return parents

    def get_books(self):
        # get list of IndexBible chapters
        books = list(self.bible_dict['Old Testament'].keys()) + list(self.bible_dict['New Testament'].keys())
        books.sort()
        if self.debug:
            print(f'books: {books}')

        return books

    def get_audio_xref(self, parents, books):
        audio_xref = dict(zip(parents, books))

        with self.bpath.AudioXref.open('w') as f:
            json.dump(audio_xref, f)

        if self.debug:
            print(f'audio_xref: {audio_xref}')

        return audio_xref

    def get_mp3_list(self, audio_path):
        mp3_list = [file.name for file in audio_path.iterdir() if file.is_file() and file.suffix == '.mp3']
        if self.debug:
            print(f'mp3_list: {mp3_list}')
        self.rename_mp3s(mp3_list, audio_path)
        return mp3_list

    def rename_mp3s(self, mp3_list, audio_path):
        # rename audio files eliminate spaces
        for filename in mp3_list:
            if ' ' in filename:
                new1 = filename.replace(' ', '_')
                new_filename = audio_path / new1
                file_path = audio_path / filename
                file_path.rename(new_filename)

    def get_book_key(self, audio_key, audio_xref):
        bible_key = audio_xref[audio_key]
        if bible_key in self.bible_dict['Old Testament']:
            book_key = self.bible_dict['Old Testament'][bible_key]
        else:
            book_key = self.bible_dict['New Testament'][bible_key]

        if  self.debug:
            print(f'book_key: {book_key}')
        return book_key

    def remove_old_mp3_reference(self, book_key):
        try:
            temp = book_key['mp3']
            if self.debug:
                print(f'temp: {temp}')
            del (book_key['mp3'])
        except KeyError:
            pass

    def get_verse(self, audio_file):
        verse = None
        # looking at this too long may cause insanity
        verse = str(int(re.sub('.*?([0-9]*)$', r'\1', audio_file.split('-')[-1].split('.')[0])))
        if self.debug:
            print(f'verse: {verse}')

        return verse

    def update_links(self):
        """
        Get a list of all sub-directories and their contents fromm root of bpath.KingJamesAudiopath
        :return: updates self.audio_paths_dict
        """
        parent_paths = self.get_parents()
        books = self.get_books()
        audio_xref = self.get_audio_xref(parent_paths, books)

        # For loop gets book info
        for audio_key, bible_key in audio_xref.items():
            print(f'audio_key: {audio_key}')
            audio_path = self.bpath.KingJamesAudiopath / audio_key
            mp3_list = self.get_mp3_list(audio_path)

            book_key = self.get_book_key(audio_key, audio_xref)
            self.remove_old_mp3_reference(book_key)

            for audio_file in mp3_list:
                verse = self.get_verse(audio_file)
                verse_key = book_key[verse]
                mp3_path = self.bpath.KingJamesAudiopath / audio_key / audio_file
                mp3path = f'{mp3_path.resolve()}'
                mp3path = mp3path.replace('\\', '/')
                print(f'mp3path: {mp3path}')
                print(mp3_path.resolve())
                verse_key['mp3path'] = mp3path
                print(f'verse_key: {verse_key}')
        
        # don't remove comments until all is working
        # with self.bpath.IndexedBible.open('w') as f:
        #      json.dump(self.bible_dict, f)

if __name__ == '__main__':
    UpdateBibleIndexAudioLinks()
Reply


Messages In This Thread
moving from tkinter to wxpython - by Barrowman - Feb-18-2018, 11:09 PM
RE: moving from tkinter to wxpython - by Larz60+ - Feb-18-2018, 11:26 PM
RE: moving from tkinter to wxpython - by Barrowman - Feb-19-2018, 05:40 AM
RE: moving from tkinter to wxpython - by Barrowman - Feb-19-2018, 08:21 PM
RE: moving from tkinter to wxpython - by Larz60+ - Feb-19-2018, 09:31 PM
RE: moving from tkinter to wxpython - by Larz60+ - Feb-20-2018, 03:49 AM
RE: moving from tkinter to wxpython - by Larz60+ - Feb-20-2018, 05:51 AM
RE: moving from tkinter to wxpython - by Larz60+ - Feb-20-2018, 01:10 PM
RE: moving from tkinter to wxpython - by Barrowman - Feb-20-2018, 09:20 PM
RE: moving from tkinter to wxpython - by Larz60+ - Feb-20-2018, 11:11 PM
RE: moving from tkinter to wxpython - by Barrowman - Feb-21-2018, 11:25 PM
RE: moving from tkinter to wxpython - by Larz60+ - Feb-22-2018, 02:37 AM
RE: moving from tkinter to wxpython - by Larz60+ - Feb-22-2018, 02:48 AM
RE: moving from tkinter to wxpython - by Barrowman - Feb-22-2018, 12:06 PM
RE: moving from tkinter to wxpython - by Larz60+ - Feb-22-2018, 12:22 PM
RE: moving from tkinter to wxpython - by Barrowman - Feb-22-2018, 05:51 PM
RE: moving from tkinter to wxpython - by Larz60+ - Feb-22-2018, 06:51 PM
RE: moving from tkinter to wxpython - by Barrowman - Feb-23-2018, 12:05 AM
RE: moving from tkinter to wxpython - by Larz60+ - Feb-23-2018, 02:29 AM
RE: moving from tkinter to wxpython - by Barrowman - Feb-26-2018, 07:04 PM
RE: moving from tkinter to wxpython - by Larz60+ - Feb-26-2018, 08:45 PM
RE: moving from tkinter to wxpython - by Barrowman - Feb-27-2018, 07:54 PM
RE: moving from tkinter to wxpython - by Larz60+ - Feb-27-2018, 10:47 PM
RE: moving from tkinter to wxpython - by Larz60+ - Feb-27-2018, 11:15 PM
RE: moving from tkinter to wxpython - by Barrowman - Feb-28-2018, 09:15 AM
RE: moving from tkinter to wxpython - by Larz60+ - Feb-28-2018, 10:52 AM
RE: moving from tkinter to wxpython - by Larz60+ - Feb-28-2018, 01:10 PM
RE: moving from tkinter to wxpython - by Barrowman - Feb-28-2018, 02:56 PM
RE: moving from tkinter to wxpython - by Larz60+ - Feb-28-2018, 05:19 PM
RE: moving from tkinter to wxpython - by Larz60+ - Mar-01-2018, 02:23 AM
RE: moving from tkinter to wxpython - by Barrowman - Mar-01-2018, 01:17 PM
RE: moving from tkinter to wxpython - by Barrowman - Mar-03-2018, 10:49 PM
RE: moving from tkinter to wxpython - by Larz60+ - Mar-04-2018, 12:47 AM
RE: moving from tkinter to wxpython - by Larz60+ - Mar-04-2018, 01:07 AM
RE: moving from tkinter to wxpython - by Barrowman - Mar-04-2018, 07:47 AM
RE: moving from tkinter to wxpython - by Larz60+ - Mar-04-2018, 01:34 AM
RE: moving from tkinter to wxpython - by Barrowman - Mar-04-2018, 03:36 PM
RE: moving from tkinter to wxpython - by Larz60+ - Mar-04-2018, 10:47 AM
RE: moving from tkinter to wxpython - by Barrowman - Mar-04-2018, 01:41 PM
RE: moving from tkinter to wxpython - by Larz60+ - Mar-04-2018, 04:13 PM
RE: moving from tkinter to wxpython - by Barrowman - Mar-04-2018, 05:23 PM
RE: moving from tkinter to wxpython - by Larz60+ - Mar-04-2018, 06:19 PM
RE: moving from tkinter to wxpython - by Barrowman - Mar-06-2018, 10:01 PM
RE: moving from tkinter to wxpython - by Larz60+ - Mar-07-2018, 04:01 AM
RE: moving from tkinter to wxpython - by Barrowman - Mar-08-2018, 01:32 PM
RE: moving from tkinter to wxpython - by Larz60+ - Mar-07-2018, 10:18 PM
RE: moving from tkinter to wxpython - by Barrowman - Mar-08-2018, 11:06 AM
RE: moving from tkinter to wxpython - by Larz60+ - Mar-08-2018, 01:16 PM
RE: moving from tkinter to wxpython - by Larz60+ - Mar-08-2018, 05:50 PM
RE: moving from tkinter to wxpython - by Barrowman - Mar-08-2018, 06:10 PM
RE: moving from tkinter to wxpython - by Larz60+ - Mar-09-2018, 02:36 AM
RE: moving from tkinter to wxpython - by Larz60+ - Mar-09-2018, 02:49 AM
RE: moving from tkinter to wxpython - by Barrowman - Mar-09-2018, 09:03 AM
RE: moving from tkinter to wxpython - by Larz60+ - Mar-09-2018, 05:16 PM
RE: moving from tkinter to wxpython - by Barrowman - Mar-09-2018, 06:08 PM
RE: moving from tkinter to wxpython - by Larz60+ - Mar-09-2018, 06:33 PM
RE: moving from tkinter to wxpython - by Larz60+ - Mar-10-2018, 04:52 AM
RE: moving from tkinter to wxpython - by Larz60+ - Mar-10-2018, 08:45 PM
RE: moving from tkinter to wxpython - by Larz60+ - Mar-10-2018, 08:55 PM
RE: moving from tkinter to wxpython - by Larz60+ - Mar-11-2018, 06:20 AM
RE: moving from tkinter to wxpython - by Larz60+ - Mar-11-2018, 09:21 PM
RE: moving from tkinter to wxpython - by Larz60+ - Mar-12-2018, 01:44 PM
RE: moving from tkinter to wxpython - by Larz60+ - Mar-12-2018, 03:39 PM
RE: moving from tkinter to wxpython - by Larz60+ - Mar-13-2018, 04:33 AM
RE: moving from tkinter to wxpython - by Barrowman - Mar-13-2018, 10:12 AM
RE: moving from tkinter to wxpython - by Larz60+ - Mar-13-2018, 05:58 AM
RE: moving from tkinter to wxpython - by Larz60+ - Mar-13-2018, 02:29 PM
RE: moving from tkinter to wxpython - by Larz60+ - Mar-13-2018, 11:17 PM
RE: moving from tkinter to wxpython - by Barrowman - Mar-14-2018, 09:02 AM
RE: moving from tkinter to wxpython - by Larz60+ - Mar-14-2018, 12:01 PM
RE: moving from tkinter to wxpython - by Barrowman - Mar-14-2018, 08:52 PM
RE: moving from tkinter to wxpython - by Larz60+ - Mar-14-2018, 10:00 PM
RE: moving from tkinter to wxpython - by Larz60+ - Mar-15-2018, 02:13 PM
RE: moving from tkinter to wxpython - by Larz60+ - Mar-16-2018, 01:04 AM
RE: moving from tkinter to wxpython - by Barrowman - Mar-16-2018, 09:36 PM
RE: moving from tkinter to wxpython - by Larz60+ - Mar-16-2018, 10:16 PM
RE: moving from tkinter to wxpython - by Larz60+ - Mar-17-2018, 07:19 AM
RE: moving from tkinter to wxpython - by Larz60+ - Mar-19-2018, 03:13 AM
RE: moving from tkinter to wxpython - by Larz60+ - Mar-20-2018, 08:45 PM
RE: moving from tkinter to wxpython - by Barrowman - Mar-20-2018, 10:47 PM
RE: moving from tkinter to wxpython - by Larz60+ - Mar-21-2018, 12:27 AM
RE: moving from tkinter to wxpython - by Larz60+ - Mar-21-2018, 03:42 AM
RE: moving from tkinter to wxpython - by Larz60+ - Mar-21-2018, 05:37 PM
RE: moving from tkinter to wxpython - by Larz60+ - Mar-23-2018, 10:58 AM
RE: moving from tkinter to wxpython - by Barrowman - Mar-23-2018, 04:49 PM
RE: moving from tkinter to wxpython - by Larz60+ - Mar-23-2018, 06:14 PM
RE: moving from tkinter to wxpython - by Barrowman - Mar-23-2018, 08:15 PM
RE: moving from tkinter to wxpython - by Larz60+ - Mar-23-2018, 09:43 PM
RE: moving from tkinter to wxpython - by Larz60+ - Mar-24-2018, 10:10 AM
RE: moving from tkinter to wxpython - by Barrowman - Mar-24-2018, 05:11 PM
RE: moving from tkinter to wxpython - by Larz60+ - Mar-24-2018, 06:30 PM
RE: moving from tkinter to wxpython - by Barrowman - Mar-24-2018, 08:28 PM
RE: moving from tkinter to wxpython - by Larz60+ - Mar-24-2018, 08:58 PM
RE: moving from tkinter to wxpython - by Barrowman - Mar-24-2018, 09:41 PM
RE: moving from tkinter to wxpython - by Larz60+ - Mar-25-2018, 12:39 AM

Forum Jump:

User Panel Messages

Announcements
Announcement #1 8/1/2020
Announcement #2 8/2/2020
Announcement #3 8/6/2020