Update code

This commit is contained in:
2024-05-15 23:15:24 +08:00
parent df84f07bce
commit 4f133e976d
6 changed files with 278 additions and 30 deletions

View File

@@ -1,9 +1,10 @@
from argparse import ArgumentParser
from os.path import join
from . import _
from .audio import generate_audio_report
from .audio import prepare_audio_map, generate_audio_report
from .cache import IdRelativeCache
from .config import Config
from .db import PlaybackReportingDb, LibraryDb
from .db import PlaybackReportingDb, LibraryDb, JellyfinDb
p = ArgumentParser(prog="jellyfinstats")
@@ -13,9 +14,20 @@ p.add_argument("--library-db", help=_("The path to library.db"))
p.add_argument("--jellyfin-data-dir", help=_("The path to jellyfin data directory.")) # noqa: E501
p.add_argument("--output-dir", help=_("The directory for output files."))
p.add_argument("--ask-page-size", help=_("Specify maximum items to display in one page."), type=int) # noqa: E501
p.add_argument("--jellyfin-db", help=_("The path to jellyfin.db"))
arg = p.parse_intermixed_args()
cfg = Config(arg.config, arg)
with PlaybackReportingDb(cfg.playback_reporting_db) as pdb:
with LibraryDb(cfg.library_db) as ldb:
with IdRelativeCache(cfg.output_dir) as icache:
generate_audio_report(pdb, ldb, icache, cfg)
with JellyfinDb(cfg.jellyfin_db) as jdb:
re = prepare_audio_map(pdb, ldb, icache, cfg)
users = pdb.get_users('Audio')
for u in users:
userid = u['UserId']
user = jdb.get_user(userid)
username = user['Username'] if user else userid
output = join(cfg.output_dir, 'audio', username)
maxDate = u['MaxDate']
minDate = u['MinDate']
generate_audio_report(pdb, re[0], re[1], output, userid)