70 lines
2.3 KiB
Python
70 lines
2.3 KiB
Python
|
import os
|
||
|
import re
|
||
|
|
||
|
def extract():
|
||
|
result = {}
|
||
|
|
||
|
working_dir = os.path.dirname(os.path.realpath(__file__))
|
||
|
rpp_filename = os.path.join(working_dir, '..', r'project.rpp')
|
||
|
|
||
|
with open(rpp_filename, mode='r', encoding='utf-8') as rpp_file:
|
||
|
rpp_content = rpp_file.readlines()
|
||
|
|
||
|
for rpp_content_line in rpp_content:
|
||
|
pattern = r'^.*<S&M_RGN_PLAYLIST(.*)$'
|
||
|
if re.match(pattern, rpp_content_line):
|
||
|
|
||
|
playlist_name = re.findall(pattern, rpp_content_line)
|
||
|
if playlist_name:
|
||
|
playlist_name = playlist_name[0].strip()
|
||
|
|
||
|
pattern = r'^(.*) 1$'
|
||
|
if re.match(pattern, playlist_name):
|
||
|
playlist_name = re.findall(pattern, playlist_name)
|
||
|
playlist_name = playlist_name[0]
|
||
|
|
||
|
playlist_name = playlist_name.replace('"', '')
|
||
|
|
||
|
result[playlist_name] = []
|
||
|
|
||
|
for playlist_name in result:
|
||
|
|
||
|
is_playlist = False
|
||
|
|
||
|
for rpp_content_line in rpp_content:
|
||
|
pattern = r'^.*>.*$'
|
||
|
if re.match(pattern, rpp_content_line):
|
||
|
is_playlist = False
|
||
|
|
||
|
if is_playlist:
|
||
|
playlist_item = rpp_content_line.strip()
|
||
|
playlist_item = playlist_item[:-2]
|
||
|
playlist_item = playlist_item[8:]
|
||
|
playlist_item = int(playlist_item) - 24
|
||
|
|
||
|
for rpp_content_line2 in rpp_content:
|
||
|
pattern = r'^.*MARKER ' + str(playlist_item) + ' .*".+".*{.*}.*$' # Ouch
|
||
|
if re.match(pattern, rpp_content_line2):
|
||
|
item = rpp_content_line2.strip()
|
||
|
item = item.split('"')[1]
|
||
|
result[playlist_name].append(item)
|
||
|
|
||
|
pattern = r'^.*' + playlist_name + '.*$'
|
||
|
if re.match(pattern, rpp_content_line):
|
||
|
is_playlist = True
|
||
|
|
||
|
save2csv(result)
|
||
|
|
||
|
def save2csv(result):
|
||
|
for playlist in result:
|
||
|
|
||
|
working_dir = os.path.dirname(os.path.realpath(__file__))
|
||
|
playlist_file_name = os.path.join(working_dir, playlist + '.csv')
|
||
|
|
||
|
with open(playlist_file_name, mode='w', encoding="iso-8859-1") as playlist_file:
|
||
|
for item in result[playlist]:
|
||
|
playlist_file.write(item + '\n')
|
||
|
|
||
|
if __name__ == '__main__':
|
||
|
extract()
|