msg = 'Starting xml update in '.format(updatexmlwatched)
Debug(msg)
pchtrakt.logger.info(msg)
if pchtrakt.isMovie:
xmlpath = updatexmlwatched + "Other*.xml"
for name in glob.glob(xmlpath):
if myMedia.oStatus.fileName[:-4] in open(name).read():#gets xml file name as name
tree = ElementTree.parse(name)
for movie in tree.findall('movies/movie'):
if movie.find('baseFilenameBase').text == myMedia.oStatus.fileName[:-4]:#for content in penContents:
movie.find('watched').text = 'true'
for mfile in movie.findall('files/file'):
mfile.set('watched', 'true')
bak_name = name[:-4]+'.bak'
tree.write(bak_name)
os.rename(bak_name, name)
txt = name.replace(updatexmlwatched, '') + ' has been modified as watched for ' + myMedia.oStatus.fileName
Debug(txt)
pchtrakt.logger.info(txt)
break
elif pchtrakt.isTvShow:
a = re.split("([-|.]*[Ss]\\d\\d[Ee]\\d\\d.)", myMedia.oStatus.fileName)
ep_name = a[2][:-4].replace(".", " ").replace("- ", "")
season_xml = a[0][:-3].replace(".", " ").replace(" - ", "")
f_size = str(os.path.getsize(myMedia.oStatus.fullPath))
ep_no = '01'
fileinfo = updatexmlwatched + "Set_" + season_xml + "*.xml"
for name in glob.glob(fileinfo):
if myMedia.oStatus.fileName in open(name).read():
tree = ElementTree.parse(name)
for movie in tree.findall('*/movie/files/file'):
if movie.get('firstPart') == str(myMedia.parsedInfo.episode_numbers[myMedia.idxEpisode]) and movie.get('season') == str(myMedia.parsedInfo.season_number):
movie.set('watched', 'true')
bak_name = name[:-4]+'.bak'
tree.write(bak_name)
os.rename(bak_name, name)
txt = name.replace(updatexmlwatched, '') + ' has been modified as watched for ' + myMedia.oStatus.fileName
Debug(txt)
pchtrakt.logger.info(txt)
break
fileinfo = updatexmlwatched + "Other*.xml"
for name in glob.glob(fileinfo):
if myMedia.oStatus.fileName in open(name).read():
tree = ElementTree.parse(name)
for movie in tree.findall('*/movie/files/file'):
if movie.get('size') == f_size and movie.get('firstPart') == str(myMedia.parsedInfo.episode_numbers[myMedia.idxEpisode]) and movie.get('season') == str(myMedia.parsedInfo.season_number):
movie.set('watched', 'true')
bak_name = name[:-4]+'.bak'
tree.write(bak_name)
os.rename(bak_name, name)
txt = name.replace(updatexmlwatched, '') + ' has been modified as watched for ' + myMedia.oStatus.fileName
Debug(txt)
pchtrakt.logger.info(txt)
break
這是我已經結束了。它確實有效,但如果xml位於網絡共享上,有時會導致媒體播放口吃。我相信它正在發生,而它正在搜索包含該變量的XML。作爲低功耗媒體播放器的運行方式,是否存在系統飢餓的方式?
感謝
謝謝,這確實改變了所有的真實,set命令很好找。我嘗試只替換通過添加如果unicode(movie.find('baseFilenamebase').text)== myMedia.oStatus.fileName [: - 4]添加所需的觀看文件:在樹中的第一個電影之後,但這樣做不工作:(我已經試過這個,但沒有工作。 – jhmiller
樹= ElementTree.parse(名稱)電影樹 \t \t \t \t \t \t一些變化。的findall( '電影/電影'): \t \t \t \t \t \t \t penContents = movie.getchildren() \t \t \t \t \t \t \t內容在penContents: \t \t \t \t \t \t \t \t如果content.text == myMedia.oStatus.fileName [: - 4]: \t \t \t \t。\t \t \t \t movie.find( '觀看')文本= '真' \t \t \t \t \t \t \t \t \t在movie.findall M文件( '文件/文件'): \t \t \t \t \t \t \t \t \t \t mfile.set( '觀看', '真') \t \t \t \t \t \t \t \t \t \t bak_name =名[: - 4] + 'BAK' \t \t \t \t \t \t \t \t \t \t tree.write(bak_name) \t \t \t \t \t \t \t \t \t \t os.rename (bak_name,名稱) – jhmiller