-
Notifications
You must be signed in to change notification settings - Fork 0
/
SMSDatabaseHandler.py
68 lines (55 loc) · 2.18 KB
/
SMSDatabaseHandler.py
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
56
57
58
59
60
61
62
63
64
65
66
67
68
# -*- coding: utf-8 -*-
import logging
import utilities as utils
import arrow
import math
class SMSDatabaseHandler:
_myPath = None
_myProcessedSMSes = []
def __init__(self, aPathToDb):
self._myPath = aPathToDb
self._logger = logging.getLogger()
# on met le niveau du logger à DEBUG, comme ça il écrit tout
self._logger.setLevel(logging.DEBUG)
steam_handler = logging.StreamHandler()
steam_handler.setLevel(logging.DEBUG)
self._logger.addHandler(steam_handler)
self._myProcessedSMSes = self.processSMSes()
def getDatabaseEncoding(self):
myEncoding = utils.processFunctionOnDb(
self._myPath, self._logger, utils.getCharsetFromDb)
return myEncoding
def getSMSFromDb(self):
return utils.processFunctionOnDb(self._myPath,
self._logger, utils.getSMSFromDb)
def processSMSes(self):
return [self.processSMS(aSMS) for aSMS in self.getSMSFromDb()]
def processSMS(self, aTuple):
mySMS = {}
mySMS['to'] = str(aTuple[1])
mySMS['body'] = aTuple[2]
mySMS['timestamp'] = arrow.get(aTuple[0]).timestamp
mySMS['sent'] = True if aTuple[3] == 1 else False
self.debugSMS(mySMS)
return mySMS
def debugSMS(self, aMMS):
for key, value in aMMS.items():
self._logger.info(
'SMSDatabaseHandler :: debug SMS :: %s : %s', key, value)
def addSMSesToTar(self, aTar):
# utils.addJSonToTar(aTar, 'sms.json', self._myProcessedSMSes,
# self.getTimestampOn13Characters, 'timestamp',
# self._logger)
utils.addJSonToTar(aTar, 'sms.json', self._myProcessedSMSes,
None, 'timestamp',
self._logger)
def getTimestampOn13Characters(self, aDict, aKey, aLogger):
myDict = aDict.copy()
try:
tStamp = myDict[aKey]
digitsNumber = int(math.log10(tStamp)) + 1
if digitsNumber == 10:
myDict[aKey] = tStamp * 1000
except(KeyError):
aLogger.info('no key')
return myDict