Um cliente Node.js de engenharia reversa para o POE do Quora.
Suporte: busque informações necessárias e escreva no arquivo .env | Envie mensagens para BOT diferente | Configurar proxies | Clear/Excluir/purgar mensagens | Obtenha mensagens históricas | Obtenha informações de bot | Obtenha os próximos dados
Ainda estou trabalhando nisso, então pode não ser estável. Se você tiver algum problema, crie um problema.
npm install poe-node-apiexigência:
- nó> = 18
- .ENV: Para armazenar parâmetros necessários como
poe-formkey/cookie/buildId/ Botid .....
Obtenha cookie de poe.com: f12/inspecionar, aplicação> cookies> https://poe.com> pb
Crie o arquivo .env no seu caminho ROOT PATH e adicione cookie ao arquivo .env
cookie = p-b=xxxxxxxxxxxxxxxxxxxxxxxxxxx const client = new PoeClient ( { logLevel : 'debug' } ) ;
await client . init ( )
// If no poe-formkey and buildId in .env file, client will download needed params, next time will not need to fetch these params again until cookie is changed/logout(For now).Como criar um cliente:
import { PoeClient } from "poe-node-api" ;
const client = new PoeClient ( { logLevel : 'debug' } ) ;Como iniciar o cliente
await client . init ( )buildId / poe-formkey e os substituirá no arquivo '.env' local.Para evitar conflitos, ao usar a conta múltipla, você deve definir
rewriteToLocalEnvFilepara false
Apelidos de bot
BotnickName <==> botdisplayName
- A2 <==> Claude-Instant
- A2_2 <==> Claude+
- Beaver <==> GPT-4
- Capybara <==> sálvia
- Nutria <==> Dragonfly
- Chinchilla <==> chatgpt
- hutia <==> neevaai
- Seu próprio bot
/**
* send message to bot
* @param text user input
* @param botNickName bot nick name, like capybara(Sage) / a2(Claude-instant) / a2_2(Claude+) etc.
* @param withChatBreak Add a chat break or not. (Empty context)
* @param callback When ws on message, will invoke this callback function.
*/
await client . sendMessage ( text , botNickName , withChatBreak , ( result : string ) => { console . log ( ` ${ result } ` ) } )texto: string
BotnickName: String
WithChatbreak: booleano
retorno de chamada: (resultado: string) => void
AVISO : Muitos pedidos em um minuto resultarão em uma conta (gratuita) sendo bloqueada !!!!!
Eu enviei cerca de 20 mensagens em um minuto e agora está bloqueada. O login falhou com a mensagem de erro:
Something went wrong. Please wait a moment and try again.Então, certifique -se de saber o que está fazendo ~
const res = await client . addChatBreak ( botNickName ) ; const res = await client . deleteMessage ( messageIds ) ; const res = await client . purgeAllMessage ( ) ;Exclua todas as mensagens de bot, é igual a clicar em Poe.com> Configurações> Exclua todas as mensagens
const history = await client . getHistory ( botNickName , count ) ; const history = await client . getBotByNickName ( botNickName , retryCount , retryIntervalMs ) ; const history = await client . getNextData ( ) ;Pode obter
latest messagespoe-formkey/buildId/ mais recentes (como as mais recentes 5 mensagens) estartCursor(use o startcursor para buscar mensagens históricas) /availableBots/x-forwarded-for/ ......
await client . updateAllBotInfo ( )Esta função buscará as informações de Poe-Formkey, BuildID, mais recentes, StartCursor e All Bots (ChatID / ID, esses dois parâmetros serão usados).
Esta função definirá
poe-formkey/cookie/buildId/${botDisplayName}_chatIde${botDisplayName}_idpara .env (esses parâmetros são os mesmos que os cookies e não precisam ser solicitados a cada vez).Da próxima vez que você enviar uma msg para qualquer bot, não precisará buscar informações de bot novamente, o cliente obterá parâmetros necessários como
buildIddo arquivo .env local.
Exemplo - sendMessage.ts
Exemplo - sendMessage.ts
Exemplo - proxy.ts
Exemplo - History.ts
Exemplo - FetchAllNeededInfo.ts
Mit