File size: 2,758 Bytes
54639e8 9d54dfd 54639e8 f20025d 54639e8 9c42c43 54639e8 503d4ac 54639e8 9c42c43 54639e8 d667d16 54639e8 d667d16 54639e8 503d4ac 54639e8 |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 |
from datetime import datetime
from src.config import get_config_value
from google_src.google_sheet import GoogleSheetReader
from src.logger_config import logger
def load_executed_from_gsheet(setup_type=None, job_index=None):
"""Load executed scripts from Google Sheets logs.
Returns a list of Source Data values (all entries are considered executed).
Args:
setup_type: Optional. If provided, only count rows where Final URL contains this value.
job_index: Optional. If provided, only count rows for this specific job.
"""
try:
reader = GoogleSheetReader.get_log_reader(worksheet_name=get_config_value("logs_worksheet"))
df = reader.get_dataframe()
if "Source Data" in df.columns:
result_df = df
# Optional: filter by job_index
if job_index is not None and "Job" in df.columns:
result_df = result_df[result_df["Job"] == str(job_index)]
# Optional: filter by setup_type in Final URL
if setup_type and "Final URL" in df.columns:
result_df = result_df[result_df["Final URL"].str.contains(setup_type, na=False)]
executed = result_df["Source Data"].tolist()
logger.debug(f"Loaded {len(executed)} executed entries from Google Sheets")
return executed
else:
logger.warning("Google Sheets missing required column (Source Data)")
return []
except Exception as e:
logger.error(f"Failed to load from Google Sheets: {e}")
return []
def log_progress_to_gsheet(result: dict, job_index: int, commit=False):
"""Log progress to Google Sheets by appending rows."""
if not commit:
return
gsheet_name = get_config_value("logs_worksheet")
try:
reader = GoogleSheetReader.get_log_reader(worksheet_name=gsheet_name)
reader.create_or_update_sheet(
worksheet_name=gsheet_name,
header=["Timestamp", "Job", "Source Data", "Drive URL", "Final URL", "GCS Filename", "Delete Entry"],
values=[{
"Timestamp": datetime.now().isoformat(),
"Job": str(job_index if job_index is not None else 0),
"Source Data": get_config_value("original_tts_script"),
"Drive URL": result.get("drive_url", ""),
"Final URL": result.get("final_url", ""),
"GCS Filename": result.get("gcs_filename", ""),
"Delete Entry": "False",
}],
)
logger.debug(f"✓ Logged progress to Google Sheet for job {job_index}")
except Exception as e:
logger.error(f"❌ Failed to log to Google Sheet: {e}")
|