def use_gist(request): if request.method == "POST": code = None success = False msg = "" ctx = {} computed_max_size = settings.GRIDCONTROL_GIST_MAX_SIZE gist_retriever = GistRetriever(request.user.username) gist_id = request.POST['gist_id'] gist_revision = request.POST['gist_revision'] gist_files = gist_retriever.get_gist_version(gist_id, gist_revision) print "# of files found: %d" % len(gist_files) for gfile in gist_files: print "Filename: %s" % gfile["filename"] #DEBUG if _valid_ext(gfile["filename"]): ctx["filename"] = gfile["filename"] if(int(gfile["size"]) < computed_max_size): success, msg = register_code(request.user, gfile["text_url"]) else: success, msg = False, 'file {} too large. less coad pls'.format(gfile['text_url']) break print "Success: %s" % str(success) #DEBUG print "Message: %s" % msg #DEBUG ctx['success'] = success ctx['message'] = msg user = request.user gce = GridControlEngine(get_client()) gce.activate_user(user.id, user.username) return render_to_response("account/use_gist.html", ctx, RequestContext(request)) else: return HttpResponseNotAllowed(['POST'])
def account_gists(request): user = request.user gist_retriever = GistRetriever(user.username) gists = gist_retriever.get_gist_list() gists = [g for g in gists if [f for f in g['files'] if _valid_ext(f)]] ctx = {"gists": gists} request.session["gists"] = gists return render_to_response("account/gists.html", ctx, RequestContext(request))
def gist_viewer(request, gist_id=0): print "Looking for gists with ID: %s" % unicode(gist_id) print "Gists" ##DEBUG pprint(request.session['gists']) ##DEBUG gist = [gist for gist in request.session['gists'] if gist['id'] == unicode(gist_id)][0] gist_retriever = GistRetriever(request.user.username) gist_texts = {} for gist_fname, gist_fdata in gist['files'].items(): gist_texts[gist_fname] = gist_retriever.get_file_text(gist_fdata['raw_url']) ctx = {"gist_texts": gist_texts} return render_to_response("account/gist_viewer.html", ctx, RequestContext(request))
def fetch_code(self, user_id, raw_url): retriever = GistRetriever('dforsyth is the best') code = retriever.get_file_text(raw_url) if raw_url.upper().endswith('.GRIDLANG'): return code, None if raw_url.upper().endswith('.GRIDC'): resp = requests.post(settings.GRIDC_COMPILER_URI, data=code) if resp.status_code == requests.codes.ok: return resp.text, 'gridc resp: %d' % resp.status_code return None, None
def gist_viewer(request, gist_id=0, gist_revision=""): gist_retriever = GistRetriever(request.user.username) gist_revisions = gist_retriever.get_gist_history(gist_id) gist_texts = {} gist_info = gist_retriever.get_gist_version(gist_id, gist_revision) for file_dict in gist_info: gist_texts[file_dict["filename"]] = gist_retriever.get_file_text(file_dict["text_url"]) print "Viewing gist: %s" % gist_id #DEBUG ctx = { "gist_id": gist_id, "gist_revision": gist_revision, "gist_texts": gist_texts, "gist_revisions": gist_revisions} pprint(ctx) #DEBUG return render_to_response("account/gist_viewer.html", ctx, RequestContext(request))