Commit Graph

958 Commits

Author SHA1 Message Date
syeopite
89585c3fc0
Fix imports 2021-06-25 09:43:27 -07:00
syeopite
1b569bbc99
Add support channel home pages + gen. improvements
This commit adds support for channel home pages and all of the
categories within it. However, the frontend code is a mess and thus
needs to be refactor soon. Though that would likely require a rework of
items.ecr

This commit also comes with some general cleanups and improvements.

Before this commit channel brand URls would only be supported on the
videos page (now home page). It has been improved to be able to handle
all channel URLs.

The category_type and auxiliary_data property has also been removed from
the Category struct. The former was never used and the latter allows for
random data to be added to the Struct presenting documentation issues.

Since the auxiliary_data variable was mainly used to store values from
the browse_endpoint in order to create URLs, its much simpler to instead
just get the URL from the webCommandMetadata.

As a result of this change the browse_endpoint_data attribute of
Category has also been removed.
2021-06-24 08:52:48 -07:00
syeopite
c91ff8506a
Make feat. chan page URL to compatible with yt 2021-06-24 08:52:47 -07:00
syeopite
e9dcac9bd4
Add support for featured channels page 2021-06-24 08:52:46 -07:00
syeopite
a566a45571
Add channel country and external links to API 2021-06-24 08:51:02 -07:00
syeopite
8fad19d805
Extract primary channel routes from invidious.cr
Also removes timedtext_video stub since all it does is redirect to the
homepage. However, Invidious's 404 handler already does this.
2021-06-24 08:51:02 -07:00
syeopite
35d94f9ed3
Change channel banner to be CSS background image
This is to allow for contents to be placed on the channel banner itself;
something that is required for the links widget shown on Youtube.
2021-06-24 08:39:27 -07:00
syeopite
ae07c7694f
Fetch external links favicon and add to about page 2021-06-24 08:39:27 -07:00
syeopite
af385663c4
Add about tab to channels 2021-06-24 08:39:26 -07:00
syeopite
05adaf7315
Refactor channel tab templates 2021-06-24 08:36:13 -07:00
syeopite
1bb8429fe5
Declutter search bar to only show search query
This commit changes the way search filters are parsed. Instead of
directly appending the data into the search query and creating k:v
pairs, all of the search filters are now a URL parameter. This results
in a clear look overall and hides much of the logic from the end user.

Closes #1969
2021-06-24 08:31:45 -07:00
Samantaz Fox
5a8825d016
Fix quoting of 'none' in CSP header
The keyword 'none' must be surrounded by single quotes.
Regression introduced by #2168.
2021-06-20 18:43:00 +02:00
syeopite
31fa3dfd59
Add route to redirect to another instance 2021-06-19 04:16:17 -07:00
TheFrenchGhosty
b8f0b4b583
Typo 2021-06-19 09:40:33 +02:00
Samantaz Fox
42d9fd9c88 Rewrite response headers
Fixes #2018 and #2153
2021-06-17 19:53:39 +02:00
syeopite
0a87ba6930
Decode URL encoded preference cookie when parsing 2021-06-08 13:11:04 -07:00
syeopite
065c104f27
Upgrade to crystal 1.0.0 2021-06-08 13:10:58 -07:00
Samantaz Fox
cac5f20a28 Move locales definition to i18n.cr 2021-04-21 16:10:25 +02:00
Andrew Zhao
9a8f1a0b0a add option to disable quic 2021-04-14 12:03:31 -04:00
syeopite
877bb5c821
Add aliases for watch route 2021-04-06 20:36:23 -07:00
Svallinn
cbdba66ef3
Use the youtubei API over the legacy one 2021-03-24 05:33:45 +00:00
Andrew Zhao
89fd35e02d fix comment replies 2021-03-20 00:43:12 -04:00
Svallinn
fa050fb8a8
Fix: functional hl / dark_mode / thin_mode params 2021-03-17 19:09:37 +00:00
TheFrenchGhosty
3cc9114f81
Merge pull request #1829 from SimonPhoenix96/xml-json-yt-sub-import
integrate legacy yt xml subscription import with new json sub import
2021-03-05 01:01:32 +01:00
Perflyst
fc8c555519
Merge pull request #1729 from Rjevski/12factor-database-url-restored
Support "Database URL" in addition to existing DB-related parameters
2021-03-02 18:41:10 +01:00
simonphoenix96
84487b2e52 format invidious.cr using crystal cli 2021-02-27 21:59:09 +01:00
Simon Phoenix
9689376de6
fixed line indent typo 2021-02-27 19:12:01 +01:00
simonphoenix96
a2f79a163f integrate legacy yt xml subscription import with new json sub import 2021-02-27 18:58:55 +01:00
Andrew Zhao
2600695927 fix search
Put search page in the super secret proto field
2021-02-25 22:19:22 -05:00
TheFrenchGhosty
c451aab150
Enable the Hebrew translation since it's now translated at more than 80% 2021-02-14 19:37:46 +00:00
TheFrenchGhosty
48bff9a5d2
Enable the Indonesian translation since it's now translated at more than 80% 2021-02-14 19:35:05 +00:00
saltycrys
5f03a583d1 Update code for Crystal 0.36.0
Rename `HTTPClient@socket` to `HTTPClient@io`, see
https://github.com/crystal-lang/crystal/pull/9543.

Rename `URI#full_path` to `URI#request_target`, see
https://github.com/crystal-lang/crystal/pull/10099.
2021-02-02 20:01:02 +01:00
saltycrys
991a04dc2a Adjust routes
Simple routes have been moved into a single `Misc` file.

Embed routes have been moved into a single `Embed` file.

The preferences route has been renamed to be more consistent with other parts
of the codebase.
2021-02-02 06:18:16 +01:00
Perflyst
82da5cfd01
Merge pull request #1712 from tenpura-shrimp/bumpvideojs
Bump videojs and fix webworker
2021-01-31 12:18:40 +01:00
Andre Borie
79e99908de Allow providing 12-Factor-style Database URL in config 2021-01-30 19:33:58 +00:00
TheFrenchGhosty
bd893cb24c Enable the Finish translation since it's now translated at more than 80% 2021-01-30 16:42:30 +01:00
saltycrys
c9a316ad35
Merge pull request #1702 from saltycrys/config
Config improvements
2021-01-30 14:46:10 +01:00
Andrew Zhao
4a0b10984a Bump videojs and fix webworker 2021-01-29 19:08:28 -05:00
saltycrys
70e14f92a4 Only start refresh jobs when necessary
If `channel_threads` or `feed_threads` is set to zero the corresponding job is
now not started.
2021-01-23 19:45:42 +01:00
saltycrys
b45f371911 Make config a constant
Instead of passing around `config` there is now the global `CONFIG`.
2021-01-23 19:39:04 +01:00
saltycrys
f1a7ee997b Add config environment variables
The config file can now be specified with `INVIDIOUS_CONFIG_FILE`.
A YAML formatted string can still be passed with `INVIDIOUS_CONFIG`, replacing
the config file.

Additionally all options can now be specified as environment variables.
The syntax for variable names is `INVIDIOUS_` followed by the option name in
upper case. The values are parsed as YAML.

These new env vars only update the provided main configuration, but it is
possible to point the config file at the example config and then use env vars
for all config options:
```
INVIDIOUS_CONFIG_FILE=./config/config.example.yml \
INVIDIOUS_CHANNEL_THREADS=10 \
./invidious
```
2021-01-23 18:58:13 +01:00
TheFrenchGhosty
799f97e847 Make invidious use all the translation files 2021-01-23 18:07:55 +01:00
Andrew Zhao
b7fe1db89a save host when using dash manifest 2021-01-10 18:00:45 -05:00
saltycrys
c81ca187f8 Fix downloads
The `itag` is now converted to a number, matching the `itag` of
`Video.adaptive_fmts` and `Video.fmt_stream`.
2021-01-09 20:40:01 +01:00
saltycrys
b0b8ba7000 Respect use_pubsub_feeds config
Setting `use_pubsub_feeds: false` now properly disables it.
2021-01-07 20:52:32 +01:00
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
saltycrys
7a8620a570 Add CLI arguments to config file
The log level can now be set with `log_level` (accepts ints and strings).
The log file can now be set with `output` (also accepts `STDOUT`).
2021-01-05 20:35:59 +01:00
Perflyst
2c24bf3222
Merge pull request #1389 from vhuynh3000/decrypt_on_demand
add config to decrypt on demand instead of polling
2021-01-05 19:32:22 +01:00
saltycrys
36e9fb9d68 Fix watch_videos endpoint
Playlists created by `watch_videos` do not have an author which caused a crash
previously.
2021-01-04 05:35:59 +01:00
vhuynh3000
3a2bd4e928 add config to decrypt on demand instead of polling 2021-01-03 20:50:52 +01:00