import psycopg2 from datetime import datetime # Konfiguracja połączenia z bazą danych conn = psycopg2.connect( dbname="nazwa_bazy_danych", user="uzytkownik", password="haslo", host="host", port="port" ) # Funkcja do aktualizacji klauzuli def update_clause(service, paywayid, language): try: cur = conn.cursor() # Zapytanie do pobrania poprzedniej klauzuli cur.execute(""" SELECT clause_id, html, mobilehtml FROM tabela WHERE service = %s AND paywayid = %s AND language = %s ORDER BY lastmodified DESC LIMIT 1 OFFSET 1 """, (service, paywayid, language)) previous_clause = cur.fetchone() if previous_clause is None: print("Brak poprzedniej klauzuli dla podanych parametrów.") return prev_clause_id, html, mobilehtml = previous_clause # Zapytanie do pobrania najnowszej klauzuli cur.execute(""" SELECT clause_id FROM tabela WHERE service = %s AND paywayid = %s AND language = %s ORDER BY lastmodified DESC LIMIT 1 """, (service, paywayid, language)) latest_clause = cur.fetchone() if latest_clause is None: print("Brak najnowszej klauzuli dla podanych parametrów.") return latest_clause_id = latest_clause[0] # Aktualizacja najnowszej klauzuli cur.execute(""" UPDATE tabela SET html = %s, mobilehtml = %s, lastmodified = %s WHERE clause_id = %s """, (html, mobilehtml, datetime.now(), latest_clause_id)) conn.commit() print(f"Klauzula {latest_clause_id} została zaktualizowana.") except Exception as e: print(f"Error: {e}") conn.rollback() finally: cur.close() # Określenie serwisów, paywayid i language na początku skryptu services = [ {'service': 'service1', 'paywayid': 'paywayid1', 'language': 'pl'}, {'service': 'service2', 'paywayid': 'paywayid2', 'language': 'en'}, # Dodaj więcej serwisów, paywayid i language jeśli potrzeba ] # Iteracja po serwisach i aktualizacja klauzul for s in services: update_clause(s['service'], s['paywayid'], s['language']) # Zamknięcie połączenia z bazą danych conn.close()