Commit 023dc52dc64f713cd9351184085b0543626c2760

Authored by Adhidarma Hadiwinoto
1 parent da1313c0ae
Exists in master

pulsa dan masa aktif

Showing 3 changed files with 47 additions and 1 deletions Side-by-side Diff

... ... @@ -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)
... ... @@ -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
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 +