summaryrefslogtreecommitdiffstats
path: root/g4f/Provider/DeepAi.py
diff options
context:
space:
mode:
authorTekky <98614666+xtekky@users.noreply.github.com>2023-10-10 16:29:51 +0200
committerGitHub <noreply@github.com>2023-10-10 16:29:51 +0200
commit26cd71c7f48f7d8417d1f0348d2d1f89636e54d6 (patch)
tree891c9e1aaf8fec34bac0b4031cfeb1ca8354e402 /g4f/Provider/DeepAi.py
parent ~ | g4f `v-0.1.5.7` (diff)
parentfix html (diff)
downloadgpt4free-26cd71c7f48f7d8417d1f0348d2d1f89636e54d6.tar
gpt4free-26cd71c7f48f7d8417d1f0348d2d1f89636e54d6.tar.gz
gpt4free-26cd71c7f48f7d8417d1f0348d2d1f89636e54d6.tar.bz2
gpt4free-26cd71c7f48f7d8417d1f0348d2d1f89636e54d6.tar.lz
gpt4free-26cd71c7f48f7d8417d1f0348d2d1f89636e54d6.tar.xz
gpt4free-26cd71c7f48f7d8417d1f0348d2d1f89636e54d6.tar.zst
gpt4free-26cd71c7f48f7d8417d1f0348d2d1f89636e54d6.zip
Diffstat (limited to 'g4f/Provider/DeepAi.py')
-rw-r--r--g4f/Provider/DeepAi.py45
1 files changed, 24 insertions, 21 deletions
diff --git a/g4f/Provider/DeepAi.py b/g4f/Provider/DeepAi.py
index e1ee4446..2f7f15c4 100644
--- a/g4f/Provider/DeepAi.py
+++ b/g4f/Provider/DeepAi.py
@@ -22,29 +22,29 @@ class DeepAi(AsyncGeneratorProvider):
proxy: str = None,
**kwargs
) -> AsyncResult:
+ agent = "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/115.0.0.0 Safari/537.36"
token_js = """
-var agent = 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/115.0.0.0 Safari/537.36'
+var agent = '""" + agent + """'
var a, b, c, d, e, h, f, l, g, k, m, n, r, x, C, E, N, F, T, O, P, w, D, G, Q, R, W, I, aa, fa, na, oa, ha, ba, X, ia, ja, ka, J, la, K, L, ca, S, U, M, ma, B, da, V, Y;
h = Math.round(1E11 * Math.random()) + "";
-f = function () {
- for (var p = [], q = 0; 64 > q;) p[q] = 0 | 4294967296 * Math.sin(++q % Math.PI);
-
- return function (t) {
- var v, y, H, ea = [v = 1732584193, y = 4023233417, ~v, ~y],
- Z = [],
- A = unescape(encodeURI(t)) + "\u0080",
- z = A.length;
- t = --z / 4 + 2 | 15;
- for (Z[--t] = 8 * z; ~z;) Z[z >> 2] |= A.charCodeAt(z) << 8 * z--;
- for (q = A = 0; q < t; q += 16) {
- for (z = ea; 64 > A; z = [H = z[3], v + ((H = z[0] + [v & y | ~v & H, H & v | ~H & y, v ^ y ^ H, y ^ (v | ~H)][z = A >> 4] + p[A] + ~~Z[q | [A, 5 * A + 1, 3 * A + 5, 7 * A][z] & 15]) << (z = [7, 12, 17, 22, 5, 9, 14, 20, 4, 11, 16, 23, 6, 10, 15, 21][4 * z + A++ % 4]) | H >>> -z), v, y]) v = z[1] | 0, y = z[2];
- for (A = 4; A;) ea[--A] += z[A]
- }
- for (t = ""; 32 > A;) t += (ea[A >> 3] >> 4 * (1 ^ A++) & 15).toString(16);
- return t.split("").reverse().join("")
- }
-}();
+f = function() {
+ for (var p = [], r = 0; 64 > r;) p[r] = 0 | 4294967296 * Math.sin(++r % Math.PI);
+ return function(z) {
+ var B, G, H, ca = [B = 1732584193, G = 4023233417, ~B, ~G],
+ X = [],
+ x = unescape(encodeURI(z)) + "\u0080",
+ v = x.length;
+ z = --v / 4 + 2 | 15;
+ for (X[--z] = 8 * v; ~v;) X[v >> 2] |= x.charCodeAt(v) << 8 * v--;
+ for (r = x = 0; r < z; r += 16) {
+ for (v = ca; 64 > x; v = [H = v[3], B + ((H = v[0] + [B & G | ~B & H, H & B | ~H & G, B ^ G ^ H, G ^ (B | ~H)][v = x >> 4] + p[x] + ~~X[r | [x, 5 * x + 1, 3 * x + 5, 7 * x][v] & 15]) << (v = [7, 12, 17, 22, 5, 9, 14, 20, 4, 11, 16, 23, 6, 10, 15, 21][4 * v + x++ % 4]) | H >>> -v), B, G]) B = v[1] | 0, G = v[2];
+ for (x = 4; x;) ca[--x] += v[x]
+ }
+ for (z = ""; 32 > x;) z += (ca[x >> 3] >> 4 * (1 ^ x++) & 15).toString(16);
+ return z.split("").reverse().join("")
+ }
+ }();
"tryit-" + h + "-" + f(agent + f(agent + f(agent + h + "x")));
"""
@@ -53,7 +53,7 @@ f = function () {
api_key = js2py.eval_js(token_js)
headers = {
"api-key": api_key,
- "User-Agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/115.0.0.0 Safari/537.36",
+ "User-Agent": agent,
**kwargs.get("headers", {})
}
async with ClientSession(
@@ -65,7 +65,10 @@ f = function () {
response.raise_for_status()
async for stream in response.content.iter_any():
if stream:
- yield stream.decode()
+ try:
+ yield stream.decode("utf-8")
+ except UnicodeDecodeError:
+ yield stream.decode("unicode-escape")
def get_api_key(user_agent: str):