Commit graph

111 commits

Author SHA1 Message Date
saltycrys 6365ee7487 Make logger a constant
Instead of passing around `logger` there is now the global `LOGGER`.
2021-01-05 20:43:19 +01:00
Perflyst c89632d2a8
Merge pull request #1608 from saltycrys/add-subscription-traces
Add Subscription Traces
2020-12-31 11:30:04 +01:00
bopol 608b9e66f4 fix channel/ID/community endpoint
fixes https://github.com/iv-org/invidious/issues/1611
2020-12-30 01:09:39 +01:00
saltycrys c4ef055248 Add RefreshChannelsJob traces
Traces can be enabled with `-l trace`.

The problem with subscriptions is that sometimes requests to YouTube never
finish. As soon as that happens `channel-threads` times subscriptions stop
being refreshed. This is most likely a problem with the lsquick bindings.
2020-12-27 05:20:33 +01:00
saltycrys cc684ff0b1 Fix redirect channels
Redirect channels may use JS to redirect now, instead of only a response header
as it used to be. This fix reads the channel to redirect to from `ytInitialData`.
2020-12-03 21:02:52 +01:00
Théo Gaillard df3f9a2ae8
fix: channel info parsing 2020-11-30 19:35:45 +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 1ba17a0e14
feat: centralize ytInitialData parsing 2020-11-26 13:43:53 +01:00
Johnquai 6d29e9c1b7
Fix missing videos tab on some channels (#1462)
* Fix missing videos tab on some channels

* Fixed formatting

Co-authored-by: Linux User <user@localhost.local>
2020-11-12 15:35:12 +00:00
Triplesalt ec4a22687f
Update get_about_info for polymer (iv-org/invidious#1423) (#1429)
Update get_about_info for polymer (iv-org/invidious#1423)
2020-10-23 01:40:07 +00:00
Perflyst e02608edf8
Use channel API v3 2020-10-10 12:15:30 +02:00
Perflyst f65e57ee82
Fix formatting 2020-10-03 15:19:12 +02:00
Omar Roth b88872d54b
Fix sub refresh (#1370) 2020-09-09 23:03:27 +00: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 452d1e8307
Fix warnings with latest version of Crystal 2020-07-26 10:59:31 -04: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 ca1185d0be
Fix warnings in latest version of Crystal 2020-04-09 12:18:09 -05:00
Omar Roth e21f770485
Fix status check for channel page 2020-02-28 15:57:45 -05:00
Omar Roth 02fd02d482
Remove DB array concatenation 2020-02-28 12:14:29 -05:00
Omar Roth 9841f74adc
Add handling for comments with no content 2020-02-01 12:14:37 -05:00
Omar Roth 4aada65dae
Fix channel playlists for genre channels 2020-01-08 20:26:47 -05:00
Omar Roth 88a538e71b
Minor refactor for channel playlists 2019-12-05 15:47:35 -05:00
Omar Roth 513363504f
Add better error message for fetch_channel 2019-12-05 15:46:21 -05:00
Omar Roth c07cd3a856
Fix typo in playlist url 2019-11-14 10:11:33 -05:00
Omar Roth 7b2ca55089
Fix escaping in email query 2019-11-04 12:26:05 -05:00
Omar Roth b58950c574
Fix decoding for channel playlists extractor 2019-11-01 12:00:59 -04:00
Omar Roth c58841100a
Fix extractor for channel community cursor 2019-10-27 21:44:17 -04:00
Omar Roth 2ebfaf76f2
Refactor continuation token handling 2019-10-27 13:50:42 -04:00
Omar Roth 6930570fa2
Add HTTPClient pool 2019-10-25 12:58:16 -04:00
Omar Roth eef66de68c
Merge pull request #743 from girst/rssparams
Forward query string parameters from Atom feeds
2019-09-30 15:36:35 -04:00
girst 4aa1180fce Forward parameters given in &params= from Atom feeds
Any parameters given in &params=... are appended to /watch URLs.  This
allows e.g. passing &raw=1&listen=1 to a playlist of music and use an
rss reader like newsboat as a media player, like so:

    https://invidio.us/feed/playlist/XXX?params=%26raw%3D1%listen%3D1

All three feeds--channels, playlists, subscriptions--are supported.
2019-09-30 17:48:13 +02:00
Omar Roth 4361ea9686
Update DB calls for 0.31.0 2019-09-24 13:38:50 -04:00
leonklingele 1aefc5b540 Update to Crystal 0.31.0, resolve compiler deprecation warnings, update dependencies (#764)
* shard: update to crystal 0.31.0

Additionally, no longer use the Crystal "markdown" library which has
been removed from the Crystal stdlib in version 0.31.0.
See https://github.com/crystal-lang/crystal/pull/8115.

Also fix some deprecation warnings using the following commands:

    find . \( -type d -name .git -prune \) -o -type f -exec sed -i 's/URI\.escape/URI\.encode_www_form/g' "{}" \;
    find . \( -type d -name .git -prune \) -o -type f -exec sed -i 's/URI\.unescape/URI\.decode_www_form/g' "{}" \;
    sed -i 's/while \%pull\.kind \!\= \:end_object/until \%pull\.kind\.end_object\?/g' src/invidious/helpers/patch_mapping.cr
2019-09-24 13:31:33 -04:00
Omar Roth b1fc80b79a
Update sub_count extractor 2019-09-12 21:09:23 -04:00
Omar Roth 68cf24d100
Add support for channel redirects 2019-09-08 12:08:59 -04:00
Omar Roth 7b53b6bfef
Shrink continuation cursor for YouTube comments 2019-09-04 15:47:27 -04:00
Omar Roth 9f9cc1ffb5
Refactor search extractor 2019-08-21 18:23:20 -05:00
Omar Roth c41beae99a
Add fix for channels with empty descriptions 2019-08-01 07:49:33 -05:00
Omar Roth dce5816b18
Fix image url extractor 2019-07-31 19:16:09 -05:00
Omar Roth f18d8229c0
Refactor continuation protocol buffers 2019-07-20 20:18:08 -05:00
Omar Roth e736626953
Fix continuation for last page of playlists 2019-07-20 11:38:20 -05:00
Omar Roth af592ea8c1
Fix extraction for ytInitialData 2019-07-11 07:27:54 -05:00
Omar Roth 47f6fe069a
Add fix for unsupported attachment types 2019-07-09 23:09:16 -05:00
Omar Roth bcd239ac2b
Add community page 2019-07-09 09:31:04 -05:00
Omar Roth 60826c2d0c
Fix author thumbnail for community replies 2019-07-03 10:12:03 -05:00
Omar Roth 196ee1aa8b
Add '/api/v1/channels/comments' 2019-07-02 18:53:19 -05:00
Omar Roth 2df97cd2f5
Fix provided author for '/videos' endpoint 2019-07-02 07:29:01 -05:00
Omar Roth 48ad744ebf
Add support for default channel banners 2019-06-30 12:59:38 -05:00