# HG changeset patch # User Simon Cross # Date 1316532578 -7200 # Node ID 91e1a95343b2e4a16acb039d3dae0500837081e0 # Parent f0a29c9d57ee6723f4c7c2dc7f74761b9d891e78 Add option to inform CIA of new levels. diff -r f0a29c9d57ee -r 91e1a95343b2 mamba/forest.py --- a/mamba/forest.py Sun Sep 18 20:58:34 2011 +0200 +++ b/mamba/forest.py Tue Sep 20 17:29:38 2011 +0200 @@ -4,11 +4,14 @@ from flask import Flask, request, abort from datetime import datetime +import xmlrpclib +import time import os import sys app = Flask(__name__) app.config['LEVEL_FOLDER'] = None # set later +app.config['CIA_PROJECT'] = None # set to activate CIA sending def path(ctype): @@ -54,14 +57,71 @@ leveldata = request.form['data'].encode('ascii') with open(levelpath, 'w') as level: level.write(leveldata) + inform_cia(levelname, "New level uploaded.", branch="uncurated") return "Ssss." else: abort(405, "Post levels here. Hsss.") +MAMBA_VERSION = "0.1" +MAMBA_URL = "https://ctpug.org.za/hg/mamba" +CIA_URL = "http://cia.navi.cx" +CIA_MSG_TEMPLATE = """ + + + Mutable Mamba Level Server + %(mamba_version)s + %(mamba_url)s + + + %(project)s + %(module)s + %(branch)s + + + %(timestamp)d + + + + %(revision)s + %(author)s + + %(file)s + + + %(log)s + + + + +""" + + +def inform_cia(filename, log, branch='uncurated'): + if app.config['CIA_PROJECT'] is None: + return + msg = CIA_MSG_TEMPLATE % { + 'mamba_version': MAMBA_VERSION, + 'mamba_url': MAMBA_URL, + 'project': app.config['CIA_PROJECT'], + 'module': 'level-server', + 'branch': branch, + 'timestamp': int(time.time()), + 'revision': '0', + 'author': 'unknown', + 'file': filename, + 'log': log, + } + srv = xmlrpclib.Server(CIA_URL) + srv.hub.deliver(msg) + + if __name__ == "__main__": - if len(sys.argv) != 3: - print "Usage: python -m mamba.forest " + if len(sys.argv) not in (3, 4): + print ("Usage: python -m mamba.forest " + " []") sys.exit(1) host = '0.0.0.0' @@ -74,7 +134,9 @@ if not os.path.isdir(folder): print "Level folder must be a folder." sys.exit(1) + cia_project = sys.argv[3] if len(sys.argv) > 3 else None app.config['LEVEL_FOLDER'] = level_folder + app.config['CIA_PROJECT'] = cia_project # app.debug = True app.run(host=host, port=port)