Sobre o projeto
PanSou é um serviço de API de busca de recursos em drives de rede de alto desempenho escrito em Go, cujo objetivo principal é fornecer um backend de busca auto-hospedável para recuperação de recursos em drives de rede. Ele suporta simultaneamente busca em canais do Telegram e busca por plugins personalizados, tendo como principais direções de design a execução concorrente, a ordenação de resultados e a classificação por tipo de drive.
Principais capacidades
- Busca concorrente: executa simultaneamente múltiplos canais do TG e buscas por plugins assíncronos, gerenciando tarefas concorrentes por meio de um pool de trabalhadores para reduzir o tempo total de resposta.
- Classificação por tipo de drive: identifica automaticamente o drive ao qual o link pertence e classifica por tipo, com suporte a Baidu Netdisk, Aliyun Drive, Quark Drive, Guangya Cloud Drive, Tianyi Cloud Drive, UC Drive, China Mobile Cloud Drive, 115, PikPak, Xunlei, 123 Pan, links magnéticos, links eDonkey e outros tipos.
- Ordenação inteligente: ordenação multidimensional abrangente baseada no nível do plugin, na atualidade temporal e em palavras-chave prioritárias.
- Sistema de plugins assíncronos: os plugins podem retornar rapidamente resultados parciais e continuar processando em segundo plano, aliviando o problema de resposta lenta de algumas fontes de busca; os plugins precisam ser explicitamente habilitados por meio de ENABLED_PLUGINS.
- Cache de dois níveis: cache fragmentado em memória e em disco, melhorando a velocidade de consultas repetidas e o desempenho concorrente; TTL do cache, tamanho, número de fragmentos e outros parâmetros são configuráveis.
- Autenticação opcional: desativada por padrão; quando ativada, todas as interfaces, exceto login e verificação de saúde, exigem um JWT Token, com suporte à configuração de múltiplas contas de usuário e definição do período de validade do Token.
Visão geral das interfaces
- POST/GET /api/search: busca por palavra-chave, podendo especificar canais, plugins, número de concorrência, fonte de dados (TG/plugins/todos), tipo de drive, se deve forçar atualização, além de filtros de palavras-chave include/exclude; retorna resultados brutos e resultados mesclados por tipo de drive.
- POST /api/check/links: verifica em lote se os links de compartilhamento de drives são válidos, com status incluindo ok, bad, locked, unsupported, uncertain, com suporte a proxy por requisição e cache dos resultados de verificação.
- POST /api/auth/login, /api/auth/verify, /api/auth/logout: interfaces relacionadas à autenticação.
- GET /api/health: verificação de saúde, retornando o status do serviço, o estado da autenticação, os plugins habilitados e a lista de canais.
Métodos de implantação
São fornecidas duas imagens Docker: uma versão integrada front-end e back-end e uma versão de API somente back-end, podendo ser iniciadas com um clique usando docker run ou docker-compose; também há suporte à compilação a partir do código-fonte, exigindo Go 1.18+, com proxy SOCKS5/HTTP opcional para acessar sites do Telegram em regiões restritas. O README também fornece referências de configuração para supervisor e nginx (incluindo limitação de taxa e HTTPS).
O projeto adota a licença MIT, e o README declara que é destinado apenas a estudo e pesquisa, não devendo ser usado para fins lucrativos.
Comments
0 people shared their preference · Deer Point appears after 10 participants
Sign in to join the discussion.