1fd330fa0e
Gitea's POST /releases/{id}/assets endpoint returns an internal
/attachments/<uuid> URL. GET /releases/{id} returns the pretty
/<owner>/<repo>/releases/download/<tag>/<name> URL for the same asset.
Both resolve to the same bytes (verified: 207949 for 1.2.0 zip).
Pretty URL is preferred: filename is visible in the URL (better for
WP admin «View version details» and manual downloads), consistent
across Gitea instances (UUID format is git.netranking.ru-specific
Postgres attachment storage).
Also: switch `echo "$VAR" | jq` to `jq ... <<< "$VAR"`
herestring for CREATE_RESPONSE parsing — macOS /bin/echo can
interpret backslash-escapes in multi-line JSON bodies and corrupt
jq input.
wp-plugin-info.json for 1.2.0 patched in-place to use the pretty URL
for consistency with future releases. Both URLs continue to work;
domработница.рус's next PUC poll will refresh its local transient
to the pretty URL (version comparison stays 1.2.0 == 1.2.0, so no
update notice).
Closes cf7stg-pmf (T20).
17 lines
4.6 KiB
JSON
17 lines
4.6 KiB
JSON
{
|
||
"name": "CF7 Spam → Telegram",
|
||
"slug": "cf7-spam-to-telegram",
|
||
"version": "1.2.0",
|
||
"download_url": "https://git.netranking.ru/bryzgalov/cf7-spam-to-telegram/releases/download/v1.2.0/cf7-spam-to-telegram-1.2.0.zip",
|
||
"homepage": "https://git.netranking.ru/bryzgalov/cf7-spam-to-telegram",
|
||
"requires": "6.0",
|
||
"tested": "6.9",
|
||
"requires_php": "7.4",
|
||
"last_updated": "2026-04-21 18:53:53",
|
||
"author": "Vladimir Bryzgalov",
|
||
"sections": {
|
||
"description": "Forwards CF7 spam submissions to Telegram with heuristic classification (client/unclear/spam/drop labels).",
|
||
"changelog": "<h4>1.2.0</h4><ul><li>New: Self-hosted plugin updates from Gitea via Plugin Update Checker v5.6. WordPress admin shows updates automatically (checked hourly). Source: https://git.netranking.ru/bryzgalov/cf7-spam-to-telegram/raw/branch/main/wp-plugin-info.json</li><li>Dev: release.sh — one-shot release script (bump → release commit → push → build clean zip via git archive --worktree-attributes → Gitea release + asset upload → regenerate wp-plugin-info.json with actual download_url → JSON commit + push). Two fast-forward commits per release, no force-push.</li><li>Dev: .gitattributes export-ignore covers tests/, docs/, composer.*, phpunit.xml, .beads/, .claude/, CLAUDE.md, AGENTS.md, release.sh, dist/, .git* — git archive produces clean zip without dev files.</li><li>Dev: .gitignore adds dist/ for local release build artifact.</li></ul><h4>1.1.0</h4><ul><li>New: Silent drop — заявки, удовлетворяющие hard-rule (нет позитивных сигналов + короткое латинское имя или ≥3 полей-плейсхолдеров) или score ≤ -5, не отправляются в TG. По умолчанию при установке/апгрейде включён dry-run режим (помечает сообщение «[БЫЛО БЫ DROPPED]»); реальный дроп включается чекбоксом в настройках.</li><li>New: Settings → блок «Silent drop» с переключателями dry-run, hard-rule, score-порогом и статистикой счётчиков.</li><li>New: Dashboard widget показывает количество дропов.</li><li>New: filter `cf7stg_should_enqueue` для внешних override-правил.</li><li>New: filter `cf7stg_hard_drop_rules` для точечного отключения hard-rules.</li></ul><h4>1.0.4</h4><ul><li>Fix: PhoneParser больше не склеивает цифры из соседних полей при flatten через `\\n` / `\\t`.</li><li>Fix: Flamingo `_from_email` используется как `your-email` только если содержит `@`; `_from_name` больше не маппится.</li><li>New: `FieldDetector` — fallback-поиск имени и e-mail по значению, когда на форме нестандартные ключи полей (`text-211`, `name_user` и т.п.).</li><li>UX: Dashboard-виджет «CF7 Spam → Telegram» отображается всегда (статус очереди), а не только при ошибках.</li><li>UX: В ретроспективной выгрузке по умолчанию `0` дней (без ограничения по дате).</li></ul><h4>1.0.3</h4><ul><li>Fix: Убрана `tel:`-кнопка в inline_keyboard (Telegram Bot API отклонял `tel:` URL с HTTP 400).</li><li>Fix: HTTP 4xx ответы Telegram (кроме 429 rate-limit) теперь классифицируются как permanent — записи сразу помечаются failed, без 5 бесполезных retry.</li><li>Fix: `FlamingoHelper::extract_fields` берёт значения из `_field_*` мета, а не из пустого `_fields`-массива.</li></ul><h4>1.0.2</h4><ul><li>Fix: Activator регистрирует `cron_schedules` фильтр до `wp_schedule_event` — без этого кастомный интервал `cf7stg_every_minute` не существовал в момент активации и cron никогда не срабатывал.</li><li>Fix: Autoloader корректно маппит классы с `_` (например, `Settings_Page`, `Interface_Spam_Source`) в файлы с дефисами.</li><li>Fix: Поправлен неверный Punycode-пример в документации.</li><li>Fix: Honeypot теперь hard override → label=spam (weighted -5 был недостаточен для перевеса положительных сигналов).</li></ul><h4>1.0.0</h4><ul><li>Первый релиз.</li></ul>"
|
||
}
|
||
}
|