diff --git a/main.py b/main.py index 01d05b0..cf23146 100755 --- a/main.py +++ b/main.py @@ -112,28 +112,28 @@ def handleSms(sms): enablePull() return - + if sms.text.find('Maaf, transaksi gagal') >= 0: pushTopupStatus(LAST_REQUEST_ID, '40', sms.text) return - elif sms.text.find('PIN yang Anda masukkan salah. Silahkan ulangi kembali') >= 0: + if sms.text.find('PIN yang Anda masukkan salah. Silahkan ulangi kembali') >= 0: pushTopupStatus(LAST_REQUEST_ID, '91', sms.text) return - elif sms.text.find('Maaf, saldo XL-Tunai anda tidak cukup') >= 0: + if sms.text.find('Maaf, saldo XL-Tunai anda tidak cukup') >= 0: pushTopupStatus(LAST_REQUEST_ID, '40', sms.text) return - elif sms.text.find('Maaf, layanan ini hanya untuk nomor tujuan prabayar XL') >= 0: + if sms.text.find('Maaf, layanan ini hanya untuk nomor tujuan prabayar XL') >= 0: pushTopupStatus(LAST_REQUEST_ID, '14', sms.text) return - elif sms.text.find('Mohon maaf, nomor yang Anda masukkan tidak valid') >= 0: + if sms.text.find('Mohon maaf, nomor yang Anda masukkan tidak valid') >= 0: pushTopupStatus(LAST_REQUEST_ID, '14', sms.text) return - elif sms.text.find('Mohon maaf, transaksi Anda melebihi limit nominal bulanan') >= 0: + if sms.text.find('Mohon maaf, transaksi Anda melebihi limit nominal bulanan') >= 0: pushTopupStatus(LAST_REQUEST_ID, '40', sms.text) logger.info('Monthly limit for "{0}" detected, removing from product list'.format(LAST_PRODUCT)) @@ -141,19 +141,24 @@ def handleSms(sms): logger.warning('Monthly limit for "{0}" exceeded. New active products: "{1}"'.format(LAST_PRODUCT, PRODUCTS)) return - elif sms.text.find('Maaf, transaksi Anda masih dalam proses') >= 0: + if sms.text.find('Maaf, transaksi Anda masih dalam proses') >= 0: pushTopupStatus(LAST_REQUEST_ID, '68', sms.text) return - elif sms.text.find('Maaf, saat ini sistem sedang proses maintenance') >= 0: + if sms.text.find('Maaf, saat ini sistem sedang proses maintenance') >= 0: pushTopupStatus(LAST_REQUEST_ID, '91', sms.text) return - elif sms.text.find('Anda terima uang XLTunai') >= 0: + if sms.text.find('Anda terima uang XLTunai') >= 0: LAST_SN = xltunai.getSNFromReceiveTransferMessage(sms.text) logger.info('Override LAST_SN: {0}'.format(LAST_SN)) return + if sms.text.find('Kirim uang ke ') == 0: + LAST_SN = xltunai.getSNFromSentTransferMessage(sms.text) + logger.info('Override LAST_SN: {0}'.format(LAST_SN)) + return + destination = xltunai.getDestinationFromMessage(sms.text) if destination == '': logger.warning('handleSms: gagal parsing nomor tujuan') diff --git a/test_xltunai.py b/test_xltunai.py index facd2ef..391010a 100644 --- a/test_xltunai.py +++ b/test_xltunai.py @@ -137,3 +137,6 @@ def test_getSNFromReceiveTransferMessage(): def test_getSNFromCashInMessage(): assert xltunai.getSNFromCashInMessage('Terimakasih, transaksi CASH IN ke akun 6287886957792 berhasil. Jumlah transaksi Rp 5000000, biaya 0. Saldo anda saat ini 5000000 . Ref ID: 96346333194106') == '96346333194106' + +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' diff --git a/xltunai.py b/xltunai.py index f948f3c..fb02bd4 100644 --- a/xltunai.py +++ b/xltunai.py @@ -90,6 +90,13 @@ def getSNFromReceiveTransferMessage(message): except: return +def getSNFromSentTransferMessage(message): + try: + sn = "".join(re.findall(r'Ref id (\d+)', message)) + return sn + except: + return + def getSNFromCashInMessage(message): try: sn = "".join(re.findall(r'Ref ID: (\d+)$', message))