571 Commits

Author SHA1 Message Date
Samantaz Fox
ddb06b0cac
Fix XSS vulnerability in channel playlists
The channel/<ucid>/playlists page was vulnerable to Cross Site Scripting
(XSS), because the different URL parameters were inserted as-is in the URL
meant for instance switching.

This vulnerability could allow an attacker to inject malicious Javascript
in the page by tricking the user to click on a crafted link.

Bug introduced in commit 66e7285108363c3c3dcb814bdffb716c14e1724d
("Only use /redirect when automatically redirecting").

Thanks to Jack (@testa:cthd.icu on Matrix, @cysea on github) for responsibly
reporting this issue!
2021-12-19 20:51:44 +01:00
Samantaz Fox
f29ab53aff
Add other missing translations
* on watch page and video cards (search results, playlists, etc...)
* on /feed/playlists
* in search filters (not normalized in order to avoid collisions with
an existing PR that reworks the search filters)
2021-11-21 01:54:46 +01:00
Samantaz Fox
b5b0c58de7
Add missing translation for quality selectors 2021-11-21 01:50:11 +01:00
Samantaz Fox
a1bb421eec
Remove useless 'hl' parameters on captions URL 2021-11-21 01:50:11 +01:00
Samantaz Fox
139786b9ef
i18n: pass only the ISO code string to 'translate()'
Don't use the whole Hash everywhere.
Also fall back nicely to english string if no translation exists.
2021-11-21 01:50:11 +01:00
Samantaz Fox
301444563b
i18n: Use language full name instead of ISO code
Fixes #851
2021-11-21 01:50:11 +01:00
babababag
fd54cf2d05
Escape video description 2021-11-17 12:04:30 +00:00
syeopite
437bdedb07
Use env.request.resource for instance switch link 2021-10-26 16:12:25 -07:00
syeopite
a531f4f057
Rebase error 2021-10-26 16:12:25 -07:00
syeopite
66e7285108
Only use /redirect when automatically redirecting 2021-10-26 16:12:16 -07:00
Samantaz Fox
2b81a82620
Merge pull request #2529 from DmitrySandalov/master
Feature Request: Localization for trending iv-org#331
2021-10-26 23:49:56 +02:00
Samantaz Fox
b555df8377
Merge pull request #2428 from syeopite/ameba-fixes
Fix (some) issues detected by Ameba
2021-10-26 23:34:18 +02:00
Samantaz Fox
232730e909
Merge branch 'master' into master 2021-10-26 23:31:48 +02:00
Samantaz Fox
1e0712625a
Normalize translation key for preferences categories
categories normalized:
 - Miscellanous
 - Player
 - Visual
 - Administrator
 - Data
 - Subscription
2021-10-26 23:17:04 +02:00
Samantaz Fox
88752f32bd
Normalize translation key for user prefrerences
preferences normalized:
 - annotations
 - annotations_subscribed
 - automatic_instance_redirect
 - autoplay
 - captions
 - comments
 - continue
 - continue_autoplay
 - dark_mode
 - default_home
 - extend_desc
 - feed_menu
 - listen
 - local
 - locale
 - max_results
 - notifications_only
 - player_style
 - quality
 - quality_dash
 - related_videos
 - show_nick
 - sort
 - speed
 - thin_mode
 - unseen_only
 - video_loop
 - volume
 - vr_mode
2021-10-26 23:15:39 +02:00
syeopite
35d15c7c2b
Fix Style/VariableNames issues 2021-10-25 01:12:26 -07:00
Dmitry Sandalov
1d78d67af3
Feature Request: Localization for trending (move TRENDING_REGIONS to i18n.cr as CONTENT_REGIONS) 2021-10-21 22:30:49 +03:00
Dmitry Sandalov
d9c58c4837
Feature Request: Localization for trending iv-org#331 2021-10-21 14:54:15 +03:00
syeopite
5f65e92500
Merge pull request #2508 from syeopite/lazy-load-images
Lazy load (some) images
2021-10-17 18:25:59 +00:00
TheFrenchGhosty
22e8f7e287 Fix #2510 2021-10-14 21:00:14 +02:00
TheFrenchGhosty
0ad2793b68 Link to invidious.io/donate/ in the footer 2021-10-14 20:20:25 +02:00
syeopite
585e4617e8
Lazy load (some) images 2021-10-14 08:18:44 -07:00
diogo
7eba7fbcc7
add index to playlist item 2021-10-11 23:30:49 +02:00
mastihios
0947c26612
Fix URL-encoding in href strings (#2460)
* hrefs: replace HTML.escape w/ URI.encode_www_form

* Fix search_query_encoded
2021-10-11 05:18:20 -07:00
Samantaz Fox
adc12addfa
Add config option to display source code URL in footer (#2450) 2021-10-07 13:53:12 +02:00
Samantaz Fox
d806310665
Revert "Fix typo (#2456)" (#2457)
This reverts commit 4982bff74df677c9e615b52075bd05d0006acc69.
2021-10-04 19:51:57 +02:00
Jorge Maldonado Ventura
4982bff74d
Fix typo (#2456) 2021-10-04 17:47:57 +00:00
syeopite
9c44e41a4c
Merge pull request #2228 from syeopite/extract-items-overhaul
Overhaul extract_item(s) functions and add infrastructure for parsing YouTube categories
2021-10-02 20:00:16 +00:00
mastihios
7b2aa5f98e
add icon-buttons to playlist items (#2442) 2021-10-02 11:59:33 +00:00
syeopite
a50f64f6e9
Add parser for categories (shelfRenderer)
This commit adds a new parser for YT's shelfRenderers which are
typically used to denote different categories.The code for featured
channels parsing has also been moved to use the new parser but some
additional refactoring are needed there.

The ContinuationExtractor has also been improved and is now capable of
extraction continuation data that is packaged under
"appendContinuationItemsAction"

In additional this commit adds some useful helper functions to extract
the current selected tab the continuation token. This is to mainly
reduce code size and repetition.
--
This cherry-picked commit also removes the code for parsing featured
channels present on the original.

(cherry picked from commit 8000d538dbbf1eb9c78e000b1449926ba3b24da9)
2021-09-24 21:07:06 -07:00
syeopite
86ca568d6d
Remove login type button from frontend (#2423) 2021-09-23 08:44:26 +02:00
syeopite
5054510d15
Prevent VR from being initialized in listen mode (#2396) 2021-09-15 01:37:23 +02:00
Samantaz Fox
947fe4fbb3
HTML escape video mimetype
Video mimetype may contain code information between double quotes.
If not properly escaped, it breaks the browser's parser. E.g:
```
type="video/mp4; codecs=" avc1.64001f,="" mp4a.40.2""=""
```

Thank Robin for catching this!
2021-09-13 18:20:11 +02:00
syeopite
50c8afb525
Handle equirectangular projections for VR (#2379) 2021-09-10 07:42:39 +00:00
Émilien Devos
8b62c05fe2
remove 3gp only from the player (#2376)
+ video quality precedence on default player when js is not enabled
2021-09-03 09:39:11 +02:00
TheFrenchGhosty
8e3ff79f22 Remove the mention of 'Omar Roth' from the footer 2021-09-01 12:23:50 +02:00
syeopite
5005212bec
Extract feed routes (#2269)
* Extract feed routes from invidious.cr
* Removes the deprecated route for /feed/top
* Deprecate /view_all_playlist & use /feed/playlists
* Move feed views into their own directory

* Add haltf method to halt current route context
* Change status_code + return blocks to use haltf

* Set appropriate response headers for RSS routes
2021-08-30 16:58:24 +02:00
Samantaz Fox
56ebef4352
Multiple front-end fixes (#2247)
Fixes:
* Sanitize user-provided content in HTML (Fixes #2193)
* Fix encoding of search query in prev/next pages (Fixes #2229)
* Fix some issues introduced with #2196:
   - Fix alignment of all <h3> elements (Move the inline style from the parent to the <h3> element)
   - Add missing comma on 'dir' HTML attribute (Typo introduced by PR #2196)

Code cleaning:
* Remove unnecessary 'each_sclice' + 'each' double loop in ECR files
* Clean the player's <source> list generation code (in player.ecr)
2021-07-15 23:01:36 +02:00
syeopite
3e5c353298
Merge pull request #2205 from syeopite/fix-age-restricted-videos
Partial (and temporary) fix for age restricted videos
2021-07-14 10:11:03 -07:00
syeopite
54b19a04bb
Fix caption parsing on age restricted videos 2021-06-27 08:35:28 -07:00
Samantaz Fox
cfcb64c516
Fix layout of video 'card' items
Previous changes broke alignment of text and icons
2021-06-25 20:47:15 +02:00
Samantaz Fox
eecfc155b8
Right-align the RSS icon in channel playlists 2021-06-25 02:15:49 +02:00
Samantaz Fox
9cef7945c0
Fix RTL text in video titles on Firefox
The behavior was as follow: on Right-To-Left text (e.g Arabic) that is wrapped
(because it's too long to fit on one line), the second row and following rows
may or may not be right aligned (as RTL text should be). Opening the devtools
fixes that alignement, as consistently as closing the devtool breaks it.

This problem seems to arrive only in the following configurations (link nested
in a paragraph, both of which may or may not have the dir= attribute):

* `<p><a href="some_link">RTL_TEXT</a></p>`
* `<p><a href="some_link" dir="auto">RTL_TEXT</a></p>`
* `<p dir="auto"><a href="some_link">RTL_TEXT</a></p>`

with the following CSS:

```
p {
	unicode-bidi: plaintext;
	text-align: start;
}
```

Changing the HTML to the following configuration (a paragraph with the dir=
attribute, nested in a link) seems to fix it:

`<a href="some_link"><p dir="auto">RTL_TEXT</p></a>`
2021-06-25 02:03:09 +02:00
Mostafa Ahangarha
1b1932f787 fix feed alignment on community view 2021-06-24 17:40:02 +04:30
Samantaz Fox
9e4fd193c6 Limit descriptions width to ease mixed LTR/RTL text reading
This will prevent, on large pages, the LTR and RTL text to be
far away, on each side of the page. This could happen on channel
and playlists descriptions, when the page is displayed on a large
screen.
2021-06-24 17:35:44 +04:30
Mostafa Ahangarha
d16a748f37 set alignment for feed link 2021-06-24 17:08:40 +04:30
Cadence Ember
7ec93825b6 Change description-box from flex to block
I also make minor changes to the surroundings so that the same layout
and functionality as before is preserved.
2021-06-24 15:12:05 +04:30
syeopite
349f073b8e
Remove unnecessary "Welcome, " on username display 2021-06-19 06:03:50 -07:00
Mateusz Makowski
90c907710c
Display username in header 2021-06-19 04:58:42 -07:00
syeopite
7c49a0ba7a
Rephrase auto instance redirect preference 2021-06-19 04:17:49 -07:00