Commit graph

19 commits

Author SHA1 Message Date
Gunwant Jain
08ec2cbecb Provide Cache-Control Headers
max-age = 1 week for everything
stale-while-revalidate = 1 day for everything except raw pastes
immutable for raw pastes

Most likely fixes #2, unless I forgot something.

Suggested-by: Leonora Tindall <ltindall@fastly.com>
Signed-off-by: Gunwant Jain <mail@wantguns.dev>
2022-02-08 01:46:05 +05:30
Gunwant Jain
884be16dc4 Use / for raw pastes
Signed-off-by: Gunwant Jain <mail@wantguns.dev>
2022-02-07 01:59:41 +05:30
Leonora Tindall
2ab7ddb9c8 Add cache-busting and server headers with a wrapper.
In order to support custom headers for various response types,
  this commit adds a wrapper type, ResponseWrapper, which can service
  all types of response in `bin`.

For paste objects, the preferred `Last-Modified` is used, so that caches
  can compare their exact timings with the HEAD response when
  revalidating.

For static objects, an `ETag` is used instead, based on the Cargo version
  and git hash of the codebase at compilation time; a `build.rs` is used
  for this.
2022-02-05 06:20:33 +05:30
Leonora Tindall
5aafe2500a Redirect on invalid UTF-8 in /p/
Previously, uploading a paste with invalid UTF-8 and then viewing it
with the pretty URL would cause a panic.
With this change, it simply redirects to the raw URL.
2022-02-02 12:52:24 -06:00
Gunwant Jain
689db9548a src: cargo clippy and fmt the project
Signed-off-by: Gunwant Jain <mail@wantguns.dev>
2022-01-20 03:50:38 +05:30
Gunwant Jain
edc247b558 Templates: fix the content type of templates
Templating is weird af in Rocket. Look into 3a541ae for more.
The content-type of the rendering is determined by the extension of the
template name.

But renaming these templates would break building the project for
development because it finds a phony template there. So the trick is to
default the `template_dir` to `args.upload` because it should never
interfere and will be always present.
This also fixes the hax in Dockerfile by making it the default.

Signed-off-by: Gunwant Jain <mail@wantguns.dev>
2022-01-19 16:33:57 +05:30
Gunwant Jain
78b4213c62 cargo-fmt the src
Signed-off-by: Gunwant Jain <mail@wantguns.dev>
2022-01-18 16:18:52 +05:30
Gunwant Jain
ce001c6a79 Args: implement upload arg
Signed-off-by: Gunwant Jain <mail@wantguns.dev>
2022-01-18 15:48:21 +05:30
Gunwant Jain
892e84348d static_files: embed files in-binary
Signed-off-by: Gunwant Jain <mail@wantguns.dev>
2022-01-18 12:16:07 +05:30
Gunwant Jain
33583b71d4 cargo update, fmt and add rust_embed crate
Signed-off-by: Gunwant Jain <mail@wantguns.dev>
2022-01-16 23:11:38 +05:30
Gunwant Jain
449f0c38a9 PrettyPaste: Add Fork and New button
Signed-off-by: Gunwant Jain <mail@wantguns.dev>
2022-01-16 14:24:10 +05:30
Gunwant Jain
53d96865ad UI: Use a spacier layout
Signed-off-by: Gunwant Jain <mail@wantguns.dev>
2021-12-26 21:01:56 +05:30
Gunwant Jain
cca3a8bec9 refactor code and add dragover visual cue
Signed-off-by: Gunwant Jain <mail@wantguns.dev>
2021-12-26 08:41:44 +05:30
Gunwant Jain
04c992e8b3 client: write a simple client for the pastebin
Signed-off-by: Gunwant Jain <mail@wantguns.dev>
2021-07-13 21:23:34 +05:30
Gunwant Jain
80c6809414 pretty: remove dead code
Signed-off-by: Gunwant Jain <mail@wantguns.dev>
2021-07-13 04:28:27 +05:30
Gunwant Jain
c6262e9e87 add static files
we have a favicon now :')

Signed-off-by: Gunwant Jain <mail@wantguns.dev>
2021-07-13 03:49:11 +05:30
Gunwant Jain
1175a57539 index: Add select for choosing languages when pasting
Signed-off-by: Gunwant Jain <mail@wantguns.dev>
2021-07-13 01:39:47 +05:30
Gunwant Jain
fbc92b669d index: drag & drop redirects to the syntax highlighted pages
Signed-off-by: Gunwant Jain <mail@wantguns.dev>
2021-07-11 15:50:04 +05:30
Gunwant Jain
9c5a3af128 refactor: bring in the modules
Signed-off-by: Gunwant Jain <mail@wantguns.dev>
2021-07-11 03:07:50 +05:30