cloudevil 1.0.4__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Potentially problematic release.
This version of cloudevil might be problematic. Click here for more details.
- cloudevil-1.0.4/MANIFEST.in +2 -0
- cloudevil-1.0.4/PKG-INFO +84 -0
- cloudevil-1.0.4/README.md +62 -0
- cloudevil-1.0.4/cloudevil/__init__.py +34 -0
- cloudevil-1.0.4/cloudevil/__main__.py +4 -0
- cloudevil-1.0.4/cloudevil/cloudevil_core.cpython-314-aarch64-linux-android.so +0 -0
- cloudevil-1.0.4/cloudevil.egg-info/PKG-INFO +84 -0
- cloudevil-1.0.4/cloudevil.egg-info/SOURCES.txt +14 -0
- cloudevil-1.0.4/cloudevil.egg-info/dependency_links.txt +1 -0
- cloudevil-1.0.4/cloudevil.egg-info/entry_points.txt +2 -0
- cloudevil-1.0.4/cloudevil.egg-info/not-zip-safe +1 -0
- cloudevil-1.0.4/cloudevil.egg-info/requires.txt +2 -0
- cloudevil-1.0.4/cloudevil.egg-info/top_level.txt +1 -0
- cloudevil-1.0.4/pyproject.toml +3 -0
- cloudevil-1.0.4/setup.cfg +4 -0
- cloudevil-1.0.4/setup.py +34 -0
cloudevil-1.0.4/PKG-INFO
ADDED
|
@@ -0,0 +1,84 @@
|
|
|
1
|
+
Metadata-Version: 2.4
|
|
2
|
+
Name: cloudevil
|
|
3
|
+
Version: 1.0.4
|
|
4
|
+
Summary: Cloudflare Turnstile + hCaptcha token library for Termux (CPython 3.14 only).
|
|
5
|
+
Home-page: https://t.me/A_9_A_6
|
|
6
|
+
Author: Devil
|
|
7
|
+
Classifier: Programming Language :: Python :: 3.14
|
|
8
|
+
Classifier: Programming Language :: Python :: 3 :: Only
|
|
9
|
+
Classifier: Operating System :: Android
|
|
10
|
+
Requires-Python: >=3.14,<3.15
|
|
11
|
+
Description-Content-Type: text/markdown
|
|
12
|
+
Requires-Dist: requests>=2.28
|
|
13
|
+
Requires-Dist: nodriver>=0.34
|
|
14
|
+
Dynamic: author
|
|
15
|
+
Dynamic: classifier
|
|
16
|
+
Dynamic: description
|
|
17
|
+
Dynamic: description-content-type
|
|
18
|
+
Dynamic: home-page
|
|
19
|
+
Dynamic: requires-dist
|
|
20
|
+
Dynamic: requires-python
|
|
21
|
+
Dynamic: summary
|
|
22
|
+
|
|
23
|
+
# cloudevil
|
|
24
|
+
|
|
25
|
+
Cloudflare Turnstile **and** hCaptcha token library for Termux, shipped as a
|
|
26
|
+
precompiled CPython **3.14** extension (aarch64-linux-android).
|
|
27
|
+
|
|
28
|
+
> This release targets **CPython 3.14 only**. Python 3.11 and 3.13 are not supported.
|
|
29
|
+
|
|
30
|
+
## Install
|
|
31
|
+
|
|
32
|
+
pip install cloudevil
|
|
33
|
+
|
|
34
|
+
Requires `requests` and `nodriver` (auto-installed) plus Termux packages
|
|
35
|
+
`chromium` and `xorg-server-xvfb` (auto-installed on import on Termux).
|
|
36
|
+
|
|
37
|
+
## Turnstile
|
|
38
|
+
|
|
39
|
+
import cloudevil
|
|
40
|
+
r = cloudevil.get_token(url="https://example.com/login")
|
|
41
|
+
print(r["data"]["Token"])
|
|
42
|
+
|
|
43
|
+
## hCaptcha
|
|
44
|
+
|
|
45
|
+
import cloudevil
|
|
46
|
+
r = cloudevil.get_htoken(url="https://example.com/signup")
|
|
47
|
+
print(r["data"]["Token"])
|
|
48
|
+
|
|
49
|
+
The hCaptcha flow:
|
|
50
|
+
|
|
51
|
+
1. Injects `https://js.hcaptcha.com/1/api.js?render=explicit` and renders the
|
|
52
|
+
widget in a small floating div.
|
|
53
|
+
2. Calls `hcaptcha.execute()` to trigger passive challenges.
|
|
54
|
+
3. Clicks the compact checkbox with real CDP mouse events (`Input.dispatchMouseEvent`)
|
|
55
|
+
at the widget rect — `(x+28, y+40)` for the checkbox.
|
|
56
|
+
4. If hCaptcha opens the image-grid challenge, it is **not** spammed; you need a
|
|
57
|
+
solver key for interactive challenges (see below).
|
|
58
|
+
|
|
59
|
+
### Interactive (image) hCaptcha — solver keys
|
|
60
|
+
|
|
61
|
+
Set one of:
|
|
62
|
+
|
|
63
|
+
export CAPSOLVER_KEY=...
|
|
64
|
+
export TWOCAPTCHA_KEY=...
|
|
65
|
+
|
|
66
|
+
Providers are appended to `CLOUDEVIL_ORDER` automatically when their key is set,
|
|
67
|
+
and are called with `HCaptchaTaskProxyLess` (CapSolver) / `method=hcaptcha`
|
|
68
|
+
(2Captcha), so interactive hCaptcha is solved server-side.
|
|
69
|
+
|
|
70
|
+
## Env
|
|
71
|
+
|
|
72
|
+
- `CLOUDEVIL_ORDER` provider order, default `browser`
|
|
73
|
+
- `CLOUDEVIL_TIMEOUT` seconds, default 90
|
|
74
|
+
- `CLOUDEVIL_HEADLESS` 1/0
|
|
75
|
+
- `CLOUDEVIL_VERBOSE` 1 to print debug logs
|
|
76
|
+
- `CLOUDEVIL_BROWSER` explicit chromium path
|
|
77
|
+
- `CAPSOLVER_KEY`, `TWOCAPTCHA_KEY`
|
|
78
|
+
|
|
79
|
+
## CLI
|
|
80
|
+
|
|
81
|
+
python -m cloudevil --url https://example.com --kind hcaptcha
|
|
82
|
+
python -m cloudevil doctor
|
|
83
|
+
|
|
84
|
+
Channel: https://t.me/A_9_A_6
|
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
# cloudevil
|
|
2
|
+
|
|
3
|
+
Cloudflare Turnstile **and** hCaptcha token library for Termux, shipped as a
|
|
4
|
+
precompiled CPython **3.14** extension (aarch64-linux-android).
|
|
5
|
+
|
|
6
|
+
> This release targets **CPython 3.14 only**. Python 3.11 and 3.13 are not supported.
|
|
7
|
+
|
|
8
|
+
## Install
|
|
9
|
+
|
|
10
|
+
pip install cloudevil
|
|
11
|
+
|
|
12
|
+
Requires `requests` and `nodriver` (auto-installed) plus Termux packages
|
|
13
|
+
`chromium` and `xorg-server-xvfb` (auto-installed on import on Termux).
|
|
14
|
+
|
|
15
|
+
## Turnstile
|
|
16
|
+
|
|
17
|
+
import cloudevil
|
|
18
|
+
r = cloudevil.get_token(url="https://example.com/login")
|
|
19
|
+
print(r["data"]["Token"])
|
|
20
|
+
|
|
21
|
+
## hCaptcha
|
|
22
|
+
|
|
23
|
+
import cloudevil
|
|
24
|
+
r = cloudevil.get_htoken(url="https://example.com/signup")
|
|
25
|
+
print(r["data"]["Token"])
|
|
26
|
+
|
|
27
|
+
The hCaptcha flow:
|
|
28
|
+
|
|
29
|
+
1. Injects `https://js.hcaptcha.com/1/api.js?render=explicit` and renders the
|
|
30
|
+
widget in a small floating div.
|
|
31
|
+
2. Calls `hcaptcha.execute()` to trigger passive challenges.
|
|
32
|
+
3. Clicks the compact checkbox with real CDP mouse events (`Input.dispatchMouseEvent`)
|
|
33
|
+
at the widget rect — `(x+28, y+40)` for the checkbox.
|
|
34
|
+
4. If hCaptcha opens the image-grid challenge, it is **not** spammed; you need a
|
|
35
|
+
solver key for interactive challenges (see below).
|
|
36
|
+
|
|
37
|
+
### Interactive (image) hCaptcha — solver keys
|
|
38
|
+
|
|
39
|
+
Set one of:
|
|
40
|
+
|
|
41
|
+
export CAPSOLVER_KEY=...
|
|
42
|
+
export TWOCAPTCHA_KEY=...
|
|
43
|
+
|
|
44
|
+
Providers are appended to `CLOUDEVIL_ORDER` automatically when their key is set,
|
|
45
|
+
and are called with `HCaptchaTaskProxyLess` (CapSolver) / `method=hcaptcha`
|
|
46
|
+
(2Captcha), so interactive hCaptcha is solved server-side.
|
|
47
|
+
|
|
48
|
+
## Env
|
|
49
|
+
|
|
50
|
+
- `CLOUDEVIL_ORDER` provider order, default `browser`
|
|
51
|
+
- `CLOUDEVIL_TIMEOUT` seconds, default 90
|
|
52
|
+
- `CLOUDEVIL_HEADLESS` 1/0
|
|
53
|
+
- `CLOUDEVIL_VERBOSE` 1 to print debug logs
|
|
54
|
+
- `CLOUDEVIL_BROWSER` explicit chromium path
|
|
55
|
+
- `CAPSOLVER_KEY`, `TWOCAPTCHA_KEY`
|
|
56
|
+
|
|
57
|
+
## CLI
|
|
58
|
+
|
|
59
|
+
python -m cloudevil --url https://example.com --kind hcaptcha
|
|
60
|
+
python -m cloudevil doctor
|
|
61
|
+
|
|
62
|
+
Channel: https://t.me/A_9_A_6
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
from .cloudevil_core import *
|
|
2
|
+
from .cloudevil_core import __all__, __version__, CHANNEL, DEV_NAME, PRIVATE, VERSION
|
|
3
|
+
from .cloudevil_core import (
|
|
4
|
+
ensure_dependencies, ensure_python, ensure_system,
|
|
5
|
+
install, status, is_termux,
|
|
6
|
+
get_token, get_token_sync, get_token_async,
|
|
7
|
+
get_htoken, get_htoken_sync, get_htoken_async,
|
|
8
|
+
solve, solve_sync, solve_turnstile,
|
|
9
|
+
extract_sitekey,
|
|
10
|
+
format_response,
|
|
11
|
+
ensure_chromium_launcher,
|
|
12
|
+
find_browser,
|
|
13
|
+
main,
|
|
14
|
+
)
|
|
15
|
+
|
|
16
|
+
import os as _os
|
|
17
|
+
import threading as _threading
|
|
18
|
+
import sys as _sys
|
|
19
|
+
|
|
20
|
+
# Multi-version support is gone: this wheel targets CPython 3.14 only.
|
|
21
|
+
# The extension lives at the package root as cloudevil_core.cpython-314-*.so
|
|
22
|
+
# so a plain "from .cloudevil_core import *" above already imported it.
|
|
23
|
+
|
|
24
|
+
if _os.getenv("CLOUDEVIL_NO_BOOTSTRAP", "").strip().lower() not in ("1", "true", "yes", "on"):
|
|
25
|
+
def _auto_bootstrap():
|
|
26
|
+
try:
|
|
27
|
+
ensure_dependencies()
|
|
28
|
+
except Exception:
|
|
29
|
+
pass
|
|
30
|
+
try:
|
|
31
|
+
_t = _threading.Thread(target=_auto_bootstrap, daemon=True)
|
|
32
|
+
_t.start()
|
|
33
|
+
except Exception:
|
|
34
|
+
pass
|
|
@@ -0,0 +1,84 @@
|
|
|
1
|
+
Metadata-Version: 2.4
|
|
2
|
+
Name: cloudevil
|
|
3
|
+
Version: 1.0.4
|
|
4
|
+
Summary: Cloudflare Turnstile + hCaptcha token library for Termux (CPython 3.14 only).
|
|
5
|
+
Home-page: https://t.me/A_9_A_6
|
|
6
|
+
Author: Devil
|
|
7
|
+
Classifier: Programming Language :: Python :: 3.14
|
|
8
|
+
Classifier: Programming Language :: Python :: 3 :: Only
|
|
9
|
+
Classifier: Operating System :: Android
|
|
10
|
+
Requires-Python: >=3.14,<3.15
|
|
11
|
+
Description-Content-Type: text/markdown
|
|
12
|
+
Requires-Dist: requests>=2.28
|
|
13
|
+
Requires-Dist: nodriver>=0.34
|
|
14
|
+
Dynamic: author
|
|
15
|
+
Dynamic: classifier
|
|
16
|
+
Dynamic: description
|
|
17
|
+
Dynamic: description-content-type
|
|
18
|
+
Dynamic: home-page
|
|
19
|
+
Dynamic: requires-dist
|
|
20
|
+
Dynamic: requires-python
|
|
21
|
+
Dynamic: summary
|
|
22
|
+
|
|
23
|
+
# cloudevil
|
|
24
|
+
|
|
25
|
+
Cloudflare Turnstile **and** hCaptcha token library for Termux, shipped as a
|
|
26
|
+
precompiled CPython **3.14** extension (aarch64-linux-android).
|
|
27
|
+
|
|
28
|
+
> This release targets **CPython 3.14 only**. Python 3.11 and 3.13 are not supported.
|
|
29
|
+
|
|
30
|
+
## Install
|
|
31
|
+
|
|
32
|
+
pip install cloudevil
|
|
33
|
+
|
|
34
|
+
Requires `requests` and `nodriver` (auto-installed) plus Termux packages
|
|
35
|
+
`chromium` and `xorg-server-xvfb` (auto-installed on import on Termux).
|
|
36
|
+
|
|
37
|
+
## Turnstile
|
|
38
|
+
|
|
39
|
+
import cloudevil
|
|
40
|
+
r = cloudevil.get_token(url="https://example.com/login")
|
|
41
|
+
print(r["data"]["Token"])
|
|
42
|
+
|
|
43
|
+
## hCaptcha
|
|
44
|
+
|
|
45
|
+
import cloudevil
|
|
46
|
+
r = cloudevil.get_htoken(url="https://example.com/signup")
|
|
47
|
+
print(r["data"]["Token"])
|
|
48
|
+
|
|
49
|
+
The hCaptcha flow:
|
|
50
|
+
|
|
51
|
+
1. Injects `https://js.hcaptcha.com/1/api.js?render=explicit` and renders the
|
|
52
|
+
widget in a small floating div.
|
|
53
|
+
2. Calls `hcaptcha.execute()` to trigger passive challenges.
|
|
54
|
+
3. Clicks the compact checkbox with real CDP mouse events (`Input.dispatchMouseEvent`)
|
|
55
|
+
at the widget rect — `(x+28, y+40)` for the checkbox.
|
|
56
|
+
4. If hCaptcha opens the image-grid challenge, it is **not** spammed; you need a
|
|
57
|
+
solver key for interactive challenges (see below).
|
|
58
|
+
|
|
59
|
+
### Interactive (image) hCaptcha — solver keys
|
|
60
|
+
|
|
61
|
+
Set one of:
|
|
62
|
+
|
|
63
|
+
export CAPSOLVER_KEY=...
|
|
64
|
+
export TWOCAPTCHA_KEY=...
|
|
65
|
+
|
|
66
|
+
Providers are appended to `CLOUDEVIL_ORDER` automatically when their key is set,
|
|
67
|
+
and are called with `HCaptchaTaskProxyLess` (CapSolver) / `method=hcaptcha`
|
|
68
|
+
(2Captcha), so interactive hCaptcha is solved server-side.
|
|
69
|
+
|
|
70
|
+
## Env
|
|
71
|
+
|
|
72
|
+
- `CLOUDEVIL_ORDER` provider order, default `browser`
|
|
73
|
+
- `CLOUDEVIL_TIMEOUT` seconds, default 90
|
|
74
|
+
- `CLOUDEVIL_HEADLESS` 1/0
|
|
75
|
+
- `CLOUDEVIL_VERBOSE` 1 to print debug logs
|
|
76
|
+
- `CLOUDEVIL_BROWSER` explicit chromium path
|
|
77
|
+
- `CAPSOLVER_KEY`, `TWOCAPTCHA_KEY`
|
|
78
|
+
|
|
79
|
+
## CLI
|
|
80
|
+
|
|
81
|
+
python -m cloudevil --url https://example.com --kind hcaptcha
|
|
82
|
+
python -m cloudevil doctor
|
|
83
|
+
|
|
84
|
+
Channel: https://t.me/A_9_A_6
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
MANIFEST.in
|
|
2
|
+
README.md
|
|
3
|
+
pyproject.toml
|
|
4
|
+
setup.py
|
|
5
|
+
cloudevil/__init__.py
|
|
6
|
+
cloudevil/__main__.py
|
|
7
|
+
cloudevil/cloudevil_core.cpython-314-aarch64-linux-android.so
|
|
8
|
+
cloudevil.egg-info/PKG-INFO
|
|
9
|
+
cloudevil.egg-info/SOURCES.txt
|
|
10
|
+
cloudevil.egg-info/dependency_links.txt
|
|
11
|
+
cloudevil.egg-info/entry_points.txt
|
|
12
|
+
cloudevil.egg-info/not-zip-safe
|
|
13
|
+
cloudevil.egg-info/requires.txt
|
|
14
|
+
cloudevil.egg-info/top_level.txt
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
cloudevil
|
cloudevil-1.0.4/setup.py
ADDED
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
import os
|
|
2
|
+
from setuptools import setup
|
|
3
|
+
|
|
4
|
+
HERE = os.path.dirname(os.path.abspath(__file__))
|
|
5
|
+
|
|
6
|
+
def _read(name):
|
|
7
|
+
with open(os.path.join(HERE, name), encoding="utf-8") as f:
|
|
8
|
+
return f.read()
|
|
9
|
+
|
|
10
|
+
setup(
|
|
11
|
+
name="cloudevil",
|
|
12
|
+
version="1.0.4",
|
|
13
|
+
description="Cloudflare Turnstile + hCaptcha token library for Termux (CPython 3.14 only).",
|
|
14
|
+
long_description=_read("README.md"),
|
|
15
|
+
long_description_content_type="text/markdown",
|
|
16
|
+
author="Devil",
|
|
17
|
+
url="https://t.me/A_9_A_6",
|
|
18
|
+
packages=["cloudevil"],
|
|
19
|
+
package_data={"cloudevil": ["*.so", "*.pyd"]},
|
|
20
|
+
include_package_data=True,
|
|
21
|
+
zip_safe=False,
|
|
22
|
+
python_requires=">=3.14,<3.15",
|
|
23
|
+
install_requires=["requests>=2.28", "nodriver>=0.34"],
|
|
24
|
+
classifiers=[
|
|
25
|
+
"Programming Language :: Python :: 3.14",
|
|
26
|
+
"Programming Language :: Python :: 3 :: Only",
|
|
27
|
+
"Operating System :: Android",
|
|
28
|
+
],
|
|
29
|
+
entry_points={
|
|
30
|
+
"console_scripts": [
|
|
31
|
+
"cloudevil=cloudevil.cloudevil_core:main",
|
|
32
|
+
]
|
|
33
|
+
},
|
|
34
|
+
)
|