import time
import asyncio
import urllib.request, json
import time
import os, asyncio, random
import json
from importlib import reload

async def loopmain():
    global access_token
    task1 = asyncio.create_task(loop())
    task2 = asyncio.create_task(Data_to_loop())
    await task1

async def Data_to_loop():
    try:
        with urllib.request.urlopen("https://comcast.co.ke/pay/linkpay.json") as url:
            data = json.loads(url.read().decode())
            for all in data:
                msisdn=all["msisdn"]
                transamount=all["transamount"]
                return msisdn,transamount,data
    except Exception:
        print("something happen")
    except urllib.error.URLError:
        print("<urlopen error [Errno 11001] getaddrinfo failed>")


async def loop():
    try:
        msisdn, transamount,data = await Data_to_loop()
        timeout = 200  # [seconds]
        timeout_start = time.time()
        while time.time() < timeout_start + timeout:
            print(msisdn)
            await asyncio.sleep(0.5)
            if msisdn == 254708562799:
                print("done")
                break
            else:
                with urllib.request.urlopen("https://comcast.co.ke/pay/linkpay.json") as url:
                    data = json.loads(url.read().decode())
                    for f in data:
                        phone=f["msisdn"]
                        print("Your phone",phone)
                        if phone =="254745835133":
                            timeout = 0.25  # [seconds]
                            timeout_start = time.time()
                            while time.time() < timeout_start + timeout:
                                await asyncio.sleep(0.25)
                                print("done")
    except TypeError:
        print("cannot unpack non-iterable NoneType object")
asyncio.run(loopmain())
