Commit Graph

772 Commits

Author SHA1 Message Date
PrestonN 523a28d0f7 Fix text color contrast with main Dracula colors 2021-10-12 16:19:46 -04:00
Hiers eb0138e131
Updated frame-by-frame function to cover previous edge cases. (#1411)
* Updated frame-by-frame function to cover previous edge cases.

* Minor change to setting fps value.

* Fixed default value and if.
2021-10-07 11:44:39 +00:00
ChunkyProgrammer 1390276d55
[Fix] Invidious not used for channels icons in search (#1477)
* fix channel icons

* Add comment

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

Co-authored-by: Preston <freetubeapp@protonmail.com>
Co-authored-by: PikachuEXE <pikachuexe@gmail.com>
2021-10-07 06:36:13 +00:00
kuhaku 3cf18b9f2d
Add support for the 'defaultCustomArguments' external player mapping field (#1415)
* feat(store/utils): add support for the `defaultCustomArguments` external player mapping field
improve(store/utils): move custom arguments evaluation to the top in `openInExternalPlayer`
improve(components/external-player-settings): conditionally append the default custom arguments to the tooltip

Signed-off-by: Randshot <randshot@norealm.xyz>

* fix(components/external-player-settings): fix lint error
chore(components/external-player-settings): remove unnecessary console log

Signed-off-by: Randshot <randshot@norealm.xyz>

* chore(static/external-player-map): add new `defaultCustomArguments` field to vlc map

Signed-off-by: Randshot <randshot@norealm.xyz>
2021-10-07 06:29:43 +00:00
vallode dc26141338
Parse like and dislike count to add comma separator (#1796)
* Parse like and dislike count to add comma separator

* Use user locale with fallback for like count
2021-10-06 17:09:08 -04:00
JInfantesC 9f591ba6ee
Sidebar compact issue1293 (#1462)
* #1293. Revise side-nav text labels

* #1293. Remove text on collapsed menu

* #1293. Height of collapsed Option

* Update side-nav.vue. Trending text in title attr

* Side-nav-more-options revised

* Restore navLabel on closed status

* Sidenav label in compact mode as an opt-in setting

* Sidenav-more-options using hideCompactSidebarText

* Sidenav after lintfix

* Sidenav label option renamed and moved to theme settings

* Set minimum height for .navOption

* Correct capitalization

* NavBar icon size on compact mode

* More compact navbar while hiding labels

* Fix store getter

* side-nav.css remove comments

* Update hide labels text

Co-authored-by: Preston <freetubeapp@protonmail.com>
2021-10-05 20:16:47 +00:00
ChunkyProgrammer e681772192
Feat: Invidious instance autofill (#1784)
* filter invidious instances

* remove watch for value

* update list on mount

* hide on misspell + empty

* Fix spelling mistake

* minor fix

* remove "Clear" to "from." from locale  files
2021-10-05 13:58:35 +08:00
Airidasz c2c6a55682
Make autoplay text fit inside top bar when translated (#1767)
* Make autoplay fit inside top bar when translated

* Lint
2021-10-03 10:53:21 +00:00
Airidasz 0a12e58796
Date locale change (#1757)
* Update watch-video-info.js

* Modified language files

Modified language files to include the ISO 639-1 language code

* Change date based on locale

This changes the date based on locale. If locale does not exist it defaults to English

* Removed locale codes from files

* Getting locale code from $store

* Delete launch.json

* Replace _ with - for locale

* Add locale change to playlist query

Change the locale of playlist query.
On error defaults to user location (the library does it, no extra work required)
Does not work with Norsk nyorsk locale

* Make linter happy

* Lint

* replace dashes with underscores for locale string
2021-10-02 15:43:42 +00:00
peepopoggers 25189e2aff
Don't blind dark theme users (Dark loading screen) (#1502)
* Don't blind dark theme users

It is better to start the temporary background dark so it doesnt flashbang dark theme users late at night.
Just happened to me 😢 
This makes the loading background color the normal dark theme background color.

* Grab theme before await

* make it consistent when built

* final fixes

* removed accidental file

Co-authored-by: Preston <freetubeapp@protonmail.com>
2021-10-01 12:12:35 +00:00
PikachuEXE 87e1093c4d
Update top nav input box action button icon depends on input (#1738)
* Rename `showArrow` to `showActionButton`

* * Display different icon for action button when input text look like a Youtube URL

* ! Fix transition for button appearing absent

* * Update to use new icon for all FT supported URLs

* Update src/renderer/components/ft-input/ft-input.js

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

* * Update action button to look disabled when input text is empty

* * Disable button hover/active visual effect when "disabled"

* * Make action button only respond to cursor when enabled

Co-authored-by: Jason <84899178+jasonhenriquez@users.noreply.github.com>
2021-10-01 07:38:33 +00:00
PikachuEXE 07fd93d3aa
Fix watching video in development (#1668)
* Fix watching watched video in development

* Fix removing a file even when it does not exist (and would raise error)

* Fix infinite reload in video watching

File updates (e.g. dashFiles) in static folder triggers app reload (web-dev-server)
But the a file is created/updated/deleted on before playing any video
So it goes into a loop of loading a video
2021-09-23 07:04:00 +00:00
ChunkyProgrammer b1a310ef09
Update colours (search results & select boxes) to match theme (#1482)
* update colors to match theme

* fixed issues with light theme

* readded line that was accidentally deleted

* update colour to match search bar

* update profile selector & dropdown

* increase blur on ft-profile-selector box shadow

* don't change search suggestion background color to primary color

Co-authored-by: Preston <freetubeapp@protonmail.com>
2021-09-23 06:48:40 +00:00
PikachuEXE 56b562966f
Focus in input after text clear (#1669)
* * Focus in input after text clear

* "makes the button disappear after clicking"

* animation

* Fix button title text

* Really remove/hide the button after CSS animation

* Fix hovered button overlapping text input box

* Fix incorrect initial value
2021-09-23 06:45:14 +00:00
Jason b205aaeee5
Style improvements to Channel & Trending pages (#1736)
* Fixes #1733

* Improves Trending & Channel tab styling

Removes :focus styling for unintended effects with auto-focusing on Trending page. Replaces underline with bold text weight & primary color bottom border on selected/active tab. Replaces animated background color change with bold text weight on tab:hover. Changes inactive tab color to tertiary. Removes unnecessary margin beneath tabs. Removes some of the empty vertical space between Channel info section & channel banner. Adds margin changes to maintain good appearance on smaller screens.
2021-09-23 06:42:30 +00:00
Cody Sechelski edf0f0bc93
Added Dracula Theme (#1727)
* Added Dracula Theme
• Added Light and Dark versions of the logo using Dracula Colors
• Added the base theme and Dracula accent colors to the theme.css
• Added the options for the new theme and colors in the theme-settings comp
• Added translations for the theme and color names to all local yaml files that
  already had theme and color information

* fixed some yamls that I broke

* fixed some more yamls that I broke

* fixed an indentation error

* fixed the formating issues. It's back to 2 spaces rather than 4.

* removed package-lock, added back a new line at the end of the .gitignore, tweaked the colors a bit to add more contrast beween the text and backgroud colors in the overflow menu on the video cards., changed the card color to be slightly ligher than the background instead of slightly darker.

* apparently there was a blank line in the package.json file that was removed. Just trying to get this diff out of the pr

* apparently there was a blank line in the package.json file that was removed. Just trying to get this diff out of the pr

* fixed formating issues that I created in the theme.css. Converted my new code to use double quotes and uppercase hex codes to match existing formatting.

* fixed formating issues that I created in the theme.css. Converted my new code to use double quotes and uppercase hex codes to match existing formatting.

* fixed formating issues that I created in the theme.css. Converted my new code to use double quotes and uppercase hex codes to match existing formatting.

* resoliving conflicts in a local file

* added contract to all of the dracula primary colors. Added contrast for the main dracula theme's secondary and teriary text colors
2021-09-22 18:26:14 -04:00
Jason c14aeab8ef
Fixes new lines not being displayed in comments (#1719) 2021-09-20 05:25:50 -04:00
ChunkyProgrammer 94756458b1
feat: Optimize caption sort order (#1661)
* choose best caption

* add comments

* fix linter issue
2021-09-20 10:12:14 +08:00
PikachuEXE f931092b96
* Implement setting for disabling external link opening (#1427)
* * Implement setting for disabling external link opening

* * Implement setting for disabling external link opening in dropdown

* * Place proper tooltip content on setting tooltip

* Implement "open link after prompt"

* Fix new setting placement and long translation entry value issue

* fix via increasing width instead of truncating text

* * Access new perference via computed property

* ~ Move the code comment back to original place

* * Update prompt to show URL

* Fix missing :key for element with v-for

* Do Nothing > No Action

* $ Use shortcut to preference value in conditional statements

* Update translation text

* move and update tooltip text

* Rename "Open Link After Prompt" > "Ask Before Opening Link"

Also fix the translation value
2021-09-16 19:03:25 -04:00
Jason 59828a101d
Implements color clues for history navigation arrows (#1579)
Co-authored-by: Preston <freetubeapp@protonmail.com>
2021-09-16 22:58:03 +00:00
Jason cfeac8c7f1
Collapsible Settings Sections (#1699)
* Adds base dropdown ability to settings page with <details> & <summary>

* Adjusts styling of settings page

Replaces css stylesheets with sass stylesheets on some settings elements for better standardization of styling. Removes now unnecessary ft-card, .card, etc styling. Adds styling to new dropdown functionality.

* Update subscription-settings.sass

* Update Settings.css
2021-09-15 10:03:00 +08:00
Airradda f7e918ab23
Add Toggle Theatre Keybind [T] (#1703) 2021-09-15 10:00:34 +08:00
Airidasz b4f70132b6
Proportional scaling inside grid (#1514)
* Proportional scaling inside grid

Cards inside grid (subscriptions, trending and others using the same system) now scale according to grid size.

* Update _ft-list-item.sass

Co-authored-by: Preston <freetubeapp@protonmail.com>
2021-09-14 10:01:48 +08:00
Jason aa5760a6b3
Replaces outdated links to FreeTube GH wiki with links to Docs site (#1698) 2021-09-13 22:25:55 +01:00
PikachuEXE 1ff6617ff2
* Update app to hide top nav filter panel on page change (#1479) 2021-09-13 18:26:08 +01:00
no-comma 065fc49db0
Feedback when copying playlist link (#1660)
* Show message when copying playlist URL

* Move toast to after writing to clipboard
2021-09-06 14:39:54 +00:00
PikachuEXE be58077025
* Improve style of top nav search input (#1392)
* * Improve style of top nav search input

* Implement clear input text on input

* ! Fix to only have top nav input to add new clear text box button

* * Update button design & fix accessibility flaw

* * Update spacing of new button

* * Update input box padding-left to use the same value as padding-right

* * Updating button padding
2021-09-06 10:09:11 +00:00
Jason 1fe733524c
Fixes thumbnail width (#1646) 2021-09-06 08:37:09 +00:00
Jason 4e5976c275
Fixes video volume scroll from preventing vjs-menu scrolling (#1650) 2021-09-05 15:39:44 -04:00
ChunkyProgrammer 7766f1ff4b
fix trending text in small window (#1638) 2021-09-04 14:55:50 -04:00
Jason f7c6f051f0
Fixes changelog to look better with larger bodies (#1634) 2021-09-03 11:24:05 -04:00
Jason c3105f46e5
Theatre mode icon accounts for default theatre mode being ignored when switching between videos (#1632) 2021-09-02 19:22:06 +01:00
PrestonN 0db6dd1f97 Fix update checker, bump version number, and update node modules 2021-09-01 16:31:20 -04:00
Jason 4bb095063a
Removes erroneous variable name 'defaultTheatreModeActive' with 'defaultTheatreMode' (#1630) 2021-09-01 06:05:36 -04:00
PikachuEXE 8821613d6f
! Fix profile menu toggle button to toggle menu instead of keep opening (#1437)
* ! Fix profile menu toggle button to toggle menu instead of keep opening

* ! Fix togglable buttons to toggle menu instead of keep opening
2021-08-25 15:39:38 +01:00
ChunkyProgrammer 044e5bf907
[Feature] Add support for importing/exporting csv YouTube subscriptions + improve speed of reimporting subscriptions (#1543)
* Add support for csv yt subscriptions

* Simplify setting exportFileName

* check if subscribed to channel before making web requests

Co-authored-by: Preston <freetubeapp@protonmail.com>
2021-08-25 07:47:21 +00:00
PikachuEXE d010725b39
* Update video player to remove tooltip for current time on play progress bar (#1478)
Co-authored-by: Preston <freetubeapp@protonmail.com>
2021-08-24 22:46:42 +00:00
ChunkyProgrammer 6ebb000cb3
Navigate to "subscriptions" on logo click (#1394)
* Updated logo to navigate to "subscriptions" on click

* accessibility improvements

* don't change backgroud color on hover
2021-08-24 22:14:37 +00:00
ChunkyProgrammer 27617ccc40
[Fix] Freetube does not play the next video in a playlist when using the Invidious API (#1488)
* fix playlists for invidious

* Code clean up + bug fix

Co-authored-by: Preston <freetubeapp@protonmail.com>
2021-08-24 20:52:30 +00:00
Jason f801ea4b05
Integrate theater mode into mediaplayer (#1589)
* Moves theatre mode button to mediaplayer

* Accounts for 'Enable Theatre Mode by Default'

* Removes unnecessary comment

* Removes unnecessary newlines

* Rename variable for toggle theatre mode button

* Fix issue caused by missing change in rename

Co-authored-by: Preston <freetubeapp@protonmail.com>
Co-authored-by: PikachuEXE <pikachuexe@gmail.com>
2021-08-24 07:36:10 +00:00
ChunkyProgrammer 1ceb21f424
load shorts links (#1605) 2021-08-22 16:25:14 +00:00
ChunkyProgrammer 011ee17711
[Feature] Add trending pages for music, gaming & movies (#1483)
* Add other trending pages

* Add better formatting

* fixed trending cache

* Fix Trending page title

Changes in PR #1321 make this necessary

* update locale files

* add accessibility improvements

accessibility improvements

* focus tab on reload

Co-authored-by: Preston <freetubeapp@protonmail.com>
2021-08-21 23:08:38 +02:00
Imawall 703a8da427
fix comments failback to invidious api (#1537)
Co-authored-by: Preston <freetubeapp@protonmail.com>
2021-08-21 08:49:14 +00:00
ChunkyProgrammer 2f9ef7cdd6
Make "Show More Replies" for comments translatable (#1555)
Co-authored-by: Preston <freetubeapp@protonmail.com>
2021-08-21 08:11:19 +00:00
Jason 7add3e4b1c
Hides video description when it is empty (#1585)
Co-authored-by: Preston <freetubeapp@protonmail.com>
2021-08-20 19:51:46 +00:00
JInfantesC 329a673cd8
Channel view layout issue (#1591)
* #1499. On channel page. Change absolute css to display flex

* Inline css move to file

* Update Channel.css

* Class additions and inline css removal

* empty line

* Update Channel.css

Co-authored-by: Preston <freetubeapp@protonmail.com>
Co-authored-by: peepopoggers <72892531+peepopoggers@users.noreply.github.com>
2021-08-20 18:54:16 +00:00
ChunkyProgrammer 11bb81795d
fix featured icons not loading (#1552)
Co-authored-by: Preston <freetubeapp@protonmail.com>
2021-08-20 18:45:00 +00:00
Jason 539b084217
Keep reload buttons' position fixed on scroll (#1573)
* Makes reload buttons' position fixed

* Changes reload buttons' positions to absolute on narrow enough screens

Co-authored-by: Preston <freetubeapp@protonmail.com>
2021-08-20 20:15:33 +02:00
Jason 354a2151df
Add customized fast-forward / rewind intervals (#1390)
* Setting to customize fast-forward/rewind times

* Move variable placement to keep alphabetical order

Moves defaultSkipInterval to be one line below defaultQuality because Q comes before S in the alphabet. This keeps the variable declarations alphabetical.
2021-08-05 22:17:01 +02:00
PikachuEXE 0d0a2f4c26
Improve playlist long description display (#1358)
* $ Add class names to some elements & use in CSS

* * Update playlist page style to ensure description box has max height to enusre visibility of share button
2021-08-05 21:22:43 +02:00
Svallinn 13d73d2798
Switch out deprecated `yt-comment-scraper` package and bump version
Closes #1490
2021-07-23 23:17:45 +01:00
ChunkyProgrammer 93a48ffe24
Translate window titles (#1321)
* Update Titles to change based on locale

* Update Title on Forward/Backwards navigation

* Revert "Update Title on Forward/Backwards navigation"

This reverts commit 0a57825e920911275dcabfbb36d44712a452da15.

* Translate Window Titles

-Updated en-US & en_GB localization files to include 'Playlist" and "Profile Settings"
- Updated app to dynamically change titles + translate (App.js sets title instead of router now)
- Channel & Video get title based on Channel Name & Video name (changing those titles are in their respective views)

* Revert "Update Titles to change based on locale"

This reverts commit 9e8081606710c2a63655dc33594c542af7826df8.

* Re-add update title to channel view

* fix playlist title

* Fix 'Edit Profile' title
2021-07-21 11:45:02 -04:00
ChunkyProgrammer 6522521b88
Escape HTML in chat & comments (#1342)
* Fix comment regex & live chat

* fix regex
2021-07-21 10:37:55 -04:00
PrestonN d4953525b2 Fix issue with videos not loading when running in dev mode 2021-07-17 20:24:26 -04:00
Émilien Devos 0ff1e65a9e
yewtu.be now support FreeTube (#1518) 2021-07-15 22:05:53 -04:00
Svallinn d8d601cc08
Main: Minor changes 2021-07-03 03:44:23 +01:00
Svallinn 2ce3110041
Main: Move window bounds persistence logic over to the main process 2021-07-03 03:43:49 +01:00
Svallinn 718f9450d6
Main: Remove 'openedWindows' variable
Electron already has a built-in tracker for all opened windows,
so it makes no sense to have custom code to handle it.
One should always use what is given to you :^)
2021-07-03 03:38:41 +01:00
Svallinn 40d7278383
Invidious: Randomize instance on startup
There are now two separate settings related to Invidious instances:
- currentInvidiousInstance
- defaultInvidiousInstance

'currentInvidiousInstance' is a value that exists solely in memory
and it's the value used by the app to make the API calls,
while 'defaultInvidiousInstance' is the value that can be persisted
in the database by user action and will be used to initiate
the 'currentInvidiousInstance' on startup.

If the user has not saved a default value to the database,
'currentInvidiousInstance' is randomized from
a fetched list of viable candidates.
2021-07-03 02:55:56 +01:00
Svallinn 99b61e6178
Store: Implement history synchronization between windows 2021-06-26 05:06:21 +01:00
Svallinn b68e1700c0
Main+Renderer: Make IRC window syncing channels more generic
This commit renames the 'syncSettings' IRC channels to 'syncWindows' and
changes the renderer's listener setup for this channel more generic
so that it can cover other store modules besides the settings' module.
2021-06-26 05:06:18 +01:00
Svallinn 8f4a5ee1bd
Store/History: Prevent actions from unnecessarily using the filesystem
Most actions in the history module would grab the history from disk
every time the history was updated and updated the cache this way.

This commit makes these actions perform these modifications in memory
instead of unnecessarily reaching into the disk.
2021-06-26 05:04:31 +01:00
Svallinn 9859a7ce18
App+Settings: Make locale changes reactive between windows
This commit moves the locale relevant code to the settings' store module
and incorporates it with its current architecture.

I should clarify that this makes the value present in the `localStorage`
nonmeaningful, as that value is no longer being used in any way.
2021-06-20 02:47:44 +01:00
Svallinn d3e6d57f20
Main+Utils: Rename `getLocale` function to `getSystemLocale` 2021-06-20 02:47:33 +01:00
Svallinn 5cc954066b
Renderer: Move vue-i18n to its own file 2021-06-20 02:40:40 +01:00
Svallinn 4f96aacbf6
Chore: Replace `youtube-chat` package with `@freetube/youtube-chat`
Having control of the package enables us to update its dependencies
and react to vulnerability advisories.
2021-06-19 19:12:42 +01:00
Svallinn be11e3d8cb
Chore+Refactor: Replace `nedb` package with `nedb-promises`
The 'nedb' package is unmaintained (last update was 5 years ago) and
has a couple of high severity vulnerabilities.

In addition, the use of callbacks is somewhat cumbersome for
the project's current workflow.

Therefore, I've decided to replace it with the 'nedb-promises' package,
which, internally, makes use of a maintained fork of 'nedb' and
wraps its API with Promises.
2021-06-17 04:21:58 +01:00
Svallinn 73c198a30c
Chore: Replace `markdown` package with `marked`
The 'markdown' package is unmaintained (last update was 8 years ago)
and has a low severity vulnerability, so it makes sense to replace it
with 'marked', which is actively maintained and very small in size.
2021-06-17 04:14:06 +01:00
Svallinn 77e743060f
Main+Renderer+Dev-Runner: Refactor smooth scrolling toggling
Smooth scrolling toggling is currently wonky on runtime, since,
most of the time, it doesn't toggle on and off properly.
In addition, now that we have multi-window support,
the current implementation was somewhat lacking.

This commit solves those issues by replacing
the existing smooth scrolling related channels with a
new generic `relaunchRequest` channel.
2021-06-16 05:43:26 +01:00
Svallinn bceab435b7
Main: Move session data cleanup to `window-all-closed` event
Since the session is shared by all 'BrowserWindow's and
it can be accessed without a window reference,
it's best to clear data when the 'window-all-closed' event is emitted.
2021-06-16 05:43:25 +01:00
Svallinn bbc9b63357
Main: Simplify `createWindow` function
With the knowledge that the session is shared by all 'BrowserWindow's,
proxy and cookie related logic can now be set once on startup and
it's not necessary to set them again for every window created.
2021-06-16 05:43:09 +01:00
Svallinn bd4e867db1
Main: Change `window.webContents.session` to `session.defaultSession`
Previously, the code misleadingly lead developers to believe that
each 'BrowserWindow' had its own isolated session.
This commit clarifies the fact that a global session is shared
by all 'BrowserWindow's by default.
2021-06-16 05:34:38 +01:00
Svallinn 0551ce44f2
Main+Renderer: Enforce synchronous messages on `setBounds` channel
This should fix an issue where, when closing the app, an error window
would very occasionally pop up declaring that 'getNormalBounds'
was called on an undefined variable.
2021-06-16 05:34:37 +01:00
Svallinn 65df233e8a
Profile+Everywhere: Tweak CSS on profile related components
This commit improves the centering of profile bubble initials
and tweaks other parts of profile related components.
2021-06-16 05:34:37 +01:00
PikachuEXE 6d2b1f3632
Top-Nav: Improve search filter's appearance (#1360)
* Update search filter style to have little transparency & smaller size
2021-06-15 14:53:06 +00:00
PikachuEXE 9acafc7292
* Update top nav search input to disable spellcheck (#1346) 2021-06-15 14:42:37 +00:00
PikachuEXE 825bec1a81
* Update playlist page thumbnail to start playing first video on click (#1361) 2021-06-15 14:42:00 +00:00
PikachuEXE 78b6adeb5e
Playlist: create navigation to the respective channel (#1347) 2021-06-15 14:18:08 +00:00
PikachuEXE ce15f4b7c4
Watch: stop autoplay countdown toasts when navigating to another page (#1287) 2021-06-14 18:10:21 +00:00
ChunkyProgrammer bb3edb750f
Hide trending and most popular when set to hidden (Portrait Mode) (#1324)
* hide trending & popular videos from bottom nav

* add computed properties for Hide Popular & Hide Trending
2021-06-14 17:54:03 +00:00
PikachuEXE 588b488856
Watch: set volume's session value to 0 when the player is muted (#1352) 2021-06-14 17:15:46 +00:00
ChunkyProgrammer f6c2e0937b
Fix emoji initials in Profile Previews (#1407)
* updated get profile initial methods

* simplify return statements
2021-06-14 16:59:09 +00:00
Luca Hohmann 2b75e63b19
Bumped comment scraper (#1410) 2021-06-13 22:08:12 +02:00
kuhaku 52fa523df1
Add support for External Players (closes #418) (#1271)
* feat: add support for opening videos/playlists in external players (like mpv) #418

Signed-off-by: Randshot <randshot@norealm.xyz>

* feat: move external player settings into own section
feat: add warnings for when the external player doesn't support the current action (e.g. reversing playlists)
feat: add toggle in settings for ignoring unsupported action warnings

Signed-off-by: Randshot <randshot@norealm.xyz>

* improvement: do not append start offset argument when the watch progress is 0

Signed-off-by: Randshot <randshot@norealm.xyz>

* fix: fix undefined showToast error when clicking on the external player playlist button

Signed-off-by: Randshot <randshot@norealm.xyz>

* feat: add icon button for external player to watch-video-info (below video player) component
improvement: refactor the code for opening the external player into a separate function in utils.js

Signed-off-by: Randshot <randshot@norealm.xyz>

* feat: add support for ytdl protocol urls (supportsYtdlProtocol)
chore: fix lint error

Signed-off-by: Randshot <randshot@norealm.xyz>

* feat: add support for passing default playback rate to external player
improvement: add warning message for when the external player does not support starting playback at
             a given offset
chore: rename reverse, shuffle, and loopPlaylist fields for consistency

Signed-off-by: Randshot <randshot@norealm.xyz>

* feat: add setting for custom external player command line arguments

Signed-off-by: Randshot <randshot@norealm.xyz>

* chore: fix lint error

Signed-off-by: Randshot <randshot@norealm.xyz>

* improvement(watch-video-info.js): change the default for playlistId back to null (consistent with other occurrences)
improvement(utils.js/openInExternalPlayer): also check for empty playlistId string
fix(watch-video-info.js): fix merge error

Signed-off-by: Randshot <randshot@norealm.xyz>

* improvement(components/ft-list-video): check whether watch history is turned on, before adding a video to it
fix(store/utils): fix playlistReverse typo, causing `undefined` being set as a command line argument
fix(store/utils): check for 'string' type, instead of `null` and `undefined`
fix(views/Watch): fix getPlaylistIndex returning an incorrect index, when reverse was turned on
chore(locales/en-US): fix thumbnail and suppress typo
chore(locales/en_GB): fix thumbnail and suppress typo

Signed-off-by: Randshot <randshot@norealm.xyz>

* feat: pause player when opening video in external player

Signed-off-by: Randshot <randshot@norealm.xyz>

* feat(externalPlayer): refactor externalPlayerCmdArguments into a separate static file `static/external-player-map.json`
chore(components/ft-list-video): fix lint error

Signed-off-by: Randshot <randshot@norealm.xyz>

* Revert "feat: pause player when opening video in external player"

This reverts commit 28b4713334bf941be9e403abf517bb4b89beb04f.

* feat: pause the app's player when opening video in external player

* This commit addresses above requested changes.

improvement(components/external-player-settings): move `externalPlayer` check to `ft-flex-box`
improvement(components/external-player-settings): use `update*` methods, instead of `handle*`

improvement(store/utils): move child_process invocation to `main/index.js` via IPC call to renderer
improvement(store/utils): use `dispatch` for calling actions
improvement(store/utils): get external player related settings directly in the action

improvement(renderer/App): move `checkExternalPlayer` call down into `usingElectron` if statement
fix(renderer/App): fix lint error

improvement(components/ft-list-playlist): remove unnecessary payload fields
fix(components/ft-list-playlist): fix typo in component name

improvement(components/ft-list-video): remove unnecessary payload fields

improvement(components/watch-video-info): remove unnecessary payload fields
improvement(views/Settings): add `usingElectron` condition

Signed-off-by: Randshot <randshot@norealm.xyz>

* fix(store/utils): fix toast message error

Signed-off-by: Randshot <randshot@norealm.xyz>

* fix(store/utils): fix a few code mess-ups

Co-authored-by: Svallinn <41585298+Svallinn@users.noreply.github.com>
2021-06-13 17:31:43 +02:00
Svallinn 84e15cccbb
Store+Vuetools: Remove some leftover artifacts that would break vuetools 2021-06-13 12:09:43 +01:00
Svallinn 0ad1518038
Store/Settings: Remove accidently duplicated commented out setting 2021-06-11 15:29:45 +01:00
Svallinn 672c734024
Store/Settings: Sort `state` entries alphabetically 2021-06-11 03:56:03 +01:00
Svallinn bc4a329f58
Store/Settings: Remove/comment out some unused settings 2021-06-11 03:53:14 +01:00
Svallinn b6bd3e6434
Store/Settings: Propagate side effects to other existing windows
When syncing a setting between windows, if that setting has any
side effects, a trigger is fired in all other windows to perform
those side effects in their own environment.
2021-06-11 03:49:21 +01:00
Svallinn b26e8b68ef
Store/Settings: Make `grabUserSettings` check for side effects globally
Previously, a custom Map was provided to the function in order to
determine whether or not a setting contained side effects that needed
to be handled.

That Map has now been deleted and the function has been modified
to make use of the module's new architecture.
2021-06-11 03:49:20 +01:00
Svallinn 55a25dc1ea
Store/Settings: Handle `defaultVolume`'s side effects in the module 2021-06-11 03:49:20 +01:00
Svallinn b0f973b76a
Store/Settings: Handle `uiScale`'s side effects in the module 2021-06-11 03:49:12 +01:00
Svallinn bb64efbe4d
Store: Redesign the settings module architecture
Previously, the settings' module was not properly equipped to handle
setting updates that featured certain side effects and no way to
propagate those side effects to other windows.

This redesign is a direct answer to those needs, in preparation to
move these settings and related logic to the aproppriate structures,
which will be done over the course of several commits.

A more in-depth documentation of the current redesign can be found at
the top of the settings module file.
2021-06-11 02:56:40 +01:00
Svallinn 7e94abb3b4
Main+App+Store: Implement basic setting sync between Electron windows
The app utilizes the Electron IPC to communicate settings' updates
to the other existing windows.

This is still at a fairly rudimentary stage, since some settings are
not syncing at all, while other settings have related side effects that
are not currently being propagated to the remaining windows.

An example of this would be the 'uiScale' setting, in which
the value is properly synced, but the app's actual scaling isn't.
2021-06-11 02:56:39 +01:00
Svallinn 5e105f5584
Store: Move `nedb`'s `Datastore` instances to their own file 2021-06-11 02:56:39 +01:00
Svallinn 8b785bd71d
Settings: Remove unnecessary handler for `defaultVolume` update 2021-06-11 02:56:39 +01:00
Svallinn 324e834083
Settings: Round `defaultVolume`'s getter value to the nearest integer
This fixes a bug related to the presentation of the `defaultVolume`
value in its respective label in the Settings view.

Since the value stored in the database and in the in-memory store
is a decimal number, it is subject to floating point arithmetic related
limitations.

Example (processed by the V8 engine):
0.28 * 100 = 28.000000000000004
2021-06-11 02:56:38 +01:00
Svallinn 08cf749277
App: Remove unnecessary leftover artifacts 2021-06-11 02:56:38 +01:00
Seb 2297bf3732
Implement persistence for caption settings (#1269) 2021-06-10 19:35:00 +00:00
Svallinn 94fcacc308
Main: Rearrange/refactor the main process' logic
This commit removes duplicated handler logic related to the app's
'ready' event. In addition, it rearranges the template used to build the
app's menu in order to make it a bit easier to understand.
2021-06-07 19:10:35 +01:00