Commit 023dc52dc64f713cd9351184085b0543626c2760
1 parent
da1313c0ae
Exists in
master
pulsa dan masa aktif
Showing 3 changed files with 47 additions and 1 deletions Side-by-side Diff
main.py
... | ... | @@ -43,6 +43,9 @@ DISABLE_SEM_ON_TRX=60 |
43 | 43 | |
44 | 44 | LAST_REQUEST_ID = None |
45 | 45 | |
46 | +PULSA = 0 | |
47 | +MASA_AKTIF = "" | |
48 | + | |
46 | 49 | logger = None |
47 | 50 | |
48 | 51 | from gsmmodem.modem import GsmModem |
... | ... | @@ -485,6 +488,9 @@ def checkBalance(modem, do_not_update = False, return_result = False): |
485 | 488 | return True |
486 | 489 | |
487 | 490 | def getPulsaInfo(modem): |
491 | + global PULSA | |
492 | + global MASA_AKTIF | |
493 | + | |
488 | 494 | try: |
489 | 495 | ussd_string = "*123#" |
490 | 496 | response = modem.sendUssd(ussd_string) |
... | ... | @@ -494,6 +500,10 @@ def getPulsaInfo(modem): |
494 | 500 | if response.sessionActive: |
495 | 501 | response.cancel() |
496 | 502 | |
503 | + PULSA = xltunai.getPulsaFromUssdResponseMessage(message) | |
504 | + MASA_AKTIF =xltunai.getMasaAktifFromUssdResponseMessage(message) | |
505 | + logger.info('PULSA: {0} -- MASA AKTIF: {1}'.format(PULSA, MASA_AKTIF)) | |
506 | + | |
497 | 507 | return message |
498 | 508 | |
499 | 509 | except: |
... | ... | @@ -604,7 +614,9 @@ def saveSimCardInfoToRedis(imsi, msisdn): |
604 | 614 | data = { |
605 | 615 | 'gw': BASE_CHIPINFO, |
606 | 616 | 'imsi': imsi, |
607 | - 'msisdn': msisdn | |
617 | + 'msisdn': msisdn, | |
618 | + 'pulsa': PULSA, | |
619 | + 'masa_aktif': MASA_AKTIF | |
608 | 620 | } |
609 | 621 | |
610 | 622 | json_data = json.dumps(data) |
test_xltunai.py
... | ... | @@ -108,3 +108,20 @@ def test_getMSISDNFromSIMCardInfo(): |
108 | 108 | def test_getIMSIFromSIMCardInfo(): |
109 | 109 | assert xltunai.getIMSIFromSIMCardInfo('Nomor 6287880852347 adalah nomor dengan POC JK0 dengan ICCID 8962116820756544479') == '8962116820756544479' |
110 | 110 | assert xltunai.getIMSIFromSIMCardInfo('bla bla bla') == '' |
111 | + | |
112 | +def test_getPulsaFromUssdResponseMessage(): | |
113 | + assert xltunai.getPulsaFromUssdResponseMessage('Pulsa 41875 s/d 16Sep15. Mendadak DISKON 1 JUTA pelanggan pertama!') == 41875 | |
114 | + assert xltunai.getPulsaFromUssdResponseMessage('''Pulsa 41875 s/d 16Sep15. Mendadak DISKON 1 JUTA pelanggan pertama! | |
115 | +1 Mau | |
116 | +2 Info 4G | |
117 | +3 Internet | |
118 | +4 Pkt Nelp&SMS | |
119 | +5 Pkt Seru | |
120 | +6 mPulsa | |
121 | +7 60Mazda2''') == 41875 | |
122 | + assert xltunai.getPulsaFromUssdResponseMessage('') == None | |
123 | + assert xltunai.getPulsaFromUssdResponseMessage('Pulsa habis s/d') == None | |
124 | + | |
125 | +def test_getPulsaFromUssdResponseMessage(): | |
126 | + assert xltunai.getMasaAktifFromUssdResponseMessage('Pulsa 41875 s/d 16Sep15. Mendadak DISKON 1 JUTA pelanggan pertama!') == '2015-09-16' | |
127 | + assert xltunai.getMasaAktifFromUssdResponseMessage('Pulsa 41875 s/d. Mendadak DISKON 1 JUTA pelanggan pertama!') == None |
xltunai.py
1 | 1 | import re |
2 | +import time | |
2 | 3 | |
3 | 4 | nominalCodes = { |
4 | 5 | 5000: 1, |
... | ... | @@ -131,3 +132,19 @@ def getResponseCodeByUSSDResponse(response_message): |
131 | 132 | return ussd_response_codes[pattern] |
132 | 133 | |
133 | 134 | return '68' |
135 | + | |
136 | +def getPulsaFromUssdResponseMessage(message): | |
137 | + pulsa = re.findall(r"Pulsa (\d+) s", message) | |
138 | + if pulsa: | |
139 | + return int(pulsa[0]) | |
140 | + | |
141 | +def getMasaAktifFromUssdResponseMessage(message): | |
142 | + masa_aktif = re.findall(' s/d (\w+)\.', message) | |
143 | + if not masa_aktif: | |
144 | + return; | |
145 | + | |
146 | + masa_aktif = time.strptime(masa_aktif[0], '%d%b%y') | |
147 | + return time.strftime("%Y-%m-%d", masa_aktif) | |
148 | + | |
149 | + | |
150 | + |