Commit Graph

255 Commits

Author SHA1 Message Date
saltycrys 92bb477f68 Improve error message
The error message has been reworded and the issue template now includes the
date, route, version and backtrace.
2020-11-30 13:02:35 +01:00
saltycrys 3dac33ffba Add backtraces to errors (#1498)
Error handling has been reworked to always go through the new `error_template`,
`error_json` and `error_atom` macros.
They all accept a status code followed by a string message or an exception
object. `error_json` accepts a hash with additional fields as third argument.

If the second argument is an exception a backtrace will be printed, if it is a
string only the string is printed. Since up till now only the exception message
was printed a new `InfoException` class was added for situations where no
backtrace is intended but a string cannot be used.

`error_template` with a string message automatically localizes the message.
Missing error translations have been collected in https://github.com/iv-org/invidious/issues/1497
`error_json` with a string message does not localize the message. This is the
same as previous behavior. If translations are desired for `error_json` they
can be added easily but those error messages have not been collected yet.

Uncaught exceptions previously only printed a generic message ("Looks like
you've found a bug in Invidious. [...]"). They still print that message
but now also include a backtrace.
2020-11-30 10:59:21 +01:00
Théo Gaillard b41ca72d2b revert: remove 'JSON.parse("' 2020-11-26 18:22:31 +01:00
Théo Gaillard 1ba17a0e14 feat: centralize ytInitialData parsing 2020-11-26 13:43:53 +01:00
Théo Gaillard 480d31eb5e fix: ytInitialData parsing with regex 2020-11-26 07:22:47 +01:00
Émilien Devos 3a2f4d4def allow to set a custom anti-captcha api url (#1473) 2020-11-20 22:21:26 +01:00
saltycrys 9a8b81fcbe Fix storyboards 2020-10-25 09:35:16 +01:00
Ben Heller 22d9d16a7a Update parsing of ytInitialData (#1427)
Update parsing of ytInitialData
2020-10-22 10:02:15 +00:00
Matthew McGarvey 0520e67303 [refactor] Finish converting jobs to new job setup (#1420)
[refactor] Finish converting jobs to new job setup
2020-10-17 12:25:57 +00:00
Matthew McGarvey 989317e5d3 Extract RefreshChannelsJob (#1403) 2020-10-15 14:22:41 +00:00
Perflyst 812a21bce6 Merge pull request #1372 from tleydxdy/patch-1
Add exponential backoff to refresh_channels
2020-10-10 14:01:47 +02:00
Perflyst f65e57ee82 Fix formatting 2020-10-03 15:19:12 +02:00
Omar Roth 9995a8d53f Allow cookies from anti-captcha to be optional (#1371) 2020-09-09 23:04:08 +00:00
tleydxdy f02ac01f7e Add exponential backoff to refresh_channels
In practice with the patch I usually see backoff to 2 hours when blocked, so it should improve recovery time. The lim_thread is to work with multi-threading, not sure if it's the best way to do it.
2020-09-09 11:47:11 -04:00
Ben Heller 4a6e920d0e Use new youtube API to fetch channel videos (#1355)
* Use new API to fetch videos from channels

This mirrors the process used by subscriptions.gir.st. The old API is
tried first, and if it fails then the new one is used.

* Use the new API whenever getting videos from a channel

I created the get_channel_videos_response function because now instead
of just getting a single url, there are extra steps involved in getting
the API response for channel videos, and these steps don't need to be
repeated throughout the code.

The only remaining exception is the bypass_captcha function, which still
only makes a request to the old API. I don't know whether this code
needs to be updated to use the new API for captcha bypassing to work
correctly.

* Correctly determine video length with new api

* Remove unnecessary line
2020-09-02 20:28:57 +00:00
Omar Roth db83ede73c Add missing default for ConfigPreferences 2020-07-26 11:09:45 -04:00
Omar Roth 452d1e8307 Fix warnings with latest version of Crystal 2020-07-26 10:59:31 -04:00
Omar Roth b5f79444f9 Fix optional value in data extractor 2020-07-21 20:11:13 -04:00
Omar Roth 8c65b8c16f Update playlists to support polymer redesign 2020-06-24 22:19:36 -04:00
Omar Roth 83b1d80a5b Fix signature URL regex 2020-06-16 19:21:29 -05:00
Omar Roth 056e7432bd Update channel playlists to use polymer 2020-06-16 17:51:35 -05:00
Omar Roth 1eca969cf6 Add support for polymer redesign 2020-06-15 18:18:04 -05:00
Omar Roth c1cbdae5ee Make HOST_URL constant 2020-06-15 18:13:14 -05:00
Omar Roth 4d4b6a2fa0 Remove top page 2020-06-15 18:11:36 -05:00
Omar Roth d30a972a90 Support Crystal 0.35.0 2020-06-15 18:11:06 -05:00
Omar Roth 6435c7b921 Fix reCaptcha 2020-05-28 12:21:47 -05:00
Omar Roth ceb252986e Update captcha job 2020-05-25 12:52:15 -05:00
Omar Roth 750ef296c6 Update captcha handler 2020-05-13 16:09:39 -05:00
Omar Roth ca1185d0be Fix warnings in latest version of Crystal 2020-04-09 12:18:09 -05:00
Omar Roth 02d4186b11 Fix player matching 2020-04-09 10:55:50 -05:00
Omar Roth 3f97bebd69 Support adding video to playlist from watch page 2020-04-09 10:55:32 -05:00
Omar Roth 59a15ceef6 Remove VarInt class 2020-03-15 17:47:16 -04:00
Omar Roth 4011a113cc Strip invalid characters from referer URLs 2020-03-15 17:47:16 -04:00
Omar Roth a117d87f33 Skip validation checks for videoplayback, ggpht 2020-03-04 13:06:17 -05:00
leonklingele 0d536d11e3 Verify token signature in constant time, Run cheap checks first in token validation process (#1032)
* Verify token signature in constant time

To prevent timing side channel attacks

* Run cheap checks first in token validation process

Expensive checks such as the nonce lookup on the database or the
signature check can be run after cheap/fast checks.
2020-03-02 10:04:36 -06:00
Omar Roth 43da06a354 Remove temp fix for crystal/crystal-lang#7383 2020-02-20 18:30:46 -05:00
Leon Klingele bc9dc3bf1e Update code formatting for Crystal 0.33.0
Crystal 0.33.0 introduced some changes to to the code formatter.
Run "crystal tool format" so CI doesn't fail anymore.
2020-02-15 19:52:28 +01:00
Omar Roth a2c5211b20 Check /browse_ajax for channel blocks 2020-02-01 11:23:12 -05:00
Omar Roth 648cc0f006 Refactor signature extraction 2020-01-24 17:02:28 -05:00
Omar Roth 823603650f Add support for /sorry/index CAPTCHA 2019-12-03 19:14:11 -05:00
Omar Roth a017574f74 Add support for force_resolve to QUIC client 2019-11-28 08:19:28 -06:00
Omar Roth 0e3a48ff76 Update QUICPool 2019-11-24 13:41:47 -05:00
Omar Roth d46b26e3bc Use QUIC for connections to YouTube 2019-11-18 17:28:32 -05:00
Omar Roth 71bc9eea28 Add support for Anti-Captcha 2019-11-09 14:22:39 -05:00
Omar Roth 142d974641 Use force_resolve for search suggestions 2019-11-07 12:25:34 -05:00
Omar Roth bcdb8cd770 Fix default fo dark_mode 2019-11-04 17:08:13 -05:00
Omar Roth 833a60f29c Update pubsub to use client pool 2019-11-01 07:34:36 -04:00
Omar Roth 13e7cca1a4 Bump read timeout 2019-10-28 12:34:50 -04:00
Omar Roth 03e24cccd0 Add support for configurable administrator email 2019-10-27 14:18:07 -04:00
Omar Roth 0cf187dee7 Add support for image captcha in Google login 2019-10-27 00:19:05 -04:00