import re
import requests
import time
# URL i podaci za dobijanje tokena
TOKEN_URL = "
http://netiptv.eu/token"
MAC_DATA_URL = "
http://netiptv.eu/getMacData/bs:24:02:0z:uz:e7:12:54"
TOKEN_PAYLOAD = {
    'grant_type': 'password',
    'username': 'CemCan',
    'password': 'X4rvpCDV873CPkRn'
}
TOKEN_HEADERS = {
    "Accept": "application/json",
    "Content-Type": "application/x-www-form-urlencoded",
    "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.124 Safari/537.36"
}
MAC_DATA_HEADERS_TEMPLATE = {
    "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.124 Safari/537.36",
    "Accept": "application/json",
    "Authorization": "Bearer {}"
}
OUTPUT_FILE = "NET.txt"
# Funkcija za dobijanje tokena
def get_access_token():
    response = requests.post(TOKEN_URL, data=TOKEN_PAYLOAD, headers=TOKEN_HEADERS)
    if response.status_code == 200:
        token_data = response.json()
        return token_data.get("access_token")
    else:
        print(f"Neuspešno dobavljanje tokena, status code: {response.status_code}")
    return None
# Funkcija za dobijanje MAC podataka
def get_mac_data(token):
    headers = MAC_DATA_HEADERS_TEMPLATE.copy()
    headers["Authorization"] = headers["Authorization"].format(token)
    response = requests.get(MAC_DATA_URL, headers=headers)
    return response
# Funkcija za izdvajanje prvog URL-a iz urlList-a
def extract_first_url(response_text):
    match = re.search(r'urlList":"(.*?)\\r\\n', response_text)
    if match:
        url_list = match.group(1)
        first_url_match = re.search(r'http
?://(?:[a-zA-Z]|[0-9]|[$-_@.&+]|[!*\\(\\),]|(?:%[0-9a-fA-F][0-9a-fA-F]))+', url_list)
        if first_url_match:
            return first_url_match.group()
    return None
# Glavna petlja za izvršavanje upita svakih 2 sekunde
while True:
    token = get_access_token()
    if token:
        mac_data_response = get_mac_data(token)
        if mac_data_response.status_code == 200:
            first_url = extract_first_url(mac_data_response.text)
            if first_url:
                with open(OUTPUT_FILE, 'a') as f:  # Koristimo 'a' (append) mod za dodavanje na kraj datoteke
                    f.write(first_url + '\n')
                print(f"URL je zapisan: {first_url}")
            else:
                print("Nije pronađen prvi URL u odgovoru")
        else:
            print(f"Neuspešno dobavljanje MAC podataka: {mac_data_response.status_code}")
    else:
        print("Neuspešno dobavljanje tokena")
    time.sleep(2)