Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[pull] master from iv-org:master #127

Open
wants to merge 2,704 commits into
base: master
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
2704 commits
Select commit Hold shift + click to select a range
0ab6d9e
Videos: Use android test suite client (#4650)
SamantazFox Apr 26, 2024
79b342a
Rename legacy changelog file
SamantazFox Apr 26, 2024
eda7444
Update changelog
SamantazFox Apr 26, 2024
b0ec359
CI: Bump Crystal version matrix
SamantazFox Apr 27, 2024
470245d
YtAPI: Remove API keys like official clients
SamantazFox Apr 27, 2024
2fdb6dd
CI: Bump Crystal version in docker too
SamantazFox Apr 27, 2024
5b11ca2
Use string interpolation instead of concatenation
tracedgod Apr 28, 2024
eb8fcc9
Add support for using HTTP proxies
syeopite Aug 25, 2023
3b471ae
Automatically initialize proxy via stdlib override
syeopite Oct 4, 2023
ccb2a6c
Bump http_proxy to v0.10.3
syeopite Apr 29, 2024
f696f96
Add rel="noreferrer noopener" to external links
ulmemxpoc Apr 30, 2024
9d66676
Use full URL in the og:image property.
Fijxu May 2, 2024
c4fec89
Apply suggestions from code review
ulmemxpoc May 10, 2024
90fcf80
Handle playlists cataloged as Podcast
Fijxu May 13, 2024
e0d0dbd
API: Check if playlist has any videos on it.
Fijxu May 14, 2024
71a821a
Return actual height, width and fps for streams in /api/v1/videos
absidue Apr 20, 2024
f57aac5
Fix the missing `p` in the quality labels.
absidue Apr 21, 2024
57e606c
Add back missing resolution field
absidue Apr 25, 2024
3b773c4
Fix missing commas
absidue Apr 25, 2024
9cd2e93
feat: allow submitting search with mouse
thansk May 19, 2024
5abafb8
fix: use a search icon instead of text
thansk May 20, 2024
1ce2d10
fix: use ion icon for search icon
thansk May 20, 2024
6b7e730
Validate override for crystal 1.12.1
syeopite May 22, 2024
cff25a7
Refactor instance fetching logic into separate job
syeopite Sep 24, 2023
41c978d
Use HTTP::Client directly in instance list job
syeopite Dec 7, 2023
aa96cf3
Fix invalid logic for instance uptime comparison
syeopite Dec 7, 2023
9980c0e
Update uptime logic to handle updown.io response
syeopite May 22, 2024
1ae14cc
move helm chart to a dedicated github repository (#4711)
unixfox May 26, 2024
31ad708
fix: Handle nil value for genreUcid in Video struct
meatball133 May 30, 2024
629599f
Fix change in parser file
meatball133 May 30, 2024
5957523
Improve code quallity
meatball133 May 30, 2024
04ca646
Make solution complaint with spec
meatball133 May 30, 2024
0224162
Rewrite transcript logic to be more generic
syeopite Jun 12, 2024
5b51912
Raise error when transcript does not exist
syeopite Jun 12, 2024
288e1dc
Fix player menus hiding onHover
giacomocerquone Jun 12, 2024
f466116
Extract label for transcript in YouTube response
syeopite Jun 13, 2024
e82c965
Player: Fix video playback for videos that have already been watched.
Fijxu Jun 5, 2024
45fd4a1
Add job to lint code through Ameba in CI
syeopite Jun 16, 2024
a644d76
Update ameba config
syeopite Jun 16, 2024
e0ed094
Cache ameba binary
syeopite Jun 16, 2024
6b42957
Update ameba version
syeopite Jun 16, 2024
248df78
Update spec and rollback to last commits changes
meatball133 Jun 18, 2024
3bac467
Call `as?` instead of `as` to not force string conversion
meatball133 Jun 19, 2024
933802b
Use "master" label for master container build
syeopite Jun 24, 2024
848ab1e
Specify which workflow builds from master
syeopite Jun 24, 2024
dd38eef
Add workflow to build container on release
syeopite Jun 24, 2024
8f5c6a6
Rename container workflows
syeopite Jul 2, 2024
64d1f26
Fix trigger for stable container build
syeopite Jul 2, 2024
aace30b
Bump nightly container build workflow crystal ver
syeopite Jul 4, 2024
220cc9b
Typo
syeopite Jul 4, 2024
911dad6
Channel: parse subscriber count and channel banner
ChunkyProgrammer Jul 9, 2024
d135e5b
CI: Add release based containers (#4763)
SamantazFox Jul 10, 2024
0a54e26
CI: Run Ameba (#4753)
SamantazFox Jul 10, 2024
a56a724
Rewrite transcript logic to be more generic (#4747)
SamantazFox Jul 10, 2024
e9bab06
HTML: Use full URL in the og:image property (#4675)
SamantazFox Jul 10, 2024
99c7e9e
YtAPI: Remove API keys like official clients (#4655)
SamantazFox Jul 10, 2024
de61b16
CI: Bump Crystal version matrix (#4654)
SamantazFox Jul 10, 2024
5e0f553
Allow embedding videos in local HTML files (#4450)
SamantazFox Jul 10, 2024
436a61e
API: Fix error code for disabled popular endpoint (#4296)
SamantazFox Jul 10, 2024
bad9209
Channels: Add sort options to streams (#4224)
SamantazFox Jul 10, 2024
593257a
Fix typo
syeopite Jul 12, 2024
c45e710
Disable Documentation/DocumentationAdmonition rule
syeopite Jul 12, 2024
8a90add
Ameba: Fix Naming/VariableNames
syeopite Jul 12, 2024
8d9723d
Disable Naming/AccessorMethodName rule
syeopite Jul 12, 2024
8258062
Ameba: Fix Lint/NotNilAfterNoBang
syeopite Jul 16, 2024
76ab51e
Ameba: Disable Naming/BlockParameterName
syeopite Jul 17, 2024
fa50e0a
Simplify last_node retrieval
syeopite Jul 17, 2024
fad0a4f
Ameba: Fix Lint/UselessAssign
syeopite Jul 17, 2024
8575794
Exclude spec/parsers_helper from Lint/SpecFilename
syeopite Jul 17, 2024
5a12005
API: Fix URL for vtt subtitles (#4221)
SamantazFox Jul 21, 2024
8b1da20
Preferences: Fix handling of modified source code URL(#4437)
SamantazFox Jul 21, 2024
e62d4db
API: Return actual stream height, width and fps (#4586)
SamantazFox Jul 21, 2024
1ff0775
API: Fix duplicated query parameters in proxied video URLs (#4587)
SamantazFox Jul 21, 2024
733bd27
Handle playlists cataloged as Podcast (#4695)
SamantazFox Jul 21, 2024
4f60fee
API: Fix out of bound error on empty playlists (#4696)
SamantazFox Jul 21, 2024
7fdbda6
Videos: Fix genre url being unusable (#4717)
SamantazFox Jul 21, 2024
09bf09b
Player: Fix playback position of already watched videos (#4731)
SamantazFox Jul 21, 2024
325561e
Channel: parse subscriber count and channel banner (#4785)
SamantazFox Jul 21, 2024
53223f9
Add ability to set po_token and visitordata ID
unixfox Jul 24, 2024
3415507
Ameba: undo Lint/NotNilAfterNoBang in signatures.cr
syeopite Jul 25, 2024
636a6d0
Ameba: Fix Lint/UnusedArgument
syeopite Jul 25, 2024
c8fb75e
Ameba: Fix Lint/UnusedBlockArgument
syeopite Jul 25, 2024
0db3b83
Ameba: Fix Lint/HashDuplicatedKey
syeopite Jul 25, 2024
205f988
Ameba: Fix Naming/MethodNames
syeopite Jul 25, 2024
63a7299
Misc: Sync crystal overrides with current stdlib
SamantazFox Jul 3, 2024
a845752
Jobs: Remove the signature function update job
SamantazFox Jul 3, 2024
56a7488
Helpers: Add inv_sig_helper client
SamantazFox Jul 1, 2024
ec8b791
Videos: Make use of the video decoding
SamantazFox Jul 3, 2024
b509aa9
SigHelper: Fix many issues
SamantazFox Jul 3, 2024
10e5788
Videos: Send player sts when required
SamantazFox Jul 3, 2024
61d7505
SigHelper: Use 'URI.parse' instead of 'URI.new'
SamantazFox Jul 4, 2024
6506b8d
Ameba: Fix Naming/PredicateName
syeopite Jul 26, 2024
90e94d4
Merge pull request #4792 from syeopite/disable-ameba-rules
syeopite Jul 27, 2024
e098c27
Remove unused methods in `Invidious::LogHandler`
syeopite Jul 28, 2024
3b7e45b
SigHelper: Small fixes + suggestions from code review
SamantazFox Jul 31, 2024
ec1bb5d
SigHelper: Add support for PLAYER_UPDATE_TIMESTAMP opcode
SamantazFox Aug 1, 2024
7798faf
SigHelper: Make signature server optional and configurable
SamantazFox Aug 7, 2024
cc36a82
SigHelper: Fix some logic errors raised during code review
SamantazFox Aug 7, 2024
eb2dfe0
Ameba: i18next.cr fixes (#4806)
SamantazFox Aug 11, 2024
b45310c
Ameba: Fix unused argument Lint warnings (#4805)
SamantazFox Aug 11, 2024
fa6c515
Ameba: Fix Lint/NotNilAfterNoBang (#4796)
SamantazFox Aug 11, 2024
9bf754e
Remove unused methods in Invidious::LogHandler (#4812)
SamantazFox Aug 11, 2024
80ffc44
HTML: Add rel="noreferrer noopener" to external links (#4667)
SamantazFox Aug 11, 2024
5e38ef5
Ameba: Fix Lint/UselessAssign (#4795)
SamantazFox Aug 11, 2024
e6c39f9
add pot= parameter now required by youtube
unixfox Aug 13, 2024
4b8bfe1
use docker compose instead of docker-compose for CI
unixfox Aug 13, 2024
c9fb194
Update Serbian (cyrillic) translation
weblate Aug 13, 2024
f842033
Update Serbian (cyrillic) translation
weblate Aug 13, 2024
7cf7cce
Update Greek translation
weblate Aug 13, 2024
e99b591
Update Russian translation
weblate Aug 13, 2024
84aded8
Update Serbian (cyrillic) translation
weblate Aug 13, 2024
456b00a
Update Ukrainian translation
weblate Aug 13, 2024
5cb1688
Update Catalan translation
weblate Aug 13, 2024
2d485b1
Update Welsh translation
weblate Aug 13, 2024
53a60bf
Update Portuguese translation
weblate Aug 13, 2024
32ea9cf
Update Icelandic translation
weblate Aug 13, 2024
366732b
Update Serbian (cyrillic) translation
weblate Aug 13, 2024
8ad19f0
Update Serbian (cyrillic) translation
weblate Aug 13, 2024
e538410
Update Dutch translation
weblate Aug 13, 2024
ae93146
Update French translation
weblate Aug 13, 2024
86ec5ad
Update Swedish translation
weblate Aug 13, 2024
f837d99
Update Persian translation
weblate Aug 13, 2024
905fed6
Update Finnish translation
weblate Aug 13, 2024
89c17f2
Update Serbian (cyrillic) translation
weblate Aug 13, 2024
bedcf97
Update Korean translation
weblate Aug 13, 2024
a8825a2
Update Serbian (cyrillic) translation
weblate Aug 13, 2024
3add83c
Update Norwegian Bokmål translation
weblate Aug 13, 2024
7a7d113
Translations update from Hosted Weblate (#4659)
SamantazFox Aug 13, 2024
88b9f17
Ameba: Fix Naming/VariableNames (#4790)
SamantazFox Aug 13, 2024
2d7869b
Add support for an external signature server (#4772)
SamantazFox Aug 13, 2024
2d18ff1
Add ability to set po_token and visitordata ID (#4789)
SamantazFox Aug 13, 2024
e319c35
Videos: use intermediary variable when using CONFIG.po_token
SamantazFox Aug 13, 2024
96ade64
Channel: Render age restricted channels
ChunkyProgrammer Nov 27, 2023
e31053e
Use dig to get properties
ChunkyProgrammer May 19, 2024
466bfbb
SigHelper: Fix inverted time comparison in 'check_update'
SamantazFox Aug 14, 2024
acbb625
YtAPI: Update clients to latest version
SamantazFox Aug 15, 2024
cc33d3f
YtAPI: Also update User-Agent string
SamantazFox Aug 15, 2024
0b28054
videos: Fix XSS vulnerability in description/comments
SamantazFox Aug 15, 2024
6878822
Storyboards: Move parser to its own file
SamantazFox Oct 8, 2023
8327862
Storyboards: Use replace the NamedTuple by a struct
SamantazFox Oct 8, 2023
da3d58f
Storyboards: Cleanup and document code
SamantazFox Oct 8, 2023
7b50388
Storyboards: Fix broken first storyboard
SamantazFox Oct 8, 2023
a335bc0
Storyboards: Fix some small logic mistakes
SamantazFox Oct 20, 2023
5b05f3b
Storyboards: Workarounds for videojs-vtt-thumbnails
SamantazFox Aug 16, 2024
b795bdf
HTML: Sort playlists alphabetically in watch page drop down
SamantazFox Aug 16, 2024
764965c
Storyboards: Fix lint error
SamantazFox Aug 17, 2024
eb0f651
Add a youtube URL sanitizer
SamantazFox Oct 1, 2023
4c0b5c3
Search: Add support for youtu.be and youtube.com URLs
SamantazFox Oct 5, 2023
31a8042
Search: Add URL search inhibition logic
SamantazFox Feb 13, 2024
78c5ba9
Misc: Clean some code in UrlSanitizer
SamantazFox Feb 17, 2024
85deea5
Search: Change smart search inhibitor to a backslash
SamantazFox Apr 27, 2024
c606465
Proxify formatStreams URLs too
colinleroy Aug 19, 2024
22b35c4
Ameba: Fix Style/WhileTrue
syeopite Jul 26, 2024
f660689
Ameba: Fix Naming/PredicateName
syeopite Jul 27, 2024
d1cd790
Ameba: Fix Lint/RedundantStringCoercion
syeopite Jul 27, 2024
ecbea0b
Ameba: Fix Lint/ShadowingOuterLocalVar
syeopite Jul 27, 2024
b200ebf
CSS: Remove extra space in default.css
SamantazFox Aug 21, 2024
21ab5dc
Storyboard: Revert cue timing "fix"
SamantazFox Aug 21, 2024
b2133c6
Videos: Convert URL before putting result into cache
SamantazFox Aug 15, 2024
febf18c
UI: Add search button to search bar (#4706)
SamantazFox Aug 24, 2024
828da3c
API: Proxy formatStreams URLs too (#4859)
SamantazFox Aug 24, 2024
da70c9b
Ameba: Miscellaneous fixes (#4807)
SamantazFox Aug 24, 2024
9e55799
Channel: Render age restricted channels (#4295)
SamantazFox Aug 24, 2024
3c6a662
Search: Add support for Youtube URLs (#4146)
SamantazFox Aug 24, 2024
ccecc6d
Fix lint errors introduced in #4146 and #4295 (#4876)
syeopite Aug 24, 2024
cd2daf4
Storyboards: Various fixes and code cleaning (#4153)
SamantazFox Aug 24, 2024
15669ac
SigHelper: Fix inverted time comparison in 'check_update' (#4845)
SamantazFox Aug 24, 2024
0699e5f
YtAPI: Bump client versions (#4849)
SamantazFox Aug 24, 2024
2876ee0
HTML: Fix XSS vulnerability in description/comments (#4852)
SamantazFox Aug 24, 2024
c5fdd9e
HTML: Sort playlists alphabetically in watch page drop down (#4853)
SamantazFox Aug 24, 2024
480e073
Use HTTP pools for image requests to YouTube
syeopite Dec 9, 2023
52bc9aa
Refactor duplicate logic in image routes
syeopite Dec 9, 2023
06e1a50
Fix headers not being added in image requests
syeopite Dec 9, 2023
4bc77b8
Move YTIMG_POOLS to connection_pool.cr
syeopite Dec 23, 2023
003c6f8
Preserve connection close header of get_storyboard
syeopite Jan 8, 2024
75b6861
Remove useless proc usage in images.cr
syeopite Apr 25, 2024
80958aa
Release v2.20240825
SamantazFox Aug 25, 2024
cec905e
Allow manual trigger of release-container build (#4877)
syeopite Aug 25, 2024
3e17d04
Release v2.20240825.1
SamantazFox Aug 25, 2024
4f066e8
CI: Fix docker container tags
SamantazFox Aug 26, 2024
5baaedf
CI: Fix docker container tags (#4883)
SamantazFox Aug 26, 2024
4782a67
Release v2.20240825.2
SamantazFox Aug 26, 2024
157c4c3
Fix 'invalid byte sequence' error when subscribing to playlists
DmitrySandalov Aug 28, 2024
f1baeef
Ameba: Disable Style/RedundantNext rule
syeopite Aug 29, 2024
bd34659
Fix 'invalid byte sequence' error when subscribing to playlists ([] a…
DmitrySandalov Aug 29, 2024
f247b2f
Update config/config.example.yml
Nerdmind Aug 30, 2024
5e899d7
Search: Fix for youtu.be URL in sanitizer
SamantazFox Sep 2, 2024
de918b9
use web screen embed for fixing potoken functionality (#4923)
unixfox Sep 16, 2024
cec3cfb
Revert "use web screen embed for fixing potoken functionality (#4923)"
unixfox Sep 16, 2024
d9df90b
use WEB_CREATOR when po_token with WEB_EMBED as a fallback (#4928)
unixfox Sep 19, 2024
a021b93
Update latest version WEB_CREATOR + fix comment web embed (#4930)
unixfox Sep 20, 2024
53e8a5d
Remove myself from CODEOWNERS on the config file (#4942)
TheFrenchGhosty Sep 28, 2024
2e64936
Parse more metadata badges for SearchVideos
ChunkyProgrammer Aug 20, 2024
1961fc3
switch to enum flag instead of adding lots of properties to SearchVideo
ChunkyProgrammer Aug 24, 2024
b384133
Fix tests
ChunkyProgrammer Aug 24, 2024
98f1e41
Rename CCommons to ClosedCaptions
ChunkyProgrammer Aug 25, 2024
8912e24
Update Turkish translation
weblate Oct 6, 2024
4e7fd7a
Update Portuguese (Brazil) translation
weblate Oct 6, 2024
33df824
Update German translation
weblate Oct 6, 2024
542d4fe
Update Greek translation
weblate Oct 6, 2024
d7a5ca8
Update Russian translation
weblate Oct 6, 2024
79d1aaf
Update Ukrainian translation
weblate Oct 6, 2024
e09a7de
Update Japanese translation
weblate Oct 6, 2024
7a95cb4
Update Czech translation
weblate Oct 6, 2024
2b3619e
Update Portuguese translation
weblate Oct 6, 2024
486b5b3
Update Icelandic translation
weblate Oct 6, 2024
fead760
Update Croatian translation
weblate Oct 6, 2024
cd43997
Update Polish translation
weblate Oct 6, 2024
d3eedab
Update Italian translation
weblate Oct 6, 2024
5d46eba
Update Arabic translation
weblate Oct 6, 2024
4e8d032
Update Interlingua translation
weblate Oct 6, 2024
56bccab
Update Dutch translation
weblate Oct 6, 2024
46eaa0f
Update Spanish translation
weblate Oct 6, 2024
76f045b
Update French translation
weblate Oct 6, 2024
51562f4
Update Swedish translation
weblate Oct 6, 2024
edb69d6
Update Persian translation
weblate Oct 6, 2024
d63b15d
Update Serbian translation
weblate Oct 6, 2024
ecfcad8
Update Albanian translation
weblate Oct 6, 2024
d72531d
Update Korean translation
weblate Oct 6, 2024
3af11d8
Update English (United States) translation
weblate Oct 6, 2024
d9afe38
Update Chinese (Traditional Han script) translation
weblate Oct 6, 2024
77f5771
Update Chinese (Simplified Han script) translation
weblate Oct 6, 2024
66f5b12
Update Serbian (Cyrillic script) translation
weblate Oct 6, 2024
0fecde6
Update Norwegian Bokmål translation
weblate Oct 6, 2024
f6e0925
Use "LIVE" instead of "LIVE NOW" when parsing the live_now video badge
ChunkyProgrammer Oct 7, 2024
7c79ee7
Performance: Improve speed of automatic instance redirection (#4193)
SamantazFox Oct 8, 2024
82ac9a8
Preferences: Add option to control preloading of video data (#4122)
SamantazFox Oct 8, 2024
171c0a0
HTML: Add error message to "search issues on GitHub" link (#4652)
SamantazFox Oct 8, 2024
3cfcc16
Videos: Convert URL before putting result into cache (#4850)
SamantazFox Oct 8, 2024
d3830f7
Translations update from Hosted Weblate (#4862)
SamantazFox Oct 8, 2024
0ac9367
Parse more metadata badges for SearchVideos (#4863)
SamantazFox Oct 8, 2024
97895a4
Playlists: Fix 'invalid byte sequence' error when subscribing (#4887)
SamantazFox Oct 8, 2024
82d797b
Ameba: Disable Style/RedundantNext rule (#4888)
SamantazFox Oct 8, 2024
d5f5490
Search: Fix 'youtu.be' URLs in sanitizer (#4894)
SamantazFox Oct 8, 2024
a88a723
Update CHANGELOG.md
SamantazFox Oct 8, 2024
84e4746
SigHelper: Reconnect to signature helper
Fijxu Sep 18, 2024
f51a3b8
Makefile: Add MT option to enable the 'preview_mt' flag
SamantazFox Oct 9, 2024
952b362
Add "Filipino (auto-generated)" to the list of caption languages
SamantazFox Oct 10, 2024
90544e0
update the mocks with the latest updated data
unixfox Oct 13, 2024
e6f52ea
update submodule
unixfox Oct 13, 2024
0d03818
libsqlite3-dev is now missing in the CI env
unixfox Oct 13, 2024
70e4eb7
Merge pull request #5004 from unixfox/update-mocks
unixfox Oct 13, 2024
d8b893e
Bump CI matrix (#5015)
syeopite Oct 18, 2024
f326bcf
Add support for using Invidious through a HTTP Proxy (#4270)
SamantazFox Oct 30, 2024
9957da2
Proxy: Use connection pools for images (#4326)
SamantazFox Oct 30, 2024
0fb67cc
Player: Fix a bug where menus were hard to open (#4750)
SamantazFox Oct 30, 2024
2eeb6a7
SigHelper: Reconnect to signature helper (#4991)
SamantazFox Oct 30, 2024
59acf23
Makefile: Add MT option to enable the 'preview_mt' flag (#4993)
SamantazFox Oct 30, 2024
c427c18
Captions: Add "Filipino (auto-generated)" to the list of languages (#…
SamantazFox Oct 30, 2024
2e3a7ad
Update CHANGELOG.md
SamantazFox Oct 30, 2024
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
72 changes: 72 additions & 0 deletions .ameba.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,72 @@
#
# Lint
#

# Exclude assigns for ECR files
Lint/UselessAssign:
Excluded:
- src/invidious.cr
- src/invidious/helpers/errors.cr
- src/invidious/routes/**/*.cr

# Ignore false negative (if !db.query_one?...)
Lint/UnreachableCode:
Excluded:
- src/invidious/database/base.cr

# Ignore shadowed variable `key` (it works for now, and that's
# a sensitive part of the code)
Lint/ShadowingOuterLocalVar:
Excluded:
- src/invidious/helpers/tokens.cr

Lint/NotNil:
Enabled: false

Lint/SpecFilename:
Excluded:
- spec/parsers_helper.cr


#
# Style
#

Style/RedundantBegin:
Enabled: false

Style/RedundantReturn:
Enabled: false

Style/RedundantNext:
Enabled: false

Style/ParenthesesAroundCondition:
Enabled: false

# This requires a rewrite of most data structs (and their usage) in Invidious.
Naming/QueryBoolMethods:
Enabled: false

Naming/AccessorMethodName:
Enabled: false

Naming/BlockParameterName:
Enabled: false

# Hides TODO comment warnings.
#
# Call `bin/ameba --only Documentation/DocumentationAdmonition` to
# list them
Documentation/DocumentationAdmonition:
Enabled: false


#
# Metrics
#

# Ignore function complexity (number of if/else & case/when branches)
# For some functions that can hardly be simplified for now
Metrics/CyclomaticComplexity:
Enabled: false
3 changes: 3 additions & 0 deletions .gitattributes
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
# https://github.community/t/how-to-change-the-category/2261/3
videojs-*.js linguist-detectable=false
video.min.js linguist-detectable=false
18 changes: 18 additions & 0 deletions .github/CODEOWNERS
Validating CODEOWNERS rules …
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
# Default and lowest precedence. If none of the below matches, @iv-org/developers would be requested for review.
* @iv-org/developers

docker-compose.yml @unixfox
docker/ @unixfox
kubernetes/ @unixfox

README.md @thefrenchghosty
config/config.example.yml @SamantazFox @unixfox

scripts/ @syeopite
shards.lock @syeopite
shards.yml @syeopite

locales/ @SamantazFox
src/invidious/helpers/i18n.cr @SamantazFox

src/invidious/helpers/youtube_api.cr @SamantazFox
1 change: 1 addition & 0 deletions .github/FUNDING.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
custom: https://invidious.io/donate/
13 changes: 10 additions & 3 deletions .github/ISSUE_TEMPLATE/bug_report.md
Original file line number Diff line number Diff line change
Expand Up @@ -7,9 +7,16 @@ assignees: ''

---

<!-- Please use the search function to check if the bug you found has already been reported by someone else -->
<!-- If you want to suggest a new feature please use "Feature request" instead -->
<!-- If you want to suggest an enhancement to an existing feature please use "Enhancement" instead -->
<!--
BEFORE TRYING TO REPORT A BUG:

* Read the FAQ!
* Use the search function to check if there is already an issue open for your problem!

If you want to suggest a new feature please use "Feature request" instead
If you want to suggest an enhancement to an existing feature please use "Enhancement" instead
-->


**Describe the bug**
<!-- A clear and concise description of what the bug is. -->
Expand Down
37 changes: 37 additions & 0 deletions .github/workflows/auto-close-duplicate.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,37 @@
name: Close duplicates
on:
issues:
types: [opened]
jobs:
run:
runs-on: ubuntu-latest
permissions: write-all
steps:
- uses: iv-org/close-potential-duplicates@v1
with:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
# Issue title filter work with anymatch https://www.npmjs.com/package/anymatch.
# Any matched issue will stop detection immediately.
# You can specify multi filters in each line.
filter: ''
# Exclude keywords in title before detecting.
exclude: ''
# Label to set, when potential duplicates are detected.
label: duplicate
# Get issues with state to compare. Supported state: 'all', 'closed', 'open'.
state: open
# If similarity is higher than this threshold([0,1]), issue will be marked as duplicate.
threshold: 0.9
# Reactions to be add to comment when potential duplicates are detected.
# Available reactions: "-1", "+1", "confused", "laugh", "heart", "hooray", "rocket", "eyes"
reactions: ''
close: true
# Comment to post when potential duplicates are detected.
comment: |
Hello, your issue is a duplicate of this/these issue(s): {{#issues}}
- #{{ number }} [accuracy: {{ accuracy }}%]
{{/issues}}

If this is a mistake please explain why and ping @\unixfox, @\SamantazFox and @\TheFrenchGhosty.

Please refrain from opening new issues, it won't help in solving your problem.
100 changes: 100 additions & 0 deletions .github/workflows/build-nightly-container.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,100 @@
name: Build and release container directly from master

on:
push:
branches:
- "master"
paths-ignore:
- "*.md"
- LICENCE
- TRANSLATION
- invidious.service
- .git*
- .editorconfig
- screenshots/*
- .github/ISSUE_TEMPLATE/*
- kubernetes/**

jobs:
release:
runs-on: ubuntu-latest

steps:
- name: Checkout
uses: actions/checkout@v4

- name: Install Crystal
uses: crystal-lang/[email protected]
with:
crystal: 1.12.2

- name: Run lint
run: |
if ! crystal tool format --check; then
crystal tool format
git diff
exit 1
fi

- name: Set up QEMU
uses: docker/setup-qemu-action@v3
with:
platforms: arm64

- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v3

- name: Login to registry
uses: docker/login-action@v3
with:
registry: quay.io
username: ${{ secrets.QUAY_USERNAME }}
password: ${{ secrets.QUAY_PASSWORD }}

- name: Docker meta
id: meta
uses: docker/metadata-action@v5
with:
images: quay.io/invidious/invidious
tags: |
type=sha,format=short,prefix={{date 'YYYY.MM.DD'}}-,enable=${{ github.ref == format('refs/heads/{0}', 'master') }}
type=raw,value=master,enable=${{ github.ref == format('refs/heads/{0}', 'master') }}
labels: |
quay.expires-after=12w

- name: Build and push Docker AMD64 image for Push Event
uses: docker/build-push-action@v5
with:
context: .
file: docker/Dockerfile
platforms: linux/amd64
labels: ${{ steps.meta.outputs.labels }}
push: true
tags: ${{ steps.meta.outputs.tags }}
build-args: |
"release=1"

- name: Docker meta
id: meta-arm64
uses: docker/metadata-action@v5
with:
images: quay.io/invidious/invidious
flavor: |
suffix=-arm64
tags: |
type=sha,format=short,prefix={{date 'YYYY.MM.DD'}}-,enable=${{ github.ref == format('refs/heads/{0}', 'master') }}
type=raw,value=master,enable=${{ github.ref == format('refs/heads/{0}', 'master') }}
labels: |
quay.expires-after=12w

- name: Build and push Docker ARM64 image for Push Event
uses: docker/build-push-action@v5
with:
context: .
file: docker/Dockerfile.arm64
platforms: linux/arm64/v8
labels: ${{ steps.meta-arm64.outputs.labels }}
push: true
tags: ${{ steps.meta-arm64.outputs.tags }}
build-args: |
"release=1"
94 changes: 94 additions & 0 deletions .github/workflows/build-stable-container.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,94 @@
name: Build and release container

on:
workflow_dispatch:
push:
tags:
- "v*"

jobs:
release:
runs-on: ubuntu-latest

steps:
- name: Checkout
uses: actions/checkout@v4

- name: Install Crystal
uses: crystal-lang/[email protected]
with:
crystal: 1.12.2

- name: Run lint
run: |
if ! crystal tool format --check; then
crystal tool format
git diff
exit 1
fi

- name: Set up QEMU
uses: docker/setup-qemu-action@v3
with:
platforms: arm64

- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v3

- name: Login to registry
uses: docker/login-action@v3
with:
registry: quay.io
username: ${{ secrets.QUAY_USERNAME }}
password: ${{ secrets.QUAY_PASSWORD }}

- name: Docker meta
id: meta
uses: docker/metadata-action@v5
with:
images: quay.io/invidious/invidious
flavor: |
latest=false
tags: |
type=semver,pattern={{version}}
type=raw,value=latest
labels: |
quay.expires-after=12w

- name: Build and push Docker AMD64 image for Push Event
uses: docker/build-push-action@v5
with:
context: .
file: docker/Dockerfile
platforms: linux/amd64
labels: ${{ steps.meta.outputs.labels }}
push: true
tags: ${{ steps.meta.outputs.tags }}
build-args: |
"release=1"

- name: Docker meta
id: meta-arm64
uses: docker/metadata-action@v5
with:
images: quay.io/invidious/invidious
flavor: |
latest=false
suffix=-arm64
tags: |
type=semver,pattern={{version}}
type=raw,value=latest
labels: |
quay.expires-after=12w

- name: Build and push Docker ARM64 image for Push Event
uses: docker/build-push-action@v5
with:
context: .
file: docker/Dockerfile.arm64
platforms: linux/arm64/v8
labels: ${{ steps.meta-arm64.outputs.labels }}
push: true
tags: ${{ steps.meta-arm64.outputs.tags }}
build-args: |
"release=1"
Loading