Browse Source

cleaned up code

Karl Hudgell 5 months ago
parent
commit
4e575a1f4a
2 changed files with 38 additions and 29 deletions
  1. 0 0
      feed.xml
  2. 38 29
      generator.py

File diff suppressed because it is too large
+ 0 - 0
feed.xml


+ 38 - 29
generator.py

@@ -1,22 +1,27 @@
 import os
 import time
 from pod2gen import Podcast, Episode, Media, Person
-from mutagen import mp3, mp4
+from mutagen import mp4
 from datetime import timedelta, datetime as dt
 from dateutil.tz import UTC
-from stat import S_ISREG, ST_CTIME, ST_MODE
 
 
-def get_mp3_metadata(file_path, filename):
+def get_mp4_metadata(file_path:str, filename:str) -> (timedelta, str):
+    """Extract MP4 metadata from a file.
+
+    Args:
+        file_path (_type_): File path to the MP4 file.
+        str (_type_): Name of the MP4 file.
+
+    Returns:
+        _type_: Timedelta and description of the MP4 file.
+    """    
     track_seconds = round(mp4.MP4(file_path).info.length)
     time_split = time.strftime("%H:%M:%S", time.gmtime(track_seconds)).split(":")
     try:
-        description = mp4.MP4(file_path).tags["COMM::eng"].text[0]
+        description = mp4.MP4(file_path).tags["\xa9cmt"][0]
     except KeyError:
-        try:
-            description = mp4.MP4(file_path).tags["\xa9cmt"][0]
-        except KeyError:
-            description = filename.replace("_", " ")
+        description = filename.replace("_", " ")
     return (
         timedelta(
             hours=int(time_split[0]),
@@ -26,34 +31,38 @@ def get_mp3_metadata(file_path, filename):
         description,
     )
 
-def add_episodes_from_folder(folder_path):
+
+def add_episodes_from_folder(folder_path:str) -> None:
+    """Loop over all files in a folder and add them to the Podcast.
+
+    Args:
+        folder_path (str): Folder to loop over.
+    """    
     file_list = os.listdir(folder_path)
-    list_of_episodes = [ x for x in file_list if "m4b" in x ]
+    list_of_episodes = [x for x in file_list if "m4b" in x]
     # file_list.pop(0)
     for file in list_of_episodes:
         filename = file[:-4]
         ep_details = filename.split(" ")
         file_size = os.stat(f"./{folder_path}/{file}").st_size
-        file_length, description = get_mp3_metadata(f"./{folder_path}/{file}", filename)
-        try:
-            p.add_episode(
-                Episode(
-                    title=mp4.MP4(f"./{folder_path}/{file}").tags["\xa9nam"][0],
-                    media=Media(
-                        f"https://kithub.k-world.me.uk/Karl/KFMPod/raw/master/{folder_path}/{file}",
-                        size=file_size,
-                        type='mp3'
-                    ),
-                    summary=description,
-                    season=[int(i) for i in folder_path.split() if i.isdigit()][0],
-                    episode_number=int(ep_details[1][-0]),
-                    publication_date=dt.fromtimestamp(
-                        os.stat(f"./{folder_path}/{file}").st_ctime, tz=UTC
-                    ),
-                )
+        file_length, description = get_mp4_metadata(f"./{folder_path}/{file}", filename)
+        p.add_episode(
+            Episode(
+                title=mp4.MP4(f"./{folder_path}/{file}").tags["\xa9nam"][0],
+                media=Media(
+                    f"https://kithub.k-world.me.uk/Karl/KFMPod/raw/master/{folder_path}/{file}",
+                    size=file_size,
+                    type="mp3",
+                ),
+                summary=description,
+                season=[int(i) for i in folder_path.split() if i.isdigit()][0],
+                episode_number=int(ep_details[1][-0]),
+                publication_date=dt.fromtimestamp(
+                    os.stat(f"./{folder_path}/{file}").st_ctime, tz=UTC
+                ),
             )
-        except Exception:
-            pass
+        )
+
 
 owner = Person("Example", "email@example.com")
 # Create the Podcast

Some files were not shown because too many files changed in this diff