# **************************************************************************** # # # # ::: :::::::: # # scrap.py :+: :+: :+: # # +:+ +:+ +:+ # # By: tomoron +#+ +:+ +#+ # # +#+#+#+#+#+ +#+ # # Created: 2024/11/25 16:39:19 by tomoron #+# #+# # # Updated: 2025/03/28 13:13:48 by tomoron ### ########.fr # # # # **************************************************************************** # from login import Intra42 from getpass import getpass import re import json import threading import time import sys import dateutil import os import requests from datetime import date, timedelta try: token = os.environ["APP_TOKEN"] user = os.environ["USER_KEY"] except KeyError as e: print(f"Missing environment variable: {e.args[0]}") sys.exit(1) pushover_req_data = { "token": token, "user": user, "message": "", } print(pushover_req_data) if(len(sys.argv) != 2): print("missing team id, usage :", sys.argv[0], "") exit(1); project_id = sys.argv[1] start_search_date = date.today().strftime("%Y-%m-%d") end_search_date = (date.today() + timedelta(days=1)).strftime("%Y-%m-%d") getUrl = f"https://projects.intra.42.fr/projects/{project_id}/slots.json?start={start_search_date}&end={end_search_date}" connIntra = Intra42() found = set(); while(True): res = connIntra.get_available_slot(getUrl) for x in res: if x["ids"] not in found: start = dateutil.parser.isoparse(x["start"]).strftime("%d/%m at %H:%M") end = dateutil.parser.isoparse(x["end"]).strftime("%d/%m at %H:%M") text = "slot found starting " + start + " ,ending " + end; pushover_req_data["message"] = text response = requests.post("https://api.pushover.net/1/messages.json", data=pushover_req_data) print("request sent", response.status_code, response.text) print("\a" + text); found.add(x["ids"]) time.sleep(1);