Initial commit: Add ShadowStream media application with file scanning and classification

This commit is contained in:
unknown
2025-05-23 20:17:46 +02:00
commit 323fc9e120
955 changed files with 25791 additions and 0 deletions

View File

@@ -0,0 +1,47 @@
using System;
using System.Collections.Generic;
using System.Threading.Tasks;
namespace file_finder__test
{
class Program
{
static async Task Main(string[] args)
{
// Step 1: Scan for files
var scanner = new FileScanner(new[] { ".mp3", ".mp4", ".wav", ".mkv" });
List<string> drives = await scanner.ScanAllDrivesAsync();
Console.WriteLine($"Found {drives.Count} drives. press matchig key to continue.");
foreach (var file in drives)
Console.WriteLine($"{file}:");
List<string> allFiles = await scanner.ScanDriveParallel(Console.ReadLine().ToUpper()+":/");
// Step 2: Classify the files
var musicExtensions = new List<string> { ".mp3", ".wav" };
var videoExtensions = new List<string> { ".mp4", ".mkv" };
var classifier = new FileClassifier();
var (musicFiles, videoFiles) = await classifier.ClassifyFilesAsync(allFiles, musicExtensions, videoExtensions);
Console.Clear();
// Step 3: Use the results (e.g. print)
//foreach (var music in musicFiles) Console.WriteLine(music);
//foreach (var video in videoFiles) Console.WriteLine(video);
Console.Clear();
// Step 4: Separate Series and Muvies
var separator = new VideoSeparator();
var (series, movies) = await separator.SeparateVideosAsync(videoFiles);
Console.WriteLine("Series:");
foreach (var s in series)
Console.WriteLine(s);
Console.WriteLine("\nMovies:");
foreach (var m in movies)
Console.WriteLine(m);
Console.WriteLine("\nMusic:");
foreach (var m in musicFiles)
Console.WriteLine(m);
}
}
}