Клиент обратного инженерного Node.js для Quora's POE.
Поддержка: Fetch - информация и написать в файл .env | отправлять сообщения другому боту | Настройка прокси | CLEAR/DELETE/PURGE MASTIONS | Получить исторические сообщения | Получить информацию о боте | Получить следующие данные
Я все еще работаю над этим, так что это может не стабильно. Если вы встретите какие -либо проблемы, пожалуйста, создайте проблему.
npm install poe-node-apiТребование:
- Узел> = 18
- .env: хранить необходимые параметры, такие как
poe-formkey/cookie/buildId/ botid .....
Получить cookie от poe.com: f12/vescept, application> cookie> https://poe.com> pb
Создайте .ENV -файл в корневом пути вашего проекта и добавьте файл cookie в .env file
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).Как создать клиента:
import { PoeClient } from "poe-node-api" ;
const client = new PoeClient ( { logLevel : 'debug' } ) ;Как инициировать клиент
await client . init ( )buildId / poe-formkey и перезаписать его в локальном файле .ENV.Чтобы предотвратить конфликты, при использовании мульти-аккунтирования вы должны установить
rewriteToLocalEnvFileв false
Прозвище бота
BotnickName <==> botdisplayName
- a2 <==> claude-instant
- a2_2 <==> claude+
- Beaver <==> GPT-4
- Капибара <==> Мудрец
- Nutria <==> Dragonfly
- Chinchilla <==> Chatgpt
- Hutia <==> neevaai
- Ваш собственный бот
/**
* 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 } ` ) } )Текст: строка
BotnickName: String
Witchatbreak: логический
обратный вызов: (результат: String) => void
Предупреждение : Слишком много запросов в течение одной минуты приведет к заблокированию (бесплатной) учетной записи !!!!!
Я отправил около 20 сообщений за одну минуту, и теперь оно заблокировано. Вход не удался с сообщением об ошибке:
Something went wrong. Please wait a moment and try again.Так что убедитесь, что вы знаете, что делаете ~
const res = await client . addChatBreak ( botNickName ) ; const res = await client . deleteMessage ( messageIds ) ; const res = await client . purgeAllMessage ( ) ;Удалить все сообщения бота, равные, чтобы нажать poe.com> Настройки> Удалить все сообщения
const history = await client . getHistory ( botNickName , count ) ; const history = await client . getBotByNickName ( botNickName , retryCount , retryIntervalMs ) ; const history = await client . getNextData ( ) ;Может получить
poe-formkey/buildId/latest messages(например, последние 5 сообщений) иstartCursor(используйте StartCursor для получения сообщений истории) /availableBots/x-forwarded-for/ ......
await client . updateAllBotInfo ( )Эта функция принесет Poe-Formkey, BuildID, последние сообщения, Startcursor и All Bots Info (ChatID / ID, эти два параметра будут использоваться).
Эта функция установит
poe-formkey/cookie/buildId/${botDisplayName}_chatIdи${botDisplayName}_idв .В следующий раз, когда вы отправите MSG любому боту, не нужно будет снова получать информацию о боте, клиент получит необходимые параметры, такие как
buildIdиз локального файла .ENV.
Пример - sendmessage.ts
Пример - sendmessage.ts
Пример - proxy.ts
Пример - ИСТОРИЯ.ts
Пример - fetchallneededinfo.ts
Грань