Last active
September 4, 2022 19:22
-
-
Save TylerLeite/a9dad4adc53f12b8f721 to your computer and use it in GitHub Desktop.
.cod to .dec file converter
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
from os import remove | |
from uuid import uuid4 | |
def get_xml_tag(line): | |
tag = line = line.strip(' ').strip('<') | |
tag = tag.split(' ')[0] | |
if '>' in tag: | |
tag = tag.split('>')[0] | |
return tag | |
def open_cod(filename): | |
deckname = '' | |
current_board = 'main' | |
main_board_ct = list() | |
main_board_names = list() | |
side_board_ct = list() | |
side_board_names = list() | |
main_board = dict() | |
side_board = dict() | |
with open(filename) as text: | |
for line in text: | |
tag = get_xml_tag(line) | |
if tag == 'deckname': | |
#fix this later | |
deckname = line.split(">") | |
deckname = deckname[1] | |
deckname = deckname.split("<") | |
deckname = deckname[0] | |
elif tag == 'zone' and 'main' in line: | |
current_board = 'main' | |
elif tag == 'zone' and 'side' in line: | |
current_board = 'side' | |
line = line.split('=') | |
elif tag == 'card': | |
line = line.strip(' ') | |
line_parts = line.split('number="') | |
number = line_parts[1].split('"')[0] | |
line_parts = line.split('name="') | |
name = line_parts[1].split('"')[0] | |
if current_board == 'main': | |
main_board_ct.append(number) | |
main_board_names.append(name) | |
else: | |
side_board_ct.append(number) | |
side_board_names.append(name) | |
main_board = zip(main_board_ct, main_board_names) | |
side_board = zip(side_board_ct, side_board_names) | |
return deckname, main_board, side_board | |
def write_dec(deckname, main_board, side_board): | |
out = '' | |
if not deckname: | |
deckname = 'Untitled_Deck_' + uuid4().hex | |
for ct, name in main_board: | |
out += ct + ' ' + name + '\n' | |
for ct, name in side_board: | |
out += 'SB: ' + ct + ' ' + name + '\n' | |
f = open(deckname + '.dec', 'w') | |
f.write(out) | |
f.close() | |
def main(): | |
cod_name = input('Please enter the name of the file to convert (include .cod extension): ') | |
while cod_name.split('.')[-1] != 'cod': | |
cod_name = input('Incorrect filetype. Please enter the name of a .cod file: ') | |
deckname, main_board, side_board = open_cod(cod_name) | |
write_dec(deckname, main_board, side_board) | |
main() |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
How do i use it to covert files