def night_phase(): g = GameBoard.objects.get() s = g.execute_turn(string=True) send_mail("[Consortium] Night phase complete", "Night phase successful at %s\n%s" % (datetime.now(), s), '*****@*****.**', ['*****@*****.**'], fail_silently=True)
def app(request, app_id=None): game_time = datetime(2013, 3, 1, 6) readonly = request.GET.get("readonly", False) if request.method == "POST": try: instance = ConsortiumApp.objects.get(app_id=app_id) except ConsortiumApp.DoesNotExist: instance = None form = AppForm(request.POST, instance=instance) if form.is_valid(): if request.POST["app_submit"] == "Save and Continue Editing": app = form.save(commit=False) app.saved_on = datetime.now() app.save() if not instance: send_mail( "[Consortium] Your App Link", render_to_string("app/app_saved_email.html", {"app": app}), "*****@*****.**", [app.email], fail_silently=True, html=render_to_string("app/app_saved_email.html", {"app": app}), ) messages.success( request, "Saved! You can continue editing, but make sure to save or submit when you're done." ) return redirect(reverse("app", args=[app.app_id])) else: app = form.save(commit=False) app.apped_on = datetime.now() app.submitted = True app.save() form = AppForm(instance=app) send_mail( "[Consortium] App from %s" % app.name, render_to_string("app/app_email.html", {"form": form}), "*****@*****.**", ["*****@*****.**", app.email], html=render_to_string("app/app_email.html", {"form": form}), ) return render(request, "app/postapp.html", {"app": app}) else: messages.error(request, "Please correct the problems below.") # return redirect(reverse('app')) elif app_id: app = get_object_or_404(ConsortiumApp, app_id=app_id) form = AppForm(instance=app) readonly = request.GET.get("readonly", app.submitted) else: form = AppForm() return render( request, "app/app.html", {"form": form, "app_id": app_id, "game_time": game_time, "readonly": readonly} )
def remind(request, app_id): app = get_object_or_404(ConsortiumApp, app_id=app_id) due_time = naturaltime(datetime(2013, 3, 1, 6)) send_mail( "[Consortium] App Reminder", render_to_string("app/app_reminder.html", {"app": app, "due_time": due_time}), "*****@*****.**", [app.email], fail_silently=True, html=render_to_string("app/app_reminder.html", {"app": app, "due_time": due_time}), ) messages.success(request, "Reminded %s." % True) return redirect(reverse("dashboard"))
def remind_everyone(request): due_time = naturaltime(datetime(2013, 3, 1, 6)) for app in ConsortiumApp.objects.filter(submitted=False): send_mail( "[Consortium] App Reminder", render_to_string("app/app_reminder.html", {"app": app, "due_time": due_time}), "*****@*****.**", [app.email], fail_silently=True, html=render_to_string("app/app_reminder.html", {"app": app, "due_time": due_time}), ) messages.success(request, "Reminded %s." % app.name) return redirect(reverse("dashboard"))
def mail_to_char(cls, char): if not char.user.email: return None return send_mail( "[Consortium] New in-game mail", "You have a new in-game mail. Go to http://consortium.so/mail/ to check it.", "*****@*****.**", [char.user.email], fail_silently=True)
def gm_view(request, template='askgms/askgms.html'): if not request.user.is_superuser: raise Http404 if request.method == 'POST': q = get_object_or_404(Question, id=request.POST.get('qid', None)) updated = q.answer != '' q.answer = request.POST.get('answer') q.answered_by = request.POST.get('answered_by') q.answered_on = now() q.public = request.POST.get('public', False) q.save() verb = "updated" if updated else "answered" send_mail('[Consortium] Question #%s from %s %s by %s' % (q.id, q.asker_email, verb, q.answered_by), "%s %s %s's question: \n\n'%s'\n---\n%s" % (q.answered_by, verb, q.asker_email, q.question, q.answer), '*****@*****.**', ["*****@*****.**", q.asker_email]) messages.success(request, "Question %s!" % verb) questions = Question.objects.all().order_by('-id') return render(request, template, {'questions': questions})
def player_view(request, template='askgms/askgms.html'): if request.method == 'POST': email = request.POST.get('email'), if not Question.objects.filter(asker_email=email[0] if email else None, question=request.POST.get('question')): q = Question( asker_email=email[0] if email else None, question=request.POST.get('question'), public=request.POST.get('public', False) ) q.save() send_mail('[Consortium] New question #%s from %s' % (q.id, q.asker_email), "%s has a question: \n\n%s\n\nGo to http://consortium.so/ask/gm/#q%s to answer." % (q.asker_email, q.question, q.id), '*****@*****.**', ["*****@*****.**"]) messages.success(request, "Question asked! You'll receive an answer as soon as possible.") else: messages.warning(request, "That question already exists -- just be patient.") questions = Question.objects.filter(public=True).exclude(answer='').order_by('-answered_on') return render(request, template, {'questions': questions})
def mail_to_char(cls, char): if not char.user.email: return None return send_mail( "[Consortium] New in-game mail", "You have a new in-game mail. Go to http://consortium.so/mail/ to check it.", "*****@*****.**", [char.user.email], fail_silently=True, )
def market_tick(): # if now().time().hour < 5 or now().time().hour > 6: return "Wrongly fired" msg = GameDay.tick() send_mail("[Consortium] Tick!", "Tick successful at %s" % datetime.now(), '*****@*****.**', ['*****@*****.**'], fail_silently=True)
def test_task(): print "Bagels" send_mail("[Consortium] Test!", "Day phase successful at %s" % (datetime.now()), '*****@*****.**', ['*****@*****.**'])
def check_security_windows(): windows = EntryWindow.objects.filter(start_time__lte=now(), start_time__gt=now() - timedelta(hours=1)) for w in windows: if w.check_and_notify(): send_mail("[Consortium] Security window alert!", "Security window triggered: %s" % w, '*****@*****.**', ['*****@*****.**'], fail_silently=True)