Commit Graph

192 Commits

Author SHA1 Message Date
Matthew Esposito 075597ac7c Add format_url tests 2022-11-04 00:52:18 -04:00
Daniel Valentine ae3ea2da7c
HTTP compression (Reddit -> Libreddit -> client) (#612)
Implements HTTP compression, between both Reddit and Libreddit and Libreddit
and a web browser. Compression between Reddit and Libreddit is mandatory,
whereas compression between Libreddit and a client is opt-in (client must
specify a compressor in the Accept-Encoding header).

Supported compressors are gzip and brotli. gzip support is ubiquitous,
whereas brotli is supported by almost all modern browsers except Safari
(iOS, iPhone, macOS), although Safari may support brotli in the future.

Co-authored-by: Matthew E <matt@matthew.science>
2022-11-03 22:04:34 -06:00
Nick Lowery 322aa97a18
Fix HTML encoding in templating (#404) 2022-05-21 05:28:31 +00:00
spikecodes 428dc58e3c
Update to v0.22.8 2022-05-20 19:20:44 -07:00
mikupls 60c7b6b23f
Embed css themes to simplify adding and testing new themes (#489) 2022-05-21 01:41:31 +00:00
mikupls eb6c5e5e1e
Fix backslash url rewriting and add tests for rewrite_urls. (#461)
* Fix backslash url rewriting.

Add test for rewrite_urls.

Fixes #281.

* Update to v0.22.5

Co-authored-by: spikecodes <19519553+spikecodes@users.noreply.github.com>
2022-03-26 20:26:30 +00:00
spikecodes f1b3749cf0
Fix #378 — formatting of dates/times 2021-12-29 12:48:57 -08:00
spikecodes 0708fdfb37
Cover more Reddit domains with libreddit link rewrites 2021-12-29 11:38:35 -08:00
spikecodes 6b59976fcf
Fix #376 2021-12-27 23:16:01 -08:00
spikecodes b3d4f6f91c
Show external page links again 2021-12-27 18:00:19 -08:00
spikecodes 90fa0b5496
Automatically generate release notes 2021-12-27 10:15:25 -08:00
spikecodes 7aeabfc4bc
Rewrite Reddit post links to Libreddit equivalents 2021-12-26 21:18:20 -08:00
mikupls 341c623be8
Refactor Media parsing (#334)
* Parse video data from cross_post_parent_list as vanilla Reddit does.

introduce testdata directory for testing JSON parsing functions.

refactor Media::parse for slightly more readability.

Add various test cases.

* Trim down to just refactoring

Co-authored-by: Spike <19519553+spikecodes@users.noreply.github.com>
2021-12-20 01:07:20 +00:00
spikecodes 364c29c4d5
Use resized icons for awards. Fixes #346 2021-11-28 14:47:50 -08:00
Nick Lowery 888e7b302d
Filter subreddits and users (#317)
* Initial work on filtering subreddits and users

* Fix doubly-prefixed subreddit name in search alt text (e.g. r/r/pics)

* Don't set post title to "Comment" if empty - this could throw off actual posts with the title "Comment"

* Filter search results

* Fix filtering to differentiate between "this subject itself is filtered" vs "all posts on this current page have been filtered"

* Remove unnecessary check

* Clean up

* Cargo format

* Collapse comments from filtered users

Co-authored-by: spikecodes <19519553+spikecodes@users.noreply.github.com>
2021-11-26 04:02:04 +00:00
Diego Magdaleno bd413060c6
Support displaying awards (#168)
* Initial implementation of award parsing

* Posts: Implement awards as part of post

* Posts: remove parse_awards dead code

* Posts: initial implementation of displaying Awards at the post title

* Posts: Proxy static award images

* Client: i.redd.it should take path as argument not ID

* Posts: Just like Reddit make award size 16px

* Templates: limit the awards to 4 awards to increase performance

* Comments: Make awards a property of comments and display them

* Format and correct /img/:id

* Update comment.html

* [Optimization] Awards is not longer async

* [Revert] Posts can now display more than 4 awards again

* [Implementation] Awards not display on the frontpage

* [Implementation] Display count on awards

* Post: Start working on awards css

* Awards: Move the image size to css

* Awards: Start implementing tooltips

* Refactor awards code and tweak CSS indentation

* Unify Awards::new and Awards::parse

* Use native tooltips and brighten awards background

Co-authored-by: Spike <19519553+spikecodes@users.noreply.github.com>
2021-11-25 02:08:27 +00:00
spikecodes 85ae7c1f60
Fix indentation and formatting 2021-11-23 22:23:29 -08:00
mikupls 768820cd4c
Render markdown correctly in text post previews by using selftext_html. (#335)
* Render markdown correctly in text post previews by using selftext_html.

I was mistakenly under the impression that we somehow render markdown ourselves, but turns out we just take whatever HTML reddit gives us, and we also need to do this for text previews.

Use CSS to limit the size of the previews instead of truncating in the template.

Fix table CSS.

* Fix post_body padding and trim post_previews

Co-authored-by: spikecodes <19519553+spikecodes@users.noreply.github.com>
2021-11-21 23:17:52 +00:00
mikupls 5d9c320a7e
Format post and comment votes with a decimal place, like vanilla reddit does. (#324)
* Format post and comment votes with a decimal place, like vanilla reddit does.

Before this change, a vote count of 1999 was displayed as 1k, which is a pretty big gap. The displayed count also differed from what Reddit does. Now, the behaviour is consistent.

Added some tests for format_num.

* Provide more space for post scores

Co-authored-by: spikecodes <19519553+spikecodes@users.noreply.github.com>
2021-11-21 04:07:45 +00:00
mikupls c2053524c7
Add text post previews. (#328)
* Add text post previews.

* Add mask gradient over post preview text

* Increase post title font weight for contrast

Co-authored-by: spikecodes <19519553+spikecodes@users.noreply.github.com>
2021-11-20 21:13:50 +00:00
mikupls 731a407466
Collapse (sticky) bot comments by default. (#321)
* Collapse bot comments by default.

Comments are considered bot comments if they are posted by a moderator and are stickied. Some false positives are expected.

* Remove unneeded String conversion

Co-authored-by: spikecodes <19519553+spikecodes@users.noreply.github.com>
2021-11-19 05:42:53 +00:00
spikecodes 34ea679519
Update crates and optimize parameters 2021-11-14 18:51:36 -08:00
mikupls 0f7ba3c61d
Add "open in reddit" button to all pages (#304)
* Pass the url parameter to all templates. Add a reddit_link to the navbar, which opens the current url on reddit.

* Add icon for reddit link

Co-authored-by: spikecodes <19519553+spikecodes@users.noreply.github.com>
2021-11-15 02:39:33 +00:00
spikecodes 1d4ea50a45
Add setting to autoplay videos 2021-10-25 21:27:55 -07:00
spikecodes 6a4191f3b5
Fix #272 2021-09-09 17:28:55 -07:00
spikecodes 45a5778571
Escape text-only flairs 2021-07-19 10:20:00 -07:00
accountForIssues be253d40dd
Escape html characters in post flairs (#247)
* Encode HTML characters in flairs

* Encode HTML characters in flairs

* Use esc! macro for HTML escaping

Co-authored-by: spikecodes <19519553+spikecodes@users.noreply.github.com>
2021-07-19 17:15:15 +00:00
spikecodes a190890239
Fix Regex matching of Reddit links 2021-07-17 22:24:28 -07:00
spikecodes 56998b8332
Rewrite redd.it links 2021-06-21 22:51:50 -07:00
spikecodes d2002c9027
Disable dysfunctional moderator list feature 2021-06-11 11:03:36 -07:00
spikecodes 4defb58f2a
Optimizations and commenting 2021-05-20 12:24:06 -07:00
curlpipe 8bb247af3b
Added support for quarantined subreddits (#219)
* Added support for quarantined subreddits

* Added confirmation wall for quarantined subreddits

* Added quarantine walls to other routes and fixed case issue

* Correct obsolete use of cookie()

* Refactor param() and quarantine()

Co-authored-by: Spike <19519553+spikecodes@users.noreply.github.com>
2021-05-16 15:53:39 +00:00
spikecodes 4f09333cd7
Handle three unwraps 2021-05-15 14:51:57 -07:00
spikecodes e4f9bd7b8d
Configure default settings using environment variables 2021-05-15 13:59:42 -07:00
Adrian Lebioda 928907086c
HLS video playback (#182)
* HLS video playback

Signed-off-by: Adrian Lebioda <adrianlebioda@gmail.com>

* Add LibreJS compliance

* Locally host hls.js

* Notification about HLS under videos that support it

Signed-off-by: Adrian Lebioda <adrianlebioda@gmail.com>

* Use .contains() instead of .find() == None

* Make list of preferences constant

* Change headers_keys from Vector into Array

* Fix incorrect detecting of # in paths

* Remove trailing-slash-appending if statement

* Change HLS notification styling

Co-authored-by: spikecodes <19519553+spikecodes@users.noreply.github.com>
2021-05-10 01:25:52 +00:00
curlpipe 536a766960
WIP: Various subreddit & post fixes (#215)
* Fixed random subreddit issue

* Fixed large subreddit icon rendering

* Formatting fix

* Fix dodgy HTML rendering issues

* Revert "Fix dodgy HTML rendering issues"

This reverts commit 58be5f449b.
2021-05-09 15:40:49 +00:00
spikecodes e34329cfee
Upgrade to v0.11.1 2021-05-08 22:09:47 -07:00
imabritishcow 97a0680bd0
Support GIFs in comments (#217)
* Support GIFs in comments

* Fix removing Giphy links so it only removes Giphy links

* Remove removing link to Giphy
2021-05-09 01:22:26 +00:00
curlpipe 1211d781d0
Add list of moderators to sidebar (#213)
* Added list of moderators to sidebar & added wiki not found message

* Improved code formatting
2021-05-04 17:30:54 +00:00
spikecodes a18db1e2b7
Properly pass preview queries to media proxy 2021-04-08 22:26:03 -07:00
spikecodes 6a7f725c12
Default subreddit post sorting. Closes #166 2021-03-25 21:41:58 -07:00
spikecodes 966e0ce921
Expand truncated numbers on mouseover. Close #156 2021-03-20 15:42:47 -07:00
spikecodes dc7e087ed0
Truncate negative scores 2021-03-19 22:04:44 -07:00
spikecodes b14b4ff551
Rewrite server and client using Hyper 2021-03-17 15:30:33 -07:00
spikecodes 4173362ce1
Fix #148 2021-03-11 20:15:26 -08:00
spikecodes 118ff9485c
Document proxy.rs 2021-03-10 19:02:03 -08:00
spikecodes 2e89a85858
Handle alternative status codes 2021-03-09 22:23:26 -08:00
spikecodes e59b2b1346
Custom HTTP client with Rustls 2021-03-09 22:13:46 -08:00
spikecodes 1c36549134
Fix #146 2021-03-09 07:22:17 -08:00
spikecodes bf783c2f3a
Optimize type casting 2021-03-08 18:49:06 -08:00