Паспорт проекта
- Тип
- Технические модули
- Задача
- Сократить ожидание многоканального поиска и объединить ресурсы разрозненных источников в одном ответе.
- Для кого
- Разработчики интерфейсов к поисковому API и разработчики подключаемых источников; самостоятельные операторы агрегатора.
- Технологии
- Go / Docker / API
- Что потребуется
- Доступ к нужным внешним источникам, конфигурация включённых плагинов и для отдельных источников авторизованная сессия.
- Основание
- 15 первоисточников
За 30 секунд
Сократить ожидание многоканального поиска и объединить ресурсы разрозненных источников в одном ответе.
Параллельно опрашивает источники, извлекает ссылки, удаляет дубликаты, ранжирует и возвращает результаты. Отдельный endpoint проверяет доступность заданных ссылок и может вернуть неопределённый результат.
Результаты с идентификатором, каналом/источником, датой, заголовком, содержимым и массивом ссылок; сгруппированные ссылки и статусы проверки ok/bad/locked/unsupported/uncertain.
Как это работает
На входе
Поисковая строка kw и список каналов; для проверки ссылок — адрес и при необходимости код извлечения. Некоторые плагины используют пользовательские сессии.
Механизм
Параллельно опрашивает источники, извлекает ссылки, удаляет дубликаты, ранжирует и возвращает результаты. Отдельный endpoint проверяет доступность заданных ссылок и может вернуть неопределённый результат.
Результат
Результаты с идентификатором, каналом/источником, датой, заголовком, содержимым и массивом ссылок; сгруппированные ссылки и статусы проверки ok/bad/locked/unsupported/uncertain.
Что важно понять
Техническое устройство
Go/Gin и асинхронные плагины сочетаются с разделённым кэшем памяти/диска. Исправление от 26 сентября описывает 4-секундное синхронное окно и вычисляемый по волнам deadline до PLUGIN_TIMEOUT=10s. Дедупликация основана на UniqueID, один из ведущих факторов ранжирования — класс плагина.
Для чего создано
Сократить ожидание многоканального поиска и объединить ресурсы разрозненных источников в одном ответе.
Для кого
Разработчики интерфейсов к поисковому API и разработчики подключаемых источников; самостоятельные операторы агрегатора.
Сценарии использования
Единый запрос по Telegram и плагинам, агрегация ссылок разных авторов, группировка по хранилищам и проверка видимых ссылок в интерфейсе.
Идея решения
Быстро отдать доступную часть результатов, продолжить медленные источники в фоне и обновить кеш для последующих запросов; отделить расширяемые источники от общей сортировки и API.
Какую задачу описывает источник
Синхронный поиск замедляется из-за отдельных источников; в описанном исправлении слишком малый conc раньше не давал большинству задач завершиться вовремя.
Что известно из описания
Что потребуется
- Доступ к нужным внешним источникам, конфигурация включённых плагинов и для отдельных источников авторизованная сессия.
- Доступны Docker frontend+backend и API-only.
- README пишет Go 1.18+, но более поздняя датированная спецификация сообщает go.mod/Dockerfile Go 1.25.0; требование нужно уточнять по выбранному snapshot кода.
Что учитывать
- Авторизация API по умолчанию выключена.
- QQ и Weibo плагины прямо описывают открытое хранение Cookie.
- Ссылки могут быть недоступны, требовать пароль или давать uncertain; отдельные сайты требуют логин и ограничивают поиск одной страницей.
- В описании запрещено использование для прибыли, тогда как README заявляет MIT; это расхождение оставлено нерешённым.
Из первоисточников
Редакционный обзор NeoBridge Insight по материалам источников ниже. Права на исходные тексты, код и изображения принадлежат их правообладателям. Условия использования указаны в первоисточниках.
Независимое тестирование проекта не проводилось.
github.com
- fish2018/pansou↗
- README.md↗
- docs/AI客户端使用PanSou插件开发Skill指南.md↗
- docs/pansou-plugin-developer-SKILL.md↗
- docs/插件开发指南.md↗
- docs/系统开发设计文档.md↗
- plugin/488run/README.md↗
- plugin/buerchen/README.md↗
- plugin/erxiaopan/README.md↗
- plugin/gying/README.md↗
- plugin/hjzhencai/README.md↗
- plugin/pan365/README.md↗
- plugin/qqpd/README.md↗
- plugin/weibo/README.md↗
- plugin/woniu/README.md↗

Комментарий NeoBridge
Общая справка
Что стоит уточнить
Основания и справочные материалы
API ↗Контейнер ↗