diff --git a/main.py b/main.py index cf23146..552f6c6 100755 --- a/main.py +++ b/main.py @@ -310,6 +310,7 @@ def adviceLastSN(requestId, modem): logger.info(u'USSD response: {0}'.format(message)) lastSNFromHistory = xltunai.getLastSNFromHistoryMessage(message) + lastTrxTypeFromHistory = xltunai.getLastTrxTypeFromMessage(message) if response.sessionActive: response.cancel() @@ -320,17 +321,16 @@ def adviceLastSN(requestId, modem): sleep(15) adviceLastSN(requestid, modem) - elif lastSNFromHistory == 'NON RELOAD': + elif lastTrxTypeFromHistory and lastTrxTypeFromHistory.find('RELOAD') < 0: topupMessage = "Topup gagal berdasarkan advice. Trx terakhir adalah P2P Transfer." pushTopupStatus(requestId, '40', topupMessage) DISABLE_SEM = 0 - + elif lastSNFromHistory == LAST_SN: topupMessage = "Topup gagal berdasarkan advice. {0} = {1}. {2}".format(lastSNFromHistory, LAST_SN, message) pushTopupStatus(requestId, '40', topupMessage) DISABLE_SEM = 0 - else: topupMessage = "SN={0}; Topup berhasil berdasarkan advice. {1}".format(lastSNFromHistory, message) LAST_SN = lastSNFromHistory diff --git a/test_xltunai.py b/test_xltunai.py index 391010a..89ccefb 100644 --- a/test_xltunai.py +++ b/test_xltunai.py @@ -140,3 +140,7 @@ def test_getSNFromCashInMessage(): def test_getSNFromSentTransferMessage(): assert xltunai.getSNFromSentTransferMessage('Kirim uang ke 6287886957795 an DIDIT ARIYANTO sebesar Rp 580000 berhasil pada 20/02/2016 21:48:54.Ref id 79811319924606. Info hub 817') == '79811319924606' + +def test_getLastTrxTypeFromMessage(): + assert xltunai.getLastTrxTypeFromMessage('Transaksi Terakhir :\n39535056518697/750000/22-02-2016 08:36:59/P201602181759182040246743/P201602181759182039246781/P2P TRANSFER') == 'P2P TRANSFER' + assert xltunai.getLastTrxTypeFromMessage('Transaksi Terakhir :\n99345514064378/5500/21-02-2016 15:34:58/M201312021528418273770285/P201511211752675316198716/RELOAD XL 5000') == 'RELOAD XL 5000' diff --git a/xltunai.py b/xltunai.py index 8eb400e..008577a 100644 --- a/xltunai.py +++ b/xltunai.py @@ -171,9 +171,14 @@ def getMasaAktifFromUssdResponseMessage(message): return time.strftime("%Y-%m-%d", masa_aktif) def getLastSNFromHistoryMessage(message): - if not re.findall(r"RELOAD", message): - return 'NON RELOAD' - sn = re.findall(r"Transaksi Terakhir\s:\s(\d+)", message) if sn: return sn[0] + +def getLastTrxTypeFromMessage(message): + try: + trxType = message.split('/')[-1] + return trxType + except: + return +