1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55
|
#!/usr/bin/env python
import gammu
import sys
import codecs
if len(sys.argv) != 2:
print 'This requires parameter: backup file!'
sys.exit(1)
#sm = gammu.StateMachine()
#sm.ReadConfig()
#sm.Init()
charsetencoder = codecs.getencoder(sys.getdefaultencoding())
filename = sys.argv[1]
backup = gammu.ReadSMSBackup(filename)
# Make nested array
list = [[x] for x in backup]
data = gammu.LinkSMS(list)
for x in data:
v = gammu.DecodeSMS(x)
m = x[0]
print
print '%-15s: %s' % ('Number', m['Number'])
print '%-15s: %s' % ('Date', str(m['DateTime']))
print '%-15s: %s' % ('State', m['State'])
print '%-15s: %s' % ('Folder', m['Folder'])
print '%-15s: %s' % ('Validity', m['SMSC']['Validity'])
loc = []
for m in x:
loc.append(str(m['Location']))
print '%-15s: %s' % ('Location(s)', ', '.join(loc))
if v == None:
print '\n%s' % charsetencoder(m['Text'], 'replace')[0]
else:
for e in v['Entries']:
print
print '%-15s: %s' % ('Type', e['ID'])
if e['Bitmap'] != None:
for bmp in e['Bitmap']:
print 'Bitmap:'
for row in bmp['XPM'][3:]:
print row
print
if e['Buffer'] != None:
print 'Text:'
print charsetencoder(e['Buffer'], 'replace')
print
|