dexscraper 0.1.1.dev0__tar.gz → 0.1.3.dev0__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.
- {dexscraper-0.1.1.dev0 → dexscraper-0.1.3.dev0}/.github/workflows/release.yml +5 -3
- {dexscraper-0.1.1.dev0/dexscraper.egg-info → dexscraper-0.1.3.dev0}/PKG-INFO +2 -2
- {dexscraper-0.1.1.dev0 → dexscraper-0.1.3.dev0}/dexscraper/_version.py +3 -3
- {dexscraper-0.1.1.dev0 → dexscraper-0.1.3.dev0}/dexscraper/scraper.py +6 -9
- {dexscraper-0.1.1.dev0 → dexscraper-0.1.3.dev0/dexscraper.egg-info}/PKG-INFO +2 -2
- {dexscraper-0.1.1.dev0 → dexscraper-0.1.3.dev0}/dexscraper.egg-info/requires.txt +1 -1
- {dexscraper-0.1.1.dev0 → dexscraper-0.1.3.dev0}/pyproject.toml +1 -1
- {dexscraper-0.1.1.dev0 → dexscraper-0.1.3.dev0}/.github/FUNDING.yml +0 -0
- {dexscraper-0.1.1.dev0 → dexscraper-0.1.3.dev0}/.github/workflows/ci.yml +0 -0
- {dexscraper-0.1.1.dev0 → dexscraper-0.1.3.dev0}/.gitignore +0 -0
- {dexscraper-0.1.1.dev0 → dexscraper-0.1.3.dev0}/.pre-commit-config.yaml +0 -0
- {dexscraper-0.1.1.dev0 → dexscraper-0.1.3.dev0}/.python-version +0 -0
- {dexscraper-0.1.1.dev0 → dexscraper-0.1.3.dev0}/CLAUDE.md +0 -0
- {dexscraper-0.1.1.dev0 → dexscraper-0.1.3.dev0}/CONTRIBUTING.md +0 -0
- {dexscraper-0.1.1.dev0 → dexscraper-0.1.3.dev0}/LICENSE +0 -0
- {dexscraper-0.1.1.dev0 → dexscraper-0.1.3.dev0}/Makefile +0 -0
- {dexscraper-0.1.1.dev0 → dexscraper-0.1.3.dev0}/README.md +0 -0
- {dexscraper-0.1.1.dev0 → dexscraper-0.1.3.dev0}/dex.py +0 -0
- {dexscraper-0.1.1.dev0 → dexscraper-0.1.3.dev0}/dexscraper/__init__.py +0 -0
- {dexscraper-0.1.1.dev0 → dexscraper-0.1.3.dev0}/dexscraper/cli.py +0 -0
- {dexscraper-0.1.1.dev0 → dexscraper-0.1.3.dev0}/dexscraper/cloudflare_bypass.py +0 -0
- {dexscraper-0.1.1.dev0 → dexscraper-0.1.3.dev0}/dexscraper/config.py +0 -0
- {dexscraper-0.1.1.dev0 → dexscraper-0.1.3.dev0}/dexscraper/enhanced_protocol.py +0 -0
- {dexscraper-0.1.1.dev0 → dexscraper-0.1.3.dev0}/dexscraper/logger.py +0 -0
- {dexscraper-0.1.1.dev0 → dexscraper-0.1.3.dev0}/dexscraper/models.py +0 -0
- {dexscraper-0.1.1.dev0 → dexscraper-0.1.3.dev0}/dexscraper/protocol.py +0 -0
- {dexscraper-0.1.1.dev0 → dexscraper-0.1.3.dev0}/dexscraper/utils.py +0 -0
- {dexscraper-0.1.1.dev0 → dexscraper-0.1.3.dev0}/dexscraper.egg-info/SOURCES.txt +0 -0
- {dexscraper-0.1.1.dev0 → dexscraper-0.1.3.dev0}/dexscraper.egg-info/dependency_links.txt +0 -0
- {dexscraper-0.1.1.dev0 → dexscraper-0.1.3.dev0}/dexscraper.egg-info/entry_points.txt +0 -0
- {dexscraper-0.1.1.dev0 → dexscraper-0.1.3.dev0}/dexscraper.egg-info/top_level.txt +0 -0
- {dexscraper-0.1.1.dev0 → dexscraper-0.1.3.dev0}/requirements.txt +0 -0
- {dexscraper-0.1.1.dev0 → dexscraper-0.1.3.dev0}/setup.cfg +0 -0
- {dexscraper-0.1.1.dev0 → dexscraper-0.1.3.dev0}/tests/__init__.py +0 -0
- {dexscraper-0.1.1.dev0 → dexscraper-0.1.3.dev0}/tests/conftest.py +0 -0
- {dexscraper-0.1.1.dev0 → dexscraper-0.1.3.dev0}/tests/test_cli.py +0 -0
- {dexscraper-0.1.1.dev0 → dexscraper-0.1.3.dev0}/tests/test_config.py +0 -0
- {dexscraper-0.1.1.dev0 → dexscraper-0.1.3.dev0}/tests/test_decode_pair.py +0 -0
- {dexscraper-0.1.1.dev0 → dexscraper-0.1.3.dev0}/tests/test_edge_cases.py +0 -0
- {dexscraper-0.1.1.dev0 → dexscraper-0.1.3.dev0}/tests/test_enhanced_ohlc.py +0 -0
- {dexscraper-0.1.1.dev0 → dexscraper-0.1.3.dev0}/tests/test_models.py +0 -0
- {dexscraper-0.1.1.dev0 → dexscraper-0.1.3.dev0}/tests/test_scraper.py +0 -0
|
@@ -35,9 +35,11 @@ jobs:
|
|
|
35
35
|
|
|
36
36
|
- name: Verify we're on the exact tag commit
|
|
37
37
|
run: |
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
38
|
+
TAG_COMMIT="$(git rev-list -n 1 ${{ github.ref_name }})"
|
|
39
|
+
HEAD_COMMIT="$(git rev-parse HEAD)"
|
|
40
|
+
echo "Current commit: ${HEAD_COMMIT}"
|
|
41
|
+
echo "Tag commit: ${TAG_COMMIT}"
|
|
42
|
+
if [[ "${HEAD_COMMIT}" != "${TAG_COMMIT}" ]]; then
|
|
41
43
|
echo "❌ Not on tag commit!"
|
|
42
44
|
exit 1
|
|
43
45
|
fi
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: dexscraper
|
|
3
|
-
Version: 0.1.
|
|
3
|
+
Version: 0.1.3.dev0
|
|
4
4
|
Summary: Real-time DexScreener WebSocket scraper for cryptocurrency data
|
|
5
5
|
Author: Vincent Koc
|
|
6
6
|
License: GPL-3.0
|
|
@@ -23,7 +23,7 @@ Classifier: Topic :: Software Development :: Libraries :: Python Modules
|
|
|
23
23
|
Requires-Python: >=3.9
|
|
24
24
|
Description-Content-Type: text/markdown
|
|
25
25
|
License-File: LICENSE
|
|
26
|
-
Requires-Dist: websockets>=
|
|
26
|
+
Requires-Dist: websockets>=15.0
|
|
27
27
|
Requires-Dist: cloudscraper>=1.2.60
|
|
28
28
|
Provides-Extra: dev
|
|
29
29
|
Requires-Dist: pytest>=6.0; extra == "dev"
|
|
@@ -28,7 +28,7 @@ version_tuple: VERSION_TUPLE
|
|
|
28
28
|
commit_id: COMMIT_ID
|
|
29
29
|
__commit_id__: COMMIT_ID
|
|
30
30
|
|
|
31
|
-
__version__ = version = '0.1.
|
|
32
|
-
__version_tuple__ = version_tuple = (0, 1,
|
|
31
|
+
__version__ = version = '0.1.3.dev0'
|
|
32
|
+
__version_tuple__ = version_tuple = (0, 1, 3, 'dev0')
|
|
33
33
|
|
|
34
|
-
__commit_id__ = commit_id = '
|
|
34
|
+
__commit_id__ = commit_id = 'g53d4cf718'
|
|
@@ -116,16 +116,10 @@ class DexScraper:
|
|
|
116
116
|
"Accept": "*/*",
|
|
117
117
|
"Accept-Language": "en-GB,en;q=0.5",
|
|
118
118
|
"Accept-Encoding": "gzip, deflate, br, zstd",
|
|
119
|
-
"Sec-WebSocket-Version": "13",
|
|
120
|
-
"Origin": "https://dexscreener.com",
|
|
121
|
-
"Sec-WebSocket-Extensions": "permessage-deflate",
|
|
122
|
-
"Connection": "keep-alive, Upgrade",
|
|
123
|
-
"Sec-Fetch-Dest": "empty",
|
|
124
|
-
"Sec-Fetch-Mode": "websocket",
|
|
125
|
-
"Sec-Fetch-Site": "same-site",
|
|
126
119
|
"Pragma": "no-cache",
|
|
127
120
|
"Cache-Control": "no-cache",
|
|
128
|
-
"
|
|
121
|
+
"Origin": "https://dexscreener.com",
|
|
122
|
+
"Sec-WebSocket-Version": "13",
|
|
129
123
|
}
|
|
130
124
|
|
|
131
125
|
async def _rate_limit(self):
|
|
@@ -149,6 +143,8 @@ class DexScraper:
|
|
|
149
143
|
logger.debug(f"Connecting to: {uri}")
|
|
150
144
|
|
|
151
145
|
ssl_context = ssl.create_default_context()
|
|
146
|
+
# Add ALPN support to match curl behavior - this bypasses Cloudflare detection
|
|
147
|
+
ssl_context.set_alpn_protocols(["http/1.1"])
|
|
152
148
|
|
|
153
149
|
for attempt in range(self.max_retries):
|
|
154
150
|
try:
|
|
@@ -170,7 +166,8 @@ class DexScraper:
|
|
|
170
166
|
|
|
171
167
|
websocket = await websockets.connect(
|
|
172
168
|
uri,
|
|
173
|
-
|
|
169
|
+
origin="https://dexscreener.com",
|
|
170
|
+
additional_headers=headers,
|
|
174
171
|
ssl=ssl_context,
|
|
175
172
|
max_size=None,
|
|
176
173
|
ping_timeout=30,
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: dexscraper
|
|
3
|
-
Version: 0.1.
|
|
3
|
+
Version: 0.1.3.dev0
|
|
4
4
|
Summary: Real-time DexScreener WebSocket scraper for cryptocurrency data
|
|
5
5
|
Author: Vincent Koc
|
|
6
6
|
License: GPL-3.0
|
|
@@ -23,7 +23,7 @@ Classifier: Topic :: Software Development :: Libraries :: Python Modules
|
|
|
23
23
|
Requires-Python: >=3.9
|
|
24
24
|
Description-Content-Type: text/markdown
|
|
25
25
|
License-File: LICENSE
|
|
26
|
-
Requires-Dist: websockets>=
|
|
26
|
+
Requires-Dist: websockets>=15.0
|
|
27
27
|
Requires-Dist: cloudscraper>=1.2.60
|
|
28
28
|
Provides-Extra: dev
|
|
29
29
|
Requires-Dist: pytest>=6.0; extra == "dev"
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|