Commit Graph

776 Commits

Author SHA1 Message Date
syeopite
6c063436d4 Fix issues raised by code review
Remove explicit `self.` from #process of parsers

Remove explicit return tuple in get_issue_template

Fix formatting

Move inline issue template style to stylesheet

Use @id in ProblematicTimelineItem xml repr

Fix naming
2025-04-05 12:40:38 -07:00
syeopite
c288005bfd Make "show technical details" btn translatable 2025-03-19 22:52:04 -07:00
syeopite
9de69c0052 Improve design of placeholder item
Also makes it show the error backtrace
2025-03-19 22:52:03 -07:00
syeopite
94cb80ea81 Handle parse errors gracefully on timeline items
Prior to this commit, if even a single item fails to parse Invidious
will throw out an error. This means that even if everything else
on a page can be parsed and rendered without issues, the single
problematic item will cause the entire page to be unusable.

This commit gracefully handles parse errors by catching and then
replacing the problematic item with a new "timeline error" object
that represents the parse error. This will allow the rest of the page
to be rendered and an error card that will replace the location of the
problematic item.
2025-03-19 22:52:03 -07:00
Émilien (perso)
70ff463cc6 Add invidious companion support (#4985)
* add support for invidious companion

* redirect latest_version and dash manifest to invidious companion

* fix Shadowing outer local variable `response`

* fixing condition for Content-Security-Policy

* throw error if inv_sig_helper and invidious_companion used same time

* Use sample instead of Random.rand

Co-authored-by: syeopite <70992037+syeopite@users.noreply.github.com>

* Remove debug puts functions

Co-authored-by: syeopite <70992037+syeopite@users.noreply.github.com>

* modify the description for config.example.yaml about invidious companion

* move config checks for invidious companion

* separate invidious_companion logic + better config.yaml config

* fixing "end" misplacement

* fix linting + use .empty?

* crystal handle decompression already by itself

* fix download function when invidious companion used

* fix linting

* invidious companion always used so always add CSP and redirect latest_version

* apply all the suggestions + rework invidious_companion parameter

* format watch.cr

* fix ameba Redundant use of `Object#to_s` in interpolation

* add ability for invidious companion to check request from invidious

* Better document private_url and public_url

* Better doc for invidious_companion_key

* !empty? to present?

* skip proxy for invidious companion

* fixing format

* missing ,

* add companion pooling http

* fix: don't use http proxy when sending requests to companion

* fix: logic where we want to have the invidious logic if companion is not used

* chore: remove baseurl usage from invidious companion

* chore: change from inv-sig-helper to companion for required playback

* fix: use puts + add warning for inv-sig-helper deprecated

---------

Co-authored-by: syeopite <70992037+syeopite@users.noreply.github.com>
2025-03-13 16:44:00 +01:00
syeopite
fe4fa0480a Fix HLS being used for non-livestream videos (#5189)
Invidious does not currently support non-livestream hls playback

Originally, the HLS manifest check was essentially a boolean:
if the HLS manifest field was present, it was assumed to be a
livestream. Some videos include the HLS Manifest but aren't
livestreams.

In the case where they are livestreams, the video contains a videoType
field with the value "Livestream". In the case that they're normal
videos, the videoType is "Video". This is exposed via the
`video.live_now` property.

This commit just checks that `video.live_now` is true before treating
it as a livestream
2025-02-26 14:14:29 -08:00
syeopite
58ad848d56 Channels: Support YouTube's change to from /community to /posts (#5183) 2025-02-26 14:13:22 -08:00
syeopite
9fbe3944b0 Channels: Add Courses to channel page and channel API (#5158)
Closes #5144
2025-02-26 14:08:44 -08:00
syeopite
f95f87e448 Frontend: Add a first page and previous page buttons for channel navigation (#4123) 2025-02-26 13:54:25 -08:00
Alex Maras
49afbf2a14 Fix an issue with the HLS manifest check for livestream videos
Originally, the HLS manifest check was essentially a boolean: if the HLS
manifest field was present, it was assumed to be a livestream. Some
videos include the HLS Manifest but aren't livestreams.

In the case where they are livestreams, the video contains a videoType
field with the value "Livestream". In the case that they're normal
videos, the videoType is "Video". This is exposed via the video.live_now
method.

This commit just checks that video.live_now is true before treating it
as a livestream
2025-02-21 16:30:39 +08:00
Fijxu
d70681538a Channels: Fix community tab 2025-02-18 19:20:55 -03:00
ChunkyProgrammer
eaf47385c5 Add Courses to channel page and channel API 2025-01-25 14:43:39 -05:00
Samantaz Fox
b0c7dd9771 HTML: Replace hidden 'action' input with query parameter
The server side can only handle parameters passed as URL query
parameters and not inside the request body
2024-10-29 22:14:27 +01:00
Samantaz Fox
dbdf2ad23a Routes: Simplify actions in watch_ajax 2024-10-29 18:27:53 +01:00
Samantaz Fox
dbd96c77e4 Routes: Simplify actions in token_ajax 2024-10-29 18:21:58 +01:00
Samantaz Fox
e453a2a682 Routes: Simplify actions in subscription_ajax 2024-10-29 18:16:52 +01:00
Samantaz Fox
7e4b3b182a Routes: Simplify actions in playlist_ajax 2024-10-29 18:09:50 +01:00
Samantaz Fox
82ac9a8609 Preferences: Add option to control preloading of video data (#4122)
This PR adds a configuration option to control the preloading of video data on
page load with the HTML5 'preload'[1] attribute on the `<video>` element.

The option is enabled by default, meaning that the `preload` attribute's value
will be 'auto'. If users want to prevent preloading of video data, they
can disable the option, which will set the attribute value to 'none'.

[1](https://www.w3schools.com/tags/att_video_preload.asp)

Closes issue 4110
2024-10-08 17:38:06 +02:00
Samantaz Fox
da70c9b7b0 Ameba: Miscellaneous fixes (#4807)
End of a series of PRs meant to improve code quality.

Related to issue 2231
2024-08-24 19:42:10 +02:00
Samantaz Fox
febf18cbf7 UI: Add search button to search bar (#4706)
Closes issue 529
2024-08-24 19:38:48 +02:00
syeopite
f66068976e Ameba: Fix Naming/PredicateName 2024-08-21 02:43:08 -07:00
Samantaz Fox
80ffc442f2 HTML: Add rel="noreferrer noopener" to external links (#4667)
Note: Does not add rel="noreferrer noopener" to:
 * links in channel description
 * links in video descriptions
 * links in video comments

Related to issue 4267
2024-08-11 13:35:57 +02:00
Samantaz Fox
8b1da2001e Preferences: Fix handling of modified source code URL(#4437)
Before this PR, setting the modified code repo URL through the preferences
page in Invidious was broken:

* the HTML input tag for this field had invalid type "input"
  (though browser falls back on text input)

* the URL was used to set the "checked" property and not as a plain value,
  which makes no sense for a text-based input (and resulted in a blank field)

* when the submitted field is empty, the retrieved value was an empty 'String'
  instead of 'nil', causing the "modified source code URL" to be an empty
  'href' link which just pointed to the current page

No associated open issue
2024-07-21 17:23:48 +02:00
thansk
1ce2d10c50 fix: use ion icon for search icon 2024-05-20 14:17:30 +00:00
thansk
5abafb8296 fix: use a search icon instead of text 2024-05-20 11:49:56 +00:00
thansk
9cd2e93a2e feat: allow submitting search with mouse 2024-05-19 11:46:55 +00:00
ulmemxpoc
c4fec89a9b Apply suggestions from code review 2024-05-10 11:23:11 -07:00
Fijxu
9d66676f2d Use full URL in the og:image property. 2024-05-01 22:21:18 -04:00
ulmemxpoc
f696f96824 Add rel="noreferrer noopener" to external links 2024-04-30 03:40:19 +00:00
nooptek
499aed37dd Fix handling of modified source code URL setting 2024-03-10 17:51:29 +01:00
Samantaz Fox
e0ce59d3e8 Channels: Add support for multi-image community posts (#4412)
This PR adds a CSS-only image carousel for community posts with more than
one image attached.

Closes issue 3522
2024-02-19 00:16:17 +01:00
Samantaz Fox
c5a3112e49 CSS: expand #contents width on small screens (#4405)
The #contents div now takes the full width on small screens (< 1280px).
All page elements have a little more room, especially the video titles.
2024-02-19 00:16:17 +01:00
ChunkyProgrammer
ef6b766b29 Add support for multi image community posts 2024-02-15 21:45:21 -05:00
Samantaz Fox
f32764c840 HTML: Preserve playlist in "Watch on YouTube" link (#4342)
It seems that at some point, Youtube changed the URL parameter from `plid`
to `list` and we didn't notice. This fixes that.

Closes #3929
2024-02-12 22:23:44 +01:00
Samantaz Fox
d30dae43fe HTML: Add title to toggle theme icon (#4320) 2024-02-12 22:20:14 +01:00
toabr
4a339df5c4 CSS: expand #contents width on small screens 2024-01-27 00:38:47 +01:00
guidiasz
87a8207f37 fix: "Watch on YouTube" preserve current playlist 2023-12-18 13:23:55 -03:00
ChunkyProgrammer
fe8b1b4cc4 Add title to toggle theme icon 2023-12-07 11:43:56 -05:00
ChunkyProgrammer
f1edb1d6bf fix related video author when id is empty 2023-12-07 09:39:33 -05:00
Chunky programmer
b5f8b4542a Search: Don't error if AuthorId does not exist 2023-12-07 09:39:33 -05:00
RadoslavL
e8c2388589 Removed the purging of the query parameters 2023-10-26 11:30:12 +03:00
RadoslavL
995df2d296 Removed a space 2023-10-22 17:50:39 +03:00
RadoslavL
c0d75bc52f Removed <noscript> and the user preferences option 2023-10-22 13:54:35 +03:00
Samantaz Fox
2414e7db41 User: Add support for importing Youtube watch history (#4171) 2023-10-21 18:33:05 +02:00
Samantaz Fox
2a65b5f52e Frontend: Add video timestamp on external links (#4101) 2023-10-21 18:31:42 +02:00
Ulysses Zhan
b9cbdce976 add: importing watch history from YouTube 2023-10-14 15:49:33 -07:00
Samantaz Fox
60fae015d8 Add support for community post page/comments (#4010) 2023-10-07 19:58:54 +02:00
RadoslavL
c9a843c7fe Replaced to_json with to_pretty_json 2023-09-30 19:11:42 +03:00
RadoslavL
5cdbc184c7 Added a previous_page_button preference option and made switching between the first page and previous page buttons possible 2023-09-30 18:36:43 +03:00
ChunkyProgrammer
f77e4378fe Add support for viewing comments without js
Improve stylings
2023-09-28 18:09:45 -04:00