75 lines
1.8 KiB
Python
Executable File
75 lines
1.8 KiB
Python
Executable File
#!/usr/bin/env python
|
|
# -*- coding: UTF-8 -*-
|
|
#----------------------
|
|
|
|
import os
|
|
import sys
|
|
try:
|
|
from MythTV import MythVideo, VideoGrabber, MythLog
|
|
except:
|
|
print 'ERROR: The python bindings are not installed'
|
|
sys.exit(-1)
|
|
|
|
LOG = MythLog('MythVideo Scanner', lstr='general')
|
|
mvid = MythVideo()
|
|
|
|
def format_name(vid):
|
|
# returns a string in the format 'TITLE[ - SEASONxEPISODE][ - SUBTITLE]'
|
|
s = vid.title
|
|
if vid.season:
|
|
s += ' - %dx%02d' % (vid.season, vid.episode)
|
|
if vid.subtitle:
|
|
s += ' - '+vid.subtitle
|
|
return s
|
|
|
|
# Load TV Grabber
|
|
try:
|
|
TVgrab = VideoGrabber('TV', db=mvid)
|
|
except:
|
|
print 'ERROR: Cannot find MythVideo TV grabber'
|
|
sys.exit(-1)
|
|
|
|
# Load Movie Grabber
|
|
try:
|
|
Mgrab = VideoGrabber('Movie', db=mvid)
|
|
except:
|
|
print 'ERROR: Cannot find MythVideo Movie grabber'
|
|
sys.exit(-1)
|
|
|
|
# pull new/old content list
|
|
LOG(LOG.GENERAL, 'Performing scan...')
|
|
toadd, todel = mvid.scanStorageGroups(False)
|
|
|
|
# print list of content to be deleted
|
|
if len(todel) > 0:
|
|
print '--- Deleting Old Videos ---'
|
|
print len(todel),' found'
|
|
for vid in todel:
|
|
print ' '+format_name(vid)
|
|
vid.delete()
|
|
|
|
# loop through content to add
|
|
if len(toadd) > 0:
|
|
print '--- Adding New Videos ---'
|
|
print len(toadd),' found'
|
|
for vid in toadd:
|
|
print ' '+format_name(vid),
|
|
|
|
if vid.subtitle:
|
|
matches = TVgrab.sortedSearch(vid.title, vid.subtitle)
|
|
else:
|
|
matches = Mgrab.sortedSearch(vid.title)
|
|
|
|
if len(matches) == 0:
|
|
print '... no matches, skipped.'
|
|
continue
|
|
elif len(matches) > 1:
|
|
if matches[0].levenshtein > 0:
|
|
print '... multiple matches, skipped.'
|
|
continue
|
|
|
|
vid.create()
|
|
vid.importMetadata(matches[0])
|
|
print '... successful.'
|
|
|