Coder Social home page Coder Social logo

Comments (63)

Jxells avatar Jxells commented on June 26, 2024 9

image

from poe-api.

doevent avatar doevent commented on June 26, 2024 3

same

from poe-api.

shayneoneill avatar shayneoneill commented on June 26, 2024 3

Yo Poe people, if your reading this, give us an official API and people wont have to sneak through the side window!

Theres money to be made in this.

from poe-api.

Jxells avatar Jxells commented on June 26, 2024 2

There is no way to generate a new token because none of the official websites can be logged in. No custom bots are used

from poe-api.

alfiae avatar alfiae commented on June 26, 2024 2

all of my 3 accounts banned...

i've gone through 5 accounts :(

from poe-api.

kokubunji avatar kokubunji commented on June 26, 2024 2

I just got an account banned not using this API while experimenting with an idea to see how well ChatGPT could use a fictional API, so I think they're using some sort of classifier to detect activity they don't like. Which is a shame. I was going to become a subscriber. They should offer a paid service and let people use it how they like.

from poe-api.

abhiprojectz avatar abhiprojectz commented on June 26, 2024 2

@juzeon Its because the Poe added a custom security layer and even if you use free VPN nothing going to happen, you may go for paid VPNs too but again you will eventually gets banned after few requests.

This is a major issue to overcome, just use the browser (No selenium or headless, gets detected) and you are good to go even with some tuning and you may send unlimited requests no need to use any random timeout.

I am using single SingularGPT in cloud and that's just works fine.

If anyone interested, i may put up the preset used.

from poe-api.

acheong08 avatar acheong08 commented on June 26, 2024 2

Regarding @xtekky's attempt at tls spoofing, it probably failed because

  1. TLS fingerprints of >= Chrome/Firefox 110 can be detected from tls spoofing libraries. Lower versions are probably better
  2. There is no way to spoof tls for websockets in Python. I doubt he wrote a custom library for that.

If even that doesn't fix detection, perhaps it's behavioral. I'm testing if I get banned right now by running it in a loop.

from poe-api.

abhiprojectz avatar abhiprojectz commented on June 26, 2024 2

Hey guys, i am creating a fully automated version for Poe, It will be undetectable and fast.

It can bypass any Cloudflare or even CAPTCHA's protected site.

Till know i can't find any opensource alternative for both Cloudflare & captcha's...

If anyone want it then leave a reply so i can know how many are interested for it.

from poe-api.

acheong08 avatar acheong08 commented on June 26, 2024 2

No ban on my end yet after using tls spoofing and other fingerprints

from poe-api.

TheLime1 avatar TheLime1 commented on June 26, 2024 1

@kwekewk nope , even after deleting it stay there , deleted

from poe-api.

DanielShemesh avatar DanielShemesh commented on June 26, 2024 1

There might also be some kind of rate limit that helps their detection

from poe-api.

dm-vev avatar dm-vev commented on June 26, 2024 1

if you send a lot of requests to bots, you can get banned. I personally do not have very many requests per minute and the account worked until I had to process more than 20 requests per minute. this led to an instant ban on my account

from poe-api.

doevent avatar doevent commented on June 26, 2024 1

Set limits:
Message counter per minute
Message counter per hour

from poe-api.

doevent avatar doevent commented on June 26, 2024 1

A week without a ban with a random delay between requests

from random import randrange

timer = randrange(100, 120)
time.sleep(timer)

from poe-api.

juzeon avatar juzeon commented on June 26, 2024 1

Poe seems to be requiring the clientNonce variable when submitting messages, and I currently don't know how it is generated. Maybe it has something to do with reCAPTCHA?

image

I've investigated into it before. This is just a random string. Here's the related code:

89569: function (e, a, n) {
    'use strict';
    n.d(a, {
      _: function () {
        return l
      },
      z: function () {
        return t
      }
    });
    let t = e=>{
      let a = '',
      n = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789',
      t = 0;
      for (; t < e; ) a += n.charAt(Math.floor(Math.random() * n.length)),
      t += 1;
      return a
    },
    l = () =>t(32)
  },

This comes from https://poe.com/_next/static/chunks/6049-569b4d62938e254f.js. I'm not sure if this url will change every time they re-compile the web app.

from poe-api.

TheLime1 avatar TheLime1 commented on June 26, 2024

still works for me
Code_MM65TNFfTx

from poe-api.

Jxells avatar Jxells commented on June 26, 2024

23/5000
After more than one session, an error was reported and I could not log in through the browser
image

from poe-api.

TheLime1 avatar TheLime1 commented on June 26, 2024

@Jxells tried regen a new token ?
and are you using a custom bot ?

from poe-api.

TheLime1 avatar TheLime1 commented on June 26, 2024

it work for me , i think you got ip blacklisted ??

image

from poe-api.

ading2210 avatar ading2210 commented on June 26, 2024

Does it work fine if you use a different IP through a VPN?

from poe-api.

Jxells avatar Jxells commented on June 26, 2024

Does it work fine if you use a different IP through a VPN?

I have tried to switch to other ip or vpn, but the problem has not been solved

from poe-api.

ball2004244 avatar ball2004244 commented on June 26, 2024

I have the same problems

from poe-api.

de-joit avatar de-joit commented on June 26, 2024

Same problem, cleaned cookies in browser, used vpn, incognito mode. Nothing. Guess got banned

from poe-api.

ading2210 avatar ading2210 commented on June 26, 2024

Same problem, cleaned cookies in browser, used vpn, incognito mode. Nothing. Guess got banned
@de-joit

Have you tried using a different browser and OS? Perhaps they're using browser fingerprinting in order to try and stop the creation of extra accounts?

from poe-api.

doevent avatar doevent commented on June 26, 2024

Have you tried using a different browser and OS? Perhaps they're using browser fingerprinting in order to try and stop the creation of extra accounts?

A new account is created, but it gets banned after a few hours.

from poe-api.

Jxells avatar Jxells commented on June 26, 2024

您是否尝试过使用不同的浏览器和操作系统?也许他们正在使用浏览器指纹识别来尝试阻止额外帐户的创建?

创建了一个新帐户,但几个小时后就被禁止了。
Me too.

from poe-api.

ading2210 avatar ading2210 commented on June 26, 2024

Version 0.3.1 adds the ability to set more custom headers, which should reduce the chances of the library being detected.

from poe-api.

kwekewk avatar kwekewk commented on June 26, 2024

it work for me , i think you got ip blacklisted ??

image

Sorry for oot, can you delete that bot from ur list?

from poe-api.

Jxells avatar Jxells commented on June 26, 2024

Version 0.3.1 adds the ability to set more custom headers, which should reduce the chances of the library being detected.

The account will still be banned

from poe-api.

aloasut avatar aloasut commented on June 26, 2024

今天升级了一下使用,30分钟以后号给ban了。

from poe-api.

xtekky avatar xtekky commented on June 26, 2024

@ading2210 they are logging something, have used tls / proxy, full params and sig, throttling and they seem to detect somehow

from poe-api.

sxdden avatar sxdden commented on June 26, 2024

same problem here, account gets banned within maybe 2 minutes.. cant even create a new account now. tried a different os, proxy, different browser, and a lot more... idk if its related to this issue though lol

from poe-api.

cande1gut avatar cande1gut commented on June 26, 2024

I think is a combination of both, rate and browser. I just hit the same problem with 2 different accounts (one through VPN tho).

from poe-api.

swarfte avatar swarfte commented on June 26, 2024

It look like the Poe have some method to detect which account used this library

from poe-api.

Barbery avatar Barbery commented on June 26, 2024

same

from poe-api.

dm-vev avatar dm-vev commented on June 26, 2024

all of my 3 accounts banned...

:(

from poe-api.

doevent avatar doevent commented on June 26, 2024

all of my 3 accounts banned...

:(

Use a wait of 120 seconds between requests

from poe-api.

mnwato avatar mnwato commented on June 26, 2024

same

from poe-api.

mnwato avatar mnwato commented on June 26, 2024

This is a huge delay. with this situation I think selenium could do better

from poe-api.

ading2210 avatar ading2210 commented on June 26, 2024

Poe seems to be requiring the clientNonce variable when submitting messages, and I currently don't know how it is generated. Maybe it has something to do with reCAPTCHA?

image

from poe-api.

abhiprojectz avatar abhiprojectz commented on June 26, 2024

@swarfte

it look like the Poe have some method to detect which account used this library

No, they just detects whether the request is made from a browser or not ? They uses a cloudflare based checklist cookie/token to detect, at few requests.

That's why this gets blocked , even the FreeGPT4 project by **@xtekky ** also not working.

Just simply automate it using SingularGPT , the easiest and safest mode.

from poe-api.

hansfzlorenzana avatar hansfzlorenzana commented on June 26, 2024

I tried adding delay per request but I still got banned. Any other fix?

from poe-api.

abhiprojectz avatar abhiprojectz commented on June 26, 2024

@hansfzlorenzana I mentioned , Automate browser and everything will work fine. You may write your custom automation scripts but that will consume time and often errors.

Instead SingularGPT automates quickly.

from poe-api.

acheong08 avatar acheong08 commented on June 26, 2024

Regarding the bans, have you guys tried tls spoofing?

from poe-api.

acheong08 avatar acheong08 commented on June 26, 2024

TLS fingerprints are a reliable way to find bots based on whether they use a browser or from code. This happened with ChatGPT a while back

from poe-api.

ading2210 avatar ading2210 commented on June 26, 2024

Regarding the bans, have you guys tried tls spoofing?
@acheong08

I actually haven't tried that, altho @xtekky has and apparently it didn't work.

from poe-api.

ading2210 avatar ading2210 commented on June 26, 2024

An alternative would be to rewrite this to use Selenium + a web browser, but that introduces a LOT of overhead which I'd prefer not tho have.

from poe-api.

abhiprojectz avatar abhiprojectz commented on June 26, 2024

@ading2210 Poe basically can detect request from selenium browser session , and you will get banned.

That's why i suggested to automate the browser itself, above there,

Automate browser and everything will work fine. You may write your custom automation scripts but that will consume time and often errors.
Instead SingularGPT automates quickly.

You could do this easily with SingularGPT - For anyone curious its a GPT based project to automate device via GPT. with just a text query as :

Prompt: Send query as "Hello chatgpt" and wait for the response, then check if there is some message below the queried text, Your task is to get the text element under it, for that double right click mouse , then select text Inspect element. Press keys ctrl + c , then close press keys Ctrl + Shift + I.

Just put it under a function with a command, Load preset "chrome/GPT".

from poe-api.

acheong08 avatar acheong08 commented on June 26, 2024

@abhiprojectz That is way slower and not exact the point of this library.

If it can indeed detect selenium, an easier way is to write a browser extension that plugs into an actual browser. (e.g. https://github.com/acheong08/ChatGPT-API-agent for ChatGPT)

But even that is probably unnecessary. Check out https://github.com/ultrafunkamsterdam/undetected-chromedriver

from poe-api.

acheong08 avatar acheong08 commented on June 26, 2024

sdid looks somewhat interesting

from poe-api.

acheong08 avatar acheong08 commented on June 26, 2024

It's in local storage and I have no idea what assigned it

from poe-api.

acheong08 avatar acheong08 commented on June 26, 2024

It stands for global_singular_id

from poe-api.

acheong08 avatar acheong08 commented on June 26, 2024

It seems to be persistent even if I delete it from local/session storage

from poe-api.

acheong08 avatar acheong08 commented on June 26, 2024
"use strict";
(self.webpackChunk_N_E = self.webpackChunk_N_E || []).push([[271], {
    88049: function(e, a, n) {
        n.r(a);
        let t = {
            argumentDefinitions: [],
            kind: "Fragment",
            metadata: null,
            name: "botHelpers_useDeletion_bot",
            selections: [{
                alias: null,
                args: null,
                kind: "ScalarField",
                name: "deletionState",
                storageKey: null
            }],
            type: "Bot",
            abstractKey: null
        };
        t.hash = "9055843994f978f06f4287ddd47770eb",
        a.default = t
    },
    96207: function(e, a, n) {
        n.r(a);
        let t = {
            argumentDefinitions: [],
            kind: "Fragment",
            metadata: null,
            name: "botHelpers_useViewerCanAccessPrivateBot",
            selections: [{
                alias: null,
                args: null,
                kind: "ScalarField",
                name: "isPrivateBot",
                storageKey: null
            }, {
                alias: null,
                args: null,
                kind: "ScalarField",
                name: "viewerIsCreator",
                storageKey: null
            }, {
                alias: null,
                args: null,
                kind: "ScalarField",
                name: "isSystemBot",
                storageKey: null
            }],
            type: "Bot",
            abstractKey: null
        };
        t.hash = "8f7a2f4f0e5fc28e63f634c8488c3372",
        a.default = t
    },
    3594: function(e, a, n) {
        var t, l, i, s, r, u, o, d, c;
        n.r(a);
        let g = (t = {
            defaultValue: null,
            kind: "LocalArgument",
            name: "chatId"
        },
        l = {
            defaultValue: null,
            kind: "LocalArgument",
            name: "connections"
        },
        i = [{
            kind: "Variable",
            name: "chatId",
            variableName: "chatId"
        }],
        o = [s = {
            alias: null,
            args: null,
            kind: "ScalarField",
            name: "cursor",
            storageKey: null
        }, u = {
            alias: null,
            args: null,
            concreteType: "Message",
            kind: "LinkedField",
            name: "node",
            plural: !1,
            selections: [r = {
                alias: null,
                args: null,
                kind: "ScalarField",
                name: "id",
                storageKey: null
            }, {
                alias: null,
                args: null,
                kind: "ScalarField",
                name: "messageId",
                storageKey: null
            }, {
                alias: null,
                args: null,
                kind: "ScalarField",
                name: "text",
                storageKey: null
            }, {
                alias: null,
                args: null,
                kind: "ScalarField",
                name: "author",
                storageKey: null
            }, {
                alias: null,
                args: null,
                kind: "ScalarField",
                name: "suggestedReplies",
                storageKey: null
            }, {
                alias: null,
                args: null,
                kind: "ScalarField",
                name: "creationTime",
                storageKey: null
            }, {
                alias: null,
                args: null,
                kind: "ScalarField",
                name: "state",
                storageKey: null
            }],
            storageKey: null
        }],
        c = [{
            kind: "Variable",
            name: "connections",
            variableName: "connections"
        }],
        {
            fragment: {
                argumentDefinitions: [t, l],
                kind: "Fragment",
                metadata: null,
                name: "chatHelpers_addMessageBreakEdgeMutation_Mutation",
                selections: [{
                    alias: null,
                    args: i,
                    concreteType: "MessageBreakEdgeCreate",
                    kind: "LinkedField",
                    name: "messageBreakEdgeCreate",
                    plural: !1,
                    selections: [{
                        alias: null,
                        args: null,
                        concreteType: "MessageEdge",
                        kind: "LinkedField",
                        name: "message",
                        plural: !1,
                        selections: o,
                        storageKey: null
                    }, {
                        alias: null,
                        args: null,
                        concreteType: "MessageEdge",
                        kind: "LinkedField",
                        name: "introductionMessage",
                        plural: !1,
                        selections: o,
                        storageKey: null
                    }],
                    storageKey: null
                }],
                type: "MutationRoot",
                abstractKey: null
            },
            kind: "Request",
            operation: {
                argumentDefinitions: [l, t],
                kind: "Operation",
                name: "chatHelpers_addMessageBreakEdgeMutation_Mutation",
                selections: [{
                    alias: null,
                    args: i,
                    concreteType: "MessageBreakEdgeCreate",
                    kind: "LinkedField",
                    name: "messageBreakEdgeCreate",
                    plural: !1,
                    selections: [{
                        alias: null,
                        args: null,
                        concreteType: "MessageEdge",
                        kind: "LinkedField",
                        name: "message",
                        plural: !1,
                        selections: d = [s, u, r],
                        storageKey: null
                    }, {
                        alias: null,
                        args: null,
                        filters: null,
                        handle: "appendEdge",
                        key: "",
                        kind: "LinkedHandle",
                        name: "message",
                        handleArgs: c
                    }, {
                        alias: null,
                        args: null,
                        concreteType: "MessageEdge",
                        kind: "LinkedField",
                        name: "introductionMessage",
                        plural: !1,
                        selections: d,
                        storageKey: null
                    }, {
                        alias: null,
                        args: null,
                        filters: null,
                        handle: "appendEdge",
                        key: "",
                        kind: "LinkedHandle",
                        name: "introductionMessage",
                        handleArgs: c
                    }],
                    storageKey: null
                }]
            },
            params: {
                cacheID: "91fce80345480805e7a6837527ed0fd4",
                id: null,
                metadata: {},
                name: "chatHelpers_addMessageBreakEdgeMutation_Mutation",
                operationKind: "mutation",
                text: "mutation chatHelpers_addMessageBreakEdgeMutation_Mutation(\n  $chatId: BigInt!\n) {\n  messageBreakEdgeCreate(chatId: $chatId) {\n    message {\n      cursor\n      node {\n        id\n        messageId\n        text\n        author\n        suggestedReplies\n        creationTime\n        state\n      }\n      id\n    }\n    introductionMessage {\n      cursor\n      node {\n        id\n        messageId\n        text\n        author\n        suggestedReplies\n        creationTime\n        state\n      }\n      id\n    }\n  }\n}\n"
            }
        });
        g.hash = "27417cb8b58d08f9df0071896e4509d9",
        a.default = g
    },
    91337: function(e, a, n) {
        n.r(a);
        let t = {
            kind: "InlineDataFragment",
            name: "chatHelpers_isBotMessage"
        };
        t.hash = "64b43a660c617c778ba7c985fb940384",
        a.default = t
    },
    26973: function(e, a, n) {
        n.r(a);
        let t = {
            kind: "InlineDataFragment",
            name: "chatHelpers_isChatBreak"
        };
        t.hash = "1a0d732e0f7f02a776909413142e4052",
        a.default = t
    },
    14008: function(e, a, n) {
        n.r(a);
        let t = {
            kind: "InlineDataFragment",
            name: "chatHelpers_isHumanMessage"
        };
        t.hash = "8e00e818ac5576af67c698210e1bce47",
        a.default = t
    },
    4915: function(e, a, n) {
        var t, l, i, s, r, u, o, d, c, g, m, k, h, f, p, y, b, _, F, C, S, K;
        n.r(a);
        let v = (F = {
            alias: null,
            args: null,
            kind: "ScalarField",
            name: "clientNonce",
            storageKey: null
        },
        C = {
            alias: null,
            args: null,
            kind: "ScalarField",
            name: "contentType",
            storageKey: null
        },
        S = {
            alias: null,
            args: null,
            kind: "ScalarField",
            name: "shouldShowDisclaimer",
            storageKey: null
        },
        K = {
            alias: null,
            args: null,
            kind: "ScalarField",
            name: "status",
            storageKey: null
        },
        {
            fragment: {
                argumentDefinitions: [t = {
                    defaultValue: null,
                    kind: "LocalArgument",
                    name: "bot"
                }, l = {
                    defaultValue: null,
                    kind: "LocalArgument",
                    name: "chatId"
                }, i = {
                    defaultValue: null,
                    kind: "LocalArgument",
                    name: "clientNonce"
                }, s = {
                    defaultValue: null,
                    kind: "LocalArgument",
                    name: "query"
                }, r = {
                    defaultValue: null,
                    kind: "LocalArgument",
                    name: "sdid"
                }, u = {
                    defaultValue: null,
                    kind: "LocalArgument",
                    name: "source"
                }, o = {
                    defaultValue: null,
                    kind: "LocalArgument",
                    name: "withChatBreak"
                }],
                kind: "Fragment",
                metadata: null,
                name: "chatHelpers_sendMessageMutation_Mutation",
                selections: [{
                    alias: null,
                    args: d = [{
                        kind: "Variable",
                        name: "bot",
                        variableName: "bot"
                    }, {
                        kind: "Variable",
                        name: "chatId",
                        variableName: "chatId"
                    }, {
                        kind: "Variable",
                        name: "clientNonce",
                        variableName: "clientNonce"
                    }, {
                        kind: "Variable",
                        name: "query",
                        variableName: "query"
                    }, {
                        kind: "Variable",
                        name: "sdid",
                        variableName: "sdid"
                    }, {
                        kind: "Variable",
                        name: "source",
                        variableName: "source"
                    }, {
                        kind: "Variable",
                        name: "withChatBreak",
                        variableName: "withChatBreak"
                    }],
                    concreteType: "MessageEdgeCreate",
                    kind: "LinkedField",
                    name: "messageEdgeCreate",
                    plural: !1,
                    selections: [{
                        alias: null,
                        args: null,
                        concreteType: "MessageEdge",
                        kind: "LinkedField",
                        name: "chatBreak",
                        plural: !1,
                        selections: [c = {
                            alias: null,
                            args: null,
                            kind: "ScalarField",
                            name: "cursor",
                            storageKey: null
                        }, _ = {
                            alias: null,
                            args: null,
                            concreteType: "Message",
                            kind: "LinkedField",
                            name: "node",
                            plural: !1,
                            selections: [g = {
                                alias: null,
                                args: null,
                                kind: "ScalarField",
                                name: "id",
                                storageKey: null
                            }, m = {
                                alias: null,
                                args: null,
                                kind: "ScalarField",
                                name: "messageId",
                                storageKey: null
                            }, k = {
                                alias: null,
                                args: null,
                                kind: "ScalarField",
                                name: "text",
                                storageKey: null
                            }, h = {
                                alias: null,
                                args: null,
                                kind: "ScalarField",
                                name: "author",
                                storageKey: null
                            }, f = {
                                alias: null,
                                args: null,
                                kind: "ScalarField",
                                name: "suggestedReplies",
                                storageKey: null
                            }, p = {
                                alias: null,
                                args: null,
                                kind: "ScalarField",
                                name: "creationTime",
                                storageKey: null
                            }, y = {
                                alias: null,
                                args: null,
                                kind: "ScalarField",
                                name: "state",
                                storageKey: null
                            }, b = {
                                kind: "ClientExtension",
                                selections: [{
                                    alias: null,
                                    args: null,
                                    kind: "ScalarField",
                                    name: "isOptimistic",
                                    storageKey: null
                                }]
                            }],
                            storageKey: null
                        }],
                        storageKey: null
                    }, {
                        alias: null,
                        args: null,
                        concreteType: "MessageEdge",
                        kind: "LinkedField",
                        name: "message",
                        plural: !1,
                        selections: [c, {
                            alias: null,
                            args: null,
                            concreteType: "Message",
                            kind: "LinkedField",
                            name: "node",
                            plural: !1,
                            selections: [g, m, k, h, f, p, y, F, C, {
                                alias: null,
                                args: null,
                                concreteType: "Chat",
                                kind: "LinkedField",
                                name: "chat",
                                plural: !1,
                                selections: [S],
                                storageKey: null
                            }, b],
                            storageKey: null
                        }],
                        storageKey: null
                    }, K],
                    storageKey: null
                }],
                type: "MutationRoot",
                abstractKey: null
            },
            kind: "Request",
            operation: {
                argumentDefinitions: [l, t, s, u, o, i, r],
                kind: "Operation",
                name: "chatHelpers_sendMessageMutation_Mutation",
                selections: [{
                    alias: null,
                    args: d,
                    concreteType: "MessageEdgeCreate",
                    kind: "LinkedField",
                    name: "messageEdgeCreate",
                    plural: !1,
                    selections: [{
                        alias: null,
                        args: null,
                        concreteType: "MessageEdge",
                        kind: "LinkedField",
                        name: "chatBreak",
                        plural: !1,
                        selections: [c, _, g],
                        storageKey: null
                    }, {
                        alias: null,
                        args: null,
                        concreteType: "MessageEdge",
                        kind: "LinkedField",
                        name: "message",
                        plural: !1,
                        selections: [c, {
                            alias: null,
                            args: null,
                            concreteType: "Message",
                            kind: "LinkedField",
                            name: "node",
                            plural: !1,
                            selections: [g, m, k, h, f, p, y, F, C, {
                                alias: null,
                                args: null,
                                concreteType: "Chat",
                                kind: "LinkedField",
                                name: "chat",
                                plural: !1,
                                selections: [S, g],
                                storageKey: null
                            }, b],
                            storageKey: null
                        }, g],
                        storageKey: null
                    }, K],
                    storageKey: null
                }]
            },
            params: {
                cacheID: "409b9ed8f01ff008982a9ab9b5b1bf6d",
                id: null,
                metadata: {},
                name: "chatHelpers_sendMessageMutation_Mutation",
                operationKind: "mutation",
                text: "mutation chatHelpers_sendMessageMutation_Mutation(\n  $chatId: BigInt!\n  $bot: String!\n  $query: String!\n  $source: MessageSource\n  $withChatBreak: Boolean!\n  $clientNonce: String\n  $sdid: String\n) {\n  messageEdgeCreate(chatId: $chatId, bot: $bot, query: $query, source: $source, withChatBreak: $withChatBreak, clientNonce: $clientNonce, sdid: $sdid) {\n    chatBreak {\n      cursor\n      node {\n        id\n        messageId\n        text\n        author\n        suggestedReplies\n        creationTime\n        state\n      }\n      id\n    }\n    message {\n      cursor\n      node {\n        id\n        messageId\n        text\n        author\n        suggestedReplies\n        creationTime\n        state\n        clientNonce\n        contentType\n        chat {\n          shouldShowDisclaimer\n          id\n        }\n      }\n      id\n    }\n    status\n  }\n}\n"
            }
        });
        v.hash = "86b50a0e7f4bbf10e9a883f594ea97de",
        a.default = v
    },
    69666: function(e, a, n) {
        n.r(a);
        let t = {
            argumentDefinitions: [],
            kind: "Fragment",
            metadata: null,
            name: "chatHelpers_useSendChatBreak_chat",
            selections: [{
                alias: null,
                args: null,
                kind: "ScalarField",
                name: "id",
                storageKey: null
            }, {
                alias: null,
                args: null,
                kind: "ScalarField",
                name: "chatId",
                storageKey: null
            }, {
                alias: null,
                args: null,
                concreteType: "Bot",
                kind: "LinkedField",
                name: "defaultBotObject",
                plural: !1,
                selections: [{
                    alias: null,
                    args: null,
                    kind: "ScalarField",
                    name: "nickname",
                    storageKey: null
                }, {
                    alias: null,
                    args: null,
                    kind: "ScalarField",
                    name: "introduction",
                    storageKey: null
                }, {
                    alias: null,
                    args: null,
                    kind: "ScalarField",
                    name: "model",
                    storageKey: null
                }],
                storageKey: null
            }, {
                alias: null,
                args: null,
                kind: "ScalarField",
                name: "shouldShowDisclaimer",
                storageKey: null
            }],
            type: "Chat",
            abstractKey: null
        };
        t.hash = "ff3a629879b9b9a66db0c4525cd8790f",
        a.default = t
    },
    2567: function(e, a, n) {
        var t;
        n.r(a);
        let l = {
            argumentDefinitions: [],
            kind: "Fragment",
            metadata: null,
            name: "chatHelpers_useSendMessage_chat",
            selections: [t = {
                alias: null,
                args: null,
                kind: "ScalarField",
                name: "id",
                storageKey: null
            }, {
                alias: null,
                args: null,
                kind: "ScalarField",
                name: "chatId",
                storageKey: null
            }, {
                alias: null,
                args: null,
                concreteType: "Bot",
                kind: "LinkedField",
                name: "defaultBotObject",
                plural: !1,
                selections: [t, {
                    alias: null,
                    args: null,
                    kind: "ScalarField",
                    name: "nickname",
                    storageKey: null
                }],
                storageKey: null
            }, {
                alias: null,
                args: null,
                kind: "ScalarField",
                name: "shouldShowDisclaimer",
                storageKey: null
            }],
            type: "Chat",
            abstractKey: null
        };
        l.hash = "5a7484bfa4ce31b0f149e270d2f16b81",
        a.default = l
    },
    47629: function(e, a, n) {
        n.r(a);
        let t = {
            argumentDefinitions: [],
            kind: "Fragment",
            metadata: null,
            name: "chatHelpers_useTimeoutLevel",
            selections: [{
                alias: null,
                args: null,
                kind: "ScalarField",
                name: "id",
                storageKey: null
            }, {
                alias: null,
                args: null,
                kind: "ScalarField",
                name: "state",
                storageKey: null
            }, {
                alias: null,
                args: null,
                kind: "ScalarField",
                name: "text",
                storageKey: null
            }, {
                alias: null,
                args: null,
                kind: "ScalarField",
                name: "messageId",
                storageKey: null
            }, {
                alias: null,
                args: null,
                kind: "ScalarField",
                name: "author",
                storageKey: null
            }, {
                kind: "ClientExtension",
                selections: [{
                    alias: null,
                    args: null,
                    kind: "ScalarField",
                    name: "isOptimistic",
                    storageKey: null
                }, {
                    alias: null,
                    args: null,
                    kind: "ScalarField",
                    name: "timeoutLevel",
                    storageKey: null
                }]
            }],
            type: "Message",
            abstractKey: null
        };
        t.hash = "81bf0e2e8cac1eedb8a2fbe0ea6a7c89",
        a.default = t
    },
    68825: function(e, a, n) {
        n.r(a);
        let t = {
            argumentDefinitions: [],
            kind: "Fragment",
            metadata: null,
            name: "chatHelpers_useTimeoutLevel_chat",
            selections: [{
                alias: null,
                args: null,
                kind: "ScalarField",
                name: "chatId",
                storageKey: null
            }, {
                alias: null,
                args: null,
                concreteType: "Bot",
                kind: "LinkedField",
                name: "defaultBotObject",
                plural: !1,
                selections: [{
                    alias: null,
                    args: null,
                    kind: "ScalarField",
                    name: "messageTimeoutSecs",
                    storageKey: null
                }, {
                    alias: null,
                    args: null,
                    kind: "ScalarField",
                    name: "nickname",
                    storageKey: null
                }],
                storageKey: null
            }],
            type: "Chat",
            abstractKey: null
        };
        t.hash = "b098df0dc4693484f29956c746e9f435",
        a.default = t
    },
    83042: function(e, a, n) {
        n.r(a);
        let t = {
            argumentDefinitions: [],
            kind: "Fragment",
            metadata: null,
            name: "chatHelpers_useUpdateStaleChat_chat",
            selections: [{
                alias: null,
                args: null,
                kind: "ScalarField",
                name: "chatId",
                storageKey: null
            }, {
                alias: null,
                args: null,
                concreteType: "Bot",
                kind: "LinkedField",
                name: "defaultBotObject",
                plural: !1,
                selections: [{
                    alias: null,
                    args: null,
                    kind: "ScalarField",
                    name: "contextClearWindowSecs",
                    storageKey: null
                }],
                storageKey: null
            }, {
                args: null,
                kind: "FragmentSpread",
                name: "chatHelpers_useSendChatBreak_chat"
            }],
            type: "Chat",
            abstractKey: null
        };
        t.hash = "902bf2d7792700d2f7049f6c547e9f11",
        a.default = t
    },
    1535: function(e, a, n) {
        n.r(a);
        let t = {
            argumentDefinitions: [],
            kind: "Fragment",
            metadata: null,
            name: "chatHelpers_useUpdateStaleChat_message",
            selections: [{
                alias: null,
                args: null,
                kind: "ScalarField",
                name: "creationTime",
                storageKey: null
            }, {
                kind: "InlineDataFragmentSpread",
                name: "chatHelpers_isChatBreak",
                selections: [{
                    alias: null,
                    args: null,
                    kind: "ScalarField",
                    name: "author",
                    storageKey: null
                }],
                args: null,
                argumentDefinitions: []
            }],
            type: "Message",
            abstractKey: null
        };
        t.hash = "8a3a2e4211abea996a58197c65c98fb2",
        a.default = t
    },
    76604: function(e, a, n) {
        function t(e) {
            let {src: a} = e;
            return a
        }
        n.r(a),
        n.d(a, {
            default: function() {
                return t
            }
        })
    },
    22747: function(e, a, n) {
        n.d(a, {
            As: function() {
                return i
            },
            Fo: function() {
                return r
            },
            iZ: function() {
                return o
            },
            nn: function() {
                return u
            },
            vu: function() {
                return s
            }
        });
        var t = n(22578);
        n(44311);
        var l = n(84890);
        let i = (e,a)=>{
            let n = e.getRoot().getLinkedRecord("viewer");
            if (!n)
                return;
            let t = n.getLinkedRecords("availableBots");
            if (!t)
                return;
            let l = t.findIndex(e=>e.getDataID() === a);
            if (-1 === l || l < 6)
                return;
            let i = [...t.slice(0, 5), t[l], ...t.slice(5, l), ...t.slice(l + 1)];
            n.setLinkedRecords(i, "availableBots")
        }
          , s = (e,a)=>{
            let n = e.getRoot().getLinkedRecord("viewer");
            if (!n)
                return;
            let t = n.getLinkedRecords("availableBots");
            if (!t)
                return;
            let l = t.findIndex(e=>e.getDataID() === a);
            if (-1 === l || l < 5)
                return;
            let i = [...t.slice(0, l), ...t.slice(l + 1), t[l]];
            n.setLinkedRecords(i, "availableBots")
        }
          , r = (e,a)=>{
            let n = e.get(a);
            if (!n)
                return;
            let t = e.getRoot().getLinkedRecord("viewer");
            if (!t)
                return;
            let l = t.getLinkedRecords("availableBots");
            if (!l)
                return;
            let s = l.findIndex(e=>e.getDataID() === a);
            if (-1 !== s)
                return i(e, a);
            let r = [...l.slice(0, 5), n, ...l.slice(5)];
            t.setLinkedRecords(r, "availableBots")
        }
          , u = e=>{
            let a = (0,
            t.useFragment)(n(96207), e)
              , {isPrivateBot: l, viewerIsCreator: i, isSystemBot: s} = a;
            return !l || i || s
        }
          , o = e=>{
            let {deletionState: a} = (0,
            t.useFragment)(n(88049), e);
            return {
                isDeleted: a !== l.Z.not_deleted,
                isForceDeleted: a !== l.Z.not_deleted && a !== l.Z.user_deleted,
                isHardDeleted: a === l.Z.hard_deleted,
                deletionState: a
            }
        }
    },
    21496: function(e, a, n) {
        n.d(a, {
            Ue: function() {
                return S
            },
            cq: function() {
                return K
            },
            Tt: function() {
                return s
            },
            OE: function() {
                return M
            },
            hb: function() {
                return I
            },
            Q1: function() {
                return w
            },
            WC: function() {
                return x
            },
            $3: function() {
                return D
            },
            i4: function() {
                return B
            },
            Dx: function() {
                return L
            }
        });
        var t, l, i, s, r = n(41143), u = n.n(r), o = n(67294), d = n(22578), c = n(7192), g = n(19695), m = n(22556);
        let k = e=>{
            let a = (0,
            o.useRef)(e);
            return (0,
            o.useEffect)(()=>{
                a.current = e
            }
            ),
            a.current
        }
        ;
        var h = n(83972)
          , f = n(89567)
          , p = n(22546);
        (t = i || (i = {})).success = "success",
        t.no_access = "no_access",
        t.too_many_tokens = "too_many_tokens",
        t.reached_limit = "reached_limit",
        t.bot_is_down = "bot_is_down";
        var y = i
          , b = n(36253)
          , _ = n(22747)
          , F = n(41114)
          , C = n(33213);
        let S = "ChatMessagesView_chat_messagesConnection"
          , K = (0,
        o.createContext)({
            isEmbed: !1,
            botDisplayName: "sage"
        })
          , v = ()=>Math.floor(1e9 * Math.random());
        (l = s || (s = {})).human = "human",
        l.chatBreak = "chat_break",
        l.pacarana = "pacarana";
        let M = e=>{
            if (!e)
                return !1;
            let a = (0,
            d.readInlineData)(n(91337), e);
            return !w(a) && !I(a)
        }
          , w = e=>{
            if (!e)
                return !1;
            let a = (0,
            d.readInlineData)(n(14008), e);
            return a.author === s.human
        }
          , I = e=>{
            if (!e)
                return !1;
            let a = (0,
            d.readInlineData)(n(26973), e);
            return a.author === s.chatBreak
        }
          , L = (e,a)=>{
            let t = (0,
            d.useFragment)(n(83042), e)
              , l = (0,
            d.useFragment)(n(1535), a)
              , i = k(t.chatId)
              , s = x(null != t ? t : null)
              , r = null === t.defaultBotObject.contextClearWindowSecs ? null : 1e3 * t.defaultBotObject.contextClearWindowSecs;
            (0,
            o.useEffect)(()=>{
                if (!l || i === t.chatId || !r)
                    return;
                let e = Date.now() - l.creationTime / 1e3;
                null !== r && e > r && !I(l) && s()
            }
            , [t, l, i, s, r]),
            (0,
            o.useEffect)(()=>{
                if (!l || null === r)
                    return;
                let e = Date.now() - l.creationTime / 1e3;
                e > r && !I(l) && s()
            }
            , [])
        }
          , B = (e,a)=>{
            var t, l;
            let i = (0,
            d.useFragment)(n(47629), e)
              , r = (0,
            d.useFragment)(n(68825), a)
              , c = (0,
            d.useRelayEnvironment)()
              , [g,m] = (0,
            o.useState)(null !== (t = i.timeoutLevel) && void 0 !== t ? t : 0);
            return (0,
            o.useEffect)(()=>{
                if (i.isOptimistic && i.author === s.human && g < 3) {
                    let e = window.setTimeout(()=>{
                        m(g + 1)
                    }
                    , 5e3);
                    return ()=>{
                        window.clearTimeout(e)
                    }
                }
            }
            , [i, g, m]),
            (0,
            o.useEffect)(()=>{
                var e;
                let a = Math.floor(r.defaultBotObject.messageTimeoutSecs / 5);
                if (i.state === b.Z.incomplete && (!i.isOptimistic || i.author !== s.human) && (null !== (e = i.timeoutLevel) && void 0 !== e ? e : 0) < a) {
                    let e = window.setTimeout(()=>{
                        (0,
                        d.commitLocalUpdate)(c, e=>{
                            var n;
                            let t = e.get(i.id);
                            u()(t, "node is ".concat(t));
                            let l = null !== (n = t.getValue("timeoutLevel")) && void 0 !== n ? n : 0
                              , s = l + 1;
                            t.setValue(s, "timeoutLevel"),
                            (0,
                            f.ZR)();
                            let o = {
                                message_id: i.messageId,
                                platform: "web",
                                chat_id: r.chatId,
                                default_bot_nickname: r.defaultBotObject.nickname,
                                user_agent: window.navigator.userAgent
                            };
                            s === a ? (0,
                            h.Z)("poe/statsd_event", {
                                key: "poe.message.timeout",
                                value: 1,
                                category: "count",
                                extra_data: o
                            }) : (0,
                            h.Z)("poe/statsd_event", {
                                key: "poe.message.timeout_level.".concat(s),
                                value: 1,
                                category: "count",
                                extra_data: o
                            })
                        }
                        )
                    }
                    , 5e3);
                    return ()=>{
                        window.clearTimeout(e)
                    }
                }
            }
            , [i, c, r]),
            i.isOptimistic && i.author === s.human ? g : null !== (l = i.timeoutLevel) && void 0 !== l ? l : 0
        }
          , E = "ChatMessageInputView_OptimisticHumanMessage"
          , T = "ChatMessageInputView_OptimisticChatBreakEdge"
          , R = "ChatMessageInputView_OptimisticChatBreak"
          , V = "ChatMessageInputView_OptimisticIntroductionMessage"
          , D = function(e) {
            let a = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : null
              , t = arguments.length > 2 && void 0 !== arguments[2] && arguments[2]
              , l = (0,
            d.useFragment)(n(2567), e)
              , [i] = (0,
            d.useMutation)(n(4915))
              , {addDisclaimer: r} = (0,
            m.Z)()
              , k = (0,
            d.useRelayEnvironment)()
              , h = (0,
            o.useCallback)(e=>{
                let a = e.get(l.id);
                u()(a, "chatRecord is ".concat(a));
                let n = d.ConnectionHandler.getConnection(a, S);
                u()(n, "connectionRecord is ".concat(n));
                let t = e.getRootField("messageEdgeCreate");
                u()(t, "payload is ".concat(t));
                let i = t.getLinkedRecord("chatBreak")
                  , s = t.getLinkedRecord("message")
                  , r = null == s ? void 0 : s.getLinkedRecord("node")
                  , o = null == r ? void 0 : r.getValue("clientNonce");
                if (i) {
                    let a = d.ConnectionHandler.buildConnectionEdge(e, n, i);
                    u()(a, "newChatBreakEdge is ".concat(a)),
                    d.ConnectionHandler.insertEdgeAfter(n, a)
                }
                if (o) {
                    let e = n.getLinkedRecords("edges");
                    if (e && e.some(e=>{
                        var a;
                        return (null === (a = e.getLinkedRecord("node")) || void 0 === a ? void 0 : a.getValue("clientNonce")) === o
                    }
                    ))
                        return
                }
                let c = d.ConnectionHandler.buildConnectionEdge(e, n, s);
                c && (u()(c, "newMessageEdge is ".concat(c)),
                d.ConnectionHandler.insertEdgeAfter(n, c)),
                (0,
                _.As)(e, l.defaultBotObject.id)
            }
            , [l])
              , K = (0,
            c.ZP)()
              , M = (0,
            o.useCallback)(async e=>{
                (0,
                f.Si)();
                let n = l.shouldShowDisclaimer
                  , o = (0,
                F.z)(16)
                  , m = await (0,
                C.h0)();
                i({
                    variables: {
                        chatId: l.chatId,
                        bot: l.defaultBotObject.nickname,
                        query: e,
                        source: a,
                        withChatBreak: t,
                        clientNonce: o,
                        sdid: m
                    },
                    optimisticResponse: {
                        messageEdgeCreate: {
                            chatBreak: t ? {
                                id: T,
                                cursor: R,
                                node: {
                                    id: R,
                                    messageId: R,
                                    text: "",
                                    author: s.chatBreak,
                                    isOptimistic: !0,
                                    suggestedReplies: [],
                                    creationTime: 1e3 * Date.now() - 1,
                                    state: b.Z.complete,
                                    clientNonce: null
                                }
                            } : null,
                            message: {
                                id: "ChatMessageInputView_OptimisticHumanMessageEdge",
                                cursor: E,
                                node: {
                                    id: E,
                                    messageId: E,
                                    text: e,
                                    author: s.human,
                                    isOptimistic: !0,
                                    suggestedReplies: [],
                                    creationTime: 1e3 * Date.now(),
                                    state: b.Z.complete,
                                    chat: {
                                        id: l.id,
                                        shouldShowDisclaimer: !1
                                    },
                                    clientNonce: o,
                                    contentType: "a2_100k" === l.defaultBotObject.nickname ? p.Z.text_plain : p.Z.text_markdown
                                }
                            },
                            status: y.success
                        }
                    },
                    updater: h,
                    optimisticUpdater: h,
                    onCompleted: e=>{
                        var a;
                        let t = e.messageEdgeCreate.status;
                        if (t !== y.success) {
                            let e;
                            switch (t) {
                            case y.too_many_tokens:
                                e = "This message is too long. Retry with a shorter message.";
                                break;
                            case y.no_access:
                                e = "Your access to this chat is not allowed.";
                                break;
                            case y.reached_limit:
                                e = "You have reached the limit of messages you can send in this chat.";
                                break;
                            case y.bot_is_down:
                                e = "This bot is currently down. Please try again later.";
                                break;
                            default:
                                e = "An error occurred on our end. Please try again."
                            }
                            K({
                                type: c.pC.error,
                                content: e
                            });
                            return
                        }
                        let i = null === (a = e.messageEdgeCreate.message) || void 0 === a ? void 0 : a.node.messageId;
                        u()(i, "messageId is ".concat(i)),
                        n && r(i),
                        (0,
                        g.Ot)(E, i);
                        let s = ()=>setTimeout(()=>{
                            (0,
                            d.commitLocalUpdate)(k, e=>{
                                let a = e.get(l.id);
                                u()(a, "Chat Record is ".concat(a));
                                let n = d.ConnectionHandler.getConnection(a, S);
                                u()(n, "Chat Connection is ".concat(n));
                                let t = n.getLinkedRecords("edges");
                                u()(t, "Messages is ".concat(t));
                                let i = t[t.length - 1].getLinkedRecord("node");
                                if (u()(i, "Last Message is ".concat(i)),
                                i.getValue("isOptimistic")) {
                                    s();
                                    return
                                }
                                if ("human" !== i.getValue("author"))
                                    return;
                                let r = String(v())
                                  , o = e.create(r, "Message")
                                  , c = i.getValue("creationTime");
                                u()(c, "Last Creation Time is ".concat(c)),
                                o.setValue(r, "id"),
                                o.setValue(v(), "messageId"),
                                o.setValue("...", "text"),
                                o.setValue(c + 1e6, "creationTime"),
                                o.setValue(l.defaultBotObject.nickname, "author"),
                                o.setValue(b.Z.incomplete, "state"),
                                o.setValue([], "suggestedReplies"),
                                o.setValue(!0, "isOptimistic"),
                                o.setLinkedRecord(a, "chat");
                                let g = d.ConnectionHandler.createEdge(e, n, o, "MessageEdge");
                                d.ConnectionHandler.insertEdgeAfter(n, g)
                            }
                            )
                        }
                        , 100);
                        s()
                    }
                    ,
                    onError: a=>{
                        console.error(a),
                        (0,
                        d.commitLocalUpdate)(k, a=>{
                            let n = a.get(l.id);
                            u()(n, "Chat Record is ".concat(n));
                            let t = d.ConnectionHandler.getConnection(n, S);
                            u()(t, "Chat Connection is ".concat(t));
                            let i = t.getLinkedRecords("edges");
                            u()(i, "Messages is ".concat(i));
                            let r = i[i.length - 1].getLinkedRecord("node");
                            u()(r, "Last Message is ".concat(r));
                            let o = String(v())
                              , c = a.create(o, "Message")
                              , g = r.getValue("creationTime");
                            u()(g, "Last Creation Time is ".concat(g)),
                            c.setValue(o, "id"),
                            c.setValue(v(), "messageId"),
                            c.setValue(e, "text"),
                            c.setValue(g + 1e6, "creationTime"),
                            c.setValue(s.human, "author"),
                            c.setValue(b.Z.error, "state"),
                            c.setValue([], "suggestedReplies"),
                            window.navigator.onLine || c.setValue(!0, "offlineError"),
                            c.setLinkedRecord(n, "chat");
                            let m = d.ConnectionHandler.createEdge(a, t, c, "MessageEdge");
                            d.ConnectionHandler.insertEdgeAfter(t, m)
                        }
                        )
                    }
                }),
                (0,
                g.CE)(E, l.chatId)
            }
            , [i, r, l, k, a, h, t, K]);
            return M
        }
          , x = e=>{
            var a;
            let t = (0,
            d.useFragment)(n(69666), e)
              , [l] = (0,
            d.useMutation)(n(3594))
              , i = d.ConnectionHandler.getConnectionID(null !== (a = null == t ? void 0 : t.id) && void 0 !== a ? a : "", S)
              , r = (0,
            o.useCallback)(()=>{
                t && l({
                    variables: {
                        connections: [i],
                        chatId: t.chatId
                    },
                    optimisticResponse: {
                        messageBreakEdgeCreate: {
                            message: {
                                id: T,
                                cursor: R,
                                node: {
                                    id: R,
                                    messageId: R,
                                    text: "",
                                    author: s.chatBreak,
                                    suggestedReplies: [],
                                    creationTime: 1e3 * Date.now(),
                                    state: b.Z.complete
                                }
                            },
                            introductionMessage: t.defaultBotObject.introduction ? {
                                id: "ChatMessageInputView_OptimisticIntroductionMessageEdge",
                                cursor: V,
                                node: {
                                    id: V,
                                    messageId: V,
                                    text: t.defaultBotObject.introduction,
                                    author: t.defaultBotObject.model,
                                    suggestedReplies: [],
                                    creationTime: 1e3 * Date.now(),
                                    state: b.Z.complete
                                }
                            } : null
                        }
                    }
                })
            }
            , [l, t, i]);
            return r
        }
    },
    88447: function(e, a, n) {
        n.d(a, {
            $: function() {
                return t
            }
        });
        let t = function() {
            for (var e = arguments.length, a = Array(e), n = 0; n < e; n++)
                a[n] = arguments[n];
            return a.filter(Boolean).join(" ")
        }
    },
    22556: function(e, a, n) {
        n.d(a, {
            B: function() {
                return r
            }
        });
        var t = n(85893)
          , l = n(67294);
        let i = (0,
        l.createContext)(new Set)
          , s = (0,
        l.createContext)(()=>{}
        )
          , r = e=>{
            let {children: a} = e
              , [n,r] = (0,
            l.useState)(new Set);
            return (0,
            t.jsx)(i.Provider, {
                value: n,
                children: (0,
                t.jsx)(s.Provider, {
                    value: r,
                    children: a
                })
            })
        }
          , u = ()=>{
            let e = (0,
            l.useContext)(i)
              , a = (0,
            l.useContext)(s)
              , n = (0,
            l.useCallback)(e=>{
                a(a=>a.add(e))
            }
            , [a]);
            return {
                addDisclaimer: n,
                disclaimerMessageIds: e
            }
        }
        ;
        a.Z = u
    },
    41114: function(e, a, n) {
        n.d(a, {
            _: function() {
                return l
            },
            z: function() {
                return t
            }
        });
        let t = e=>{
            let a = ""
              , n = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789"
              , t = 0;
            for (; t < e; )
                a += n.charAt(Math.floor(Math.random() * n.length)),
                t += 1;
            return a
        }
          , l = ()=>t(32)
    },
    33213: function(e, a, n) {
        let t;
        n.d(a, {
            Rz: function() {
                return o
            },
            h0: function() {
                return m
            },
            hP: function() {
                return g
            }
        });
        var l = n(67294);
        let i = "quora_b_46ba1291c98480d9dde6fed2b16c7cae__90053357"
          , s = "aff4cbc69cc3fee7a3b851fb6c40fed3"
          , r = "com.poe"
          , u = async()=>{
            await d()
        }
          , o = ()=>{
            (0,
            l.useEffect)(()=>{
                u()
            }
            , [])
        }
          , d = async()=>(t || (t = c()),
        await t)
          , c = async()=>{
            let e = await n.e(8961).then(n.t.bind(n, 58961, 23))
              , {singularSdk: a, SingularConfig: t} = e;
            return await new Promise(e=>{
                if (a && t && i && s && r) {
                    let n = new t(i,s,r);
                    n.withInitFinishedCallback(()=>e()),
                    a.init(n)
                }
            }
            ),
            e
        }
          , g = async e=>{
            let a = await d();
            return a.singularSdk.event(e)
        }
          , m = async()=>{
            let e = await d();
            return e.singularSdk.getSingularDeviceId()
        }
    },
    84890: function(e, a) {
        var n, t;
        (t = n || (n = {})).not_deleted = "not_deleted",
        t.user_deleted = "user_deleted",
        t.poe_deleted = "poe_deleted",
        t.llm_deleted = "llm_deleted",
        t.hard_deleted = "hard_deleted",
        a.Z = n
    },
    22546: function(e, a) {
        var n, t;
        (t = n || (n = {})).text_markdown = "text_markdown",
        t.text_plain = "text_plain",
        a.Z = n
    }
}]);

Comes from return e.singularSdk.getSingularDeviceId()

from poe-api.

acheong08 avatar acheong08 commented on June 26, 2024

https://support.singular.net/hc/en-us/articles/360039991491-Singular-Website-SDK-Native-Integration

from poe-api.

lazezo2 avatar lazezo2 commented on June 26, 2024

got panned to after a few request..
any idea?

from poe-api.

ading2210 avatar ading2210 commented on June 26, 2024

This has hopefully been fixed in v0.4.0.

from poe-api.

Jxells avatar Jxells commented on June 26, 2024

Hey guys, i am creating a fully automated version for Poe, It will be undetectable and fast.

It can bypass any Cloudflare or even CAPTCHA's protected site.

Till know i can't find any opensource alternative for both Cloudflare & captcha's...

If anyone want it then leave a reply so i can know how many are interested for it.

good

from poe-api.

lazezo2 avatar lazezo2 commented on June 26, 2024

Any one can confirm fixed in v0.4.0?

from poe-api.

lazezo2 avatar lazezo2 commented on June 26, 2024

No ban for me too after day of working, but as safety i am using delay time between request with random number...

from poe-api.

Pan-zc avatar Pan-zc commented on June 26, 2024

No ban for me too after day of working, but as safety i am using delay time between request with random number...

delay time for how long?

from poe-api.

lazezo2 avatar lazezo2 commented on June 26, 2024

No ban for me too after day of working, but as safety i am using delay time between request with random number...

delay time for how long?

i used around 1 minute delay time

from poe-api.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.