From ae8200d7be3a9ef5fff69bb819345335e56dd729 Mon Sep 17 00:00:00 2001 From: Kevin Date: Tue, 16 Apr 2013 20:18:21 -0700 Subject: [PATCH 1/5] Add ATTRIBUTION.md to About IITC pop up --- build.py | 30 ++++++++++++++++++++++++++++++ code/utils_misc.js | 10 +++++++--- style.css | 5 +++++ 3 files changed, 42 insertions(+), 3 deletions(-) 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 = '' + '
About IITC
' + '
Ingress Intel Total Conversion
' @@ -20,8 +21,11 @@ window.aboutIITC = function(){ + ' MapQuest OSM tiles Courtesy of MapQuest ' + ' ' + '
' - + '
Version: ' + v + '
'; - alert(a); + + '
Version: ' + v + '
' + + '
' + + '
' + attrib + '
'; + alert(a, true, function() {$('.ui-dialog').removeClass('ui-dialog-aboutIITC');}); + $('.ui-dialog').addClass('ui-dialog-aboutIITC'); } diff --git a/style.css b/style.css index fc043a41..c9ac9dd2 100644 --- a/style.css +++ b/style.css @@ -762,6 +762,11 @@ h3 { text-decoration: underline; } +.ui-dialog-aboutIITC { + max-width: 600px !important; + width: 600px !important; +} + td { padding: 0; vertical-align: top; From d59e2e2816562ac9e4f093fd426e9a6bfcafefbc Mon Sep 17 00:00:00 2001 From: Kevin Date: Tue, 16 Apr 2013 20:22:09 -0700 Subject: [PATCH 2/5] Use already read file instead of rereading --- build.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build.py b/build.py index e8389985..e7acaa1c 100755 --- a/build.py +++ b/build.py @@ -85,7 +85,7 @@ def loaderGFM(var): return files[fn][filemd5] else: url = 'https://api.github.com/markdown' - payload = {'text': readfile(fn), 'mode': 'gfm', 'context': 'jonatkins/ingress-intel-total-conversion'} + payload = {'text': file, '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('\'', '\\\'') From f767b939ad623fd00f67bc9dc3330dd6fc98ce52 Mon Sep 17 00:00:00 2001 From: Kevin Date: Tue, 16 Apr 2013 20:30:25 -0700 Subject: [PATCH 3/5] Only need markdown and not GFM for .md files --- build.py | 6 +++--- code/utils_misc.js | 2 +- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/build.py b/build.py index e7acaa1c..9c84031f 100755 --- a/build.py +++ b/build.py @@ -70,7 +70,7 @@ def loaderRaw(var): fn = var.group(1) return readfile(fn) -def loaderGFM(var): +def loaderMD(var): fn = var.group(1) db = shelve.open('build/GFM.dat') if db.has_key('files'): @@ -85,7 +85,7 @@ def loaderGFM(var): return files[fn][filemd5] else: url = 'https://api.github.com/markdown' - payload = {'text': file, 'mode': 'gfm', 'context': 'jonatkins/ingress-intel-total-conversion'} + payload = {'text': file, 'mode': 'markdown'} req = urllib2.Request(url) req.add_header('Content-Type', 'application/json') gfm = urllib2.urlopen(req, json.dumps(payload)).read().replace('\n', '').replace('\'', '\\\'') @@ -115,7 +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('@@INCLUDEMD:([0-9a-zA-Z_./-]+)@@', loaderMD, 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 394ded79..4d12fcd9 100644 --- a/code/utils_misc.js +++ b/code/utils_misc.js @@ -2,7 +2,7 @@ window.aboutIITC = function(){ var v = '@@BUILDNAME@@-@@BUILDDATE@@'; - var attrib = '@@INCLUDEGFM:ATTRIBUTION.md@@'; + var attrib = '@@INCLUDEMD:ATTRIBUTION.md@@'; var a = '' + '
About IITC
' + '
Ingress Intel Total Conversion
' From 60a65d227a5e34873d4ba2ba2a663ceade6e0869 Mon Sep 17 00:00:00 2001 From: Kevin Date: Tue, 16 Apr 2013 20:34:02 -0700 Subject: [PATCH 4/5] More changes from gfm to md --- build.py | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/build.py b/build.py index 9c84031f..41ea60e8 100755 --- a/build.py +++ b/build.py @@ -72,7 +72,7 @@ def loaderRaw(var): def loaderMD(var): fn = var.group(1) - db = shelve.open('build/GFM.dat') + db = shelve.open('build/MD.dat') if db.has_key('files'): files = db['files'] else: @@ -88,12 +88,12 @@ def loaderMD(var): payload = {'text': file, 'mode': 'markdown'} req = urllib2.Request(url) req.add_header('Content-Type', 'application/json') - gfm = urllib2.urlopen(req, json.dumps(payload)).read().replace('\n', '').replace('\'', '\\\'') + md = urllib2.urlopen(req, json.dumps(payload)).read().replace('\n', '').replace('\'', '\\\'') files[fn] = {} - files[fn][filemd5] = gfm + files[fn][filemd5] = md db['files'] = files db.close() - return gfm + return md def loaderImage(var): fn = var.group(1) From 31d6855535fb03ff2ba0169a94be958d0f37f974 Mon Sep 17 00:00:00 2001 From: Kevin Date: Mon, 22 Apr 2013 02:08:51 -0700 Subject: [PATCH 5/5] Build script fixes to work on both python 2 and 3 --- build.py | 19 ++++++++++++------- 1 file changed, 12 insertions(+), 7 deletions(-) diff --git a/build.py b/build.py index 41ea60e8..a3d78b57 100755 --- a/build.py +++ b/build.py @@ -9,10 +9,13 @@ import sys import os import shutil import json -import urllib2 import shelve import hashlib +try: + import urllib2 +except ImportError: + import urllib.request as urllib2 # load settings file from buildsettings import buildSettings @@ -72,23 +75,25 @@ def loaderRaw(var): def loaderMD(var): fn = var.group(1) - db = shelve.open('build/MD.dat') - if db.has_key('files'): + # use different MD.dat's for python 2 vs 3 incase user switches versions, as they are not compatible + db = shelve.open('build/MDv' + str(sys.version_info.major) + '.dat') + if 'files' in db: files = db['files'] else: files = {} file = readfile(fn) - filemd5 = hashlib.md5(file).hexdigest() + filemd5 = hashlib.md5(file.encode('utf8')).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 + db.close() return files[fn][filemd5] else: url = 'https://api.github.com/markdown' payload = {'text': file, 'mode': 'markdown'} - req = urllib2.Request(url) - req.add_header('Content-Type', 'application/json') - md = urllib2.urlopen(req, json.dumps(payload)).read().replace('\n', '').replace('\'', '\\\'') + headers = {'Content-Type': 'application/json'} + req = urllib2.Request(url, json.dumps(payload).encode('utf8'), headers) + md = urllib2.urlopen(req).read().decode('utf8').replace('\n', '').replace('\'', '\\\'') files[fn] = {} files[fn][filemd5] = md db['files'] = files