=== Easy AI Auto ===
Contributors: easystorewp
Donate link: https://www.easy-storewp.com/
Tags: ai, content, automation, openai, scheduler
Requires at least: 5.7
Tested up to: 6.8
Requires PHP: 7.4
Stable tag: 1.2.0
License: GPLv2 or later
License URI: https://www.gnu.org/licenses/gpl-2.0.html

Automated AI content generation for WordPress. Schedule, write, and publish articles via any OpenAI-compatible LLM endpoint.

== Description ==

**Easy AI Auto** automatically generates and publishes WordPress articles on a schedule, simulating an active human-edited blog. It pulls trending topics (or your own keyword pool), feeds them to your chosen LLM, and posts the results — all hands-off.

= What it does =

* Pulls trending keywords from Google Trends TW (or uses your own backup keyword pool)
* Sends each keyword to an OpenAI-compatible LLM endpoint
* Receives JSON-structured output (title / content / meta description / Unsplash image keywords)
* Saves a featured image from Unsplash automatically (if API key provided)
* Publishes the article under a virtual author (auto-created, role=author, login disabled)
* Configurable active hours + jitter for natural-looking publish times
* Telegram weekly report of published articles + auto-log stats (optional)

= Bring your own LLM endpoint =

Configure any OpenAI-compatible chat completion endpoint:

* OpenAI (api.openai.com)
* Anthropic via OpenAI compatibility layer
* OpenRouter (free models available)
* Groq (free tier with generous quota)
* Self-hosted Ollama
* LiteLLM proxy
* Any other compatible service

The plugin only sends `model`, `messages`, optional `response_format` to your endpoint — standard chat completion API.

= Brand voice (optional) =

In Settings → Brand & Content Style, enter a one-paragraph "Site Role Description" telling the AI what your site is about (e.g. "B2B WordPress hosting provider serving SMB owners"). The AI will inject this into the system prompt to keep articles on-voice. Leave blank to use the generic blogger persona.

= No vendor lock-in =

* No hardcoded API endpoint
* No phoning home
* No tracking
* All settings stored in your own `wp_options`
* Uninstall cleanly removes all data

= Compatible with =

* **Easy Schedule** — appears in the central scheduler dashboard
* **Easy SEO** — auto-generated meta description writes to `_easy_seo_description`
* Yoast SEO — auto-generated meta description writes to `_yoast_wpseo_metadesc`

== Installation ==

1. Upload zip via Plugins → Add New → Upload Plugin → Activate.
2. Go to **Easy AI 發文** → Settings.
3. Fill in **LiteLLM Proxy URL / API Key / Model** (or any OpenAI-compatible endpoint).
4. (Optional) Add **Unsplash Access Key** for auto-featured-images.
5. (Optional) Add **Site Role Description** to flavor AI output.
6. (Optional) Configure **Telegram Bot Token / Chat ID** for weekly reports.
7. Set **Daily count / Active hours / Jitter** to taste.
8. Toggle **Enable** ON. The plugin will auto-schedule.

== Frequently Asked Questions ==

= Where do I get a free LLM API key to test with? =

* **OpenRouter** (https://openrouter.ai/) — sign up, free models like `meta-llama/llama-3.3-70b-instruct:free` available.
* **Groq** (https://console.groq.com/) — generous free tier, very fast.
* **Ollama** (https://ollama.com/) — run locally, free forever.

Set `litellm_url` to the provider's OpenAI-compatible endpoint (usually `https://.../v1`) and use any chat-completion model name.

= Does it work without Unsplash API key? =

Yes. Articles are published without featured images. Add the key later if you want auto-images.

= Can I review articles before they publish? =

Currently the plugin publishes directly. To review first, set the post status to draft via WP filters, or manually unpublish in the auto-log dashboard.

= How is this different from auto-blogging plugins on the market? =

* **No fixed AI provider** — bring your own
* **No subscription / token reseller** — you pay your LLM bills directly
* **No hardcoded prompts** — site role is your text
* **Open source GPL** — code is auditable

= Does it spam Google? =

That's up to you. We recommend:
* Active hours within reasonable times
* Jitter > 5 minutes
* Daily count ≤ 10 for new sites
* Real keyword research; don't dump 50 articles a day on launch

== Screenshots ==

1. Settings page with LLM endpoint config
2. Brand & content style (site role description)
3. Auto-log dashboard showing recent runs
4. Telegram weekly report sample
5. Backup keyword pool management

== Changelog ==

= 1.2.0 =
* New: Opt-in telemetry — anonymously share plugin / WP / PHP version stats with the developer. Predefined OFF; user must explicitly opt in via admin notice.
* New: Welcome notice on first activation.
* New: Soft CTA in admin footer linking to https://www.easy-storewp.com/easy-suite/
* Changed: Plugin URI now points to https://www.easy-storewp.com/easy-suite/

= 1.1.0 =
* New: "Site Role Description" setting injects custom site context into AI prompt
* New: Plugin header completed for wp.org submission (License URI / Domain Path / Tags)
* New: `readme.txt` (wp.org spec) + `uninstall.php`
* Changed: Keyword source dropdown label "B2B / 品牌權重" → "品牌權重" (less industry-specific)
* Changed: Description rewritten to highlight LLM-agnostic / no-vendor-lock-in stance

= 1.0.14 =
* Added: `easy_schedule_register_tasks` filter integration
* Plugin tasks now appear in Easy Schedule central dashboard

= 1.0.13 =
* Year prefix prompt rule rebalanced (most articles no year prefix, evergreen topics never)

= 1.0.0 =
* Initial release.

== Privacy ==

Easy AI Auto sends:
* Keyword text to your configured LLM endpoint (so the LLM can write about it)
* Image keywords to Unsplash API (if key provided) for image search
* Article publish summaries to Telegram (if bot token provided)

Easy AI Auto does NOT:
* Send any data to plugin author servers
* Track user behavior
* Phone home for analytics
* Share data with third parties

API keys (LiteLLM / Unsplash / Telegram) are stored in your own `wp_options` table. Uninstall removes them.
