From 8757c60396c8669d8186d6ad54a818068689a437 Mon Sep 17 00:00:00 2001 From: Mikhail Shahovalov Date: Thu, 8 May 2025 00:18:12 +0300 Subject: [PATCH] =?UTF-8?q?=D0=A1=D0=B4=D0=B5=D0=BB=D0=B0=D0=BD=20=D1=81?= =?UTF-8?q?=D0=BA=D0=B5=D0=BB=D0=B5=D1=82=20=D0=BF=D0=BB=D0=B0=D0=B3=D0=B8?= =?UTF-8?q?=D0=BD=D0=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...nity.PowerToys.Run.Plugin.YandexGPT.csproj | 34 +++++ .../Images/Yandex_Black.png | Bin 0 -> 14214 bytes .../Main.cs | 135 ++++++++++++++++++ .../plugin.json | 14 ++ PowerToys.Run.YandexGPT.sln | 15 +- .../PowerToys.Run.YandexGPT.csproj | 9 -- readme.md | Bin 0 -> 136 bytes 7 files changed, 193 insertions(+), 14 deletions(-) create mode 100644 Community.PowerToys.Run.Plugin.YandexGPT/Community.PowerToys.Run.Plugin.YandexGPT.csproj create mode 100644 Community.PowerToys.Run.Plugin.YandexGPT/Images/Yandex_Black.png create mode 100644 Community.PowerToys.Run.Plugin.YandexGPT/Main.cs create mode 100644 Community.PowerToys.Run.Plugin.YandexGPT/plugin.json delete mode 100644 PowerToys.Run.YandexGPT/PowerToys.Run.YandexGPT.csproj create mode 100644 readme.md diff --git a/Community.PowerToys.Run.Plugin.YandexGPT/Community.PowerToys.Run.Plugin.YandexGPT.csproj b/Community.PowerToys.Run.Plugin.YandexGPT/Community.PowerToys.Run.Plugin.YandexGPT.csproj new file mode 100644 index 0000000..9b05b5d --- /dev/null +++ b/Community.PowerToys.Run.Plugin.YandexGPT/Community.PowerToys.Run.Plugin.YandexGPT.csproj @@ -0,0 +1,34 @@ + + + + net8.0-windows + x64;ARM64 + $(Platform) + true + + + + preview + enable + enable + + + + + + PreserveNewest + + + PreserveNewest + + + + + + + + + + + + diff --git a/Community.PowerToys.Run.Plugin.YandexGPT/Images/Yandex_Black.png b/Community.PowerToys.Run.Plugin.YandexGPT/Images/Yandex_Black.png new file mode 100644 index 0000000000000000000000000000000000000000..d0f4301a5957c038f428c582cee0c607055dc4e6 GIT binary patch literal 14214 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 literal 0 HcmV?d00001 diff --git a/Community.PowerToys.Run.Plugin.YandexGPT/Main.cs b/Community.PowerToys.Run.Plugin.YandexGPT/Main.cs new file mode 100644 index 0000000..8f22f94 --- /dev/null +++ b/Community.PowerToys.Run.Plugin.YandexGPT/Main.cs @@ -0,0 +1,135 @@ +using System.Windows; +using System.Windows.Controls; +using System.Windows.Input; +using Microsoft.PowerToys.Settings.UI.Library; +using Wox.Plugin; +using Wox.Plugin.Logger; + +namespace Community.PowerToys.Run.Plugin.YandexGPT; + +public class Main : IPlugin, IContextMenu, ISettingProvider, IDisposable +{ + #region Plugin Info + public static string PluginId => "C2218AB0D86F4345B55C60F9418A811C"; + public string Name => "Yandex GPT"; + public string Description => "Плагин для выполнения поисковых запросов через Yandex GPT"; + public IEnumerable AdditionalOptions => + [ + new PluginAdditionalOption() + { + Key = nameof(Token), + DisplayLabel = "Токен", + DisplayDescription = "Ключ доступа к YandexGPT", + PluginOptionType = PluginAdditionalOption.AdditionalOptionType.Textbox, + TextValue = Token + } + ]; + #endregion + + private bool _disposed; + + private string? Token { get; set; } + private PluginInitContext? Context { get; set; } + private string? IconPath { get; set; } + + public void Init(PluginInitContext context) + { + Log.Info("Init", GetType()); + Context = context ?? throw new ArgumentNullException(nameof(context)); + //Context.API.ThemeChanged += OnThemeChanged; + //UpdateIconPath(Context.API.GetCurrentTheme()); + } + + public List Query(Query query) + { + Log.Info("Query: " + query.Search, GetType()); + + return [ + new() + { + QueryTextDisplay = query.Search, + IcoPath = IconPath, + Title = $"YandexGPT: Чет такое", + SubTitle = $"Ответ: иди туда!", + ToolTipData = new ToolTipData("Ответы", $"Тут ответ\nИ тут ответ"), + ContextData = Token, + } + ]; + } + + public List LoadContextMenus(Result selectedResult) + { + Log.Info("LoadContextMenus", GetType()); + + if (selectedResult?.ContextData is (int words, TimeSpan transcription)) + { + return + [ + new ContextMenuResult + { + PluginName = Name, + Title = "Copy (Enter)", + FontFamily = "Segoe Fluent Icons,Segoe MDL2 Assets", + Glyph = "\xE8C8", // Copy + AcceleratorKey = Key.Enter, + Action = _ => CopyToClipboard(words.ToString()), + }, + new ContextMenuResult + { + PluginName = Name, + Title = "Copy time (Ctrl+Enter)", + FontFamily = "Segoe Fluent Icons,Segoe MDL2 Assets", + Glyph = "\xE916", // Stopwatch + AcceleratorKey = Key.Enter, + AcceleratorModifiers = ModifierKeys.Control, + Action = _ => CopyToClipboard(transcription.ToString()), + }, + ]; + } + + if (selectedResult?.ContextData is int characters) + { + return + [ + new ContextMenuResult + { + PluginName = Name, + Title = "Copy (Enter)", + FontFamily = "Segoe Fluent Icons,Segoe MDL2 Assets", + Glyph = "\xE8C8", // Copy + AcceleratorKey = Key.Enter, + Action = _ => CopyToClipboard(characters.ToString()), + }, + ]; + } + + return []; + } + + public Control CreateSettingPanel() => throw new NotImplementedException(); + + public void UpdateSettings(PowerLauncherPluginSettings settings) + { + var tokenSettings = settings.AdditionalOptions.SingleOrDefault(x => x.Key == nameof(Token)); + if (tokenSettings is null) + return; + Token = tokenSettings.TextValue; + } + + + private static bool CopyToClipboard(string? value) + { + if (value != null) + Clipboard.SetText(value); + return true; + } + + public void Dispose() + { + Log.Info("Dispose", GetType()); + if (!_disposed) + return; + _disposed = true; + GC.SuppressFinalize(this); + } +} \ No newline at end of file diff --git a/Community.PowerToys.Run.Plugin.YandexGPT/plugin.json b/Community.PowerToys.Run.Plugin.YandexGPT/plugin.json new file mode 100644 index 0000000..2ed6e54 --- /dev/null +++ b/Community.PowerToys.Run.Plugin.YandexGPT/plugin.json @@ -0,0 +1,14 @@ +{ + "ID": "C2218AB0D86F4345B55C60F9418A811C", + "ActionKeyword": "YandexGPT", + "IsGlobal": false, + "Name": "YandexGPT", + "Author": "MikhailRaw", + "Version": "1.0.0", + "Language": "csharp", + "Website": "https://git.shahovalov.ru/mikhail/PowerToys.Run.YandexGPT", + "ExecuteFileName": "Community.PowerToys.Run.Plugin.YandexGPT.dll", + "IcoPathDark": "Images\\Yandex_Black.png", + "IcoPathLight": "Images\\Yandex_Black.png", + "DynamicLoading": false +} \ No newline at end of file diff --git a/PowerToys.Run.YandexGPT.sln b/PowerToys.Run.YandexGPT.sln index 2650cff..dc800ac 100644 --- a/PowerToys.Run.YandexGPT.sln +++ b/PowerToys.Run.YandexGPT.sln @@ -1,6 +1,11 @@  Microsoft Visual Studio Solution File, Format Version 12.00 -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "PowerToys.Run.YandexGPT", "PowerToys.Run.YandexGPT\PowerToys.Run.YandexGPT.csproj", "{5CE18468-6AB9-476F-9935-E12740111946}" +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Items", "Items", "{4A6F7084-0B6D-4C57-8E46-C430B7F343C2}" + ProjectSection(SolutionItems) = preProject + readme.md = readme.md + EndProjectSection +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Community.PowerToys.Run.Plugin.YandexGPT", "Community.PowerToys.Run.Plugin.YandexGPT\Community.PowerToys.Run.Plugin.YandexGPT.csproj", "{B65D8913-4679-46A0-84EA-DF11C641DDF5}" EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution @@ -8,9 +13,9 @@ Global Release|Any CPU = Release|Any CPU EndGlobalSection GlobalSection(ProjectConfigurationPlatforms) = postSolution - {5CE18468-6AB9-476F-9935-E12740111946}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {5CE18468-6AB9-476F-9935-E12740111946}.Debug|Any CPU.Build.0 = Debug|Any CPU - {5CE18468-6AB9-476F-9935-E12740111946}.Release|Any CPU.ActiveCfg = Release|Any CPU - {5CE18468-6AB9-476F-9935-E12740111946}.Release|Any CPU.Build.0 = Release|Any CPU + {B65D8913-4679-46A0-84EA-DF11C641DDF5}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {B65D8913-4679-46A0-84EA-DF11C641DDF5}.Debug|Any CPU.Build.0 = Debug|Any CPU + {B65D8913-4679-46A0-84EA-DF11C641DDF5}.Release|Any CPU.ActiveCfg = Release|Any CPU + {B65D8913-4679-46A0-84EA-DF11C641DDF5}.Release|Any CPU.Build.0 = Release|Any CPU EndGlobalSection EndGlobal diff --git a/PowerToys.Run.YandexGPT/PowerToys.Run.YandexGPT.csproj b/PowerToys.Run.YandexGPT/PowerToys.Run.YandexGPT.csproj deleted file mode 100644 index 17b910f..0000000 --- a/PowerToys.Run.YandexGPT/PowerToys.Run.YandexGPT.csproj +++ /dev/null @@ -1,9 +0,0 @@ - - - - net9.0 - enable - enable - - - diff --git a/readme.md b/readme.md new file mode 100644 index 0000000000000000000000000000000000000000..4ed8eaffa01ca79882bf303626995a29afb1e362 GIT binary patch literal 136 zcmWlSI|>3p5JX>4k+5fQP9Vb0h`OkQ24b>`Y+@*As-TGL<<%ORrmH`%`uD9EFjS+l zYE89JAiCST9=P-7%7f18!;`>~7dO{(xmGfhO=WG=YG*Ywx6)G4kvyMh?p@%-+1$l$ PJzG0>jO-F9-%I`h#z7NN literal 0 HcmV?d00001