diff --git a/build.py b/build.py index 42b1e4bf..e8389985 100755 --- a/build.py +++ b/build.py @@ -8,6 +8,10 @@ import base64 import sys import os import shutil +import json +import urllib2 +import shelve +import hashlib # load settings file @@ -66,6 +70,31 @@ def loaderRaw(var): fn = var.group(1) return readfile(fn) +def loaderGFM(var): + fn = var.group(1) + db = shelve.open('build/GFM.dat') + if db.has_key('files'): + files = db['files'] + else: + files = {} + file = readfile(fn) + filemd5 = hashlib.md5(file).hexdigest() + # check if file has already been parsed by the github api + if fn in files and filemd5 in files[fn]: + # use the stored copy if nothing has changed to avoid hiting the api more then the 60/hour when not signed in + return files[fn][filemd5] + else: + url = 'https://api.github.com/markdown' + payload = {'text': readfile(fn), 'mode': 'gfm', 'context': 'jonatkins/ingress-intel-total-conversion'} + req = urllib2.Request(url) + req.add_header('Content-Type', 'application/json') + gfm = urllib2.urlopen(req, json.dumps(payload)).read().replace('\n', '').replace('\'', '\\\'') + files[fn] = {} + files[fn][filemd5] = gfm + db['files'] = files + db.close() + return gfm + def loaderImage(var): fn = var.group(1) return 'data:image/png;base64,{0}'.format(base64.encodestring(open(fn, 'rb').read()).decode('utf8').replace('\n', '')) @@ -86,6 +115,7 @@ def doReplacements(script,updateUrl,downloadUrl): script = re.sub('@@INCLUDERAW:([0-9a-zA-Z_./-]+)@@', loaderRaw, script) script = re.sub('@@INCLUDESTRING:([0-9a-zA-Z_./-]+)@@', loaderString, script) + script = re.sub('@@INCLUDEGFM:([0-9a-zA-Z_./-]+)@@', loaderGFM, script) script = re.sub('@@INCLUDEIMAGE:([0-9a-zA-Z_./-]+)@@', loaderImage, script) script = script.replace('@@BUILDDATE@@', buildDate) diff --git a/code/utils_misc.js b/code/utils_misc.js index 84562c92..394ded79 100644 --- a/code/utils_misc.js +++ b/code/utils_misc.js @@ -1,7 +1,8 @@ // UTILS + MISC /////////////////////////////////////////////////////// window.aboutIITC = function(){ - var v = '@@BUILDNAME@@-@@BUILDDATE@@' + var v = '@@BUILDNAME@@-@@BUILDDATE@@'; + var attrib = '@@INCLUDEGFM:ATTRIBUTION.md@@'; var a = '' + '