92 lines
2.2 KiB
Python
92 lines
2.2 KiB
Python
import requests
|
|
from datetime import datetime
|
|
|
|
# ==============================
|
|
# 1) Buscar token dinâmico
|
|
# ==============================
|
|
|
|
def get_token():
|
|
url = "https://api.grupoginseng.com.br/api/tokens"
|
|
response = requests.get(url)
|
|
|
|
if response.status_code != 200:
|
|
raise Exception(f"Erro ao buscar token: {response.status_code} {response.text}")
|
|
|
|
data = response.json()
|
|
return data["data"][0]["token"]
|
|
|
|
|
|
# ==============================
|
|
# 2) Buscar cycles
|
|
# ==============================
|
|
|
|
def get_cycles(token):
|
|
url = "https://api-extranet.grupoboticario.digital/api/v2/cycles"
|
|
|
|
headers = {
|
|
"accept": "application/json, text/plain, */*",
|
|
"authorization": token,
|
|
"user-agent": "Mozilla/5.0"
|
|
}
|
|
|
|
response = requests.get(url, headers=headers)
|
|
return response.json()
|
|
|
|
|
|
# ==============================
|
|
# 3) Determinar ciclo atual formatado para cada marca
|
|
# ==============================
|
|
|
|
def ciclo_formatado_por_marca(cycles_json):
|
|
hoje = datetime.now()
|
|
ano = hoje.year
|
|
|
|
ignorar = ["Eudora", "VD Multimarca"] # Marcas excluídas
|
|
|
|
MAPA_NOMES = {
|
|
"O Boticário": "BOT",
|
|
"O.U.I": "OUI",
|
|
"Quem Disse Berenice": "QDB"
|
|
}
|
|
|
|
resultado = {}
|
|
|
|
for brand in cycles_json["data"]:
|
|
nome_marca = brand["brandName"]
|
|
|
|
# Pula marcas indesejadas
|
|
if nome_marca in ignorar:
|
|
continue
|
|
|
|
ciclo_formatado = None
|
|
|
|
for cycle in brand["cycles"]:
|
|
start = datetime.fromisoformat(cycle["startDate"])
|
|
end = datetime.fromisoformat(cycle["endDate"])
|
|
|
|
if cycle["isCurrent"] or (start <= hoje <= end):
|
|
ciclo_num = f"{cycle['number']:02d}"
|
|
ciclo_formatado = int(f"{ano}{ciclo_num}")
|
|
break
|
|
|
|
nome_final = MAPA_NOMES.get(nome_marca, nome_marca) # usa abreviação
|
|
|
|
resultado[nome_final] = ciclo_formatado
|
|
|
|
return resultado
|
|
|
|
|
|
|
|
|
|
# ==============================
|
|
# EXECUÇÃO
|
|
# ==============================
|
|
|
|
if __name__ == "__main__":
|
|
token = get_token()
|
|
cycles_json = get_cycles(token)
|
|
|
|
resultado = ciclo_formatado_por_marca(cycles_json)
|
|
|
|
print(resultado)
|