diff --git a/Changelog.md b/Changelog.md index 24c81d4..3efd15b 100644 --- a/Changelog.md +++ b/Changelog.md @@ -1,3 +1,19 @@ +# 2023.12.7.0 + +*2023-12-07* + +- Added + - Saved posts: add downloaded saved posts to the feed + - **YouTube (SCrawler): the ability to download YouTube user community feeds** + - Main window: add `Alt+A` hotkey to show scheduler + - Main window: add `Alt+P` hotkey to show progress form + - YouTube: check of adding a URL if it has already been downloaded + - YouTube: ability to check for a new version at start + - **Updater** +- Fixed + - Standalone downloader: URL files are not deleted along with the file + - Minor bugs + # 2023.11.25.0 *2023-11-25* diff --git a/FAQ.md b/FAQ.md index 028e401..b7d03d5 100644 --- a/FAQ.md +++ b/FAQ.md @@ -113,4 +113,8 @@ A: I can only [suggest](#q-you-lost-me-your-program-is-too-complicated) you find #### Q: **Can you add a step-by-step guide or video on how to use the program?** -A: **NO! NEVER!** The guide fully covers all the functionality of SCrawler! If you don't respect my work, I don't waste my time. If you want, you can create a video tutorial and send it to me. Then I add it. All options and what each option does described on the wiki. The wiki also contains a description of all settings and how-to configure them. For complex settings, there is a steep-by-steep guide. Read the [main](README.md) information and [GUIDE](https://github.com/AAndyProgram/SCrawler/wiki/) and you won't have any problems. I have developed a program with an intuitive interface. There is a Settings button, download buttons, a context menu that drops down when a user is clicked, and other controls. Anyone can use it. \ No newline at end of file +A: **NO! NEVER!** The guide fully covers all the functionality of SCrawler! If you don't respect my work, I don't waste my time. If you want, you can create a video tutorial and send it to me. Then I add it. All options and what each option does described on the wiki. The wiki also contains a description of all settings and how-to configure them. For complex settings, there is a steep-by-steep guide. Read the [main](README.md) information and [GUIDE](https://github.com/AAndyProgram/SCrawler/wiki/) and you won't have any problems. I have developed a program with an intuitive interface. There is a Settings button, download buttons, a context menu that drops down when a user is clicked, and other controls. Anyone can use it. + +**The following video shows how to add credentials:** + +[![How to configure](https://img.youtube.com/vi/XDn7zG4I700/0.jpg)](https://www.youtube.com/watch?v=XDn7zG4I700) \ No newline at end of file diff --git a/ProgramScreenshots/SettingsSiteYouTube.png b/ProgramScreenshots/SettingsSiteYouTube.png index 5cd7367..18d4891 100644 Binary files a/ProgramScreenshots/SettingsSiteYouTube.png and b/ProgramScreenshots/SettingsSiteYouTube.png differ diff --git a/README.md b/README.md index 2508598..3a042e0 100644 --- a/README.md +++ b/README.md @@ -30,7 +30,7 @@ A program to download photo and video from [any site](#supported-sites) (e.g. Yo # What can program do: - Download pictures and videos from users' profiles and subreddits: - - YouTube videos, shorts, users, artists, playlists, music, tracks; + - YouTube videos, shorts, community feeds, users, artists, playlists, music, tracks; - Reddit images, galleries of images, videos, saved posts; - Redgifs videos (https://www.redgifs.com/); - Twitter images and videos, saved (bookmarked) posts; diff --git a/SCrawler.Shared/My Project/AssemblyInfo.vb b/SCrawler.Shared/My Project/AssemblyInfo.vb index 8213551..df82b6d 100644 --- a/SCrawler.Shared/My Project/AssemblyInfo.vb +++ b/SCrawler.Shared/My Project/AssemblyInfo.vb @@ -32,6 +32,6 @@ Imports System.Runtime.InteropServices ' by using the '*' as shown below: ' - - + + diff --git a/SCrawler.Updater/My Project/AssemblyInfo.vb b/SCrawler.Updater/My Project/AssemblyInfo.vb index 79aa518..e6cadaf 100644 --- a/SCrawler.Updater/My Project/AssemblyInfo.vb +++ b/SCrawler.Updater/My Project/AssemblyInfo.vb @@ -32,6 +32,6 @@ Imports System.Runtime.InteropServices ' by using the '*' as shown below: ' - - + + diff --git a/SCrawler.YouTube/My Project/AssemblyInfo.vb b/SCrawler.YouTube/My Project/AssemblyInfo.vb index 2c1416b..f495393 100644 --- a/SCrawler.YouTube/My Project/AssemblyInfo.vb +++ b/SCrawler.YouTube/My Project/AssemblyInfo.vb @@ -32,6 +32,6 @@ Imports System.Runtime.InteropServices ' by using the '*' as shown below: ' - - + + diff --git a/SCrawler.YouTubeDownloader/My Project/AssemblyInfo.vb b/SCrawler.YouTubeDownloader/My Project/AssemblyInfo.vb index 172defa..59f8d91 100644 --- a/SCrawler.YouTubeDownloader/My Project/AssemblyInfo.vb +++ b/SCrawler.YouTubeDownloader/My Project/AssemblyInfo.vb @@ -32,6 +32,6 @@ Imports System.Runtime.InteropServices ' by using the '*' as shown below: ' - - + + diff --git a/SCrawler/Download/Feed/FeedVideo.vb b/SCrawler/Download/Feed/FeedVideo.vb index c891b80..a64e4ae 100644 --- a/SCrawler/Download/Feed/FeedVideo.vb +++ b/SCrawler/Download/Feed/FeedVideo.vb @@ -6,7 +6,7 @@ ' ' This program is distributed in the hope that it will be useful, ' but WITHOUT ANY WARRANTY -Imports LibVLCSharp +Imports LibVLCSharp.Shared Imports System.Threading Imports System.ComponentModel Imports PersonalUtilities.Tools @@ -15,7 +15,7 @@ Imports VLCState = LibVLCSharp.Shared.VLCState Namespace DownloadObjects Public Class FeedVideo - Private WithEvents MediaPlayer As [Shared].MediaPlayer + Private WithEvents MediaPlayer As MediaPlayer Private ReadOnly TimeChange As Action = Sub() If _Disposed Then Exit Sub Dim v# = DivideWithZeroChecking(MediaPlayer.Time, MediaPlayer.Length) * 10 @@ -50,7 +50,7 @@ Namespace DownloadObjects '#If DEBUG Then ' debugLogs = True '#End If - MediaPlayer = New [Shared].MediaPlayer(New [Shared].Media(New [Shared].LibVLC(enableDebugLogs:=debugLogs), New Uri(File.ToString))) + MediaPlayer = New MediaPlayer(New Media(New LibVLC(enableDebugLogs:=debugLogs), New Uri(File.ToString))) MyVideo.MediaPlayer = MediaPlayer TR_VOLUME.Value = MediaPlayer.Volume / 10 If Settings.UseM3U8 Then @@ -111,7 +111,7 @@ Namespace DownloadObjects End Sub, "Stop") UpdateButtons() End Sub - Private Sub MediaPlayer_TimeChanged(sender As Object, e As [Shared].MediaPlayerTimeChangedEventArgs) Handles MediaPlayer.TimeChanged + Private Sub MediaPlayer_TimeChanged(sender As Object, e As MediaPlayerTimeChangedEventArgs) Handles MediaPlayer.TimeChanged If _Disposed Then Exit Sub If TR_POSITION.InvokeRequired Then TR_POSITION.Invoke(TimeChange) Else TimeChange.Invoke If LBL_TIME.InvokeRequired Then LBL_TIME.Invoke(TimeChangeLabel) Else TimeChangeLabel.Invoke diff --git a/SCrawler/My Project/AssemblyInfo.vb b/SCrawler/My Project/AssemblyInfo.vb index 9f9248b..47f162c 100644 --- a/SCrawler/My Project/AssemblyInfo.vb +++ b/SCrawler/My Project/AssemblyInfo.vb @@ -32,6 +32,6 @@ Imports System.Runtime.InteropServices ' by using the '*' as shown below: ' - - + +