From a01b08558ebbe935b51d28c98ff6e0add3ed6458 Mon Sep 17 00:00:00 2001 From: tritoch Date: Thu, 1 Jun 2017 20:12:44 -0500 Subject: [PATCH] Pretty spoiler.xml --- main.py | 8 ++++---- spoilers.py | 17 +++++++---------- 2 files changed, 11 insertions(+), 14 deletions(-) diff --git a/main.py b/main.py index cc9b6a51..c0d8abf3 100644 --- a/main.py +++ b/main.py @@ -65,9 +65,9 @@ def save_errorlog(errorlog): with open('out/errors.json', 'w') as outfile: json.dump(errorlog, outfile, sort_keys=True, indent=2, separators=(',', ': ')) -def copy_to_spoiler(setcode): - if os.path.isfile('out/' + setcode + '.xml'): - shutil.copy('out/' + setcode + '.xml','out/spoiler.xml') +def save_xml(xmlstring, outfile): + with open(outfile,'w+') as xmlfile: + xmlfile.write(xmlstring) if __name__ == '__main__': AllSets = spoilers.get_allsets() #get AllSets from mtgjson @@ -82,6 +82,7 @@ if __name__ == '__main__': [mtgs, errors] = spoilers.errorcheck(mtgs) #check for errors where possible errorlog += errors spoilers.write_xml(mtgs, setinfos['setname'], setinfos['setlongname'], setinfos['setreleasedate']) + save_xml(spoilers.pretty_xml(setinfos['setname']), 'out/spoiler.xml') mtgs = spoilers.add_headers(mtgs, setinfos) AllSets = spoilers.make_allsets(AllSets, mtgs, setinfos['setname']) if 'masterpieces' in setinfos: #repeat all of the above for masterpieces @@ -97,4 +98,3 @@ if __name__ == '__main__': save_errorlog(errorlog) save_allsets(AllSets) save_setjson(mtgs) - copy_to_spoiler(setinfos['setname']) diff --git a/spoilers.py b/spoilers.py index 635cdd45..3e29b12e 100644 --- a/spoilers.py +++ b/spoilers.py @@ -6,12 +6,12 @@ import sys import os import shutil import time -from lxml import html -from lxml import etree +from lxml import html, etree from PIL import Image import datetime import urllib import json +import xml.dom.minidom def scrape_mtgs(url): return requests.get(url, headers={'Cache-Control':'no-cache', 'Pragma':'no-cache', 'Expires': 'Thu, 01 Jan 1970 00:00:00 GMT'}).text @@ -852,14 +852,6 @@ def write_xml(mtgjson, setname, setlongname, setreleasedate, split_cards=[]): cardsxml.write("\n") - #failing pretty xml code - #with open('out/' + setname + '.xml') as data_file: - # tree = etree.parse(data_file) - #root = tree.getroot() - #f = open('out/' + setname + '.xml', 'w') - #f.write(etree.tostring(root, pretty_print=True)) - #f.close() - print 'XML STATS' print 'Total cards: ' + str(count) if dfccount > 0: @@ -867,6 +859,11 @@ def write_xml(mtgjson, setname, setlongname, setreleasedate, split_cards=[]): print 'Newest: ' + str(newest) print 'Runtime: ' + str(datetime.datetime.today().strftime('%H:%M')) + ' on ' + str(datetime.date.today()) +def pretty_xml(setcode): + prettyxml = xml.dom.minidom.parse('out/' + setcode + '.xml') # or xml.dom.minidom.parseString(xml_string) + pretty_xml_as_string = prettyxml.toprettyxml(newl='') + return pretty_xml_as_string + def make_allsets(AllSets, mtgjson, setname): AllSets[setname] = mtgjson return AllSets