cloudevil 1.0.0__py3-none-any.whl
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/__init__.py +28 -0
- cloudevil/__main__.py +4 -0
- cloudevil/cloudevil_core.so +0 -0
- cloudevil-1.0.0.dist-info/METADATA +89 -0
- cloudevil-1.0.0.dist-info/RECORD +8 -0
- cloudevil-1.0.0.dist-info/WHEEL +5 -0
- cloudevil-1.0.0.dist-info/entry_points.txt +2 -0
- cloudevil-1.0.0.dist-info/top_level.txt +1 -0
cloudevil/__init__.py
ADDED
|
@@ -0,0 +1,28 @@
|
|
|
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
|
+
solve, solve_sync, solve_turnstile,
|
|
8
|
+
extract_sitekey,
|
|
9
|
+
format_response,
|
|
10
|
+
main,
|
|
11
|
+
)
|
|
12
|
+
|
|
13
|
+
import os as _os
|
|
14
|
+
import threading as _threading
|
|
15
|
+
import sys as _sys
|
|
16
|
+
|
|
17
|
+
if _os.getenv("CLOUDEVIL_NO_BOOTSTRAP", "").strip().lower() not in ("1", "true", "yes", "on"):
|
|
18
|
+
def _auto_bootstrap():
|
|
19
|
+
try:
|
|
20
|
+
ensure_dependencies()
|
|
21
|
+
except Exception:
|
|
22
|
+
pass
|
|
23
|
+
try:
|
|
24
|
+
_sys.meta_path # trivial attribute access; used only to defer work
|
|
25
|
+
_t = _threading.Thread(target=_auto_bootstrap, daemon=True)
|
|
26
|
+
_t.start()
|
|
27
|
+
except Exception:
|
|
28
|
+
pass
|
cloudevil/__main__.py
ADDED
|
Binary file
|
|
@@ -0,0 +1,89 @@
|
|
|
1
|
+
Metadata-Version: 2.4
|
|
2
|
+
Name: cloudevil
|
|
3
|
+
Version: 1.0.0
|
|
4
|
+
Summary: Cloudflare Turnstile token library for Termux.
|
|
5
|
+
Home-page: https://t.me/A_9_A_6
|
|
6
|
+
Author: Devil
|
|
7
|
+
Requires-Python: >=3.9
|
|
8
|
+
Description-Content-Type: text/markdown
|
|
9
|
+
Requires-Dist: requests>=2.28
|
|
10
|
+
Requires-Dist: nodriver>=0.34
|
|
11
|
+
Dynamic: author
|
|
12
|
+
Dynamic: description
|
|
13
|
+
Dynamic: description-content-type
|
|
14
|
+
Dynamic: home-page
|
|
15
|
+
Dynamic: requires-dist
|
|
16
|
+
Dynamic: requires-python
|
|
17
|
+
Dynamic: summary
|
|
18
|
+
|
|
19
|
+
# cloudevil
|
|
20
|
+
|
|
21
|
+
A Python library for extracting Cloudflare Turnstile tokens from any webpage. Works on Termux (Android).
|
|
22
|
+
|
|
23
|
+
- المطوّر: Devil
|
|
24
|
+
- القناة: https://t.me/A_9_A_6
|
|
25
|
+
- الخاص: https://t.me/iKingNow
|
|
26
|
+
|
|
27
|
+
## التثبيت
|
|
28
|
+
|
|
29
|
+
pip install cloudevil
|
|
30
|
+
|
|
31
|
+
## الاستخدام
|
|
32
|
+
|
|
33
|
+
import cloudevil
|
|
34
|
+
|
|
35
|
+
result = cloudevil.get_token(
|
|
36
|
+
url="https://example.com/login",
|
|
37
|
+
)
|
|
38
|
+
|
|
39
|
+
print(result)
|
|
40
|
+
|
|
41
|
+
سيطبع JSON منسّقاً (لكي تعرف كيف يكون):
|
|
42
|
+
|
|
43
|
+
{
|
|
44
|
+
"data": {
|
|
45
|
+
"dev": "Devil",
|
|
46
|
+
"Token": "0.xxxxx",
|
|
47
|
+
"Channel": "https://t.me/A_9_A_6",
|
|
48
|
+
"Private": "https://t.me/iKingNow"
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
|
|
52
|
+
لا تحتاج sitekey — المكتبة تستخرجه تلقائياً من الصفحة.
|
|
53
|
+
|
|
54
|
+
## استخراج sitekey فقط
|
|
55
|
+
|
|
56
|
+
sk, err = cloudevil.extract_sitekey("https://example.com/login")
|
|
57
|
+
print(sk)
|
|
58
|
+
|
|
59
|
+
## الاستدعاء غير المتزامن
|
|
60
|
+
|
|
61
|
+
import asyncio
|
|
62
|
+
import cloudevil
|
|
63
|
+
|
|
64
|
+
payload = asyncio.run(
|
|
65
|
+
cloudevil.get_token_async(url="https://example.com/login")
|
|
66
|
+
)
|
|
67
|
+
|
|
68
|
+
## من سطر الأوامر
|
|
69
|
+
|
|
70
|
+
cloudevil --url https://example.com/login
|
|
71
|
+
|
|
72
|
+
سيطبع JSON منسّقاً. لإخراج سطر واحد:
|
|
73
|
+
|
|
74
|
+
cloudevil --url https://example.com/login --compact
|
|
75
|
+
|
|
76
|
+
## تنسيق الاستجابة
|
|
77
|
+
|
|
78
|
+
كل استدعاء يرجّع القاموس التالي (لكي تعرف كيف يكون):
|
|
79
|
+
|
|
80
|
+
{
|
|
81
|
+
"data": {
|
|
82
|
+
"dev": "Devil",
|
|
83
|
+
"Token": "<turnstile-token-or-null>",
|
|
84
|
+
"Channel": "https://t.me/A_9_A_6",
|
|
85
|
+
"Private": "https://t.me/iKingNow"
|
|
86
|
+
}
|
|
87
|
+
}
|
|
88
|
+
|
|
89
|
+
في حالة الفشل تحتوي `data` أيضًا على `error` و`tried`
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
cloudevil/__init__.py,sha256=rtv_MtYzxVg-XFqIZPKIUTagivOG4svPfyRJS4xWws4,863
|
|
2
|
+
cloudevil/__main__.py,sha256=GrNejczN37Ay-1VyveJkUCrVb3dhTZ7yKu5r8VIyA_0,92
|
|
3
|
+
cloudevil/cloudevil_core.so,sha256=PcMvDKLjYzOoVP2BuRZvj8qQg83VoWCR4aqp5Vl51bw,2570464
|
|
4
|
+
cloudevil-1.0.0.dist-info/METADATA,sha256=HwkvsjX8MUAtSZikAF-tw7FsLNPGT7N-B0cgYqSm2DE,2086
|
|
5
|
+
cloudevil-1.0.0.dist-info/WHEEL,sha256=mOdXR9C3wMVov7cSY8PY-XCzo3SmmWCHvGQr5csJoao,91
|
|
6
|
+
cloudevil-1.0.0.dist-info/entry_points.txt,sha256=d3wntO3WdzpvE-gHStK-tUr32GHU8tgfzcOnfnT3LpY,60
|
|
7
|
+
cloudevil-1.0.0.dist-info/top_level.txt,sha256=zziqBc7KaQVUKtatPmpIX8ieR7444GHq6N8Y3o2P2gw,10
|
|
8
|
+
cloudevil-1.0.0.dist-info/RECORD,,
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
cloudevil
|