Add --tier1-count flag to ingest-cora command
Allows overriding the default random 10-12 tier1 article count when creating a job file during CORA ingestion. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>main
parent
6b0278afd4
commit
0c559654b4
|
|
@ -73,18 +73,19 @@ def _get_brands_for_url(url: str) -> List[str]:
|
||||||
|
|
||||||
|
|
||||||
def create_job_file_for_project(
|
def create_job_file_for_project(
|
||||||
project_id: int,
|
project_id: int,
|
||||||
project_name: str,
|
project_name: str,
|
||||||
session,
|
session,
|
||||||
tier1_branded_ratio: Optional[float] = None,
|
tier1_branded_ratio: Optional[float] = None,
|
||||||
tier1_branded_text: Optional[str] = None,
|
tier1_branded_text: Optional[str] = None,
|
||||||
tier1_branded_plus_ratio: Optional[float] = None,
|
tier1_branded_plus_ratio: Optional[float] = None,
|
||||||
brand_names: Optional[List[str]] = None,
|
brand_names: Optional[List[str]] = None,
|
||||||
random_deployment_targets: Optional[int] = None
|
random_deployment_targets: Optional[int] = None,
|
||||||
|
tier1_count: Optional[int] = None
|
||||||
) -> Optional[str]:
|
) -> Optional[str]:
|
||||||
"""
|
"""
|
||||||
Create a job JSON file for a newly created project.
|
Create a job JSON file for a newly created project.
|
||||||
|
|
||||||
Args:
|
Args:
|
||||||
project_id: The ID of the created project
|
project_id: The ID of the created project
|
||||||
project_name: The name of the project (for filename)
|
project_name: The name of the project (for filename)
|
||||||
|
|
@ -94,25 +95,26 @@ def create_job_file_for_project(
|
||||||
tier1_branded_plus_ratio: Optional ratio of branded+ anchor text for tier1 (0.0-1.0, applied to remaining slots after branded)
|
tier1_branded_plus_ratio: Optional ratio of branded+ anchor text for tier1 (0.0-1.0, applied to remaining slots after branded)
|
||||||
brand_names: Optional list of brand names for branded+ generation
|
brand_names: Optional list of brand names for branded+ generation
|
||||||
random_deployment_targets: Optional number of random deployment targets to select (default: random 2-3)
|
random_deployment_targets: Optional number of random deployment targets to select (default: random 2-3)
|
||||||
|
tier1_count: Optional override for tier1 article count (default: random 10-12)
|
||||||
|
|
||||||
Returns:
|
Returns:
|
||||||
Path to created file, or None if creation failed
|
Path to created file, or None if creation failed
|
||||||
"""
|
"""
|
||||||
try:
|
try:
|
||||||
deployment_repo = SiteDeploymentRepository(session)
|
deployment_repo = SiteDeploymentRepository(session)
|
||||||
sites = deployment_repo.get_all()
|
sites = deployment_repo.get_all()
|
||||||
|
|
||||||
available_domains = [
|
available_domains = [
|
||||||
site.custom_hostname
|
site.custom_hostname
|
||||||
for site in sites
|
for site in sites
|
||||||
if site.custom_hostname is not None
|
if site.custom_hostname is not None
|
||||||
]
|
]
|
||||||
|
|
||||||
if not available_domains:
|
if not available_domains:
|
||||||
click.echo("Warning: No domains with custom hostnames found. Job file not created.", err=True)
|
click.echo("Warning: No domains with custom hostnames found. Job file not created.", err=True)
|
||||||
return None
|
return None
|
||||||
|
|
||||||
t1_count = random.randint(10, 12)
|
t1_count = tier1_count if tier1_count is not None else random.randint(10, 12)
|
||||||
t2_count = random.randint(30, 45)
|
t2_count = random.randint(30, 45)
|
||||||
if random_deployment_targets is not None:
|
if random_deployment_targets is not None:
|
||||||
num_targets = min(random_deployment_targets, len(available_domains))
|
num_targets = min(random_deployment_targets, len(available_domains))
|
||||||
|
|
@ -1080,9 +1082,10 @@ def sync_sites(admin_user: Optional[str], admin_password: Optional[str], dry_run
|
||||||
@click.option('--tier1-branded-ratio', '-t', default=None, type=float, help='Ratio of branded anchor text for tier1 (optional, only prompts if provided)')
|
@click.option('--tier1-branded-ratio', '-t', default=None, type=float, help='Ratio of branded anchor text for tier1 (optional, only prompts if provided)')
|
||||||
@click.option('--tier1-branded-plus-ratio', '-bp', default=None, type=float, help='Ratio of branded+ anchor text for tier1 (optional, applied to remaining slots after branded)')
|
@click.option('--tier1-branded-plus-ratio', '-bp', default=None, type=float, help='Ratio of branded+ anchor text for tier1 (optional, applied to remaining slots after branded)')
|
||||||
@click.option('--random-deployment-targets', '-r', type=int, help='Number of random deployment targets to select (default: random 2-3)')
|
@click.option('--random-deployment-targets', '-r', type=int, help='Number of random deployment targets to select (default: random 2-3)')
|
||||||
|
@click.option('--tier1-count', type=int, default=None, help='Number of tier1 articles (default: random 10-12)')
|
||||||
@click.option('--username', '-u', help='Username for authentication')
|
@click.option('--username', '-u', help='Username for authentication')
|
||||||
@click.option('--password', '-p', help='Password for authentication')
|
@click.option('--password', '-p', help='Password for authentication')
|
||||||
def ingest_cora(file_path: str, name: str, money_site_url: Optional[str], custom_anchors: Optional[str], tier1_branded_ratio: float, tier1_branded_plus_ratio: Optional[float], random_deployment_targets: Optional[int], username: Optional[str], password: Optional[str]):
|
def ingest_cora(file_path: str, name: str, money_site_url: Optional[str], custom_anchors: Optional[str], tier1_branded_ratio: float, tier1_branded_plus_ratio: Optional[float], random_deployment_targets: Optional[int], tier1_count: Optional[int], username: Optional[str], password: Optional[str]):
|
||||||
"""Ingest a CORA .xlsx report and create a new project"""
|
"""Ingest a CORA .xlsx report and create a new project"""
|
||||||
try:
|
try:
|
||||||
if not username or not password:
|
if not username or not password:
|
||||||
|
|
@ -1197,14 +1200,15 @@ def ingest_cora(file_path: str, name: str, money_site_url: Optional[str], custom
|
||||||
tier1_branded_plus_ratio = None
|
tier1_branded_plus_ratio = None
|
||||||
|
|
||||||
job_file = create_job_file_for_project(
|
job_file = create_job_file_for_project(
|
||||||
project.id,
|
project.id,
|
||||||
project.name,
|
project.name,
|
||||||
session,
|
session,
|
||||||
tier1_branded_ratio=tier1_branded_ratio,
|
tier1_branded_ratio=tier1_branded_ratio,
|
||||||
tier1_branded_text=tier1_branded_text,
|
tier1_branded_text=tier1_branded_text,
|
||||||
tier1_branded_plus_ratio=tier1_branded_plus_ratio,
|
tier1_branded_plus_ratio=tier1_branded_plus_ratio,
|
||||||
brand_names=brand_names,
|
brand_names=brand_names,
|
||||||
random_deployment_targets=random_deployment_targets
|
random_deployment_targets=random_deployment_targets,
|
||||||
|
tier1_count=tier1_count
|
||||||
)
|
)
|
||||||
if job_file:
|
if job_file:
|
||||||
click.echo(f"Job file created: {job_file}")
|
click.echo(f"Job file created: {job_file}")
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue