summaryrefslogtreecommitdiffstats
path: root/Mac/Demo
diff options
context:
space:
mode:
authorJack Jansen <jack.jansen@cwi.nl>1997-08-27 14:07:37 (GMT)
committerJack Jansen <jack.jansen@cwi.nl>1997-08-27 14:07:37 (GMT)
commit9ffa432972693817fd19fba9ba727b191d995985 (patch)
treea2e07bb2304c661c0d136acadf8180628ec08b94 /Mac/Demo
parent21b5d605d8cc74f3908b4799388280c6a504500a (diff)
downloadcpython-9ffa432972693817fd19fba9ba727b191d995985.zip
cpython-9ffa432972693817fd19fba9ba727b191d995985.tar.gz
cpython-9ffa432972693817fd19fba9ba727b191d995985.tar.bz2
Modified for new scripting support
Diffstat (limited to 'Mac/Demo')
-rw-r--r--Mac/Demo/scripting/Eudora_Suite.py323
-rw-r--r--Mac/Demo/scripting/testeudora.py13
2 files changed, 266 insertions, 70 deletions
diff --git a/Mac/Demo/scripting/Eudora_Suite.py b/Mac/Demo/scripting/Eudora_Suite.py
index 481aadd..e3383f5 100644
--- a/Mac/Demo/scripting/Eudora_Suite.py
+++ b/Mac/Demo/scripting/Eudora_Suite.py
@@ -10,41 +10,6 @@ import MacOS
_code = 'CSOm'
-_Enum_eSta = {
- 'unread' : 'euS\001', # has not been read
- 'already_read' : 'euS\002', # has been read
- 'replied' : 'euS\003', # has been replied to
- 'forwarded' : 'euS\010', # has been forwarded
- 'redirected' : 'euS\004', # has been redirected
- 'not_sendable' : 'euS\005', # cannot be sent
- 'sendable' : 'euS\006', # can be sent
- 'queued' : 'euS\007', # queued for delivery
- 'sent' : 'euS\011', # has been sent
- 'never_sent' : 'euS\012', # never was sent
-}
-
-_Enum_eSig = {
- 'none' : 'sig\000', # no signature
- 'standard' : 'sig\001', # standard signature file
- 'alternate' : 'sig\002', # alternate signature file
-}
-
-_Enum_eAty = {
- 'AppleDouble' : 'atc\000', # AppleDouble format
- 'AppleSingle' : 'atc\001', # AppleSingle format
- 'BinHex' : 'atc\002', # BinHex format
- 'uuencode' : 'atc\003', # uuencode format
-}
-
-_Enum_eNot = {
- 'mail_arrives' : 'wArv', # mail arrival
- 'mail_sent' : 'wSnt', # mail has been sent
- 'will_connect' : 'wWCn', # eudora is about to connect to a mail server
- 'has_connected' : 'wHCn', # eudora has finished talking to a mail server
- 'has_manually_filtered' : 'mFil', # eudora has finished manually filtering messages
- 'opens_filters' : 'wFil', # user has requested Eudora open the filter window
-}
-
class Eudora_Suite:
_argmap_connect = {
@@ -316,43 +281,267 @@ class Eudora_Suite:
return _arguments['----']
-# Class 'mail folder' ('euMF') -- 'A folder containing mailboxes or other mail folders.'
-# property 'name' ('pnam') 'itxt' -- 'the name' []
+class mail_folder(aetools.ComponentItem):
+ """mail folder - A folder containing mailboxes or other mail folders."""
+ want = 'euMF'
+class name(aetools.NProperty):
+ """name - the name"""
+ which = 'pnam'
+ want = 'itxt'
# element 'euMB' as ['indx', 'name']
# element 'euMF' as ['indx', 'name']
-# Class 'mailbox' ('euMB') -- 'A mailbox.'
-# property 'name' ('pnam') 'itxt' -- 'the name of the mail folder' []
-# property 'space wasted' ('euWS') 'long' -- 'the amount of waste space in the mailbox' []
-# property 'space required' ('euNS') 'long' -- 'the minimum amount of space required to hold the mailbox' []
-# property 'location' ('euFS') 'fss ' -- 'the file the mailbox is stored in' []
-# property 'toc location' ('eTFS') 'fss ' -- 'the file the table of contents is stored in' []
+class mailbox(aetools.ComponentItem):
+ """mailbox - A mailbox."""
+ want = 'euMB'
+# repeated property name the name of the mail folder
+class space_wasted(aetools.NProperty):
+ """space wasted - the amount of waste space in the mailbox"""
+ which = 'euWS'
+ want = 'long'
+class space_required(aetools.NProperty):
+ """space required - the minimum amount of space required to hold the mailbox"""
+ which = 'euNS'
+ want = 'long'
+class location(aetools.NProperty):
+ """location - the file the mailbox is stored in"""
+ which = 'euFS'
+ want = 'fss '
+class toc_location(aetools.NProperty):
+ """toc location - the file the table of contents is stored in"""
+ which = 'eTFS'
+ want = 'fss '
# element 'euMS' as ['indx']
-# Class 'message' ('euMS') -- 'A message'
-# property 'body' ('eBod') 'TEXT' -- 'the body of the message' [mutable]
-# property 'priority' ('euPY') 'long' -- 'the priority' [mutable]
-# property 'label' ('eLbl') 'long' -- 'the index of the label' [mutable]
-# property 'status' ('euST') 'eSta' -- 'the message status' [mutable enum]
-# property 'sender' ('euSe') 'itxt' -- 'the sender as appearing in the message summary' [mutable]
-# property 'date' ('euDa') 'itxt' -- 'the date as appearing in the message summary' []
-# property 'subject' ('euSu') 'itxt' -- 'the subject as appearing in the message summary' [mutable]
-# property 'size' ('euSi') 'long' -- 'the size of the message' []
-# property 'outgoing' ('euOu') 'bool' -- 'is the message is outgoing?' []
-# property 'signature' ('eSig') 'eSig' -- 'which signature the message should have' [mutable enum]
-# property 'QP' ('eMQP') 'bool' -- 'is Eudora allowed to encode text?' [mutable]
-# property 'return receipt' ('eRRR') 'bool' -- 'is a return receipt is requested?' [mutable]
-# property 'wrap' ('eWrp') 'bool' -- 'should the text be wrapped when sent?' [mutable]
-# property 'tab expansion' ('eTab') 'bool' -- 'should tabs get expanded to spaces?' [mutable]
-# property 'keep copy' ('eCpy') 'bool' -- 'should a copy should be kept after message is sent?' [mutable]
-# property 'preserve macintosh info' ('eXTX') 'bool' -- 'should Macintosh information always be sent with attachments?' [mutable]
-# property 'attachment encoding' ('eATy') 'eAty' -- 'the type of encoding to use for attachments' [mutable enum]
-# property 'show all headers' ('eBla') 'bool' -- 'should all headers be visible?' [mutable]
-# property 'transliteration table' ('eTbl') 'long' -- 'the resource id of the transliteration table' [mutable]
-# property 'will be fetched' ('eWFh') 'bool' -- 'will the message be [re]fetched on next check?' [mutable]
-# property 'will be deleted' ('eWDl') 'bool' -- 'will the message be deleted from server on next check?' [mutable]
+class message(aetools.ComponentItem):
+ """message - A message"""
+ want = 'euMS'
+class body(aetools.NProperty):
+ """body - the body of the message"""
+ which = 'eBod'
+ want = 'TEXT'
+class priority(aetools.NProperty):
+ """priority - the priority"""
+ which = 'euPY'
+ want = 'long'
+class label(aetools.NProperty):
+ """label - the index of the label"""
+ which = 'eLbl'
+ want = 'long'
+class status(aetools.NProperty):
+ """status - the message status"""
+ which = 'euST'
+ want = 'eSta'
+class sender(aetools.NProperty):
+ """sender - the sender as appearing in the message summary"""
+ which = 'euSe'
+ want = 'itxt'
+class date(aetools.NProperty):
+ """date - the date as appearing in the message summary"""
+ which = 'euDa'
+ want = 'itxt'
+class subject(aetools.NProperty):
+ """subject - the subject as appearing in the message summary"""
+ which = 'euSu'
+ want = 'itxt'
+class size(aetools.NProperty):
+ """size - the size of the message"""
+ which = 'euSi'
+ want = 'long'
+class outgoing(aetools.NProperty):
+ """outgoing - is the message is outgoing?"""
+ which = 'euOu'
+ want = 'bool'
+class signature(aetools.NProperty):
+ """signature - which signature the message should have"""
+ which = 'eSig'
+ want = 'eSig'
+class QP(aetools.NProperty):
+ """QP - is Eudora allowed to encode text?"""
+ which = 'eMQP'
+ want = 'bool'
+class return_receipt(aetools.NProperty):
+ """return receipt - is a return receipt is requested?"""
+ which = 'eRRR'
+ want = 'bool'
+class wrap(aetools.NProperty):
+ """wrap - should the text be wrapped when sent?"""
+ which = 'eWrp'
+ want = 'bool'
+class tab_expansion(aetools.NProperty):
+ """tab expansion - should tabs get expanded to spaces?"""
+ which = 'eTab'
+ want = 'bool'
+class keep_copy(aetools.NProperty):
+ """keep copy - should a copy should be kept after message is sent?"""
+ which = 'eCpy'
+ want = 'bool'
+class preserve_macintosh_info(aetools.NProperty):
+ """preserve macintosh info - should Macintosh information always be sent with attachments?"""
+ which = 'eXTX'
+ want = 'bool'
+class attachment_encoding(aetools.NProperty):
+ """attachment encoding - the type of encoding to use for attachments"""
+ which = 'eATy'
+ want = 'eAty'
+class show_all_headers(aetools.NProperty):
+ """show all headers - should all headers be visible?"""
+ which = 'eBla'
+ want = 'bool'
+class transliteration_table(aetools.NProperty):
+ """transliteration table - the resource id of the transliteration table"""
+ which = 'eTbl'
+ want = 'long'
+class will_be_fetched(aetools.NProperty):
+ """will be fetched - will the message be [re]fetched on next check?"""
+ which = 'eWFh'
+ want = 'bool'
+class will_be_deleted(aetools.NProperty):
+ """will be deleted - will the message be deleted from server on next check?"""
+ which = 'eWDl'
+ want = 'bool'
# element 'euFd' as ['name']
-# Class 'field' ('euFd') -- 'An RFC 822 header field in a message (field named "" is the body)'
+class field(aetools.ComponentItem):
+ """field - An RFC 822 header field in a message (field named "" is the body)"""
+ want = 'euFd'
+
+class setting(aetools.ComponentItem):
+ """setting - Eudora's settings"""
+ want = 'ePrf'
+mail_folder._propdict = {
+ 'name' : name,
+}
+mail_folder._elemdict = {
+ 'mailbox' : mailbox,
+ 'mail_folder' : mail_folder,
+}
+mailbox._propdict = {
+ 'name' : name,
+ 'space_wasted' : space_wasted,
+ 'space_required' : space_required,
+ 'location' : location,
+ 'toc_location' : toc_location,
+}
+mailbox._elemdict = {
+ 'message' : message,
+}
+message._propdict = {
+ 'body' : body,
+ 'priority' : priority,
+ 'label' : label,
+ 'status' : status,
+ 'sender' : sender,
+ 'date' : date,
+ 'subject' : subject,
+ 'size' : size,
+ 'outgoing' : outgoing,
+ 'signature' : signature,
+ 'QP' : QP,
+ 'return_receipt' : return_receipt,
+ 'wrap' : wrap,
+ 'tab_expansion' : tab_expansion,
+ 'keep_copy' : keep_copy,
+ 'preserve_macintosh_info' : preserve_macintosh_info,
+ 'attachment_encoding' : attachment_encoding,
+ 'show_all_headers' : show_all_headers,
+ 'transliteration_table' : transliteration_table,
+ 'will_be_fetched' : will_be_fetched,
+ 'will_be_deleted' : will_be_deleted,
+}
+message._elemdict = {
+ 'field' : field,
+}
+field._propdict = {
+}
+field._elemdict = {
+}
+setting._propdict = {
+}
+setting._elemdict = {
+}
+_Enum_eSta = {
+ 'unread' : 'euS\001', # has not been read
+ 'already_read' : 'euS\002', # has been read
+ 'replied' : 'euS\003', # has been replied to
+ 'forwarded' : 'euS\010', # has been forwarded
+ 'redirected' : 'euS\004', # has been redirected
+ 'not_sendable' : 'euS\005', # cannot be sent
+ 'sendable' : 'euS\006', # can be sent
+ 'queued' : 'euS\007', # queued for delivery
+ 'sent' : 'euS\011', # has been sent
+ 'never_sent' : 'euS\012', # never was sent
+}
+
+_Enum_eSig = {
+ 'none' : 'sig\000', # no signature
+ 'standard' : 'sig\001', # standard signature file
+ 'alternate' : 'sig\002', # alternate signature file
+}
+
+_Enum_eAty = {
+ 'AppleDouble' : 'atc\000', # AppleDouble format
+ 'AppleSingle' : 'atc\001', # AppleSingle format
+ 'BinHex' : 'atc\002', # BinHex format
+ 'uuencode' : 'atc\003', # uuencode format
+}
+
+_Enum_eNot = {
+ 'mail_arrives' : 'wArv', # mail arrival
+ 'mail_sent' : 'wSnt', # mail has been sent
+ 'will_connect' : 'wWCn', # eudora is about to connect to a mail server
+ 'has_connected' : 'wHCn', # eudora has finished talking to a mail server
+ 'has_manually_filtered' : 'mFil', # eudora has finished manually filtering messages
+ 'opens_filters' : 'wFil', # user has requested Eudora open the filter window
+}
+
+
+#
+# Indices of types declared in this module
+#
+_classdeclarations = {
+ 'euMB' : mailbox,
+ 'euMS' : message,
+ 'euMF' : mail_folder,
+ 'ePrf' : setting,
+ 'euFd' : field,
+}
-# Class 'setting' ('ePrf') -- "Eudora's settings"
+_propdeclarations = {
+ 'eWFh' : will_be_fetched,
+ 'euDa' : date,
+ 'euSi' : size,
+ 'eRRR' : return_receipt,
+ 'pnam' : name,
+ 'euSe' : sender,
+ 'eWrp' : wrap,
+ 'eSig' : signature,
+ 'euOu' : outgoing,
+ 'eMQP' : QP,
+ 'eTFS' : toc_location,
+ 'eWDl' : will_be_deleted,
+ 'eLbl' : label,
+ 'eATy' : attachment_encoding,
+ 'euSu' : subject,
+ 'eBla' : show_all_headers,
+ 'eCpy' : keep_copy,
+ 'euWS' : space_wasted,
+ 'eBod' : body,
+ 'euNS' : space_required,
+ 'eTab' : tab_expansion,
+ 'eTbl' : transliteration_table,
+ 'eXTX' : preserve_macintosh_info,
+ 'euFS' : location,
+ 'euST' : status,
+ 'euPY' : priority,
+}
+
+_compdeclarations = {
+}
+
+_enumdeclarations = {
+ 'eAty' : _Enum_eAty,
+ 'eNot' : _Enum_eNot,
+ 'eSta' : _Enum_eSta,
+ 'eSig' : _Enum_eSig,
+}
diff --git a/Mac/Demo/scripting/testeudora.py b/Mac/Demo/scripting/testeudora.py
index 0f572cf..bedce44 100644
--- a/Mac/Demo/scripting/testeudora.py
+++ b/Mac/Demo/scripting/testeudora.py
@@ -4,10 +4,11 @@ import sys
import aetools
import Eudora_Suite
import Required_Suite
+import Standard_Suite
import MacOS
-class Eudora(aetools.TalkTo, Required_Suite.Required_Suite, \
- Eudora_Suite.Eudora_Suite):
+class Eudora(Eudora_Suite.Eudora_Suite, Required_Suite.Required_Suite, \
+ Standard_Suite.Standard_Suite, aetools.TalkTo):
"""A class that can talk to Eudora"""
pass
@@ -17,13 +18,19 @@ SIGNATURE="CSOm"
def main():
talker = Eudora(SIGNATURE, start=1)
while 1:
- print 'get, put, quit (eudora) or exit (this program) ?'
+ print 'get, put, name (of first folder), list (foldernames), quit (eudora) or exit (this program) ?'
line = sys.stdin.readline()
try:
if line[0] == 'g':
talker.connect(checking=1)
elif line[0] == 'p':
talker.connect(sending=1)
+ elif line[0] == 'n':
+ id = Eudora_Suite.mailbox(1).name
+ name = talker._get(id, as='text')
+ print "It is called", name
+ elif line[0] == 'l':
+ pass
elif line[0] == 'q':
talker.quit()
elif line[0] == 'e':