def black_hole_mail(request): if request.method == "POST": text = request.POST["text"] user_ip = get_user_ip(request) user_sent_count = cache.get(f"mail_user_ip_{user_ip}") if not user_sent_count: cache.set(f"mail_user_ip_{user_ip}", 1, 30) else: user_sent_count += 1 if user_sent_count > 4: return HttpResponse(json.dumps({"error": "Error: sending mail too frequently."}), content_type="application/json") else: cache.set(f"mail_user_ip_{user_ip}", user_sent_count, 30) if len(text) > 2000: return HttpResponse(json.dumps({"error": "Error: message too long. can only send 2000 characters."}), content_type="application/json") try: webhook = Webhook.partial(settings.MAIL_DISCORD_WEBHOOK_ID, settings.MAIL_DISCORD_WEBHOOK_TOKEN, adapter=RequestsWebhookAdapter()) em = Embed(color=0x000000, title="Black Hole", description=f"⚫ You've got guyamail! 📬\n\n{text}", timestamp=datetime.utcnow()) em.set_footer(text=f"IP hash: {hashlib.md5(user_ip.encode()).hexdigest()[:32]}") webhook.send(content=None, embed=em, username="******") except (AttributeError, NameError) as e: feedback_folder = os.path.join(settings.MEDIA_ROOT, "feedback") os.makedirs(feedback_folder, exist_ok=True) feedback_file = str(int(datetime.utcnow().timestamp())) with open(os.path.join(feedback_folder, f"{feedback_file}.txt"), "w") as f: f.write(text) return HttpResponse(json.dumps({"success": "Mail successfully crossed the event horizon"}), content_type="application/json")
def process_response(self, request, response): ip = get_user_ip(request) if not cache.get(f"referral_{ip}") and request.method == "GET" and request.GET.get('rid') \ and response.status_code not in [301, 302]: # Handle only one referral from an IP at a time cache.set(f"referral_{ip}", { "rid": request.GET.get('rid'), "consumed": False }, 120) return response
def referral(request): if request.method == "POST": ip = get_user_ip(request) referral_metadata = cache.get(f"referral_{ip}") if referral_metadata and not referral_metadata["consumed"]: if request.POST["rid"] == referral_metadata["rid"]: cache.set(f"referral_{ip}", {"consumed": True}, 1800) try: requests.post(settings.REFERRAL_SERVICE, referral_metadata) except: pass return HttpResponse(status=200) else: return handle404(request, "")
def hit_count(request): if request.method == "POST": user_ip = get_user_ip(request) page_id = f"url_{request.POST['page_url']}/{user_ip}" if not cache.get(page_id): cache.set(page_id, page_id, 60) page_url = request.POST["page_url"] page_id = Page.objects.get(page_url=page_url).id page = ContentType.objects.get(app_label="misc", model="page") hit, _ = HitCount.objects.get_or_create(content_type=page, object_id=page_id) hit.hits = F("hits") + 1 hit.save() return HttpResponse(json.dumps({}), content_type="application/json")