Compare commits

...

16 Commits

Author SHA1 Message Date
8fa8a449cf Sign release (resolves #651). 2022-12-01 16:42:04 -07:00
473a498bea Update CREDITS file. 2022-11-30 21:08:51 -07:00
92f5286667 Make the column size in posts consistent.
Signed-off-by: Daniel Valentine <Daniel-Valentine@users.noreply.github.com>
2022-11-30 21:06:21 -07:00
0a6bf6bbee Update CREDITS file. 2022-11-27 15:57:31 -07:00
618b074ad5 Fix embeds (#648) 2022-11-27 11:42:34 -07:00
d86cebf975 Request CSS with explicit version.
base.html will now request with a query parameter `v=` whose value is
the current version of Libreddit. This will cause the browser to request
the stylesheet for a specific version of Libreddit, bypassing the cache.
A new version of Libreddit will cause the browser to fetch a new
stylesheet.

Resolves #622. Credit is due to GitHub user @chloekek for offering this
solution in the following post:
        https://github.com/libreddit/libreddit/issues/622#issuecomment-1315961742
2022-11-23 14:43:36 -07:00
ab39b62533 Dockerfile.arm: Add git to builder. 2022-11-22 15:42:10 -07:00
5aee695bae Dockerfile.arm: Force cargo to use git binary.
Hopefully resolves #641.
2022-11-22 15:38:17 -07:00
c9633e1464 Revert "Dockerfile.arm: Verbose cargo install."
This reverts commit 0152752913.
2022-11-22 15:32:45 -07:00
0152752913 Dockerfile.arm: Verbose cargo install.
Temporarily provide `--verbose` to `cargo install` to track when during
the build the process(es) receive SIGKILL.
2022-11-22 15:29:02 -07:00
6912307349 Update version to v0.24.1. 2022-11-22 12:14:12 -07:00
f76243e0af Revert "Dockerfile.arm: disable cargo build parallelization"
This reverts commit f0fa2f2709.

This did not stop the OS from issuing SIGKILL to cargo and/or one of its
child processes.
2022-11-22 00:22:15 -07:00
f0fa2f2709 Dockerfile.arm: disable cargo build parallelization 2022-11-22 00:16:55 -07:00
88bed73e5e Extract Location URL path correctly in client::request. (fixes #645) (#646) 2022-11-21 08:58:40 -07:00
3a33c70e7c Update CREDITS file. 2022-11-20 17:52:28 -07:00
40dfddc44d Added gruvbox-dark and gruvbox-light themes (#490) 2022-11-20 13:49:20 -07:00
11 changed files with 69 additions and 13 deletions

View File

@ -36,7 +36,10 @@ Kazi <kzshantonu@users.noreply.github.com>
Kieran <42723993+EnderDev@users.noreply.github.com>
Kieran <kieran@dothq.co>
Kyle Roth <kylrth@gmail.com>
laazyCmd <laazy.pr00gramming@protonmail.com>
Laurențiu Nicola <lnicola@users.noreply.github.com>
Lena <102762572+MarshDeer@users.noreply.github.com>
Macic <46872282+Macic-Dev@users.noreply.github.com>
Mario A <10923513+Midblyte@users.noreply.github.com>
Matthew Crossman <matt@crossman.page>
Matthew E <matt@matthew.science>
@ -47,6 +50,7 @@ Nathan Moos <moosingin3space@gmail.com>
Nicholas Christopher <nchristopher@tuta.io>
Nick Lowery <ClockVapor@users.noreply.github.com>
Nico <github@dr460nf1r3.org>
NKIPSC <15067635+NKIPSC@users.noreply.github.com>
obeho <71698631+obeho@users.noreply.github.com>
obscurity <z@x4.pm>
Om G <34579088+OxyMagnesium@users.noreply.github.com>

2
Cargo.lock generated
View File

@ -664,7 +664,7 @@ dependencies = [
[[package]]
name = "libreddit"
version = "0.24.0"
version = "0.24.3"
dependencies = [
"askama",
"async-recursion",

View File

@ -3,7 +3,7 @@ name = "libreddit"
description = " Alternative private front-end to Reddit"
license = "AGPL-3.0"
repository = "https://github.com/spikecodes/libreddit"
version = "0.24.0"
version = "0.24.3"
authors = ["spikecodes <19519553+spikecodes@users.noreply.github.com>"]
edition = "2021"

View File

@ -3,13 +3,18 @@
####################################################################################################
FROM rust:alpine AS builder
RUN apk add --no-cache g++
RUN apk add --no-cache g++ git
WORKDIR /usr/src/libreddit
COPY . .
RUN cargo install --path .
# net.git-fetch-with-cli is specified in order to prevent a potential OOM kill
# in low memory environments. See:
# https://users.rust-lang.org/t/cargo-uses-too-much-memory-being-run-in-qemu/76531
# This is tracked under issue #641. This also requires us to install git in the
# builder.
RUN cargo install --config net.git-fetch-with-cli=true --path .
####################################################################################################
## Final image

View File

@ -188,7 +188,7 @@ Assign a default value for each setting by passing environment variables to Libr
| Name | Possible values | Default value |
|-------------------------|-----------------------------------------------------------------------------------------------------|---------------|
| `THEME` | `["system", "light", "dark", "black", "dracula", "nord", "laserwave", "violet", "gold", "rosebox"]` | `system` |
| `THEME` | `["system", "light", "dark", "black", "dracula", "nord", "laserwave", "violet", "gold", "rosebox", "gruvboxdark", "gruvboxlight"]` | `system` |
| `FRONT_PAGE` | `["default", "popular", "all"]` | `default` |
| `LAYOUT` | `["card", "clean", "compact"]` | `card` |
| `WIDE` | `["on", "off"]` | `off` |

View File

@ -158,10 +158,21 @@ fn request(method: &'static Method, path: String, redirect: bool, quarantine: bo
method,
response
.headers()
.get("Location")
.get(header::LOCATION)
.map(|val| {
let new_url = percent_encode(val.as_bytes(), CONTROLS).to_string();
format!("{}{}raw_json=1", new_url, if new_url.contains('?') { "&" } else { "?" })
// We need to make adjustments to the URI
// we get back from Reddit. Namely, we
// must:
//
// 1. Remove the authority (e.g.
// https://www.reddit.com) that may be
// present, so that we recurse on the
// path (and query parameters) as
// required.
//
// 2. Percent-encode the path.
let new_path = percent_encode(val.as_bytes(), CONTROLS).to_string().trim_start_matches(REDDIT_URL_BASE).to_string();
format!("{}{}raw_json=1", new_path, if new_path.contains('?') { "&" } else { "?" })
})
.unwrap_or_default()
.to_string(),

View File

@ -154,6 +154,7 @@ main {
}
#column_one {
width: 100%;
max-width: 750px;
border-radius: 5px;
overflow: inherit;

View File

@ -0,0 +1,13 @@
/* Gruvbox-Dark theme setting */
.gruvboxdark {
--accent: #8ec07c;
--green: #b8bb26;
--text: #ebdbb2;
--foreground: #3c3836;
--background: #282828;
--outside: #3c3836;
--post: #3c3836;
--panel-border: 1px solid #504945;
--highlighted: #282828;
--shadow: 0 1px 3px rgba(0, 0, 0, 0.5);
}

View File

@ -0,0 +1,13 @@
/* Gruvbox-Light theme setting */
.gruvboxlight {
--accent: #427b58;
--green: #79740e;
--text: #3c3836;
--foreground: #ebdbb2;
--background: #fbf1c7;
--outside: #ebdbb2;
--post: #ebdbb2;
--panel-border: 1px solid #d5c4a1;
--highlighted: #fbf1c7;
--shadow: 0 1px 3px rgba(0, 0, 0, 0.25);
}

View File

@ -19,7 +19,7 @@
<!-- PWA Manifest -->
<link rel="manifest" type="application/json" href="/manifest.json">
<link rel="shortcut icon" type="image/x-icon" href="/favicon.ico">
<link rel="stylesheet" type="text/css" href="/style.css">
<link rel="stylesheet" type="text/css" href="/style.css?v={{ env!("CARGO_PKG_VERSION") }}">
{% endblock %}
</head>
<body class="

View File

@ -13,16 +13,25 @@
<!-- Meta Tags -->
<meta name="author" content="u/{{ post.author.name }}">
<meta name="title" content="{{ post.title }} - r/{{ post.community }}">
<meta property="og:type" content="website">
<meta property="og:url" content="{{ post.permalink }}">
<meta property="og:title" content="{{ post.title }} - r/{{ post.community }}">
<meta property="og:description" content="View on Libreddit, an alternative private front-end to Reddit.">
<meta property="og:image" content="{{ post.thumbnail.url }}">
<meta property="twitter:card" content="summary_large_image">
<meta property="og:url" content="{{ post.permalink }}">
<meta property="twitter:url" content="{{ post.permalink }}">
<meta property="twitter:title" content="{{ post.title }} - r/{{ post.community }}">
<meta property="twitter:description" content="View on Libreddit, an alternative private front-end to Reddit.">
{% if post.post_type == "image" %}
<meta property="og:type" content="image">
<meta property="og:image" content="{{ post.thumbnail.url }}">
<meta property="twitter:card" content="summary_large_image">
<meta property="twitter:image" content="{{ post.thumbnail.url }}">
{% else if post.post_type == "video" || post.post_type == "gif" %}
<meta property="twitter:card" content="video">
<meta property="og:type" content="video">
<meta property="og:video" content="{{ post.media.url }}">
<meta property="og:video:type" content="video/mp4">
{% else %}
<meta property="og:type" content="website">
{% endif %}
{% endblock %}
{% block subscriptions %}