Commit Graph

1318 Commits

Author SHA1 Message Date
PikachuEXE 8646e93f7f
Fix the flash when more data loaded in History & UserPlaylists view (#3507)
* ! Fix the flash when more data loaded in History & UserPlaylists view

* * Remove unused imports
2023-05-11 20:28:42 +02:00
absidue b005aee643
Use POST for DASH requests (#3523) 2023-05-10 20:00:27 +08:00
absidue 6804ca999d
Remove unnecessary dislike icon on community posts (#3524) 2023-05-10 08:30:00 +08:00
absidue 2ef96c7179
Move the channel about tab into it's own component (#3493) 2023-05-08 09:42:06 +08:00
absidue 6ef572d1fa
Deduplicate videos on the default trending tab (#3492) 2023-05-07 08:52:39 -04:00
ChunkyProgrammer a9fa327c9b
Create Subscribe Button reusable component (#3468)
* Create Subscribe Button component

Co-Authored-By: Minh Hang Nguyen (Jenny) <55411709+minhhang107@users.noreply.github.com>

* use defineComponent, remove unused prop

Co-Authored-By: absidue <48293849+absidue@users.noreply.github.com>

* readd unsubscribe method

* add comment

* Fix typo

Co-authored-by: PikachuEXE <pikachuexe@gmail.com>

* remove unused code

* move json serialization

---------

Co-authored-by: Minh Hang Nguyen (Jenny) <55411709+minhhang107@users.noreply.github.com>
Co-authored-by: absidue <48293849+absidue@users.noreply.github.com>
Co-authored-by: PikachuEXE <pikachuexe@gmail.com>
2023-05-07 14:06:23 +02:00
ChunkyProgrammer 66e4f4d1c0
Fix fetching more IV replies (#3489) 2023-05-06 18:31:06 +00:00
ChunkyProgrammer 9003b825e5
Fix sorting upcoming subscriptions (#3485) 2023-05-06 14:31:12 +00:00
ChunkyProgrammer 1b45f25985
Add hide community, playlist and featured channels settings (#3484)
* Add hide community, playlist and featured channels setting

* fix lint issues
2023-05-06 14:14:51 +00:00
ChunkyProgrammer c197b5ac93
IV: Allow fetching more community posts (#3466)
* Allow fetching more community posts with IV

* Update src/renderer/views/Channel/Channel.js

Co-authored-by: PikachuEXE <pikachuexe@gmail.com>

---------

Co-authored-by: PikachuEXE <pikachuexe@gmail.com>
2023-05-06 12:22:29 +00:00
PikachuEXE 1c29745d98
Update History & UserPlaylists view to filter with delay (#3451)
* * Update History & UserPlaylists view to filter with delay

* * Use lodash.debounce to implement

* * Update delay to 500ms

* * Update to have delay with empty query string
2023-05-06 12:19:47 +00:00
PikachuEXE 8765d2ae6d
Fix local run parsing to ensure URL not manipulated unnecessarily breaking the URL (#3467)
* ! Fix local run parsing to ensure URL not manipulated unnecesarily breaking the URL

* Rename new variable
2023-05-03 00:05:30 -04:00
absidue 170df2a054
Upgrade YouTube.js from 4.3 to 5.0.2 (fixes throttling) (#3474)
* Upgrade YouTube.js from 4.3 to 5.0.1 (fixes throttling)

* Fix typo

* Upgrade YouTube.js from 5.0.1 to 5.0.2 (fixes watch page views)
2023-05-01 09:12:23 -04:00
PikachuEXE 0e11fd06f1
Update watch page to stop at end of playlist (when loop disabled) without countdown (#3362)
* * Update watch page to stop at end of playlist (when loop disabled) without countdown

* Update src/renderer/views/Watch/Watch.js

Co-authored-by: absidue <48293849+absidue@users.noreply.github.com>

* ! Fix playlist end message shown when loop enabled

---------

Co-authored-by: absidue <48293849+absidue@users.noreply.github.com>
2023-04-27 17:10:14 +02:00
PikachuEXE b5e35d0543
Add setting to auto load comment section (#3352)
* + Add setting to auto load comment section

* * Cleanup hooks when possible

* * Update new setting to be a toggle

Possible values reduced to disabled & 0%

* * Use vue-observe-visibility to implement comment autoload

* - Remove unused translation entries

* - Remove no longer valid code comment

* * Rename & retype new setting

* * Implement auto more comment loading

* - Remove outdated comment

Co-authored-by: absidue <48293849+absidue@users.noreply.github.com>

* * Disable new setting switch when hide comments enabled

* * Remove the unnecessary delay on video comment loading

* * Update according to review

* * Disable autoload when hide comment enabled

---------

Co-authored-by: absidue <48293849+absidue@users.noreply.github.com>
2023-04-26 21:56:42 -04:00
absidue 58eb5d7b17
Fix vunerability in CSV import regex (#3469) 2023-04-26 21:48:10 -04:00
absidue 45d679b84b
Clean up unused component properties (#3458) 2023-04-25 20:03:36 -04:00
PikachuEXE f6d8e78d25
! Fix video comment external link parsing for local API (#3448) 2023-04-25 20:01:06 -04:00
PikachuEXE a3c4981ffa
! Fix thumbnail URL for protocol-relative URLs (#3452) 2023-04-25 23:12:40 +00:00
absidue db1e88ae16
Various performance improvements (#3455) 2023-04-25 23:02:39 +00:00
absidue 1e21033e82
Fix extracting chapters with handles from description (#3456) 2023-04-21 09:19:42 +08:00
PikachuEXE 3597499df1
* Update video list display & watch page to not use stored watch progress when progress saving disabled (#3453) 2023-04-20 16:43:59 +02:00
Emma 791a289e68
Prevent loading for ever in web builds in live chat (#3449) 2023-04-19 07:37:42 +02:00
PikachuEXE 8be4b0dffa
Fix "mention" in comments was rendered as link with channel URL (#3351)
* ! Fix "mention" in comments was rendered as link with channel URL

* ! Fix original space padding logic

* $ Refactor code as suggested
2023-04-17 09:22:05 -04:00
absidue c4464f4014
Fix live premieres being treated as non-live videos (#3358) 2023-04-17 09:21:37 -04:00
absidue 7fbb43fd36
Add 50fps and live support to frame by frame keyboard shortcuts (#3420) 2023-04-17 14:51:47 +08:00
ChunkyProgrammer 9612df70cc
Small community post fixes (#3401)
* Small community post fixes

* fix #3387

* Check if post is empty

Co-authored-by: absidue <48293849+absidue@users.noreply.github.com>

---------

Co-authored-by: absidue <48293849+absidue@users.noreply.github.com>
2023-04-12 08:58:35 +00:00
Yaron Shahrabani c4f6033dee
Update Channel age restricted key (#3237)
* Update Channel.js

Typo fixed

* Fix channel age-restricted key in all files

---------

Co-authored-by: absidue <48293849+absidue@users.noreply.github.com>
2023-04-10 08:08:55 -04:00
PikachuEXE 454534adb7
Fix some translation entries sometimes not used when rendered (#3337)
* * Update all translation keys with 2 spaces to have 1 space only

Avoid not being translated when rendering

* - Remove unused translation entry
2023-04-08 22:50:52 +00:00
absidue 5aa67715d0
Reset current chapter index when changing videos (#3400) 2023-04-08 21:36:50 +00:00
PikachuEXE dedd1f8f93
Fix trending & search result list rendered items not updated without workaround (#3342)
* ! Fix trending video list not updated without a workaround

* ~ Remove outdated comment

* ! Fix search result list rendered items not updated without workaround

* ! Fix invidious API search result incorrect appending

* ! Fix typo & key

* Remove not longer needed timeout

Co-authored-by: absidue <48293849+absidue@users.noreply.github.com>

---------

Co-authored-by: absidue <48293849+absidue@users.noreply.github.com>
2023-04-01 22:15:38 +00:00
PikachuEXE 5db3ab5b5c
Fix adaptive format picked by video JS sometimes not showing up in quality selector (#3350)
* ! Fix adaptive format picked by video JS sometimes not showing up in quality selector

* Apply suggestions from code review

Co-authored-by: absidue <48293849+absidue@users.noreply.github.com>

* ! Workaround invidious issue on AV1 formats

* Update src/renderer/views/Watch/Watch.js

Co-authored-by: absidue <48293849+absidue@users.noreply.github.com>

---------

Co-authored-by: absidue <48293849+absidue@users.noreply.github.com>
2023-04-01 18:27:30 +00:00
Emma 2a9ec5ee10
Prevent `channelInstance` from being `null` in community tab fallback (#3346)
* Create `getChannelInstanceLocal` function

which allows channel instances for the local API
to be set within the community posts fallback

* Remove channel variable in `getChanneLocal`

* Switch playlist fallback to calling `getChannelPlaylistsLocal`

* Prevent accidentally refetching channel instance from Local API

* Add fallback for fetching more channel videos through invidious

similar to the fallback for playlists

* Use existing `getLocalChannel` instead of creating a new function
2023-04-01 10:43:37 -04:00
Alexandre Rocha Lima e Marcondes 7a991cd05e
Import from YouTube history using JSON export (#2958)
* Initial implementation of import from YouTube history
(Using JSON  export)

* Properly escaping hostnames in regular expressions

* support other locales

* Apply suggestions from code review

Co-authored-by: absidue <48293849+absidue@users.noreply.github.com>

* support json import through sane button, bug fix

* remove `import youtube history` translations

* dont save length or view count for imported youtube history

---------

Co-authored-by: ChunkyProgrammer <78101139+ChunkyProgrammer@users.noreply.github.com>
Co-authored-by: absidue <48293849+absidue@users.noreply.github.com>
2023-03-30 17:51:37 +02:00
absidue 5fb298b740
Improve performance of list elements and icon buttons (#3355)
Co-authored-by: PikachuEXE <pikachuexe@gmail.com>
2023-03-27 06:25:58 +00:00
PikachuEXE 6e44f1af9c
* Update subscription view to render video as watched ASAP (#3353)
Before this change a view change (back & forth) is needed if video is watched in another window
2023-03-26 14:21:56 -04:00
absidue 94f21f293d
Fix the trending page refresh (#3347) 2023-03-26 09:32:36 +00:00
absidue 8366ec9f79
Show message when the live chat is unavailable (#3327)
* Show message when the live chat is unavailable

* Dynamically size live chat card when an error is shown
2023-03-23 09:11:25 +08:00
absidue a53e7f0598
Fix DASH default quality and quality selection (#3278)
* Fix DASH default quality and quality selection

* Add comments and multiple bandwidth by 10

Co-authored-by: PikachuEXE <pikachuexe@gmail.com>

* Fix typo

Co-authored-by: ChunkyProgrammer <78101139+ChunkyProgrammer@users.noreply.github.com>

* ! Fix default quality `auto` handling

* ! Fix quality selection for short/vertical videos

* ! Fix default quality selection for Invidious API

* * Update videojs bandwidth option value to max

* ~ Add comment about video format sorting logic when heights from 2 formats equal

* * Revert format preference back to higher bitrate with comments

* * Revert inflated initial bandwidth option value to fix #595

---------

Co-authored-by: PikachuEXE <pikachuexe@gmail.com>
Co-authored-by: ChunkyProgrammer <78101139+ChunkyProgrammer@users.noreply.github.com>
2023-03-22 20:22:20 -04:00
PikachuEXE f0ba90e766
! Fix handling of `channel.subscriber.text` being `undefined` (#3340) 2023-03-22 19:10:34 +00:00
Emma 6513b5d517
Prevent throwing when poll choices do no have images (#3345) 2023-03-22 19:03:37 +00:00
Emma 86962f2802
Improve community tab responsiveness (#3344)
* Make channel page 📱responsive again

* Even out padding on the inside of `ft-community-post`
2023-03-22 13:44:19 +01:00
absidue fe44a75275
Fix alt + arrow keyboard shortcut when a channel tab is focused (#3317) 2023-03-22 08:41:34 -04:00
absidue 5dd8fb0b59
Hide the channel sort by dropdown when the tab isn't sortable (#3323)
* Hide the channel sort by dropdown when the tab isn't sortable

* Hide playlists sort by if there is only one playlist
2023-03-22 08:12:42 -04:00
absidue 4433a183c9
Fix joined date erroring on channels without a joined date (#3314) 2023-03-22 08:09:41 -04:00
absidue b7d4502317
Hide Most Popular menu entry if the selected backend is not Invidious and backend fallback is disabled (#3339) 2023-03-21 22:27:27 -04:00
dependabot[bot] d881275365
Bump youtubei.js from 3.3.0 to 4.0.1 (#3335)
* Bump youtubei.js from 3.3.0 to 4.0.1

Bumps [youtubei.js](https://github.com/LuanRT/YouTube.js) from 3.3.0 to 4.0.1.
- [Release notes](https://github.com/LuanRT/YouTube.js/releases)
- [Changelog](https://github.com/LuanRT/YouTube.js/blob/main/CHANGELOG.md)
- [Commits](https://github.com/LuanRT/YouTube.js/compare/v3.3.0...v4.0.1)

---
updated-dependencies:
- dependency-name: youtubei.js
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>

* Await the toDash function

---------

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: absidue <48293849+absidue@users.noreply.github.com>
2023-03-22 09:11:38 +08:00
absidue 54ecce1058
Fix lists occasionally having the wrong layout (#3338) 2023-03-22 08:57:06 +08:00
absidue 029f0cb0b9
Fetch the videos tab directly for local API subscriptions (#3315) 2023-03-18 20:27:56 +00:00
absidue 304152fe41
Workaround YouTube bug causing the community tab to be empty (#3318) 2023-03-18 20:25:52 +00:00
absidue f525b0e2d4
Clear community posts array when switching channels (#3316) 2023-03-18 20:09:06 +00:00
absidue 0212467419
Add Live tab to channel pages (#3273)
* Add Live tab to channel pages

* Handle invidious streams tab URL

* Clear live videos when navigating between channels

* Reset sort by when changing channels
2023-03-15 14:37:52 +08:00
PikachuEXE a878ff395a
Fix error when playing video with playlist with Indivious API and... (#3294)
* ! Fix error when playing video with playlist with Indivious API

* ! Fix switching comment sort does not get first page of comments
2023-03-14 14:18:48 -04:00
ChunkyProgrammer c37cb95d1b
show member icon for invidious api (#3293) 2023-03-14 18:39:40 +01:00
absidue 6c3ff9e999
Fix the screen saver blocker never getting disabled (#3286) 2023-03-14 06:17:44 +00:00
predystopic-dev 3a904b5f83
Setting loudness to default volume in new videos (#3203)
* Made changes as suggested.

* Made player set volume to user default if it was muted by dragging volume slider to zero. Volume and muted are kept track of seperately and both are set on player with respect to how it was set for previous video

* added comments

* fixed

* fixed

* Changed comments to be more accurate.
2023-03-08 19:22:45 +01:00
absidue 3225b3759a
Skip the exists check for the databases, as stat does it anyway (#3272) 2023-03-07 07:07:18 +01:00
absidue da0c06902b
Use smaller Vue esm runtime build (#3271) 2023-03-07 07:06:42 +01:00
absidue ab235b79d2
Lazy load sidebar channel and chapters thumbnails (#3245) 2023-03-05 21:00:04 +00:00
absidue 667ee83130
Fix premieres on the subscription page (#3240)
* Fix premieres on the subscription page

* Fix date when restoring from subscription cache
2023-03-05 14:29:00 -05:00
absidue 1335604554
Properly show live and upcoming videos in playlists and up next (#3250) 2023-03-05 11:20:32 -05:00
absidue 07c9212e74
Clean up some code that was leftover from before the YouTube.js migration (#3243) 2023-03-04 14:05:33 -05:00
Luca Hohmann 4ef2f709ee
Channel community page (#1568)
* Comunity page strings, Communtiy tab, Community initial API call
Added:
1) Community page strings - the first few strings are now available
2) Community tab - A clickable tab is now displayed on channel pages
3) Community initial API call - on loading the page, the initial access

* Comunity page strings, Communtiy tab, Community initial API call
Added:
1) Community page strings - the first few strings are now available
2) Community tab - A clickable tab is now displayed on channel pages
3) Community initial API call - on loading the page, the initial access

* Data returning added

* Comunity page strings, Communtiy tab, Community initial API call
Added:
1) Community page strings - the first few strings are now available
2) Community tab - A clickable tab is now displayed on channel pages
3) Community initial API call - on loading the page, the initial access

* Data returning added

* Images are now displayed in the community tab

* Comunity page strings, Communtiy tab, Community initial API call
Added:
1) Community page strings - the first few strings are now available
2) Community tab - A clickable tab is now displayed on channel pages
3) Community initial API call - on loading the page, the initial access

* Data returning added

* Images are now displayed in the community tab

* Added primitive video display

* Current changes

* Added preston's change with the ftcard and started on some layout basics

* Created Community Post Component and added fetch more button + functionality

* Fixed problem with videothumbnails not loading and adjusted their height to 100% in the ft-list sass file

* Added poll and ft-list-video to the community page

* Added author name placeholder (missing in module), the published date, the likes and dislikes as well as comment counts to posts. Additionally scaling of images was added

* Added basis for community page playlists

* Finalized a setup for playlists when wide enough

* Fix for missing key in custom list

* Added publish date translation

* Add empty alt tags

Co-authored-by: Jason <84899178+jasonhenriquez@users.noreply.github.com>

* fix accessibility issue

Co-authored-by: Jason <84899178+jasonhenriquez@users.noreply.github.com>

* change: ununique ids to classes

* add missing alt tag

* Redirect channel/id/community to the channel's community tab

* update yt-channel-info

* update to 3.0.1

* Update yarn.lock

* add basic multiImage support

* use tiny-slider for multiImage community posts

* update getChannelCommunityPostsMore

* Update yarn.lock

* fix yarn lock

* swap community and about tab

* Update yarn.lock

* Fix missing comma

* Removed trailing spaces

* Clearing all community post data when changing to another channel

* Restructuring of how the post cards are added, Empty page text,
ft-element-list props customization
1) Now the community page uses the same setup of ft-element-list as the
other pages on the channel.
2) If no posts are available, now it displays a message saying so
3) The ft-element-list component's display style can now be forced into
a certain display mode (list/grid) with the new prop. It will overwrite
the corresponding default value for list display

* Fixed display text path

* Fix lint"

* Adjusted css to fit to new layout

* Final touches community page to tidy up the console

* fix icons, fix linter

* fix hiding showmore button for community page

* fix showToast calls

* change all this.showToast to showToaast

* reinstall tinyslider

* use helpers

* small fixes

* fix: getting continuation of community posts

* remove unused code

* improve slider style import

* fix hiding 'ShowMore' button

* fix weird typo in css

* add invidous community tab support

* remove console testing code

* Apply suggestions from code review

Co-authored-by: absidue <48293849+absidue@users.noreply.github.com>

* implement suggestions, improve thumbnail replacement

* use flip horizontal

* readd invidious fallback code, remove author name workaround

* replace another google domain when using invidious

* suppport invidious multiImage posts

* Use youtube.js for community posts

* add invidious polls, remove support for fetching more

* reorder icons alpabetically

* re-allow loading more when using localapi

* fix styling of multiImage, hide NA text

* fix loading playlist

* fix spacing of items

* fix issue with direct url to community tab

* make review recommendations

Co-Authored-By: absidue <48293849+absidue@users.noreply.github.com>

* fix displaying selected tab, get best quality image

---------

Co-authored-by: Preston <freetubeapp@protonmail.com>
Co-authored-by: ChunkyProgrammer <78101139+ChunkyProgrammer@users.noreply.github.com>
Co-authored-by: Jason <84899178+jasonhenriquez@users.noreply.github.com>
Co-authored-by: absidue <48293849+absidue@users.noreply.github.com>
2023-03-04 16:56:04 +08:00
absidue b2eaaaa42e
Fix handling user channels without subscribers (#3242) 2023-03-03 21:02:33 +00:00
absidue 7eb148ba51
Fix channel handle URLs with tabs (#3241) 2023-03-03 20:38:27 +00:00
PikachuEXE 5713e66822
* Update export data default filename to use today's date in local timezone instead of UTC (#3236) 2023-03-02 22:11:36 +01:00
absidue f56f6e7a20
Fix video throttling because of range header (#3234)
* Fix video throttling because of range header

* Use a better way to extract the range
2023-03-01 09:38:13 +08:00
absidue 291aeff1a6
Migrate channel related functionality to YouTube.js (#3143)
* Migrate channel related functionality to YouTube.js

* Better alert handling

* Add support for special autogenerated channels

* Add support for latest YouTube.js changes

* Add support for age restricted channels

* Update YouTube.js to 3.0.0

* Obey hide search bar setting for the tag searching

* Choose a better parameter name

* Allow sharing terminated and age restricted channels

* Add handle support for handles on Invidious

* Fix the backend fallback

* Use a positive parameter name

Co-authored-by: PikachuEXE <pikachuexe@gmail.com>

* Fix duplicate tags causing errors

* Fix sorting for the Invidious API

* Move URL resolving to the channel page

* Update YouTube.js to 3.1.0

---------

Co-authored-by: PikachuEXE <pikachuexe@gmail.com>
2023-03-01 08:39:33 +08:00
PikachuEXE 4ad3ec2c5f
Update subscriptions view to display video publish time in relative form even fetched via RSS (#3216)
* * Update subscriptions view to display video publish time in relative form even fetched via RSS

* * Update to support seconds, months, years

Also add more code comments
Also fix issue of display after switching back from another view
2023-02-26 20:23:06 -05:00
absidue d6b355082a
Remove beforeRouteLeave in ft-video-player as it is never called (#3213) 2023-02-27 09:03:26 +08:00
absidue 5d9383b67b
Better idle mouse hiding implementation (#3214) 2023-02-26 03:01:20 +00:00
absidue a382326a38
Use a player event to trigger the DASH quality selector creation (#3183)
* Use a player event to trigger the DASH quality selector creation

* Add requested comment
2023-02-17 09:34:43 +08:00
absidue e5cf255894
Use a computed property instead of a prop to specify the chapters layout (#3199) 2023-02-17 09:34:21 +08:00
ChunkyProgrammer 76d867a370
fix comment crash, render member info (#3196) 2023-02-16 18:47:12 +00:00
absidue a26c8e03a6
Fix the trending and watch pages swallowing the arrow key events (#3170)
* Fix the trending page swallowing the arrow key events

* Fix the watch page too
2023-02-10 12:44:17 -05:00
absidue 4c65982371
Better solution for hiding the PIP button for the audio formats (#3174)
* Better solution for hiding the PIP button for the audio formats

* Add comment

Co-authored-by: PikachuEXE <pikachuexe@gmail.com>

---------

Co-authored-by: PikachuEXE <pikachuexe@gmail.com>
2023-02-10 12:43:06 -05:00
Artur 38fe74a4c6
Fix external player not opening on Subscriptions page (#3172)
* Changed undefined to null

If playlistId is set to undefined it will break /src/renderer/store/modules/utils.js:openInExternalPlayer() as it expects null or string. Undefined makes it believe it is a playlist and ignores the videoId

* revert last commit

* Added tests for undefined in openInExternalPlayer()
2023-02-09 19:24:27 +01:00
absidue 3bc7bdba86
Reduce duplicate code in the data export settings (#3150)
* Reduce duplicate code in the data export settings

* Use a more descriptive parameter name

Co-authored-by: PikachuEXE <pikachuexe@gmail.com>

---------

Co-authored-by: PikachuEXE <pikachuexe@gmail.com>
2023-02-09 06:28:41 +00:00
absidue 36c42f06bf
Use secondary colour theme for all share buttons (#3169) 2023-02-08 18:56:42 +00:00
absidue cb1ea7e9a7
Fix spacing in the load comment replies text (#3171) 2023-02-08 18:52:36 +00:00
absidue e197f9871a
Extract chapters from the description if they are missing (#3167) 2023-02-08 18:44:35 +00:00
absidue bd6f143918
Fix positioning of the live chat scroll to bottom button (#3168) 2023-02-08 18:32:39 +00:00
PikachuEXE 20064c6607
Fix last view playlist saving with multiple windows (#3137)
* $ Rename arguments in functions

* ! Fix last view playlist saving with multiple windows
2023-02-05 20:48:31 -05:00
kawanakaiku edcd5ed922
Make sure window is visible (#3008) 2023-02-06 09:11:27 +08:00
Lodka Sawhet c7a99066da
Allows sponsor segments to be watched even if Auto Skip is enabled (#3116)
* Allows sponsor segments to be watched in Auto Skip mode

* 'b': only jump back to segments configured to be auto-skipped

* Remove 'b' keyboard shortcut
2023-02-05 14:47:02 -05:00
absidue 29f511372f
Support storyboards on very short shorts (#3128) 2023-02-05 14:19:24 -05:00
absidue c3867259e9
Trigger checkAspectRatio on loadedmetadata event (#3147) 2023-02-05 18:40:25 +00:00
absidue 3ca561c3e6
Miscellaneous cleanup (#3148) 2023-02-04 15:04:04 +08:00
ChunkyProgrammer b360f483d7
add missing search filters (#3141)
* add missing search filters

* allow sort by to be used on all types again

* fix local api filter duration
2023-02-01 20:43:04 +00:00
absidue b6892afb26
Use share menu on playlist page (#3121)
* Use share menu on playlist page

* Add support for playlist embed links

* Fix share button tooltip
2023-02-01 15:38:27 -05:00
absidue e95f6811f7
Add support for symlinked database files (#3129) 2023-01-31 07:14:25 +01:00
absidue 4114bebfed
Make the View Comments and Load More Comments buttons larger (#3130) 2023-01-30 10:06:43 +01:00
Melih 5fd236d963
Fix video fetch when using invidious API and sorting by popular. (#3126)
* Fix video fetch when using invidious API and
also sorting by popular.

* Remove redundant latestVideosPage variable
2023-01-30 11:43:46 +08:00
Emma 7640a93ec9
Reduce overflow in playlist view (#3123)
* Prevent overflow on playlist view on small 📱displays

* Prevent transition of width on `.thumbnailImage`

* Expand styles to be responsive at more widths
2023-01-30 10:02:08 +08:00
ChunkyProgrammer f1147b5108
Add QT Url support for freetube protocol (#3119)
* Add QT Url support for freetube protocol

* Update src/main/index.js

Co-authored-by: PikachuEXE <pikachuexe@gmail.com>

* fix if statement

---------

Co-authored-by: PikachuEXE <pikachuexe@gmail.com>
2023-01-27 19:50:02 +01:00
PikachuEXE 0daa422284
Add feature to remember video history with last viewed playlist when enabled (#3006)
* + Add "infra" code for new feature

* * Update view/component to implement remembering last playlistID in history

* * Implement option to disable new feature

* ! Fix implementation for use case "Find a video (with playlist PL-A) to view, go to channel, view that same video, no playlist restored"
2023-01-26 03:18:04 +01:00
absidue 15bd1cb958
Set the Vue compiler whitespace option to condense (#3101) 2023-01-25 15:58:51 -05:00
absidue 5424122339
Filter out WebM DASH formats (#3105)
* Filter out WebM DASH formats

* Address pull request feedback
2023-01-25 15:58:25 -05:00
absidue 14caa8ccad
Handle missing data in search results (#3099) 2023-01-25 07:37:31 +08:00
PikachuEXE 38b856f546
! Fix shift enter on top nav search input does not open search in a new window (#3113) 2023-01-24 17:34:41 +01:00
absidue 0145a0425f
Migrate comments to YouTube.js (#3072)
* Migrate comments to YouTube.js

* Various improvements
2023-01-24 03:22:54 +01:00
absidue 633a20adb1
Fix typo causing the subtitle sorting to error (#3100) 2023-01-23 12:40:41 +01:00
Emma 7ccb5dd05e
Adjust `side-nav-more-options` to account for anchor style (#3097)
* Adjust side-nav-more-options to account for `a` styles

- These nav-options were changed from `div`s to anchors, and so,
they need to be styled like the `div`s that used to be there.

* Use `inherit` instead of white
2023-01-21 10:25:01 +01:00
absidue c3c63654c7
Use a single import for the brand icons (#3094) 2023-01-20 12:00:07 +01:00
PikachuEXE 590f3a6121
! Fix searching (2nd time onward) in channel view broken (#3073) 2023-01-20 01:00:29 +01:00
Emma 12e9565dbe
Bind directive to function instead of function call (#3091)
v-if="showResult(data)" evaluates once
v-if="showResult" is reactive;

`data` also doesn't need to be passed here
because it is already accessible from `this`.
2023-01-19 16:58:12 +01:00
Emma 0f4bf0e87e
Map `videos` property on Invidious API response (#3090)
`invidiousAPICall` is returning an object with a `videos` property here
instead of a list.
2023-01-19 16:58:04 +01:00
PikachuEXE a89c2005e8
! Fix search view not loading result starting 2nd page via local API (#3074) 2023-01-19 04:35:20 +01:00
Emma 64d6d9b7ff
Correct argument on `invidiousGetPlaylistInfo` (#3089)
`invidiousGetPlaylistInfo` expects a `string`.
2023-01-19 08:49:56 +08:00
absidue 41687aa185
Don't react when selecting the current trending tab (#3070) 2023-01-18 09:21:35 +01:00
absidue 2cd8f0f2d3
Switch from Vue.extend to defineComponent (#3066) 2023-01-18 08:50:02 +01:00
absidue 523235f74c
Add a formatNumber helper and other i18n cleanup (#3055)
* Add a formatNumber helper and other i18n cleanup

* Fix import order
2023-01-15 10:43:29 +00:00
absidue a953142377
Import store modules with ES6 imports instead of dynamically (#3064) 2023-01-15 09:03:16 +08:00
PikachuEXE 5f522d5635
! Fix searching in channel view broken (#3062) 2023-01-14 15:01:45 +00:00
absidue 3e80e96a0c
Use ES6 classes for video.js components instead of videojs.extend (#3060) 2023-01-14 15:01:27 +00:00
PikachuEXE 67b9a74ae3
! Fix code for getting event.key lowercase value (#3061) 2023-01-14 15:01:12 +00:00
absidue 97cb339ec5
Decipher format URLs with the local API (#3053) 2023-01-14 08:11:08 +01:00
absidue ae50ec7205
Migrate live chat to YouTube.js (#3054) 2023-01-13 17:54:22 +01:00
absidue 7becd36120
Add an IS_ELECTRON_MAIN define instead of runtime detection (#3056) 2023-01-13 17:54:05 +01:00
ChunkyProgrammer afb9e51cdd
small accessibility improvements (#3033)
* small accessibility improvements

* switch to routerlink for side-nav-more-options
2023-01-12 07:55:47 +01:00
ChunkyProgrammer 03f73c5d33
Move invidious out of stores (#3045)
* move invidious out of stores

* fix getting more replies & local api fallback for comments

* throw error if error message found in invidious response

* fix issue with data setting

* fix issue with replacing thumbnails

* add bank line, remove slash

* Apply suggestions from code review

Co-authored-by: absidue <48293849+absidue@users.noreply.github.com>

Co-authored-by: absidue <48293849+absidue@users.noreply.github.com>
2023-01-12 07:55:21 +01:00
absidue 0c69fc23e6
Generate local API sessions locally (#3052) 2023-01-12 07:54:09 +01:00
Emma 17ad3da18f
Update mastodon link to `@FreeTube@fosstodon.org` (#3038)
AFAIK mastodon.technology is shut down
2023-01-08 12:33:29 +01:00
absidue 75bf0377ca
Hide the proxy settings in the web build (#3037) 2023-01-08 08:29:06 +08:00
absidue 15b15026b6
Migrate the watch page to YouTube.js (#3035)
* Migrate the watch page to YouTube.js

* Fix YouTube.js exclusion in the web build
2023-01-07 02:52:59 +01:00
ChunkyProgrammer bff8dc4326
Improve accessibility of Channel View (#2984)
* Improve channel info bar

* Reduce width of channel search bar

* fix sizing

* improve channel view accessibility

Co-Authored-By: Jason <84899178+jasonhenriquez@users.noreply.github.com>

* Update src/renderer/components/ft-channel-bubble/ft-channel-bubble.js

Co-authored-by: PikachuEXE <pikachuexe@gmail.com>

* Stop space from clicking channel-bubble (links)

Co-authored-by: vallode <18506096+vallode@users.noreply.github.com>
Co-authored-by: Jason <84899178+jasonhenriquez@users.noreply.github.com>
Co-authored-by: PikachuEXE <pikachuexe@gmail.com>
2023-01-05 04:54:20 +01:00
absidue 156176aca8
Migrate search to YouTube.js (#3028)
* Migrate search to YouTube.js

* Fix linting issue
2023-01-05 04:54:08 +01:00
absidue b157495552
Add more electron guards (#3031) 2023-01-05 04:53:39 +01:00
absidue 57ca0fc82e
Fix CSS variables (#3030) 2023-01-04 10:35:04 +01:00
PikachuEXE 0d0d64d957
! Fix Ctrl/Cmd + C unable to copy text when viewing video (#3027) 2023-01-03 19:20:16 +01:00
ChunkyProgrammer 43a25f8738
update linters & add stylelint (#3023)
* update linters, add stylelint, switch from sass to scss

* remove unused babel-eslint module

* fix spacing in scss files

* dont use npm in script calls

* dont error for `:deep` selector in css
2023-01-03 19:19:41 +01:00
absidue 8c181413ee
Use the new retrieve_player option in YouTube.js (#3022) 2023-01-03 09:55:39 +08:00
absidue 47613d8c37
Fix no sources error on the watch page (#3019) 2023-01-02 10:03:21 +08:00
Simon Epstein 36e34fb5ed
Add option to display distraction free titles (#2987)
* 2953 Added boilerplate to manage setting.

* Hooked in distraction free title to video list view.

* Tweaked the regexp to include apostrophe when looking for runs.

Also only change case for runs of 3 or more, to avoid messing with
common abbreviations.

* Addressed review feedback.

Co-authored-by: Simon Epstein <simon.epstein@67bricks.com>
2023-01-01 22:53:29 +01:00
absidue 492ad19558
Make getVideoParamsFromUrl and showExternalPlayerUnsupportedActionToast helpers (#3018) 2023-01-01 03:52:49 +01:00
PikachuEXE b96c6b5542
Fix clear button covered by new input wrapper (#3016)
* $ Fix CSS warnings

* ! Fix clear button covered by new input wrapper
2022-12-31 17:30:06 +01:00
absidue eaeb472af1
Remove unused meta.icon properties from the router config (#3000) 2022-12-31 17:14:09 +01:00
absidue 652b16b359
Use a function for menu navigations (#3010) 2022-12-31 11:08:04 +01:00
absidue 2f01dd4277
Parse channel handles in video descriptions (#3011) 2022-12-31 11:07:53 +01:00
absidue 5d1f465bf5
Fix styling of the comment author text (#3012) 2022-12-31 11:06:00 +01:00
Emma 7e7571065d
Improve responsiveness of `Hide Videos From Channels` (#2994)
* Add wrapper in `ft-input`  to correct absolute pos

Previously, the action icon was absolutely positioned
to the relative `ft-input-component`; however,
when the label wrapped (on small displays), the height of the
ft-input-component changed, and the icon would overflow
the bottom of the component.  Now, it should be absolutely
positioned to the relative `inputWrapper` which
begins with the top of the input element, and thus, it should
not change position based on the height of the label making it
easier to ensure it is in the right position.

* Modify wrapper to not interfere with existing components

* Make ft-input-tags `width: 100%` on small displays

There isn't a lot of screen real estate on small displays, so
this component should just expand to fill it instead of crunching
in on itself.

* Modify media queries to use more standard breakpoint

# Conflicts:
#	src/renderer/components/ft-input/ft-input.css

* Hide line-break in distraction-settings on small displays

* Fix lint issue by removing self-close from `br`
2022-12-30 09:13:45 +01:00
absidue 1d1e6eacea
Switch from sync fs APIs to fs/promises (#2991)
* Switch from sync fs APIs to fs/promises

* Fix error and await storyboard creation

* Start a new file for filesystem helpers starting with pathExists
2022-12-29 01:19:48 +00:00
absidue b208e496ad
Migrate the trending page to YouTube.js (#3005)
* Migrate the trending page to YouTube.js

* Move more of the logic to the local API file

* This function doesn't need to be exported anymore
2022-12-27 15:15:50 +00:00
absidue a3a20a64b1
Only show prompt close button when it is needed (#3001) 2022-12-27 10:20:32 +08:00
absidue cdc1b712bd
Use path.sep instead of working out the directory separator ourselves (#3002) 2022-12-27 10:15:38 +08:00
absidue bef610f91b
Import the product name instead of using a define for it (#3003) 2022-12-27 10:15:15 +08:00
absidue 7163ddff0c
Escape special characters in channel names in ompl export (#3004) 2022-12-27 10:14:23 +08:00
PikachuEXE 72a839fc1c
Update app menu to add items for side nav items (#2965)
* * Update app menu to add items for side nav items

* * Show app menu items accoridng to user settings

* * Update app menu on setting update

* ! Fix setting values reading when db entry(s) absent

* $ Use `?.` instead of try/catch

Suggested by absidue

Co-authored-by: absidue <48293849+absidue@users.noreply.github.com>

Co-authored-by: absidue <48293849+absidue@users.noreply.github.com>
2022-12-26 16:42:43 -05:00
absidue b77455ec81
Lazy load playlist components to improve performance (#2993) 2022-12-26 19:15:55 +01:00
PikachuEXE 1a0786f39b
! Fix possible to do both actions in video player by scrolling (#2989)
"Scroll playback rate over video player" and "Skip by Scrolling Over Video Player"
2022-12-25 13:06:18 +01:00
absidue 90ac5e6bce
Fix insecure coookie error (#2990) 2022-12-25 08:59:45 +01:00
ChunkyProgrammer 42ef2a3e26
Improve accessibility of Watch View (#2986)
* Improve Watch page accessibility

Co-Authored-By: Jason <84899178+jasonhenriquez@users.noreply.github.com>

* fix title issue, remove unused gotochannel function

Co-authored-by: Jason <84899178+jasonhenriquez@users.noreply.github.com>
2022-12-23 16:44:54 +00:00
vr10t 869e45ccd5
Option to skip through the video by scrolling (#2418)
* initial commit

* remove extra play button toggle

* add missing comment

Co-authored-by: Alin <ai6@tutanota.com>
Co-authored-by: ChunkyPtogrammer <78101139+ChunkyProgrammer@users.noreply.github.com>
2022-12-22 16:21:32 +01:00
petaded c79674d956
Support extra youtube embed playlist links (#2972)
* Fix strange embed playlist links missing /

* support embed/videoseries links

* remove duplicated replace line

Co-authored-by: petaded <code@zikl.co.uk>
2022-12-22 15:22:12 +01:00
Simon Epstein 7ea690bf9d
Set width so that overflow css rules are applied. (#2988)
Added overflow-wrap break word so that more of the clipped title is
displayed.

Co-authored-by: Simon Epstein <simon.epstein@67bricks.com>
2022-12-22 15:10:30 +01:00
absidue 37da66be26
Cleanup and simplify the settings password code (#2982) 2022-12-20 05:58:44 +00:00
absidue 6f7adaaf72
Fix docs link in the data settings section (#2981) 2022-12-20 09:21:55 +08:00
PikachuEXE a09a94ac03
! Fix incorrect selector (meant to be multiple targets not nested) (#2962) 2022-12-19 20:57:26 +00:00
Simon Epstein 7c4dfefb45
Remove select-on-focus from ft-input (#2974)
* 2622 Remove select-on-focus behaviour from ft-input.

Replace this with show-clear-text-button.

* 2622 Make channel search a little wider so placeholder not truncated.

Co-authored-by: Simon Epstein <simon.epstein@67bricks.com>
2022-12-19 13:01:09 +00:00
petaded 5230fc4fd7
fix linting error in ft-input-tags.vue (#2971)
* fix linting error in ft-input-tags.vue

* swap to span over label

* update css to match

Co-authored-by: petaded <code@zikl.co.uk>
2022-12-19 06:22:06 -05:00
absidue dd18634fdc
Pass playlist data from playlist page to watch page (#2970)
* Pass playlist data from playlist page to watch page

* Remove unused properties
2022-12-19 11:43:28 +01:00
petaded f33f14268f
Option to hide videos from certain channels (#2849)
* add logic to hide channels

* Add new ft-input-tags ui element and use this for channel hiding

* remove unused tooltip code

* Add tooltip to the ft-input-tags and the new setting

* Add spacer between toggle options and ft-flex-box

* Swap to stringify from semicolon + add focus to label

* Simplify the input_tags code + rename setting to channelsHidden

* Fix issue shown by linter

* Recentralize input button + fix tooltip for small windows

* Improve accessiblity

* fix hiding playlist when channel ID entered

* pass tag directly to removeTag function

Co-authored-by: petaded <code@zikl.co.uk>
Co-authored-by: petaded <petaded@zikl.co.uk>
2022-12-17 16:49:44 +01:00
Simon Epstein dbb54737c4
Password protect settings (#2932)
* Hide unsubscribe button on channel list if this is set in parental
controls.

* Fix github linting errors

* Removed trailing whitespace.

* Reverted yarn.lock change

* Remove package-lock.json

* Added support for password protecting settings.

* Push password handling code inside password-settings component.

* Added incorrect password message

* Replace update method with watch.

* Use updateSettingsPassword to commit value to database.

* Move password settings to the bottom (review comment)

* Moved unlock into separate component (review feedback)

* Styling password dialog

* Removed incorrect (and unused) prop value - review comment.

* Removed unused component imports

Co-authored-by: Simon Epstein <simon.epstein@67bricks.com>
2022-12-17 15:28:17 +01:00
Emma Jiang 79cd65c312
Display long names in profile select (#2964)
* fix the display of names that are too long to fit in the profile select menu

* revert flexbox addition
2022-12-17 14:46:43 +01:00
absidue c9124359a5
Migrate playlists on the watch page to YouTube.js (#2969) 2022-12-16 18:08:56 +01:00
absidue ac509bd17b
Make some more elements right-clickable (#2968) 2022-12-16 05:06:18 +01:00
PikachuEXE 5603b40301
! Fix enter on input doesn't work with empty visible data list (#2966) 2022-12-15 17:57:00 +01:00
ChunkyProgrammer 083ae0e622
fix error when searching (#2960) 2022-12-14 07:55:29 +01:00
absidue 29f5e38623
Add context menu entries to copy YouTube and Invidious links (#2957) 2022-12-14 09:18:36 +08:00
absidue 5b04352bdf
Implement playlist pagination for the local API (#2956)
* Implement playlist pagination for the local API

* Check the info source when loading more comments so that backend fallback works
2022-12-14 09:12:52 +08:00
ChunkyProgrammer c6e4221966
Fix ft-input keyboard naviagation (#2943) 2022-12-13 21:36:18 +01:00
absidue 36fc9468c2
Migrate the Playlist page to youtubei.js (#2903)
* Migrate the Playlist page to youtubei.js

* Make the extraction more tolerant to missing info
2022-12-13 14:19:16 +01:00
absidue c6299e69f2
Copy in-app links as YouTube links (#2951)
* Copy in-app links as YouTube links

* Store the split URL in a variable instead of splitting it multiple times
2022-12-13 10:39:22 +01:00
absidue 10f9bf6d79
Add keyboard shortcuts to jump to the next and previous chapters (#2912)
* Add keyboard shortcuts to jump to the next and previous chapters

* Change shortcut to Cmd for macOS
2022-12-12 07:03:01 +01:00
ChunkyProgrammer 45953e3ba3
Improve accessibility of FreeTube input elements (#2709)
* improve accessibility of FreeTube input elements

Co-Authored-By: Jason <84899178+jasonhenriquez@users.noreply.github.com>

* make focus visible for prompt

* add close button to ft-prompt

* Update src/renderer/components/ft-icon-button/ft-icon-button.vue

Co-authored-by: absidue <48293849+absidue@users.noreply.github.com>

* make suggested changes

* move eslint plugin to devdepedencies

Co-Authored-By: absidue <48293849+absidue@users.noreply.github.com>

* dont hide ft-prompt on focus out

* add aria-describeby

* update eslint-plugin-vuejs-accessibility

* Update yarn.lock

* Update yarn.lock

* Fix lint issues

* only escape whitespace in ids

* use computed properties

Co-authored-by: Jason <84899178+jasonhenriquez@users.noreply.github.com>
Co-authored-by: absidue <48293849+absidue@users.noreply.github.com>
2022-12-11 08:43:23 +01:00
PikachuEXE e96116af10
* Update app menu to add items for going back/forward in router history (#2933) 2022-12-11 08:41:03 +01:00
absidue a88bafeb27
Make getUserDataPath, getPicturesPath and getSystemLocale helpers (#2920) 2022-12-06 12:37:44 +01:00
absidue c5697443ff
Only show the load more comments button when necessary (#2917) 2022-12-06 12:05:20 +01:00
PikachuEXE fa9a992a52
Update copy/open YT video in playlist view to have playlist ID when present (#2848)
* * Update copy/open YT video in playlist view to have playlist ID when present

* * Update YT share URL for video with playlist
2022-12-06 08:47:34 +01:00
absidue 3d0157da75
Make more UI elements middle clickable (#2911) 2022-12-05 08:42:40 +01:00
Simon Epstein a433c04037
Hide unsubscribe button on channel list if this is set in parental controls. (#2906)
* Hide unsubscribe button on channel list if this is set in parental
controls.

* Fix github linting errors

* Removed trailing whitespace.

* Reverted yarn.lock change

* Remove package-lock.json

Co-authored-by: Simon Epstein <simon.epstein@67bricks.com>
2022-12-04 12:43:04 +01:00
absidue c1f257dd79
Clear cached subscription videos when removing all subscriptions (#2905) 2022-12-02 08:30:27 +01:00
absidue d793a8bcda
Make replaceFilenameForbiddenChars a helper (#2904)
* Make replaceFilenameForbiddenChars a helper

* Use function for screenshot file name checking
2022-12-02 08:29:01 +01:00
absidue c98b6ab3f2
Only show Select All context menu item in text fields (#2835) 2022-12-01 08:46:33 +01:00
PikachuEXE deb463e8fc
* Update custom image request to handle error event (#2902)
https://www.electronjs.org/docs/latest/api/client-request#event-error
2022-11-30 08:03:38 -05:00
absidue ecb9128731
Migrate search suggestions to youtubei.js (#2855)
* Migrate search suggestions to youtubei.js

* Rename functions to indicate that they are for the local API

* Implement and use a lightweight Innertube session

* Fix typo in comment

Co-authored-by: ChunkyProgrammer <78101139+ChunkyProgrammer@users.noreply.github.com>

* Fix another typo in a comment

Co-authored-by: ChunkyProgrammer <78101139+ChunkyProgrammer@users.noreply.github.com>
2022-11-28 12:52:47 +01:00
theforbiddenpool 064db4ba28
Add option to hide FreeTube header logo (#2893) 2022-11-27 08:55:34 -05:00
PikachuEXE 2ad431622a
* Update app menu to add item for history (#2870) 2022-11-24 18:47:44 +01:00
M. Ian Graham 207d72a9c2
Add setting: Distraction Free Settings → Hide Upcoming Premieres (#2853) 2022-11-24 13:31:53 +01:00
absidue c8d37cd552
Fix "Open in new window" context menu action in release builds (#2873)
* Fix "Open in new window" context menu action in release builds

* Better check and add comment
2022-11-21 22:29:24 +01:00
absidue 5b67803c32
Add ft-input enter listener the vue way (#2879) 2022-11-21 07:37:38 +01:00
absidue 88e9618651
Fix chapter marker placement (#2874) 2022-11-20 22:46:34 +01:00
absidue 9600373216
Themes CSS deduplication (#2868)
* Deduplicate CSS rules for the Catppuccin Mocha colours

* Deduplicate CSS rules for the Dracula colours

* Deduplicate CSS rules for the themes

* Deduplicate CSS rules for the main and secondary colours
2022-11-15 09:14:35 +01:00
absidue 8a37692f77
Use native DomParser instead of opml-to-json dependency (#2769)
* Use native DomParser instead of opml-to-json dependency

* Add support for Invidious feed URLs

* Fallback to HTML parser, as HTML is much less strict than XML

* Log error before falling back to the HTML parser
2022-11-15 09:10:51 +01:00
absidue 24e67bac87
Cleanup unused css and imports on the About page (#2867) 2022-11-15 09:38:47 +08:00
Alhuin 3d473d90ef
#1414 share channels (#2859)
* #1414: Add share button ton Channel view
- Update src/renderer/components/ft-share-button to handle Channels
- Update english locale entries for 'Share channel'

* #1414: Add share button ton Channel view
- update youtubeShareURL() in src/renderer/components/ft-share-button

* #1414: Add share button ton Channel view
- implemented the new button in src/renderer/views/Channel

* #1414: Add share button ton Channel view
- renamed mediaType to shareTargetType in ft-share-button.js
- switched logic from !isChannel to isVideo in ft-share-button.vue

* #1414: Add share button ton Channel view
- renamed target type in ft-share-button.vue
- updated implementation in Channel.vue
2022-11-14 12:10:47 +01:00
absidue 644b735005
Use the available space better in the player and theme settings (#2857) 2022-11-12 10:36:09 +01:00
absidue e02594629e
Cleanup webpack aliases (#2846) 2022-11-09 07:34:40 -05:00
absidue 2b233815ec
Move colours and the colour functions to their own file (#2844) 2022-11-09 05:57:48 +00:00
absidue 46bbcafbbc
Reduce duplicate code by introducing a function to create a proxy agent (#2845) 2022-11-09 05:57:26 +00:00