Skype History to HTML convert
- This file uses Skype History Classes.
- You can call this python script with arguments, which contain user names the output should be limited to.
- Also see Skype History Access
Example:
#!/usr/bin/python from SkypeHistory import * import sys def header(): print '<html>' print '<meta http-equiv="content-type" content="text/html; charset=utf-8" />' print '<head>' css() print '</head>' print '<body>' def footer(): print '</body>' print '</html>' def css(): print """ <style> .error{ color: red; } .time{ font-size: small; color: grey; } .time:before{ content: "[" } .time:after{ content: "]" } .user{ color: #0181e3; font-weight: bold; } .members{ font-size: xx-small; } .call .user{ color: #B00; } </style> """ all = {} for filename in SkypeMsgDataset.find_filenames(): sds = SkypeMsgDataset(filename) for i in range(len(sds)): try: rec = sds[i] all[rec['Message number']] = rec except Exception, e: print '<div class="error">',i, e, "<br />", "</div>" for filename in SkypeCallDataset.find_filenames(): sds = SkypeCallDataset(filename) for i in range(len(sds)): #try: rec = sds[i] assert(not all.has_key(rec['Message number'])) all[rec['Message number']] = rec #except Exception, e: # raise e #print i, e, "<br />" limited_to = sys.argv[1:] header() for i in all.keys(): rec = all[i] if rec.has_key("Time"): time = rec["Time"] else: time = str(rec["Timestamp"]) name = "" if rec.has_key("Sender Name"): type = "msg" name = rec["Sender Name"] if rec.has_key("Caller Name"): type = "call" name = rec["Caller Name"] if type == "msg" and limited_to and not rec["Sender-ID"] in limited_to and not rec["Chat members"] in limited_to: continue if type == "call" and limited_to and not rec["Caller-ID"] in limited_to: continue print '<div class="entry %s">' % type print '\t<span class="time">%s</span> ' % time, print '\t<span class="user sender %s">%s</span>: ' % (type, name), if rec.has_key("Chat members"): print '\t<span class="user members">%s</span>: ' % rec["Chat members"], if rec.has_key("Content"): print rec["Content"].replace("<","<").replace(">", ">") print '</div>' footer()