Как создать базового чат-бота / автоответчика на основе содержимого браузера? (Applescript или другие рекомендации?) - PullRequest
1 голос
/ 19 июля 2011

Я (очень) начинающий программист, и мне интересно, можно ли было бы написать очень простого бота в чате, который довольно сильно зависит от того, какой тип чат используется.

Сценарий таков, что у моего друга настроена базовая комната чата (https://blueimp.net/ajax/) только для нескольких друзей, но я хочу создать учетную запись "бота", которая существует только на клиентском компьютере (моем) Таким образом, он будет постоянно проверять браузер (без перезагрузки страницы) на наличие определенной строки, а затем отвечать, если он обнаружит ее. Например, возможно, они наберут ! Bot song и он вернется с рекомендация песни.

Я думал, что Applescript мог бы быть простым способом сделать это. Может ли кто-нибудь помочь мне начать? Как я уже сказал, я новичок, поэтому, пожалуйста, имейте это в виду. Пытаясь использовать это как учебный опыт, я учусь лучше всего, пытаясь придумать решение для конкретного сценария, а не по книгам или учебным пособиям.

По сути, поток будет выглядеть примерно так:

  • Проверка веб-страницы на наличие строки каждые 2 секунды (на основе Ajax, обновлять не нужно ... просто проверьте само окно браузера)
  • Если найдена строка , ответьте в первом текстовом поле с помощью response + enter

Я знаю, что это не самый эффективный способ создать чат-бота, я просто пытаюсь использовать этот сценарий, чтобы помочь мне понять, как приложения взаимодействуют друг с другом локально. :)

1 Ответ

0 голосов
/ 23 июля 2011

Я надеюсь, что я не нарушу неписаное правило StackOverflow, предоставив вам этот код, но вы можете попробовать этот код AppleScript и посмотреть, как он работает (при условии, что все окно браузера - это просто окно чата, измените его при необходимости). ):

repeat
    tell application "Safari" --or whatever browser you use
        set the message to ""
        repeat until the message contains "something" --replace 'something' with the string you want to search for
            set the message to (the text of document 1) as string --all text on the page
        end repeat
    end tell
    tell application "System Events"
        tell process "Safari"
            select text box 1 of document 1 --assuming the chat box is the only text box on the page; if not, determine which number the chat box is.
            --Text boxes are numbered starting at 1 and ending at the last text box. The 'search' goes from left to right, once the right edge of the window is reached, the search goes down until it reaches the next box.
            --Once you determine the text box's number, change the 'text box 1' to 'text box [number]', where [number] is the text box's number.
            keystroke "response" --replace 'respose' with the reply you want to send back
        end tell
    end tell
    delay 2 --wait 2 seconds so the script doesn't spam the chat box
end repeat

Если по какой-то причине это не работает и / или у вас есть какие-либо вопросы, просто спросите. :)

...