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

Kick support #834

Open
wants to merge 48 commits into
base: master
Choose a base branch
from
Open

Kick support #834

wants to merge 48 commits into from

Conversation

lay295
Copy link
Owner

@lay295 lay295 commented Sep 26, 2023

Work in progress... just wanted the Github Actions builds mainly

EDIT: Apparently I don't know how GitHub actions work since I expected this to build. Probably have to resolve the conflicts I guess

@lay295 lay295 marked this pull request as draft September 26, 2023 23:20
@ScrubN
Copy link
Collaborator

ScrubN commented Nov 2, 2023

It took several days, but I merged master with kick-support for you and also fixed a few bugs while I was there.

@ScrubN
Copy link
Collaborator

ScrubN commented Nov 2, 2023

Also I tested the basic Twitch & Kick functionalities and as far as I can tell everything works as expected.

ScrubN and others added 8 commits November 1, 2023 22:21
…ximum space used when downloading Kick clips
Could help for debugging lockups
* Triple click template problem (#786)

* Revert "Remove triple click from URL mass downloader text box (#783)"

This reverts commit 559e5d9.

* remove template override?

* Revert "remove template override?"

This reverts commit 499c88d.

* kinda

* better?

* some layout stuff

* cleanup; w/s + center button

* cleanup

* format

* review comments: remove redundant

* visual order

* review feedback: remove template setter on other windows/pages

* review feedback: space between elements

* Account for alternate video highlight url format (#788)

* Account for alternate video highlight url format, increase maintainability of video/clip id regex matching

* Reuse code

* Remove working directory override in CLI (#793)

Fixes an issue with relative paths in MacOS

* Fix WPF crash due to system theme watcher related COMExceptions (#796)

* Catch potential ExternalExceptions when starting WindowsThemeService

* Rename locale key TaskError to TaskErrorButton

* Decorate some windows only functions with SupportedOSPlatformAttribute

* Fix comment

* Do not render sub/highlight backgrounds in transparent renders (#799)

* Compile PayingForward & ChannelPointHighlight colors as SKColors instead of using SKColor.Parse at runtime.

* Do not draw subscribe/misc highlight background if the message background is not opaque enough.

* Fix boolean logic

* WPF Chat Updater Fatal Error Fixes  (#803)

* Do not enable chatupdater buttons until chat json is fully loaded & catch deserialization exceptions.
Fixes a crash when loading large chats

* Catch potential exceptions when setting up chatupdater video/clip info & fix potential for thumbnail image to not update between chats

* Fix potential false positive success from TryGetThumb

* Document exceptions from ChatJson.DeserializeAsync

* Videodownload 99% stop fix (#792)

* Delay ThrottledStream stopwatch creation to first read

* Fix incorrect step for Finalizing Video

* Use CancellationTokenSource timers to cancel DownloadFileAsync after a minimum amount of time

* Bump timeout from 30 seconds to 60

* Add comment explaining CTS trickery

* Increase maxRestartedThreads

* Fix CLI FFmpeg download percentage

* Cleanup GetThirdPartyEmotes

* Change signatures of GetServiceEmoteData & add CancellationTokens

* Add Nullable annotation to Core & WPF

* Rename GetServiceEmoteData -> GetServiceEmotesMetadata

* Whoops, forgot to stage

* Disable nullable ref types for now

* A little bit of cleanup & fix potential url list crash

* Spelling fixes (#814)

* Add support for dark title bars on Windows 10 1809-2004  (#815)

* Support dark title bar on Windows 10 versions between 1809 and 2004 (20H1)

* Decided I prefer having it in this file

* Fix incorrect message.bits_spent for chats between v5 shutdown and 1.51.2 (#817)

* Cleanup

* Include VOD description in video metadata if present (#822)

* Add video description to fetch query

* Serialize video description if applicable

* Sanitize line feeds

* Add video description to chat json files

* Increase "old" directory threshold to 7 days

* Fix some theme related crashes (#831)

* Fix crash when app themes fail to extract

* More appropriate name

* Catch potential FormatExceptions when converting theme color strings to brushes

* Nuget upgrade (#804)

* Bump SkiaSharp to 2.88.5

* Bump HarfBuzzSharp to 2.8.2.5

* Bump Autoupdater.NET to 1.8.4

* Experiment with removing dedicated AlpineLinux SkiaSharp package

* Bump SkiaSharp to 2.88.6 & HarfBuzzSharp to 7.3.0

* Fix duplicate newlines and double spaces in video descriptions

* Quality of life GUI improvements (#833)

* Use URIs so thumbnails are actually cached for reuse

* Add design time DataContext to PageQueue and WindowMassDownload

* Add loading animation to WindowMassDownload

* Fix wrong border color on bandwidth throttle checkbox

* Combine CheckThrottleEnabled Checked functions

* Tabs -> spaces

* Apparently this wasn't entirely necessary

* Increase code readability

* Use ThumbnailService in WindowUrlList & add more video metadata

* Start cleaning up WindowQueueOptions

* Use Nullable.GetValueOrDefault everywhere & general cleanup

* Refactor WindowQueueOptions to be a little bit easier to follow

* Add videos per page selector to mass downloaders (#837)

* Add "videos per page" selector to mass downloader windows

* Update translations

* Remove unused imports

* Update Strings.tr.resx (#836)

Co-authored-by: Scrub <[email protected]>

* update spanish translation (#801)

* Update Strings.es.resx

* Create Readme_es.md

* Rename Readme_es.md to README_es.md

* Update README.md

* Update Strings.es.resx

* Add some NotNullWhen attributes

* Remove explicit copyright year

* Better FFmpeg download progress reporting (#840)

* Add FFmpeg download progress reporting to WPF

* Update translations

* Move expensive console writing off of FFmpeg download thread.

* Bump version

* Fix oversight
I need to enable nullable ref types :/

* Spanish translation update (#842)

* Bump version

* Fix old chats with stringified streamer ids being undeserializable (#843)

* Simplify ChatRootVersion

* Fix chats enqueued by the mass downloaders incorrectly having `.json` file extension

* I promise this is the last time I touch the dark title bar code

* Reuse the theme switcher brush converter

* Fix crash due to negative caret index when computing text box triple click.
Fixes #854

* minor translation additions (#853)

* Update Strings.tr.resx

* Create README_tr.md

* Update README.md

* Update build instructions

* Support highlighting new bit badge notifications (#869)

* Simplify icon generation

* Cleanup

* Add support for bit badge tier notifications

* More simplification

* Even more simplification

* Add Ukrainian Translation (#870)

* Ukrainian Translation

* fix comma

* Fix chat jsons and mp4 metadata lacking any chapters for VODs with 1 chapter and clips (#875)

* Create GetOrGenerateVideoChapters and update GetVideoInfo query

* Make ChatDownloader & VideoDownloader use GetOrGenerateVideoChapters

* Use the same Game object for Video & Clip info responses

* Generate a bogus chapter for clips

* Add context menu to video/clip search mass downloaders (#876)

* Add context menu to mass downloaders

* Update TaskData

* Update translations

* Deserialize chat json files without relying on the file extension (#858)

* Deserialize chat json files without relying on the file extension
This fixes a huge issue with the chat updater that somehow went unnoticed
This also enables deserializing UTF16 BOM and UTF32 BOM files

* Thanks Rider

* Many chat updater fixes (#859)

* Fix incorrect percentages in chat updater

* Make crop lock object not static

* Update video info if possible when updating chats

* Compress chat crop updater temp files with gzip

* Fix ArgumentOutOfRangeException when loading information from chat files with less than 2 comments

* Add functionality to deserialize only the first and last comments

* Fix chapter updating

* Clean curl buffer before returning

* Clean all the buffers, reduce ProgressCopyToAsync overhead, reduce maximum space used when downloading Kick clips

* Change all FileShare.None to FileShare.Read
Could help for debugging lockups

* Fix memory leak

* Forgot to stage

* This is handled by SetHandleAsInvalid

* Fix

---------

Co-authored-by: Christopher Stelma <[email protected]>
Co-authored-by: Matthew Davis <[email protected]>
Co-authored-by: Mahmut Sözen <[email protected]>
Co-authored-by: DeciBelioS <[email protected]>
Co-authored-by: Eugene <[email protected]>
@lay295 lay295 marked this pull request as ready for review November 15, 2023 18:46
@ScrubN
Copy link
Collaborator

ScrubN commented Nov 15, 2023

I'm confused why there's still merge conflicts.

Edit: That was pretty annoying, but thankfully I figured it out 🎉

ScrubN

This comment was marked as off-topic.

@ScrubN
Copy link
Collaborator

ScrubN commented Jan 21, 2024

So we can't download the .ts files with an HttpClient anymore, we need to use curl :/

@ScrubN
Copy link
Collaborator

ScrubN commented Jan 21, 2024

Also annoying issue, this target runs on build but not publish.

<Target Name="PostBuild" AfterTargets="PostBuildEvent">
<Exec Command="xcopy /s /d /y &quot;$(ProjectDir)\Curl-Impersonate\*.*&quot; &quot;$(TargetDir)&quot;&#xD;&#xA;RD /S /Q &quot;$(TargetDir)Curl-Impersonate\&quot;" />
</Target>

@Senterrr
Copy link

Could you give a rough estimate as to when we can expect the Kick support?
Really appreciate the work you put in btw.

* Change Regex of KickVideoId and KickClipId to match new format

Kick's format for videos and clips has changed since it was last looked at

* Update IdParseTests.cs to reflect new Kick format

They didn't keep around the old URLs (they're all marked as invalid now) so have swapped out all of the Kick ones

* Fix incorrect test

* Correct Twitch test URL

Accidentally changed this one too

---------

Co-authored-by: Conor <[email protected]>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants