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.
Files changed (42) hide show
  1. {dexscraper-0.1.1.dev0 → dexscraper-0.1.3.dev0}/.github/workflows/release.yml +5 -3
  2. {dexscraper-0.1.1.dev0/dexscraper.egg-info → dexscraper-0.1.3.dev0}/PKG-INFO +2 -2
  3. {dexscraper-0.1.1.dev0 → dexscraper-0.1.3.dev0}/dexscraper/_version.py +3 -3
  4. {dexscraper-0.1.1.dev0 → dexscraper-0.1.3.dev0}/dexscraper/scraper.py +6 -9
  5. {dexscraper-0.1.1.dev0 → dexscraper-0.1.3.dev0/dexscraper.egg-info}/PKG-INFO +2 -2
  6. {dexscraper-0.1.1.dev0 → dexscraper-0.1.3.dev0}/dexscraper.egg-info/requires.txt +1 -1
  7. {dexscraper-0.1.1.dev0 → dexscraper-0.1.3.dev0}/pyproject.toml +1 -1
  8. {dexscraper-0.1.1.dev0 → dexscraper-0.1.3.dev0}/.github/FUNDING.yml +0 -0
  9. {dexscraper-0.1.1.dev0 → dexscraper-0.1.3.dev0}/.github/workflows/ci.yml +0 -0
  10. {dexscraper-0.1.1.dev0 → dexscraper-0.1.3.dev0}/.gitignore +0 -0
  11. {dexscraper-0.1.1.dev0 → dexscraper-0.1.3.dev0}/.pre-commit-config.yaml +0 -0
  12. {dexscraper-0.1.1.dev0 → dexscraper-0.1.3.dev0}/.python-version +0 -0
  13. {dexscraper-0.1.1.dev0 → dexscraper-0.1.3.dev0}/CLAUDE.md +0 -0
  14. {dexscraper-0.1.1.dev0 → dexscraper-0.1.3.dev0}/CONTRIBUTING.md +0 -0
  15. {dexscraper-0.1.1.dev0 → dexscraper-0.1.3.dev0}/LICENSE +0 -0
  16. {dexscraper-0.1.1.dev0 → dexscraper-0.1.3.dev0}/Makefile +0 -0
  17. {dexscraper-0.1.1.dev0 → dexscraper-0.1.3.dev0}/README.md +0 -0
  18. {dexscraper-0.1.1.dev0 → dexscraper-0.1.3.dev0}/dex.py +0 -0
  19. {dexscraper-0.1.1.dev0 → dexscraper-0.1.3.dev0}/dexscraper/__init__.py +0 -0
  20. {dexscraper-0.1.1.dev0 → dexscraper-0.1.3.dev0}/dexscraper/cli.py +0 -0
  21. {dexscraper-0.1.1.dev0 → dexscraper-0.1.3.dev0}/dexscraper/cloudflare_bypass.py +0 -0
  22. {dexscraper-0.1.1.dev0 → dexscraper-0.1.3.dev0}/dexscraper/config.py +0 -0
  23. {dexscraper-0.1.1.dev0 → dexscraper-0.1.3.dev0}/dexscraper/enhanced_protocol.py +0 -0
  24. {dexscraper-0.1.1.dev0 → dexscraper-0.1.3.dev0}/dexscraper/logger.py +0 -0
  25. {dexscraper-0.1.1.dev0 → dexscraper-0.1.3.dev0}/dexscraper/models.py +0 -0
  26. {dexscraper-0.1.1.dev0 → dexscraper-0.1.3.dev0}/dexscraper/protocol.py +0 -0
  27. {dexscraper-0.1.1.dev0 → dexscraper-0.1.3.dev0}/dexscraper/utils.py +0 -0
  28. {dexscraper-0.1.1.dev0 → dexscraper-0.1.3.dev0}/dexscraper.egg-info/SOURCES.txt +0 -0
  29. {dexscraper-0.1.1.dev0 → dexscraper-0.1.3.dev0}/dexscraper.egg-info/dependency_links.txt +0 -0
  30. {dexscraper-0.1.1.dev0 → dexscraper-0.1.3.dev0}/dexscraper.egg-info/entry_points.txt +0 -0
  31. {dexscraper-0.1.1.dev0 → dexscraper-0.1.3.dev0}/dexscraper.egg-info/top_level.txt +0 -0
  32. {dexscraper-0.1.1.dev0 → dexscraper-0.1.3.dev0}/requirements.txt +0 -0
  33. {dexscraper-0.1.1.dev0 → dexscraper-0.1.3.dev0}/setup.cfg +0 -0
  34. {dexscraper-0.1.1.dev0 → dexscraper-0.1.3.dev0}/tests/__init__.py +0 -0
  35. {dexscraper-0.1.1.dev0 → dexscraper-0.1.3.dev0}/tests/conftest.py +0 -0
  36. {dexscraper-0.1.1.dev0 → dexscraper-0.1.3.dev0}/tests/test_cli.py +0 -0
  37. {dexscraper-0.1.1.dev0 → dexscraper-0.1.3.dev0}/tests/test_config.py +0 -0
  38. {dexscraper-0.1.1.dev0 → dexscraper-0.1.3.dev0}/tests/test_decode_pair.py +0 -0
  39. {dexscraper-0.1.1.dev0 → dexscraper-0.1.3.dev0}/tests/test_edge_cases.py +0 -0
  40. {dexscraper-0.1.1.dev0 → dexscraper-0.1.3.dev0}/tests/test_enhanced_ohlc.py +0 -0
  41. {dexscraper-0.1.1.dev0 → dexscraper-0.1.3.dev0}/tests/test_models.py +0 -0
  42. {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
- echo "Current commit: $(git rev-parse HEAD)"
39
- echo "Tag commit: $(git rev-parse ${{ github.ref_name }})"
40
- if [[ "$(git rev-parse HEAD)" != "$(git rev-parse ${{ github.ref_name }})" ]]; then
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.1.dev0
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>=10.0
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.1.dev0'
32
- __version_tuple__ = version_tuple = (0, 1, 1, 'dev0')
31
+ __version__ = version = '0.1.3.dev0'
32
+ __version_tuple__ = version_tuple = (0, 1, 3, 'dev0')
33
33
 
34
- __commit_id__ = commit_id = 'gc268afe6d'
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
- "Upgrade": "websocket",
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
- extra_headers=headers,
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.1.dev0
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>=10.0
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"
@@ -1,4 +1,4 @@
1
- websockets>=10.0
1
+ websockets>=15.0
2
2
  cloudscraper>=1.2.60
3
3
 
4
4
  [dev]
@@ -36,7 +36,7 @@ keywords = [
36
36
  "market-data"
37
37
  ]
38
38
  dependencies = [
39
- "websockets>=10.0",
39
+ "websockets>=15.0",
40
40
  "cloudscraper>=1.2.60",
41
41
  ]
42
42
  dynamic = ["version"]
File without changes
File without changes