2010-01-24 43 views
7

Tôi đang cố gắng viết một bot trò chuyện đơn giản cho Adium, sẽ đăng "lol" và "haha" và trả lời các câu hỏi cơ bản trong cuộc trò chuyện nhóm gây phiền nhiễu mà một số người tiếp tục thêm tôi vào.Nhận tin nhắn Adium trong Applescript

Tôi đã đề cập đến phần "lol" với một vài lệnh gửi và trì hoãn đơn giản lặp lại, nhưng tôi cũng cần thực hiện một số tương tác.
Trả lời "có" cho bất cứ điều gì có dấu chấm hỏi, ví dụ ...

Tin tôi hay không, một bot đơn giản sẽ vượt qua Bài kiểm tra Turing cho các cuộc trò chuyện đó.

Mở từ điển Adium không tiết lộ bất kỳ cách rõ ràng nào để nhận thư cũng như từ điển Growl.

Tôi đã phát hiện ra rằng tôi có thể chạy tập lệnh mỗi khi nhận được tin nhắn, Có cách nào để truy cập vào tin nhắn đã gửi không?

Adium pref http://media.ruk.ca/images/adiumpreferences.png

Mã của tôi:

tell application "Adium" 
    activate 
    set theChat to the active chat 
    send theChat message "Hi" 
    delay 5 
    send theChat message "How's life?" 
    delay 10 
    repeat 10 times 
     send theChat message "Realy?" 
     delay 5 
     send theChat message "Lol :P" 
     delay 15 
     send theChat message "Haha XD" 
     delay 15 
     send theChat message "Yes1!!1" 
     delay 20 
     send theChat message "I like it! :D" 
     delay 10 
    end repeat 
    send theChat message "Bye!" 
    tell theChat to close 
end tell 
+0

Đó là "Kiểm tra Turing", như trong Alan Turing. Và tôi phải tự hỏi có bao nhiêu người vượt qua bài kiểm tra Turing. Ngoài ra, trong câu hỏi cuối cùng, bạn có muốn nói rằng bạn muốn truy cập vào tin nhắn * đã nhận * hay một tin nhắn * bạn * vừa gửi không? –

+0

Tôi sẽ thay đổi nó. Có, tôi muốn có quyền truy cập vào các thư đã nhận, vì vậy tôi có thể viết bot trò chuyện cơ bản trong Bản ghi. – Pepijn

+0

Tôi đã tự hỏi điều này bản thân mình trong một vài năm và chưa bao giờ tìm thấy bất cứ điều gì sử dụng. Tôi có cảm giác về sự quan tâm của các nhà phát triển Adium để ngăn chặn loại điều chính xác này xảy ra - bất chấp những người khác có thể sử dụng nó. –

Trả lời

3

Bạn cũng có thể tạo đường ống cho tập lệnh bằng cách sử dụng Pipe Event.

1

Dựa trên đánh giá của sourcecode Adium hiện tại và tìm kiếm cho các hạng mục hiện tại và quá khứ trong bug tracker Adium và wiki mà chứa cả "AppleScript" và " tin nhắn "như là chất nền, điều này dường như không thể thực hiện được khi chỉ sử dụng AppleScript trong Adium 1.0 đến 1.3.10 (mới nhất tại thời điểm viết). Dường như đã có thể với AppleScript đơn giản trong Adium 0.89.1, nhưng các nhà phát triển tình nguyện vẫn chưa tin rằng việc thêm tính năng này trở lại là đáng để nỗ lực.

Để truy cập nội dung thư trong AppleScript ngay bây giờ có thể yêu cầu viết một Adium Xtra để chuyển tiếp thông tin. Ví dụ về các plugin Xtra truy cập văn bản của tin nhắn cuối cùng bao gồm Challenge/Response hoặc SpamFilter. Mã nguồn của SpamFilter là available trên BitBucket, vì vậy bạn có thể sửa đổi nó để gửi nội dung tin nhắn tới AppleScript.

EDIT: Vì tôi đã đăng câu trả lời của mình, người dùng 'zostay' đã phát hiện một Adium Xtra mới có tên "Pipe Event". Nó cho phép gửi văn bản của một sự kiện đến một kịch bản theo cách chính xác mà tôi đã hình dung khi tôi viết đoạn thứ hai của mình, vì vậy tôi đang lên biểu quyết câu trả lời của zostay. Sourcecode cũng có sẵn.

Các vấn đề liên quan