# -*- coding: utf-8 -*-
"""
Created on Sun Jan  18 14:36:11 2022

@author: Shahedalam07@gmail.com
"""
import os
import time
import urllib
import pathlib
import paho.mqtt.client as mqtt
import requests
from datetime import datetime
global flag5
flag5 = 0
ip5 = "202.65.11.59"
deviceId5 = 'mgh.python.reader'
client_server5 = mqtt.Client(deviceId5)
client_server5.username_pw_set(username="shahed", password="A_shahed_b")
host_server5 = ip5

def on_message5(client, userdata, message):
        try:
            print("message received " ,str(message.payload.decode("utf-8")))
            print("message topic=",str(message.topic))
            print("message qos=",message.qos)
            print("message retain flag=",message.retain)
            _dir = pathlib.Path(__file__).parent.resolve()
            if not os.path.exists(str(_dir) + '/log'):
                   os.makedirs(str(_dir) + '/log')
            fs = open(str(_dir) + '/log/reader.txt', 'a', encoding='UTF8')
            now = datetime.now() # current date and time
            fs.write(now.strftime("%d/%m/%Y, %H:%M:%S "+"\n"))
            fs.write(str(message.payload.decode("utf-8"))+"\n")
            fs.close()
            topic = str(message.topic)
            htttp_url1 = "http://202.65.11.59/api/uhf_card_reader?"

            payload = message.payload.decode("utf-8")
            htttp_url1 += 'msg=' + str(payload)
            htttp_url1 +='&topic='+ str(topic)
            x = requests.post(htttp_url1)
            print(x.status_code)
        except Exception as e:
            print("Exception Message: {}".format(e))

def on_connect5(client_server, userdata, flags, rc):
    global flag5
    flag5 = 1
    client_server.on_message=on_message5
    client_server.on_connect = on_connect5
    client_server.on_disconnect = on_disconnect5
    client_server.on_publish = on_pub5
   # client_server.subscribe(mqtt_sub_topic)
    client_server.subscribe('/esp32/mgh/reader1/pub',0)

    
   # client_server.loop_start()
    print("connected ok")

def on_pub5 (client_server, userdata, result):
    print("data published")

def on_disconnect5(client, userdata, rc):
    global flag5
    flag5 = 0
    print("disconnected")
  # client_server.connect(host_server, port=1883, keepalive=600, bind_address="")
   

try:

    client_server5.connect(host_server5, port=1883, keepalive=60, bind_address="")
    client_server5.on_connect = on_connect5
    client_server5.on_disconnect = on_disconnect5
    client_server5.loop_start()
except Exception as e:
    print("Exception Message: {}".format(e))


while True:
    try:
        time.sleep(0.5)
    except Exception as e:
        print("Exception Message: {}".format(e))


