Files
mpv.net/src/Scripts/C-Sharp/delete-current-file.cs
2021-07-01 14:16:05 +02:00

69 lines
2.0 KiB
C#

// C# Script that deletes the current file
// In input.conf add:
// KP0 script-message delete-current-file delete #menu: Script > Delete current file > Delete
// 0 script-message delete-current-file delete #menu: Script > Delete current file > Delete
// KP1 script-message delete-current-file confirm #menu: Script > Delete current file > Confirm
// 1 script-message delete-current-file confirm #menu: Script > Delete current file > Confirm
using System;
using System.IO;
using System.Threading;
using Microsoft.VisualBasic.FileIO;
using mpvnet;
class Script
{
string FileToDelete;
DateTime DeleteTime;
CorePlayer Core;
public Script()
{
Core = Global.Core;
Core.ClientMessage += ClientMessage;
}
void ClientMessage(string[] args)
{
if (args == null || args.Length != 2 || args[0] != "delete-current-file")
return;
if (args[1] == "delete")
{
FileToDelete = Core.GetPropertyString("path");
DeleteTime = DateTime.Now;
Core.CommandV("show-text", "Press 1 to delete file", "10000");
}
else if (args[1] == "confirm")
{
TimeSpan ts = DateTime.Now - DeleteTime;
string path = Core.GetPropertyString("path");
if (FileToDelete == path && ts.TotalSeconds < 10 && File.Exists(FileToDelete))
{
Core.CommandV("show-text", "");
int count = Core.GetPropertyInt("playlist-count");
int pos = Core.GetPropertyInt("playlist-pos");
int newPos = pos == count - 1 ? pos - 1 : pos + 1;
if (newPos > -1)
Core.SetPropertyNumber("playlist-pos", newPos);
Core.Command("playlist-remove " + pos);
App.RunTask(() => {
Thread.Sleep(2000);
FileSystem.DeleteFile(FileToDelete, UIOption.OnlyErrorDialogs, RecycleOption.SendToRecycleBin);
});
}
}
}
}