2010-01-24 19 views
7

Sto provando a scrivere un semplice bot di chat per Adium, che pubblicherà "lol" e "haha" e risponderà alle domande di base in fastidiose chat di gruppo a cui alcune persone continuano ad aggiungermi.Ricevere messaggi Adium in Applescript

Ho coperto la parte "lol" con alcuni semplici comandi di invio e ritardo in una ripetizione, ma ho anche bisogno di fare qualche interazione.
Rispondi "sì" a qualsiasi cosa con un punto interrogativo, ad esempio ...

Credetemi o no, un tale semplice bot passerebbe un test di Turing per quelle conversazioni.

L'apertura del dizionario Adium non rivela alcun modo ovvio per ottenere messaggi, né il dizionario Growl.

Ho scoperto che posso eseguire uno script ogni volta che viene ricevuto un messaggio, C'è un modo per ottenere l'accesso al messaggio inviato?

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

Il mio codice:

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

È "test di Turing", come in Alan Turing. E devo chiedermi quante persone avrebbero superato il test di Turing. Inoltre, nell'ultima domanda, intendi che vuoi accedere al messaggio * ricevuto * o a quello * che * hai appena inviato? –

+0

Lo cambierò. Sì, desidero avere accesso ai messaggi ricevuti, quindi posso scrivere un semplice bot di chat in Applescript. – Pepijn

+0

Mi sono chiesto questo da un paio di anni e non ho mai trovato nulla di utile. Ho la sensazione che sia nell'interesse degli sviluppatori di Adium impedire che questo tipo esatto di cose accada, nonostante i buoni che potrebbero usarlo. –

risposta

1

Sulla base di revisione del vigente codice sorgente Adium e la ricerca di oggetti attuali e passati nel bug tracker e wiki Adium che contengono sia "applescript" e " messaggio "come sottostringa, questo non sembra possibile quando si utilizza solo AppleScript in Adium 1.0 fino a 1.3.10 (più recente al momento della scrittura). Sembra che sia stato possibile con AppleScript semplice in Adium 0.89.1, ma gli sviluppatori volontari non sono ancora convinti che l'aggiunta di questa funzionalità sia degna di questo sforzo.

Per accedere al contenuto del messaggio in AppleScript al momento probabilmente è necessario scrivere un Adium Xtra per inoltrare le informazioni. Esempi di plug-in Xtra che accedono al testo dell'ultimo messaggio includono Challenge/Response o SpamFilter. Il codice sorgente di SpamFilter è available su BitBucket, quindi potresti essere in grado di modificarlo per inviare il contenuto del messaggio a un AppleScript.

MODIFICA: Da quando ho inviato la mia risposta, l'utente 'zostay' ha individuato un nuovo Adium Xtra chiamato "Pipe Event". Permette di inviare il testo di un evento a una sceneggiatura esattamente nel modo in cui immaginavo quando ho scritto il mio secondo paragrafo, quindi sto rispondendo alle domande di zostay. Sourcecode è anche disponibile.

Problemi correlati