史荣久 2009年08月28日 星期五 19:48 | 1527次浏览 | 0条评论
上一个粗犷,这个节约
========== SkypeActChat.py ==========
 #!/usr/bin/env python
 
 #coding=utf-8
 # See
 
  https://developer.skype.com/wiki/Skype4Py/examples/s4p_chatmessages_py
 
 
 #    
 
  http://skype4py.sourceforge.net/doc/html/
 
 
 # (Ctrl-C and Ctrl-V) by
 
  trydofor@gmail.com
 
 import Skype4Py
 
 import re
 
 import datetime
 
 import os
 skype = Skype4Py.Skype()
 
 
 def OnAttach(status):
 
     print 'status: ' + skype.Convert.AttachmentStatusToText(status)
 
     if status == Skype4Py.apiAttachAvailable:
 
         skype.Attach()
     if status == Skype4Py.apiAttachSuccess:
 
         print('*'*64)
 
 def TextEscape(text):
 
     text = text.encode('utf-8')
 
     text = text.replace('&','&').replace('<','<').replace('>','>')
 
     return text
 
 def OnMessageStatus(mess, Status):
 
     maxDatetime = datetime.date.today()
 
     logdir = maxDatetime.strftime('%Y-%m-%d')
 
     if not os.path.isdir(logdir):
 
         os.mkdir(logdir)
     chat = mess.Chat 
 
 
     filename = chat.Name
 
     filename = re.sub('\W','_',filename)
 
     f = None
 
     try:
 
         fn = logdir+'/'+filename+'.htm'
 
         if os.path.isfile(fn):
 
             f = open(fn,'a+')
 
         else:
 
             f = open(fn,'w')
 
             f.write('<meta http-equiv="content-type" \
 
                      content="text/html; charset=utf-8"/>')
 
             f.write('<title>')
 
             f.write(TextEscape(chat.FriendlyName))
 
             f.write('</title>')
         fromw = mess.FromHandle
 
         tlen = len(fromw)
 
         step = tlen/3
 
         rv = 0
 
         for x in fromw[0:step]:
 
             rv = rv + ord(x)
 
         gv = 0
 
         for x in fromw[step:step*2]:
 
             gv = gv + ord(x)
 
         bv = 0
 
         for x in fromw[step*2:]:
 
             bv = bv + ord(x)
         f.write('<dt style="background-color:rgb('+str(rv%255) \
 
             +','+str(gv%255)+','+str(bv%255)+')">')
 
         f.write(TextEscape(mess.FromDisplayName))
 
         f.write('[')
 
         f.write(TextEscape(fromw))
 
         f.write('] - ')
 
         f.write(mess.Datetime.strftime('%Y-%m-%d %H:%M:%S'))
 
         f.write('</dt>')
 
         f.write('<dd><pre>')
 
         f.write(TextEscape(mess.Body))
 
         f.write('</pre></dd>\n')
 
     finally:
 
         if f != None:
 
             f.close()
 
 skype.OnAttachmentStatus = OnAttach
 
 skype.OnMessageStatus = OnMessageStatus
 print('*'*64)
 
 print 'Connecting to Skype..'
 
 skype.Attach()
 # --------------------------------
 
 # Looping until user types 'exit'
 
 Cmd = ''
 
 while not Cmd == 'exit':
 
     Cmd = raw_input('')
Zeuux © 2025
京ICP备05028076号
暂时没有评论