1
0
mirror of https://github.com/gryf/pygtktalog.git synced 2026-03-26 13:53:30 +01:00

Compare commits

3 Commits

Author SHA1 Message Date
85ab034a36 Added audio tags read support. 2022-09-30 18:23:13 +02:00
4b02641481 Added EXIF tag handling for images. 2022-09-30 18:21:46 +02:00
51e3bfa441 Removed requirements, as we have it in setpu.cfg 2022-09-30 18:16:39 +02:00
4 changed files with 26 additions and 8 deletions

View File

@@ -34,6 +34,7 @@ pycatalog requires python and following libraries:
* `python 3.10`_ and up
* `sqlalchemy 1.4`_
* `exifread`_ for parse EXIF information
* `mutagen`_ for extracting tags from audio files
Pycatalog extensively uses external programs in unix spirit, however there is
small possibility of using it Windows (probably with limitations) and quite big
@@ -88,3 +89,4 @@ file in top-level directory.
.. _sqlalchemy 1.4: http://www.sqlalchemy.org
.. _tagging files: http://en.wikipedia.org/wiki/tag_%28metadata%29
.. _tox: https://testrun.org/tox
.. _mutagen: https://github.com/quodlibet/mutagen

View File

@@ -10,6 +10,9 @@ import re
from datetime import datetime
import mimetypes
import exifread
import mutagen
from pycatalog.dbobjects import File, TYPE
from pycatalog import dbcommon
from pycatalog.logger import get_logger
@@ -212,12 +215,27 @@ class Scan(object):
pass
def _audio(self, fobj, filepath):
# tags, depending on the format?
return
tags = mutagen.File(filepath)
if not tags:
return
fobj.description = tags.pprint()
def _image(self, fobj, filepath):
# exif?
return
"""Read exif if exists, add it to description"""
with open(filepath, 'rb') as obj:
exif = exifread.process_file(obj)
if not exif:
return
data = []
# longest key + 2, since we need a colon and a space after it
longest_key = max([len(k) for k in exif]) + 2
for key in exif:
if 'thumbnail' in key.lower() and isinstance(exif[key], bytes):
data.append(f"{key + ':' :<{longest_key}}thumbnail present")
continue
data.append(f"{key + ':' :<{longest_key}}{exif[key]}")
fobj.description = "\n".join(data)
def _video(self, fobj, filepath):
"""

View File

@@ -1,3 +0,0 @@
Pillow
exifread
sqlalchemy

View File

@@ -34,8 +34,9 @@ packages =
[options]
install_requires =
pillow
exifread
sqlalchemy
mutagen
[bdist_wheel]
universal = 1