69 lines
2.0 KiB
C#
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);
|
|
});
|
|
}
|
|
}
|
|
}
|
|
}
|