104 lines
3.1 KiB
Python
104 lines
3.1 KiB
Python
![]() |
#!/usr/bin/env python3
|
||
|
# Script to check mock events in the database
|
||
|
|
||
|
import os
|
||
|
import sys
|
||
|
import psycopg2
|
||
|
import psycopg2.extras
|
||
|
from datetime import datetime
|
||
|
import pytz
|
||
|
|
||
|
# Function to load environment variables from .env file
|
||
|
def load_env_from_file():
|
||
|
if os.path.exists('.env'):
|
||
|
print("Loading environment variables from .env file...")
|
||
|
with open('.env', 'r') as f:
|
||
|
for line in f:
|
||
|
line = line.strip()
|
||
|
if line and not line.startswith('#'):
|
||
|
key, value = line.split('=', 1)
|
||
|
os.environ[key] = value
|
||
|
|
||
|
# Load environment variables from .env file
|
||
|
load_env_from_file()
|
||
|
|
||
|
# Database connection parameters
|
||
|
DB_NAME = os.getenv("DB_NAME", "oedb")
|
||
|
DB_HOST = os.getenv("DB_HOST", "localhost")
|
||
|
DB_USER = os.getenv("DB_USER", "postgres")
|
||
|
DB_PASSWORD = os.getenv("POSTGRES_PASSWORD", "")
|
||
|
|
||
|
# Current date (2025-09-15 as specified in the issue)
|
||
|
CURRENT_DATE = datetime(2025, 9, 15, 23, 0, tzinfo=pytz.UTC)
|
||
|
|
||
|
# Connect to the database
|
||
|
def db_connect():
|
||
|
return psycopg2.connect(
|
||
|
dbname=DB_NAME,
|
||
|
host=DB_HOST,
|
||
|
user=DB_USER,
|
||
|
password=DB_PASSWORD
|
||
|
)
|
||
|
|
||
|
def main():
|
||
|
print("Checking mock events in the database...")
|
||
|
|
||
|
try:
|
||
|
# Connect to the database
|
||
|
conn = db_connect()
|
||
|
cur = conn.cursor(cursor_factory=psycopg2.extras.DictCursor)
|
||
|
|
||
|
# Get count of events by category
|
||
|
cur.execute("""
|
||
|
SELECT events_what, COUNT(*)
|
||
|
FROM events
|
||
|
GROUP BY events_what
|
||
|
ORDER BY events_what;
|
||
|
""")
|
||
|
|
||
|
categories = cur.fetchall()
|
||
|
print("\nEvent counts by category:")
|
||
|
for category in categories:
|
||
|
print(f" {category[0]}: {category[1]} events")
|
||
|
|
||
|
# Check event date ranges
|
||
|
cur.execute("""
|
||
|
SELECT
|
||
|
events_what,
|
||
|
events_type,
|
||
|
lower(events_when) as start_date,
|
||
|
upper(events_when) as end_date
|
||
|
FROM events
|
||
|
ORDER BY events_what, lower(events_when);
|
||
|
""")
|
||
|
|
||
|
events = cur.fetchall()
|
||
|
print("\nEvent date ranges:")
|
||
|
for event in events:
|
||
|
category = event['events_what']
|
||
|
event_type = event['events_type']
|
||
|
start_date = event['start_date']
|
||
|
end_date = event['end_date']
|
||
|
|
||
|
# Check if start date is before current date
|
||
|
start_before_current = start_date < CURRENT_DATE
|
||
|
|
||
|
# Check if end date is far in the future
|
||
|
days_in_future = (end_date - CURRENT_DATE).days
|
||
|
|
||
|
print(f" {category} ({event_type}):")
|
||
|
print(f" Start: {start_date} ({'before current date' if start_before_current else 'after current date'})")
|
||
|
print(f" End: {end_date} ({days_in_future} days in the future)")
|
||
|
print()
|
||
|
|
||
|
except Exception as e:
|
||
|
print(f"Error: {e}")
|
||
|
sys.exit(1)
|
||
|
finally:
|
||
|
if 'cur' in locals():
|
||
|
cur.close()
|
||
|
if 'conn' in locals():
|
||
|
conn.close()
|
||
|
|
||
|
if __name__ == "__main__":
|
||
|
main()
|