Compare commits

...

11 Commits

Author SHA1 Message Date
412122d7d9 v0.27.1 2023-01-12 01:57:03 -07:00
27091db53b Create rust-tests.yml (#690)
This will run tests on every push and PR to master.
2023-01-12 01:43:08 -07:00
2a54043afc Simplify listener definition (#681)
This simplifies the logic to build the listener by using more clap
features instead of manually accessing the PORT environment variable.
This also removes unnecessary `unwrap_or` calls that set defaults that
are already set by clap.
2023-01-12 01:41:59 -07:00
e238a7b168 Bump tokio from 1.23.0 to 1.23.1 (#691)
Bumps [tokio](https://github.com/tokio-rs/tokio) from 1.23.0 to 1.23.1.
- [Release notes](https://github.com/tokio-rs/tokio/releases)
- [Commits](https://github.com/tokio-rs/tokio/compare/tokio-1.23.0...tokio-1.23.1)

---
updated-dependencies:
- dependency-name: tokio
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-01-12 01:39:23 -07:00
1e554acd20 Merge pull request #687 from jojosch/fix-cfg-test
Fix tests
2023-01-04 16:03:48 -05:00
dff91da877 config: fix SFW test 2023-01-04 11:12:19 +01:00
f6bb53e388 Mark search query as safe in askama template (#686) 2023-01-03 20:55:17 -08:00
709292339a Merge pull request #674 from spenserblack/codespace 2023-01-03 20:12:36 -05:00
799e5b882b Merge pull request #667 from erdnaxe/scrollbar_theme 2023-01-03 19:34:40 -05:00
b1182e7cf5 Create devcontainer.json 2023-01-01 14:52:33 -05:00
1fa9f27619 Theme browser scrollbar
Hint current color-scheme to the browser. This enables chromium-based
browsers to change the scrollbar color according to the current theme.
2022-12-26 22:57:04 +01:00
10 changed files with 66 additions and 12 deletions

View File

@ -0,0 +1,14 @@
{
"name": "Rust",
"image": "mcr.microsoft.com/devcontainers/rust:0-1-bullseye",
"features": {
"ghcr.io/devcontainers/features/docker-in-docker:2": {}
},
"portsAttributes": {
"8080": {
"label": "libreddit",
"onAutoForward": "notify"
}
},
"postCreateCommand": "cargo build"
}

22
.github/workflows/rust-tests.yml vendored Normal file
View File

@ -0,0 +1,22 @@
name: Tests
on:
push:
branches: [ "master" ]
pull_request:
branches: [ "master" ]
env:
CARGO_TERM_COLOR: always
jobs:
build:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- name: Build
run: cargo build --verbose
- name: Run tests
run: cargo test --verbose

6
Cargo.lock generated
View File

@ -659,7 +659,7 @@ dependencies = [
[[package]]
name = "libreddit"
version = "0.27.0"
version = "0.27.1"
dependencies = [
"askama",
"brotli",
@ -1304,9 +1304,9 @@ checksum = "cda74da7e1a664f795bb1f8a87ec406fb89a02522cf6e50620d016add6dbbf5c"
[[package]]
name = "tokio"
version = "1.23.0"
version = "1.23.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "eab6d665857cc6ca78d6e80303a02cea7a7851e85dfbd77cbdc09bd129f1ef46"
checksum = "38a54aca0c15d014013256222ba0ebed095673f89345dd79119d912eb561b7a8"
dependencies = [
"autocfg",
"bytes",

View File

@ -3,14 +3,14 @@ name = "libreddit"
description = " Alternative private front-end to Reddit"
license = "AGPL-3.0"
repository = "https://github.com/spikecodes/libreddit"
version = "0.27.0"
version = "0.27.1"
authors = ["spikecodes <19519553+spikecodes@users.noreply.github.com>"]
edition = "2021"
[dependencies]
askama = { version = "0.11.1", default-features = false }
cached = "0.40.0"
clap = { version = "4.0.24", default-features = false, features = ["std"] }
clap = { version = "4.0.24", default-features = false, features = ["std", "env"] }
regex = "1.7.0"
serde = { version = "1.0.147", features = ["derive"] }
cookie = "0.16.1"
@ -20,7 +20,7 @@ hyper-rustls = "0.23.0"
percent-encoding = "2.2.0"
route-recognizer = "0.3.1"
serde_json = "1.0.87"
tokio = { version = "1.21.2", features = ["full"] }
tokio = { version = "1.23.1", features = ["full"] }
time = "0.3.17"
url = "2.3.1"
rust-embed = { version = "6.4.2", features = ["include-exclude"] }

View File

@ -100,7 +100,7 @@ pub(crate) fn get_setting(name: &str) -> Option<String> {
use {sealed_test::prelude::*, std::fs::write};
#[test]
#[sealed_test(env = [("LIBREDDIT_SFW_ONLY", "1")])]
#[sealed_test(env = [("LIBREDDIT_SFW_ONLY", "on")])]
fn test_env_var() {
assert!(crate::utils::sfw_only())
}

View File

@ -13,7 +13,7 @@ mod user;
mod utils;
// Import Crates
use clap::{Arg, Command};
use clap::{Arg, ArgAction, Command};
use futures_lite::FutureExt;
use hyper::{header::HeaderValue, Body, Request, Response};
@ -130,8 +130,10 @@ async fn main() {
.short('p')
.long("port")
.value_name("PORT")
.env("PORT")
.help("Port to listen on")
.default_value("8080")
.action(ArgAction::Set)
.num_args(1),
)
.arg(
@ -145,11 +147,11 @@ async fn main() {
)
.get_matches();
let address = matches.get_one("address").map(|m: &String| m.as_str()).unwrap_or("0.0.0.0");
let port = std::env::var("PORT").unwrap_or_else(|_| matches.get_one("port").map(|m: &String| m.as_str()).unwrap_or("8080").to_string());
let address = matches.get_one::<String>("address").unwrap();
let port = matches.get_one::<String>("port").unwrap();
let hsts = matches.get_one("hsts").map(|m: &String| m.as_str());
let listener = [address, ":", &port].concat();
let listener = [address, ":", port].concat();
println!("Starting Libreddit...");

View File

@ -26,6 +26,9 @@
--highlighted: #333;
--visited: #aaa;
--shadow: 0 1px 3px rgba(0, 0, 0, 0.5);
/* Hint color theme to browser for scrollbar */
color-scheme: dark;
}
/* Browser-defined light theme */
@ -42,6 +45,9 @@
--highlighted: white;
--visited: #555;
--shadow: 0 1px 3px rgba(0, 0, 0, 0.1);
/* Hint color theme to browser for scrollbar */
color-scheme: light;
}
}

View File

@ -11,3 +11,8 @@
--highlighted: #fbf1c7;
--shadow: 0 1px 3px rgba(0, 0, 0, 0.25);
}
html:has(> .gruvboxlight) {
/* Hint color theme to browser for scrollbar */
color-scheme: light;
}

View File

@ -11,4 +11,9 @@
--highlighted: white;
--visited: #555;
--shadow: 0 1px 3px rgba(0, 0, 0, 0.1);
}
html:has(> .light) {
/* Hint color theme to browser for scrollbar */
color-scheme: light;
}

View File

@ -10,7 +10,7 @@
{% block content %}
<div id="column_one">
<form id="search_sort">
<input id="search" type="text" name="q" placeholder="Search" value="{{ params.q }}" title="Search libreddit">
<input id="search" type="text" name="q" placeholder="Search" value="{{ params.q|safe }}" title="Search libreddit">
{% if sub != "" %}
<div id="inside">
<input type="checkbox" name="restrict_sr" id="restrict_sr" {% if params.restrict_sr != "" %}checked{% endif %}>