def quote_json(request, sha1=None): """ Lookup context from POSTed quote and url Save resulting json file to Amazon S3 Reads should be done from amazon S3: Example: http://read.neotext.net/quote/sha1/v0.02/sha1_hash """ ACCEPT_READ_REQUESTS = True data_dict = {} # quote context data data = {} if len(request.POST) == 0: if not ACCEPT_READ_REQUESTS: return HttpResponse(status=401) # bad request else: if sha1: data_dict = get_quote_dict_from_sha(sha1) if data_dict: # test data = json.dumps(data_dict) return HttpResponse(data, content_type='application/json', \ status=201) #201=created else: raise Http404 else: citing_quote = request.POST.get('citing_quote','') citing_quote = citing_quote.strip() citing_url = request.POST.get('citing_url','') cited_url = request.POST.get('cited_url', '') if len(citing_quote) == 0: return HttpResponse(status=400) # bad request if ( not(is_url(citing_url)) or not(is_url(cited_url)) ): return HttpResponse(status=400) # bad request #Create Quote Record, By Downloading cited URL q = QuoteLookup(citing_quote, citing_url, cited_url) data_dict = q.dict() if 'error' in data_dict: raise Http404 # Save result to database try: quote = Quote(**data_dict) quote.save() except (IntegrityError, DatabaseError, ProgrammingError) as e: raise return HttpResponse(status=409) # conflict filename = ''.join([data_dict['sha1'],'.json']) local_filename = ''.join([JSON_FILE_PATH, filename]) data = q.json() with open(local_filename, 'w') as outfile: json.dump(data, outfile, indent=4, ensure_ascii=False) save_json_to_cloud(filename, local_filename) return HttpResponse(data, \ content_type='application/json', status=201) # 201=created
def quote_json(request, sha1=None): """ Lookup context from POSTed quote and url Save resulting json file to Amazon S3 Reads should be done from amazon S3: Example: http://read.neotext.net/quote/sha1/v0.02/sha1_hash """ ACCEPT_READ_REQUESTS = True data_dict = {} # quote context data data = {} if len(request.POST) == 0: if not ACCEPT_READ_REQUESTS: return HttpResponse(status=401) # bad request else: if sha1: data_dict = get_quote_dict_from_sha(sha1) if data_dict: # test data = json.dumps(data_dict) return HttpResponse(data, content_type='application/json', \ status=201) #201=created else: raise Http404 else: citing_quote = request.POST.get('citing_quote','') citing_quote = citing_quote.strip() citing_url = request.POST.get('citing_url','') cited_url = request.POST.get('cited_url', '') if len(citing_quote) == 0: return HttpResponse(status=400) # bad request if ( not(is_url(citing_url)) or not(is_url(cited_url)) ): return HttpResponse(status=400) # bad request #Create Quote Record, By Downloading cited URL q = QuoteLookup(citing_quote, citing_url, cited_url) data_dict = q.dict() if 'error' in data_dict: raise Http404 # Save result to database try: quote = Quote(**data_dict) quote.save() except (IntegrityError, DatabaseError, ProgrammingError) as e: raise return HttpResponse(status=409) # conflict filename = ''.join([data_dict['sha1'],'.json']) local_filename = ''.join([JSON_FILE_PATH, filename]) data = q.json() with open(local_filename, 'w') as outfile: json.dump(data, outfile, indent=4, ensure_ascii=False) save_json_to_cloud(filename, local_filename) return HttpResponse(data, \ content_type='application/json', status=201) # 201=created