2010-01-24 16 views
7

में एडियम संदेश प्राप्त करें मैं एडियम के लिए एक साधारण चैट बॉट लिखने की कोशिश कर रहा हूं, जो "लॉल" और "हाहा" पोस्ट करेगा और परेशान समूह चैट में बुनियादी प्रश्नों का उत्तर देगा जो कुछ लोग मुझे जोड़ते रहते हैं।एप्पलस्क्रिप्ट

मैंने दोहराने में कुछ सरल प्रेषण और देरी आदेशों के साथ "lol" भाग को कवर किया है, लेकिन मुझे कुछ बातचीत करने की भी आवश्यकता है।
उदाहरण के लिए किसी प्रश्न चिह्न के साथ "हाँ" का उत्तर दें ...

मेरा विश्वास करो या नहीं, इस तरह के एक साधारण बॉट उन बातचीत के लिए एक ट्यूरिंग टेस्ट पास करेगा।

एडियम शब्दकोश खोलना संदेश प्राप्त करने का कोई स्पष्ट तरीका प्रकट नहीं करता है, न ही ग्रॉल शब्दकोश करता है।

मुझे पता चला कि जब भी कोई संदेश प्राप्त होता है, तो मैं एक स्क्रिप्ट चला सकता हूं, क्या भेजा गया संदेश तक पहुंचने का कोई तरीका है?

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

मेरे कोड:

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

यह "ट्यूरिंग टेस्ट" है, जैसा कि एलन ट्यूरिंग में है। और मुझे आश्चर्य है कि कितने लोग ट्यूरिंग टेस्ट पास करेंगे। साथ ही, अंतिम प्रश्न में, क्या आपका मतलब है कि आप * प्राप्त * संदेश तक पहुंचना चाहते हैं, या एक * आपने * अभी भेजा है? –

+0

मैं इसे बदल दूंगा। हां, मैं प्राप्त संदेशों तक पहुंच प्राप्त करना चाहता हूं, इसलिए मैं एप्पलस्क्रिप्ट में एक मूल चैट बॉट लिख सकता हूं। – Pepijn

+0

मैं इसे अपने आप को कुछ सालों से सोच रहा हूं और कभी भी उपयोग के कुछ भी नहीं मिला है। मुझे इस सटीक प्रकार की चीज़ को होने से रोकने के लिए एडियम डेवलपर्स के हित में यह महसूस हो रहा है-भले ही अच्छे लोग इसका इस्तेमाल कर सकें। –

उत्तर

3

आप अब भी Pipe Event का उपयोग कर एक स्क्रिप्ट पर पाइप कर सकते हैं।

1

और वर्तमान Adium sourcecode की समीक्षा जो दोनों "applescript" शामिल Adium बग ट्रैकर और विकि में वर्तमान और अतीत के आइटम के लिए एक खोज और "के आधार पर संदेश "सबस्ट्रिंग्स के रूप में, यह संभव नहीं लगता है कि एडियम 1.0 में केवल ऐप्पलस्क्रिप्ट का उपयोग 1.3.10 (लेखन के समय नवीनतम) के माध्यम से किया जा सकता है। ऐसा लगता है कि एडियम 0.8 9 .1 में सादे ऐप्पलस्क्रिप्ट के साथ संभव है, लेकिन स्वयंसेवक डेवलपर्स अभी तक इस बात से सहमत नहीं हैं कि इस सुविधा को वापस जोड़ना प्रयास के लायक है।

ऐप्पलस्क्रिप्ट में संदेश सामग्री तक पहुंचने के लिए अभी जानकारी को आगे बढ़ाने के लिए शायद एक एडियम एक्सट्रैक्ट लिखना आवश्यक है। पिछले संदेश के पाठ तक पहुंचने वाले एक्स्ट्रा प्लगइन्स के उदाहरणों में Challenge/Response या SpamFilter शामिल हैं। स्पैमफिल्टर के लिए स्रोत कोड available बिटबकेट पर है, इसलिए आप इसे ऐप्पलस्क्रिप्ट को संदेश सामग्री भेजने के लिए कल्पनापूर्वक संशोधित कर सकते हैं।

संपादित करें: चूंकि मैंने अपनी प्रतिक्रिया पोस्ट की है, इसलिए उपयोगकर्ता 'ज़ोस्टे' ने "Pipe Event" नामक एक नया एडियम एक्स्ट्रा देखा है। जब मैं अपना दूसरा अनुच्छेद लिखता हूं तो यह किसी घटना के पाठ को एक स्क्रिप्ट में भेजने की इजाजत देता है, इसलिए मैं ज़ोस्टे के उत्तर को अप-वोट कर रहा हूं। Sourcecode भी उपलब्ध है।

संबंधित मुद्दे