Example #1
0
    def get(self, url_path):
        def notify_admins(user, new_url):
            from google.appengine.api.mail import send_mail_to_admins
            mail = user.email()
            subject = "SymPy bot notification"
            body = "New upload URL " + new_url
            send_mail_to_admins(sender=mail, subject=subject, body=body)

        from google.appengine.api import users
        user = users.get_current_user()
        is_admin = users.is_current_user_admin()
        rows = []
        upload_url = ""
        if user:
            if is_admin:
                if self.request.get("generate"):
                    import sha
                    rand_string = os.urandom(10)
                    sha_hash = sha.new(rand_string)
                    new_record = UploadURL(url_path=sha_hash.hexdigest(),
                                           user=user.nickname())
                    new_record.put()
                    new_url = self.request.host_url + "/upload_pull/" + \
                        sha_hash.hexdigest()
                    notify_admins(user, new_url)
                if self.request.get("populate"):
                    taskqueue.add(url="/worker", queue_name="github")
                rows = UploadURL.all()
                last_row = rows.order("-created_at").get()
                if last_row:
                    upload_url = (last_row.url_path)
                else:
                    upload_url = ("")

        self.render(
            "upload_url.html", {
                "user": user,
                "upload_url": upload_url,
                "is_admin": is_admin,
                "rows": rows,
                "login_url": users.create_login_url("/upload_pull"),
                "logout_url": users.create_logout_url("/upload_pull"),
            })