From 0c7fcd58b7a39a2c66377803e969cff4547b8148 Mon Sep 17 00:00:00 2001 From: dave Date: Mon, 14 Aug 2017 00:15:19 -0700 Subject: [PATCH] Better id3 track parsing --- pysonic/scanner.py | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/pysonic/scanner.py b/pysonic/scanner.py index 3da79d8..8735974 100644 --- a/pysonic/scanner.py +++ b/pysonic/scanner.py @@ -1,4 +1,5 @@ import os +import re import json import logging import mimetypes @@ -10,6 +11,7 @@ from mutagen.id3._util import ID3NoHeaderError logging = logging.getLogger("scanner") +RE_NUMBERS = re.compile(r'^([0-9]+)') class PysonicFilesystemScanner(object): @@ -116,8 +118,8 @@ class PysonicFilesystemScanner(object): id3 = ID3(fpath) # print(id3.pprint()) try: - tags["track"] = int(''.join(id3['TRCK'].text).split("/")[0]) - except KeyError: + tags["track"] = int(RE_NUMBERS.findall(''.join(id3['TRCK'].text))[0]) + except (KeyError, IndexError): pass try: tags["id3_artist"] = ''.join(id3['TPE1'].text)