71 lines
No EOL
2.2 KiB
Python
71 lines
No EOL
2.2 KiB
Python
import json
|
|
from typing import Any, Dict, List, Union
|
|
import requests
|
|
import pandas as pd
|
|
import streamlit as st
|
|
|
|
def echa_request(cas_num: str) -> Dict[str, Any]:
|
|
url = 'https://api.cosmoguard.it/api/v1/echa/search'
|
|
response = requests.post(url, json={'cas': cas_num})
|
|
data = response.json()
|
|
if data['success'] == True:
|
|
return data['data']
|
|
else:
|
|
return data['error']
|
|
|
|
def cosing_request(cas_num: str) -> Dict[str, Any]:
|
|
url = 'https://api.cosmoguard.it/api/v1/cosing/search'
|
|
response = requests.post(url, json={
|
|
"full": True,
|
|
"mode": "cas",
|
|
"text": cas_num
|
|
})
|
|
data = response.json()
|
|
if data['success'] == True:
|
|
return data['data']
|
|
else:
|
|
return data['error']
|
|
|
|
def generate_pdf_download(cas, origin, link):
|
|
url = 'https://api.cosmoguard.it/api/v1/common/generate-pdf'
|
|
name = f'{cas}_{origin}'
|
|
if link is not None:
|
|
response = requests.post(
|
|
url,
|
|
json = {
|
|
'link': link,
|
|
'name': name
|
|
}
|
|
)
|
|
data = response.json()
|
|
else:
|
|
data = {
|
|
'success': False,
|
|
'error': 'No dossier exists for this origin.'
|
|
}
|
|
if data['success'] == True:
|
|
url = f'https://api.cosmoguard.it/api/v1/common/download-pdf/{name}'
|
|
response = requests.get(url)
|
|
response.raise_for_status()
|
|
return response.content
|
|
else:
|
|
return data['error']
|
|
|
|
def cosing_download(ref_no: str):
|
|
url = f'https://api.tech.ec.europa.eu/cosing20/1.0/api/cosmetics/{ref_no}/export-pdf'
|
|
headers = {
|
|
'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:147.0) Gecko/20100101 Firefox/147.0',
|
|
'Accept': 'application/json, text/plain, */*',
|
|
'Accept-Language': 'it-IT,it;q=0.9',
|
|
'Cache-Control': 'No-Cache',
|
|
'Origin': 'https://ec.europa.eu',
|
|
'Referer': 'https://ec.europa.eu/',
|
|
'Sec-Fetch-Dest': 'empty',
|
|
'Sec-Fetch-Mode': 'cors',
|
|
'Sec-Fetch-Site': 'same-site',
|
|
}
|
|
response = requests.get(url, headers=headers)
|
|
if response.status_code == 200:
|
|
return response.content
|
|
else:
|
|
return f"Error: {response.status_code} - {response.text}" |