Skip to content

Commit fde3c03

Browse files
committed
Fix thumbnail import
1 parent 0870e6e commit fde3c03

File tree

1 file changed

+13
-9
lines changed

1 file changed

+13
-9
lines changed

JWLManager.py

+13-9
Original file line numberDiff line numberDiff line change
@@ -2133,7 +2133,7 @@ def process_tags(note_id, tags):
21332133
count = update_db(df)
21342134
return count
21352135

2136-
def import_playlist(playlist_name):
2136+
def import_playlist(playlist_name):
21372137

21382138
def update_db(playlist_name):
21392139

@@ -2146,11 +2146,10 @@ def existing_media():
21462146
hashes[im_h] = im_fp
21472147
return con.execute('SELECT IndependentMediaId FROM IndependentMedia WHERE Hash = ?;', (im_h,)).fetchone()[0]
21482148

2149-
def add_media():
2150-
nonlocal im_fp
2149+
def add_media(im_imi, im_of, im_fp, im_mt, im_h, thumbs = False):
21512150
tmp = im_fp
21522151
ext = 0
2153-
while os.path.isfile(os.path.join(TMP_PATH, im_fp)):
2152+
while not thumbs and os.path.isfile(os.path.join(TMP_PATH, im_fp)):
21542153
ext += 1
21552154
im_fp = f'{tmp}_{ext}'
21562155
shutil.copy2(os.path.join(playlist_path, tmp), os.path.join(TMP_PATH, im_fp))
@@ -2166,6 +2165,11 @@ def add_media():
21662165
im_imi = con.execute('INSERT INTO IndependentMedia (OriginalFileName, FilePath, MimeType, Hash) VALUES (?, ?, ?, ?);', (im_of, im_fp, im_mt, im_h)).lastrowid
21672166
return im_imi
21682167

2168+
def add_thumbnails(original_pii, pi_pii):
2169+
for row in impcon.execute('SELECT p.DurationTicks, i.IndependentMediaId, i.OriginalFilename, i.FilePath, i.MimeType, i.Hash FROM PlaylistItemIndependentMediaMap p LEFT JOIN IndependentMedia i USING (IndependentMediaId) WHERE p.PlaylistItemId = ?;', (original_pii,)).fetchall():
2170+
im_imi = add_media(*row[1:], thumbs = True)
2171+
con.execute('INSERT INTO PlaylistItemIndependentMediaMap (PlaylistItemId, IndependentMediaId, DurationTicks) VALUES (?, ?, ?) ON CONFLICT(PlaylistItemId, IndependentMediaId) DO UPDATE SET DurationTicks = excluded.DurationTicks;', (pi_pii, im_imi, row[0]))
2172+
21692173
def add_item():
21702174
con.execute('INSERT OR IGNORE INTO PlaylistItemAccuracy (Description) VALUES (?);', (pia_d,))
21712175
pia_piai = con.execute('SELECT PlaylistItemAccuracyId FROM PlaylistItemAccuracy WHERE Description = ?;', (pia_d,)).fetchone()[0]
@@ -2178,8 +2182,6 @@ def add_item():
21782182
con.execute('INSERT INTO PlaylistItem (PlaylistItemId, Label, StartTrimOffsetTicks, EndTrimOffsetTicks, Accuracy, EndAction, ThumbnailFilePath) VALUES (?, ?, ?, ?, ?, ?, ?);', (pi_pii, pi_l, pi_stot, pi_etot, pia_piai, pi_ea, im_fp))
21792183
else:
21802184
pi_pii = con.execute('INSERT INTO PlaylistItem (Label, StartTrimOffsetTicks, EndTrimOffsetTicks, Accuracy, EndAction, ThumbnailFilePath) VALUES (?, ?, ?, ?, ?, ?);', (pi_l, pi_stot, pi_etot, pia_piai, pi_ea, im_fp)).lastrowid
2181-
if piimm_dt:
2182-
con.execute('INSERT INTO PlaylistItemIndependentMediaMap (PlaylistItemId, IndependentMediaId, DurationTicks) VALUES (?, ?, ?) ON CONFLICT(PlaylistItemId, IndependentMediaId) DO UPDATE SET DurationTicks = excluded.DurationTicks;', (pi_pii, im_imi, piimm_dt))
21832185
return pi_pii
21842186

21852187
def add_tag():
@@ -2244,19 +2246,21 @@ def add_locations():
22442246
tags = {}
22452247
for row in con.execute('SELECT TagId, Name FROM TagMap LEFT JOIN Tag USING (TagId) WHERE TYPE = 2 GROUP BY TagId;').fetchall():
22462248
tags[row[1]] = row[0]
2247-
sql = 'SELECT * FROM PlaylistItem p LEFT JOIN PlaylistItemLocationMap USING (PlaylistItemId) LEFT JOIN Location USING (LocationId) LEFT JOIN PlaylistItemIndependentMediaMap USING (PlaylistItemId) LEFT JOIN PlaylistItemAccuracy a ON p.Accuracy = a.PlaylistItemAccuracyId LEFT JOIN TagMap USING (PlaylistItemId) LEFT JOIN Tag USING (TagId) JOIN IndependentMedia i ON i.FilePath = p.ThumbnailFilePath LEFT JOIN PlaylistItemMarker USING (PlaylistItemId) LEFT JOIN PlaylistItemMarkerBibleVerseMap USING (PlaylistItemMarkerId) LEFT JOIN PlaylistItemMarkerParagraphMap USING (PlaylistItemMarkerId)'
2249+
sql = 'SELECT * FROM PlaylistItem p LEFT JOIN PlaylistItemLocationMap USING (PlaylistItemId) LEFT JOIN Location USING (LocationId) LEFT JOIN PlaylistItemAccuracy a ON p.Accuracy = a.PlaylistItemAccuracyId LEFT JOIN TagMap USING (PlaylistItemId) LEFT JOIN Tag USING (TagId) JOIN IndependentMedia i ON i.FilePath = p.ThumbnailFilePath LEFT JOIN PlaylistItemMarker USING (PlaylistItemId) LEFT JOIN PlaylistItemMarkerBibleVerseMap USING (PlaylistItemMarkerId) LEFT JOIN PlaylistItemMarkerParagraphMap USING (PlaylistItemMarkerId)'
22482250
count = 0
22492251
for row in impcon.execute(sql).fetchall():
2250-
pi_pii, pi_l, pi_stot, pi_etot, _, pi_ea, _, pilm_li, pilm_mmt, pilm_bdt, l_bn, l_cn, l_di, l_tr, l_itn, l_ks, l_ml, l_tp, l_t, _, piimm_dt, _, pia_d, _, _, _, _, _, _, t_n, im_imi, im_of, im_fp, im_mt, im_h, _, pim_l, pim_stt, pim_dt, pim_etdt, pimbvm_vi, pimpm_mdi, pimpm_pi, pimpm_miwp = row
2252+
pi_pii, pi_l, pi_stot, pi_etot, _, pi_ea, _, pilm_li, pilm_mmt, pilm_bdt, l_bn, l_cn, l_di, l_tr, l_itn, l_ks, l_ml, l_tp, l_t, _, pia_d, _, _, _, _, _, _, t_n, im_imi, im_of, im_fp, im_mt, im_h, _, pim_l, pim_stt, pim_dt, pim_etdt, pimbvm_vi, pimpm_mdi, pimpm_pi, pimpm_miwp = row
22512253
playlist = playlist_name if playlist_name else t_n
22522254
if con.execute('SELECT * FROM PlaylistItem pi LEFT JOIN IndependentMedia im ON (pi.ThumbnailFilePath = im.FilePath) LEFT JOIN TagMap USING (PlaylistItemId) LEFT JOIN Tag USING (TagId) WHERE Name = ? AND Hash = ?;', (playlist, im_h)).fetchone():
22532255
continue
22542256
count += 1
22552257
if im_h in hashes:
22562258
im_imi = existing_media()
22572259
else:
2258-
im_imi = add_media()
2260+
im_imi = add_media(im_imi, im_of, im_fp, im_mt, im_h)
2261+
original_pii = pi_pii
22592262
pi_pii = add_item()
2263+
add_thumbnails(original_pii, pi_pii)
22602264
add_markers()
22612265
add_tag()
22622266
add_locations()

0 commit comments

Comments
 (0)