def generate_xpi(request, slug): if not hasattr(settings, "MAX_USERS") or User.objects.count() < settings.MAX_USERS: recipient = slug != '__none__' and Recipient.get_or_none( slug=slug) or None xpi_builder = XpiBuilder( pathify([PROJECT_PATH, 'procrasdonate', 'ProcrasDonateFFExtn'], file_extension=True), "%s%s" % (MEDIA_ROOT, 'xpi'), "%s%s" % (MEDIA_ROOT, 'rdf'), recipient) private_key = xpi_builder.write_input_json(is_update=False) user = User.add(private_key) Log.Log("Built XPI for download", detail="usage", user=user) (xpi_url, xpi_hash) = xpi_builder.build_xpi(is_update=False) return json_success({ 'xpi_url': xpi_url, 'xpi_hash': xpi_hash, 'wait_list': False, 'wait_list_url': reverse('waitlist') }) else: return json_success({ 'xpi_url': None, 'xpi_hash': None, 'wait_list': True, 'wait_list_url': reverse('waitlist') })
def download_update(request): """ Not called by anyone yet. """ xpi_builder = XpiBuilder(settings.pathify([settings.PROJECT_PATH, 'procrasdonate', 'ProcrasDonateFFExtn'], file_extension=True), "%s%s" % (settings.MEDIA_ROOT, 'xpi'), "%s%s" % (settings.MEDIA_ROOT, 'rdf')) info = xpi_builder.get_update_info() link = info['update_link'] hash = info['update_hash'] return render_response(request, 'procrasdonate/extension_pages/download_xpi.html', locals())
def make(klass, rescuetime_key, recipient=None, user=None, dollars_per_hr=1.0): rt = RescueTimeUser.get_or_none(rescuetime_key=rescuetime_key) if rt: return rt if not user: private_key = XpiBuilder.generate_private_key() user = User.add(private_key) return RescueTimeUser(user=user, recipient=recipient, rescuetime_key=rescuetime_key, dollars_per_hr=dollars_per_hr)
def generate_xpi(request, slug): if not hasattr(settings, "MAX_USERS") or User.objects.count() < settings.MAX_USERS: recipient = slug != "__none__" and Recipient.get_or_none(slug=slug) or None xpi_builder = XpiBuilder( pathify([PROJECT_PATH, "procrasdonate", "ProcrasDonateFFExtn"], file_extension=True), "%s%s" % (MEDIA_ROOT, "xpi"), "%s%s" % (MEDIA_ROOT, "rdf"), recipient, ) private_key = xpi_builder.write_input_json(is_update=False) user = User.add(private_key) Log.Log("Built XPI for download", detail="usage", user=user) (xpi_url, xpi_hash) = xpi_builder.build_xpi(is_update=False) return json_success( {"xpi_url": xpi_url, "xpi_hash": xpi_hash, "wait_list": False, "wait_list_url": reverse("waitlist")} ) else: return json_success( {"xpi_url": None, "xpi_hash": None, "wait_list": True, "wait_list_url": reverse("waitlist")} )
def Make(klass, wedding): user = User.add(XpiBuilder.generate_private_key()) return WeddingUser(user=user)
def return_data(request): """ sends back: * data for particular user * latest extension version """ if not settings.DJANGO_SERVER and not request.is_secure(): message = "must secure data via HTTPS: request=%s" % request Log.Error(message, "request_error") return json_failure(message) errors = [] expected_parameters = ["private_key", "since"] response = extract_parameters(request, "GET", expected_parameters) if not response['success']: return json_failure("Something went wrong extracting parameters: %s" % response['reason']) since = response["parameters"]["since"] print "----SINCE----------" print json.dumps(since, indent=2) since = decode_time(since) print since private_key = response["parameters"]["private_key"] print "----private_key----------" print json.dumps(private_key, indent=2) user = User.get_or_none(private_key=private_key) print "---- USER ----" print user if not user: message = "unknown user: %s, request=%s" % (private_key, request) Log.Error(message, "unknown_user") return json_failure(message) recipients = [] #for recipient in Recipient.objects.filter(fpsrecipient__timestamp__gte=since): for recipient in Recipient.objects.all(): recipients.append(recipient.deep_dict()) multiuse_auths = [] has_success = False for multiuse_auth in FPSMultiuseAuth.objects.filter(user=user): multiuse_auths.append(multiuse_auth.deep_dict()) if multiuse_auth.good_to_go(): has_success = True if not has_success: pass #@TODO if not has_success, then ask Amazon for token in case pipeline completed by didn't make it back to server yet. multiuse_pays = [] for multiuse_pay in FPSMultiusePay.objects.filter(user=user): multiuse_pays.append(multiuse_pay.deep_dict()) meta_reports = [] for meta_report in MetaReport.objects.filter(is_draft=False): meta_reports.append(meta_report.deep_dict()) #print '#.'*30; #print "RETURN DATA RETURNED" #print json.dumps({'recipients': recipients, # 'multiuse_auths': multiuse_auths}, indent=2) #print '#.'*30; xpi_builder = XpiBuilder( pathify([PROJECT_PATH, 'procrasdonate', 'ProcrasDonateFFExtn'], file_extension=True), "%s%s" % (MEDIA_ROOT, 'xpi'), "%s%s" % (MEDIA_ROOT, 'rdf')) info = xpi_builder.get_update_info() return json_success({ 'recipients': recipients, 'multiuse_auths': multiuse_auths, 'multiuse_pays': multiuse_pays, 'meta_reports': meta_reports, 'latest_update_version': xpi_builder.get_update_version(), 'update_link': info['update_link'], 'update_hash': info['update_hash'] })
def return_data(request): """ sends back: * data for particular user * latest extension version """ if not settings.DJANGO_SERVER and not request.is_secure(): message = "must secure data via HTTPS: request=%s" % request Log.Error(message, "request_error") return json_failure(message) errors = [] expected_parameters = ["private_key", "since"] response = extract_parameters(request, "GET", expected_parameters) if not response["success"]: return json_failure("Something went wrong extracting parameters: %s" % response["reason"]) since = response["parameters"]["since"] print "----SINCE----------" print json.dumps(since, indent=2) since = decode_time(since) print since private_key = response["parameters"]["private_key"] print "----private_key----------" print json.dumps(private_key, indent=2) user = User.get_or_none(private_key=private_key) print "---- USER ----" print user if not user: message = "unknown user: %s, request=%s" % (private_key, request) Log.Error(message, "unknown_user") return json_failure(message) recipients = [] # for recipient in Recipient.objects.filter(fpsrecipient__timestamp__gte=since): for recipient in Recipient.objects.all(): recipients.append(recipient.deep_dict()) multiuse_auths = [] has_success = False for multiuse_auth in FPSMultiuseAuth.objects.filter(user=user): multiuse_auths.append(multiuse_auth.deep_dict()) if multiuse_auth.good_to_go(): has_success = True if not has_success: pass # @TODO if not has_success, then ask Amazon for token in case pipeline completed by didn't make it back to server yet. multiuse_pays = [] for multiuse_pay in FPSMultiusePay.objects.filter(user=user): multiuse_pays.append(multiuse_pay.deep_dict()) meta_reports = [] for meta_report in MetaReport.objects.filter(is_draft=False): meta_reports.append(meta_report.deep_dict()) # print '#.'*30; # print "RETURN DATA RETURNED" # print json.dumps({'recipients': recipients, # 'multiuse_auths': multiuse_auths}, indent=2) # print '#.'*30; xpi_builder = XpiBuilder( pathify([PROJECT_PATH, "procrasdonate", "ProcrasDonateFFExtn"], file_extension=True), "%s%s" % (MEDIA_ROOT, "xpi"), "%s%s" % (MEDIA_ROOT, "rdf"), ) info = xpi_builder.get_update_info() return json_success( { "recipients": recipients, "multiuse_auths": multiuse_auths, "multiuse_pays": multiuse_pays, "meta_reports": meta_reports, "latest_update_version": xpi_builder.get_update_version(), "update_link": info["update_link"], "update_hash": info["update_hash"], } )