Compare commits
16 Commits
Author | SHA1 | Date | |
---|---|---|---|
8fa8a449cf | |||
473a498bea | |||
92f5286667 | |||
0a6bf6bbee | |||
618b074ad5 | |||
d86cebf975 | |||
ab39b62533 | |||
5aee695bae | |||
c9633e1464 | |||
0152752913 | |||
6912307349 | |||
f76243e0af | |||
f0fa2f2709 | |||
88bed73e5e | |||
3a33c70e7c | |||
40dfddc44d |
4
CREDITS
4
CREDITS
@ -36,7 +36,10 @@ Kazi <kzshantonu@users.noreply.github.com>
|
|||||||
Kieran <42723993+EnderDev@users.noreply.github.com>
|
Kieran <42723993+EnderDev@users.noreply.github.com>
|
||||||
Kieran <kieran@dothq.co>
|
Kieran <kieran@dothq.co>
|
||||||
Kyle Roth <kylrth@gmail.com>
|
Kyle Roth <kylrth@gmail.com>
|
||||||
|
laazyCmd <laazy.pr00gramming@protonmail.com>
|
||||||
Laurențiu Nicola <lnicola@users.noreply.github.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>
|
Mario A <10923513+Midblyte@users.noreply.github.com>
|
||||||
Matthew Crossman <matt@crossman.page>
|
Matthew Crossman <matt@crossman.page>
|
||||||
Matthew E <matt@matthew.science>
|
Matthew E <matt@matthew.science>
|
||||||
@ -47,6 +50,7 @@ Nathan Moos <moosingin3space@gmail.com>
|
|||||||
Nicholas Christopher <nchristopher@tuta.io>
|
Nicholas Christopher <nchristopher@tuta.io>
|
||||||
Nick Lowery <ClockVapor@users.noreply.github.com>
|
Nick Lowery <ClockVapor@users.noreply.github.com>
|
||||||
Nico <github@dr460nf1r3.org>
|
Nico <github@dr460nf1r3.org>
|
||||||
|
NKIPSC <15067635+NKIPSC@users.noreply.github.com>
|
||||||
obeho <71698631+obeho@users.noreply.github.com>
|
obeho <71698631+obeho@users.noreply.github.com>
|
||||||
obscurity <z@x4.pm>
|
obscurity <z@x4.pm>
|
||||||
Om G <34579088+OxyMagnesium@users.noreply.github.com>
|
Om G <34579088+OxyMagnesium@users.noreply.github.com>
|
||||||
|
2
Cargo.lock
generated
2
Cargo.lock
generated
@ -664,7 +664,7 @@ dependencies = [
|
|||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "libreddit"
|
name = "libreddit"
|
||||||
version = "0.24.0"
|
version = "0.24.3"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"askama",
|
"askama",
|
||||||
"async-recursion",
|
"async-recursion",
|
||||||
|
@ -3,7 +3,7 @@ name = "libreddit"
|
|||||||
description = " Alternative private front-end to Reddit"
|
description = " Alternative private front-end to Reddit"
|
||||||
license = "AGPL-3.0"
|
license = "AGPL-3.0"
|
||||||
repository = "https://github.com/spikecodes/libreddit"
|
repository = "https://github.com/spikecodes/libreddit"
|
||||||
version = "0.24.0"
|
version = "0.24.3"
|
||||||
authors = ["spikecodes <19519553+spikecodes@users.noreply.github.com>"]
|
authors = ["spikecodes <19519553+spikecodes@users.noreply.github.com>"]
|
||||||
edition = "2021"
|
edition = "2021"
|
||||||
|
|
||||||
|
@ -3,13 +3,18 @@
|
|||||||
####################################################################################################
|
####################################################################################################
|
||||||
FROM rust:alpine AS builder
|
FROM rust:alpine AS builder
|
||||||
|
|
||||||
RUN apk add --no-cache g++
|
RUN apk add --no-cache g++ git
|
||||||
|
|
||||||
WORKDIR /usr/src/libreddit
|
WORKDIR /usr/src/libreddit
|
||||||
|
|
||||||
COPY . .
|
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
|
## Final image
|
||||||
|
@ -188,7 +188,7 @@ Assign a default value for each setting by passing environment variables to Libr
|
|||||||
|
|
||||||
| Name | Possible values | Default value |
|
| 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` |
|
| `FRONT_PAGE` | `["default", "popular", "all"]` | `default` |
|
||||||
| `LAYOUT` | `["card", "clean", "compact"]` | `card` |
|
| `LAYOUT` | `["card", "clean", "compact"]` | `card` |
|
||||||
| `WIDE` | `["on", "off"]` | `off` |
|
| `WIDE` | `["on", "off"]` | `off` |
|
||||||
|
@ -158,10 +158,21 @@ fn request(method: &'static Method, path: String, redirect: bool, quarantine: bo
|
|||||||
method,
|
method,
|
||||||
response
|
response
|
||||||
.headers()
|
.headers()
|
||||||
.get("Location")
|
.get(header::LOCATION)
|
||||||
.map(|val| {
|
.map(|val| {
|
||||||
let new_url = percent_encode(val.as_bytes(), CONTROLS).to_string();
|
// We need to make adjustments to the URI
|
||||||
format!("{}{}raw_json=1", new_url, if new_url.contains('?') { "&" } else { "?" })
|
// 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()
|
.unwrap_or_default()
|
||||||
.to_string(),
|
.to_string(),
|
||||||
|
@ -154,6 +154,7 @@ main {
|
|||||||
}
|
}
|
||||||
|
|
||||||
#column_one {
|
#column_one {
|
||||||
|
width: 100%;
|
||||||
max-width: 750px;
|
max-width: 750px;
|
||||||
border-radius: 5px;
|
border-radius: 5px;
|
||||||
overflow: inherit;
|
overflow: inherit;
|
||||||
|
13
static/themes/gruvboxdark.css
Normal file
13
static/themes/gruvboxdark.css
Normal 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);
|
||||||
|
}
|
13
static/themes/gruvboxlight.css
Normal file
13
static/themes/gruvboxlight.css
Normal 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);
|
||||||
|
}
|
@ -19,7 +19,7 @@
|
|||||||
<!-- PWA Manifest -->
|
<!-- PWA Manifest -->
|
||||||
<link rel="manifest" type="application/json" href="/manifest.json">
|
<link rel="manifest" type="application/json" href="/manifest.json">
|
||||||
<link rel="shortcut icon" type="image/x-icon" href="/favicon.ico">
|
<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 %}
|
{% endblock %}
|
||||||
</head>
|
</head>
|
||||||
<body class="
|
<body class="
|
||||||
|
@ -13,16 +13,25 @@
|
|||||||
<!-- Meta Tags -->
|
<!-- Meta Tags -->
|
||||||
<meta name="author" content="u/{{ post.author.name }}">
|
<meta name="author" content="u/{{ post.author.name }}">
|
||||||
<meta name="title" content="{{ post.title }} - r/{{ post.community }}">
|
<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: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:description" content="View on Libreddit, an alternative private front-end to Reddit.">
|
||||||
<meta property="og:image" content="{{ post.thumbnail.url }}">
|
<meta property="og:url" content="{{ post.permalink }}">
|
||||||
<meta property="twitter:card" content="summary_large_image">
|
|
||||||
<meta property="twitter:url" content="{{ post.permalink }}">
|
<meta property="twitter:url" content="{{ post.permalink }}">
|
||||||
<meta property="twitter:title" content="{{ post.title }} - r/{{ post.community }}">
|
<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.">
|
<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 }}">
|
<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 %}
|
{% endblock %}
|
||||||
|
|
||||||
{% block subscriptions %}
|
{% block subscriptions %}
|
||||||
|
Reference in New Issue
Block a user