76 lines
3.8 KiB
XML
76 lines
3.8 KiB
XML
<?xml version="1.0" encoding="utf-8"?>
|
|
<odoo>
|
|
<data noupdate="1">
|
|
|
|
<!-- ============================================================
|
|
Master cron: runs every hour, delegates to active slots.
|
|
Individual slots control their own trigger times via the
|
|
itsulu.blog.schedule records created below.
|
|
============================================================ -->
|
|
<record id="ir_cron_blog_publisher_hourly" model="ir.cron">
|
|
<field name="name">Blog Publisher — Hourly Slot Check</field>
|
|
<field name="model_id" ref="model_itsulu_blog_schedule"/>
|
|
<field name="state">code</field>
|
|
<field name="code">model._cron_run_all_active_slots()</field>
|
|
<field name="interval_number">1</field>
|
|
<field name="interval_type">hours</field>
|
|
<field name="active">False</field>
|
|
<!-- Active=False by default — admin enables in Settings after
|
|
configuring API keys and schedule slots. -->
|
|
<field name="user_id" ref="base.user_root"/>
|
|
</record>
|
|
|
|
<!-- ============================================================
|
|
Default schedule slots — Morning, Afternoon, Evening.
|
|
Admin configures blog_id and API keys before activating.
|
|
============================================================ -->
|
|
<record id="blog_schedule_morning" model="itsulu.blog.schedule">
|
|
<field name="name">Morning Post (08:00 UTC)</field>
|
|
<field name="slot">morning</field>
|
|
<field name="trigger_time">8.0</field>
|
|
<field name="active">False</field>
|
|
<field name="llm_provider">anthropic</field>
|
|
<field name="llm_model">claude-sonnet-4-20250514</field>
|
|
<field name="image_provider">none</field>
|
|
<field name="auto_publish">True</field>
|
|
<field name="tone">professional and informative</field>
|
|
<field name="platform_twitter">True</field>
|
|
<field name="platform_bluesky">True</field>
|
|
<field name="platform_mastodon">True</field>
|
|
<field name="platform_linkedin">True</field>
|
|
</record>
|
|
|
|
<record id="blog_schedule_afternoon" model="itsulu.blog.schedule">
|
|
<field name="name">Afternoon Post (13:00 UTC)</field>
|
|
<field name="slot">afternoon</field>
|
|
<field name="trigger_time">13.0</field>
|
|
<field name="active">False</field>
|
|
<field name="llm_provider">anthropic</field>
|
|
<field name="llm_model">claude-sonnet-4-20250514</field>
|
|
<field name="image_provider">none</field>
|
|
<field name="auto_publish">True</field>
|
|
<field name="tone">thought leadership and industry insight</field>
|
|
<field name="platform_twitter">True</field>
|
|
<field name="platform_bluesky">True</field>
|
|
<field name="platform_mastodon">True</field>
|
|
<field name="platform_linkedin">True</field>
|
|
</record>
|
|
|
|
<record id="blog_schedule_evening" model="itsulu.blog.schedule">
|
|
<field name="name">Evening Post (18:00 UTC)</field>
|
|
<field name="slot">evening</field>
|
|
<field name="trigger_time">18.0</field>
|
|
<field name="active">False</field>
|
|
<field name="llm_provider">anthropic</field>
|
|
<field name="llm_model">claude-sonnet-4-20250514</field>
|
|
<field name="image_provider">none</field>
|
|
<field name="auto_publish">True</field>
|
|
<field name="tone">accessible and beginner-friendly</field>
|
|
<field name="platform_twitter">True</field>
|
|
<field name="platform_bluesky">True</field>
|
|
<field name="platform_mastodon">True</field>
|
|
<field name="platform_linkedin">True</field>
|
|
</record>
|
|
|
|
</data>
|
|
</odoo>
|