Search
Write a publication
Pull to refresh
0
0
Send message

Отличная идея насчет проверки орфографии по выделению текста и шорткату! Прочитал и загорелся это внедрить у себя. Но не хотелось городить огород с исполняемыми файлами, да и функциональность мне вся не нужна, а также все равно поднят n8n серверок для no-code автоматизаций. Так что решил просто внедрить эту идею, и уже все работает, прошло всего 2 часа, просто шикарно и удобно, спасибо!

У меня получилось так реализовать:
(AutoHotKey скрипт) <--> (Webhook n8n - Ai Agent -- Respond to Webhook).
Скрипт мне написал ChatGPT с небольшой помощью Claude.ai.
Ноды n8n помог довести до ума тоже ChatGPT.

если кому нужно, код для AHK:

!1:: {
    ; Clear the clipboard
    A_Clipboard := ""
    
    ; Copy the selected text
    Send("^c")
    
    ; Wait for the clipboard to contain data
    if !ClipWait(2) {
        MsgBox("Не удалось скопировать текст. Убедитесь, что текст выделен.")
        return
    }
    
    ; Get the clipboard content
    text := A_Clipboard
    
    ; Check if text was copied
    if (text = "") {
        MsgBox("Нет скопированного текста.")
        return
    }
    
    ; Prepare JSON data - escape quotes and backslashes in the text
    ;escapedText := StrReplace(StrReplace(text, "\", "\\"), Chr(34), "\" . Chr(34))
    ;jsonData := "{" . Chr(34) . "text" . Chr(34) . ":" . Chr(34) . escapedText . Chr(34) . "}"

; Предполагаем, что переменная text уже содержит исходный текст

; Экранируем обратный слэш:
escapedText := StrReplace(text, "\\", "\\\\")
; Экранируем двойные кавычки:
escapedText := StrReplace(escapedText, Chr(34), "\\" . Chr(34))
; (Дополнительно можно экранировать переводы строк, если требуется)
escapedText := StrReplace(escapedText, "`n", "\\n")
escapedText := StrReplace(escapedText, "`r", "\\r")

; Формируем JSON-строку:
jsonData := "{" . Chr(34) . "text" . Chr(34) . ":" . Chr(34) . escapedText . Chr(34) . "}"

    
    ; Create HTTP request
    try {
        ; Create HTTP object
        http := ComObject("WinHttp.WinHttpRequest.5.1")
        
        ; Open connection
        http.Open("POST", "your-webhook-placeholder", false)
        
        ; Set request header
        http.SetRequestHeader("Content-Type", "application/json")
        
        ; Send the request
        http.Send(jsonData)
        
        ; Check status code
        statusCode := http.Status
        
        if (statusCode != 200) {
            MsgBox("Ошибка сервера. Код статуса: " . statusCode . "`nОтвет: " . http.ResponseText)
            return
        }
        
        ; Get the response
        newText := http.ResponseText
        
        ; Check if response was received
        if (newText != "") {
            ; Set the clipboard to the new text
            A_Clipboard := newText
            Sleep(100)
            Send("^v")
        } else {
            MsgBox("Получен пустой ответ от сервера. Проверьте настройки n8n.")
        }
    } catch as e {
        MsgBox("Ошибка при отправке запроса: " . e.Message)
    }
}


Information

Rating
Does not participate
Registered
Activity