Commit Graph

219 Commits

Author SHA1 Message Date
Kavin
4d5c52b83b
Rename variables to more descriptive names. 2023-05-01 05:00:49 +01:00
Kavin
6c47ea921b
performance: compile regex only once 2023-05-01 04:22:10 +01:00
Matthew Esposito
af8fe176ea
Fix clippy warnings 2023-04-19 10:37:47 -04:00
Matthew Esposito
4a1b448abb
Merge pull request #776 from iTzBoboCz/polls 2023-04-17 18:12:02 -04:00
Matthew Esposito
991677cd1e
Add variable for now_utc, format 2023-04-17 18:00:41 -04:00
Matthew Esposito
3b8a13d050
Merge pull request #773 from libreddit/fmt_clippy 2023-04-15 11:01:19 -04:00
Ondřej Pešek
ec226e0cab fix(polls): apply clippy suggestions 2023-04-08 10:41:12 +02:00
Ondřej Pešek
75af984154 fix(polls): apply suggestions and fix id parsing 2023-04-01 14:26:04 +02:00
Ondřej Pešek
8bed342a6d fix: print time suffix only for relative dates 2023-04-01 13:21:15 +02:00
Matthew Esposito
f465394f93
Address fmt + clippy 2023-03-25 16:32:42 -04:00
gmnsii
8be69f6fe5 Checks if the link contains the parameter instead of ends with it
To know if the gate should be bypassed, we check if the link contains
the pasameter instead of checking if the link ends with it. This is
impostant, for example if we were to implement searching for comments
within a post. If we wanted to search for comments within a post that we
have bypassed the gate to view: the link will look like
https://libreddit-instance/r/somesub/comments/post-id/post-title&bypass_nsfw_landing/?q=some-query&type=comment
2023-03-23 12:36:04 -07:00
gmnsii
a0726c5903 Change the bypass message and format code
The bypass message now indicates that the bypass is only temporary.
2023-03-23 11:09:33 -07:00
Ondřej Pešek
c1c867a5ff feat: add polls 2023-03-23 13:21:09 +01:00
Ondřej Pešek
5dc3279ac3 fix: make time work with future dates 2023-03-23 13:18:48 +01:00
gmnsii
e046144bf3 Allow bypassing nsfw gate for posts
On instances that are not sfw-only, the nsfw gate for posts can now be
bypassed.
2023-03-22 23:18:35 -07:00
mikupls
01f9907aaf
show the count of 'more replies'. (#740)
Co-authored-by: Daniel Valentine <daniel@vielle.ws>
Co-authored-by: Matthew Esposito <matt@matthew.science>
2023-03-08 21:30:41 -07:00
mikupls
bf19ff513f
add support for gifs in galleries. (#744) 2023-03-08 21:04:26 -07:00
potatoesAreGod
fa68bf561b
added leaving reddit dialog (#643) 2023-02-08 00:24:06 -07:00
potatoesAreGod
eb9ef9f6d9
added leaving reddit dialog (#643) 2023-01-12 01:46:56 -07:00
Daniel Valentine
9a7b3b29f5
Merge remote-tracking branch 'origin/master' into hide_awards 2023-01-03 11:12:27 -07:00
Matthew E
5b06a3fc64
Add config system to read from file (#664)
Co-authored-by: Daniel Valentine <daniel@vielle.ws>
2023-01-03 02:55:22 -07:00
Daniel Valentine
c83a4e0cc8
Landing page for NSFW content, SFW-only mode (#656)
Co-authored-by: Matt <matt@matthew.science>
Co-authored-by: Spike <19519553+spikecodes@users.noreply.github.com>
2023-01-03 02:39:45 -07:00
Matthew Esposito
6a785baa2c Add hide_awards config 2023-01-01 21:39:38 -05:00
Daniel Valentine
e579b97442
List post duplicates (resolves #574). 2022-12-03 01:08:36 -07:00
spikecodes
3f3d9e9c3b
Indicate pinned posts on user profiles (close #606) 2022-11-14 18:08:44 -08:00
NKIPSC
e62d33ccae Blur NSFW posts.
Reimplementation of libreddit/libreddit#482.

Co-authored by: Daniel Valentine <Daniel-Valentine@users.noreply.github.com>
2022-11-08 09:01:12 -07:00
Matthew E
d4ca376e8d
Add format_url tests (#615) 2022-11-05 23:51:56 -06:00
Daniel Valentine
c6487799ed
Redirect /:id to canonical URL for post. (#617)
* Redirect /:id to canonical URL for post.

This implements redirection of `/:id` (a short-form URL to a post) to
the post's canonical URL. Libreddit issues a `HEAD /:id` to Reddit to get
the canonical URL, and on success will send an HTTP 302 to a client with
the canonical URL set in as the value of the `Location:` header.

This also implements support for short IDs for non-ASCII posts, c/o
spikecodes.

Co-authored-by: spikecodes <19519553+spikecodes@users.noreply.github.com>
2022-11-05 02:29:04 -06: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