Files
2026-05-18 06:40:19 +00:00

73 lines
2.5 KiB
Python

import requests
# Stałe konfiguracyjne
API_KEY = 'patXWerdvwWJHRGBz.26eb663a53b03fa137ad219857cc935c514340086681d2ef8d762063bd3153cb' # Zamień na swój klucz API
BASE_ID = 'appSTkCUy8IPoutrO' # Zamień na swój identyfikator bazy danych
TABLE_NAME = 'tbl1Q8MNq8EGCzOHp' # Zamień na nazwę swojej tabeli
def record_exists(api_key, base_id, table_name, link):
"""
Sprawdza, czy rekord z podanym linkiem już istnieje w Airtable.
:param api_key: Klucz API Airtable
:param base_id: Identyfikator bazy danych
:param table_name: Nazwa tabeli
:param link: Link do sprawdzenia
:return: True, jeśli rekord istnieje, False w przeciwnym razie
"""
url = f'https://api.airtable.com/v0/{base_id}/{table_name}'
headers = {
'Authorization': f'Bearer {api_key}',
'Content-Type': 'application/json'
}
params = {
'filterByFormula': f'{{Link}}="{link}"'
}
response = requests.get(url, headers=headers, params=params)
if response.status_code == 200:
records = response.json().get('records', [])
return len(records) > 0
else:
print(f"Nie udało się sprawdzić rekordu. Status: {response.status_code}")
print(response.json())
return False
def add_record_to_airtable(wydawnictwo, link):
"""
Dodaje rekord do tabeli Airtable, jeśli nie istnieje już rekord z tym linkiem.
:param wydawnictwo: Wydawnictwo do dodania
:param link: Link do dodania
:return: Odpowiedź z API Airtable lub komunikat o istnieniu rekordu
"""
response = None # Inicjalizowanie zmiennej `response`
if not record_exists(API_KEY, BASE_ID, TABLE_NAME, link):
url = f'https://api.airtable.com/v0/{BASE_ID}/{TABLE_NAME}'
headers = {
'Authorization': f'Bearer {API_KEY}',
'Content-Type': 'application/json'
}
data = {
"fields": {
"Wydawnictwo": wydawnictwo,
"Link": link,
"Status": "Nowy"
}
}
response = requests.post(url, headers=headers, json=data)
if response.status_code == 201:
print("Rekord został dodany pomyślnie.")
print(response.json()) # Wyświetla odpowiedź API (nowo dodany rekord)
else:
print(f"Nie udało się dodać rekordu. Status: {response.status_code}")
print(response.json()) # Wyświetla szczegóły błędu
else:
print("Rekord z tym linkiem już istnieje.")
return response