]>
git.ipfire.org Git - people/shoehn/ipfire.org.git/blob - webapp/handlers_nopaste.py
5 from handlers_base
import *
7 class NopasteCreateHandler(BaseHandler
):
8 MODES
= ("paste", "upload")
11 mode
= self
.get_argument("mode", "paste")
12 if not mode
in self
.MODES
:
13 raise tornado
.web
.HTTPError(400)
15 self
.render("nopaste/create.html", mode
=mode
,
16 max_size
=self
._max
_size
)
19 mode
= self
.get_argument("mode")
20 if not mode
in self
.MODES
:
21 raise tornado
.web
.HTTPError(400)
24 subject
= self
.get_argument("subject", None)
25 content
= self
.get_argument("content")
28 elif mode
== "upload":
31 for f
in self
.request
.files
.get("file"):
37 if len(content
) > self
._max
_size
:
38 raise tornado
.web
.HTTPError(400,
39 "You cannot upload more than %s bytes" % self
._max
_size
)
41 expires
= self
.get_argument("expires", "0")
43 expires
= int(expires
)
44 except (TypeError, ValueError):
47 uid
= self
.backend
.nopaste
.create(subject
, content
, type=type,
48 expires
=expires
, account
=self
.current_user
,
49 address
=self
.get_remote_ip())
52 return self
.redirect("/view/%s" % uid
)
54 raise tornado
.web
.HTTPError(500)
58 # Authenticated users are allowed to upload up to 10MB
60 return 10 * (1024 ** 2)
62 # The rest is only allowed to upload up to 2MB
63 return 2 * (1024 ** 2)
66 class NopasteRawHandler(BaseHandler
):
68 entry
= self
.backend
.nopaste
.get(uid
)
70 raise tornado
.web
.HTTPError(404)
73 self
.set_header("Content-Type", entry
.mimetype
)
76 content
= self
.backend
.nopaste
.get_content(entry
.uuid
)
80 class NopasteViewHandler(BaseHandler
):
82 entry
= self
.backend
.nopaste
.get(uid
)
84 raise tornado
.web
.HTTPError(404)
86 # Fetch the content if the output should be displayed
87 if entry
.mimetype
.startswith("text/"):
88 content
= self
.backend
.nopaste
.get_content(entry
.uuid
)
92 self
.render("nopaste/view.html", entry
=entry
, content
=content
)