anti-cf 1.0.2__py3-none-any.whl → 1.1.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.
@@ -47,10 +47,11 @@ class PersistentSession(Session):
47
47
  super().__init__()
48
48
 
49
49
  self._load_cookies()
50
- ensure_flaresolverr_running()
51
50
  self.set_user_agent()
51
+ self._flaresolverr_initialized = False
52
52
 
53
53
  def _get_user_agent(self) -> str:
54
+ # Try FlareSolverr first, but don't start it if not running
54
55
  flaresolverr_settings = get_flaresolverr_settings()
55
56
  if flaresolverr_settings is not None:
56
57
  return flaresolverr_settings["userAgent"]
@@ -87,6 +88,12 @@ class PersistentSession(Session):
87
88
  self.save_cookies()
88
89
  return response
89
90
 
91
+ def _ensure_flaresolverr_initialized(self) -> None:
92
+ """Ensure FlareSolverr is ready when needed."""
93
+ if not self._flaresolverr_initialized:
94
+ ensure_flaresolverr_running()
95
+ self._flaresolverr_initialized = True
96
+
90
97
  def get(self, url: str | bytes, *, try_with_cloudflare: bool = False, _cloudflare_counter: int = 0, **kwargs: object) -> Response | None:
91
98
  if not try_with_cloudflare or "cf_clearance" in self.cookies:
92
99
  try:
@@ -107,10 +114,10 @@ class PersistentSession(Session):
107
114
  else:
108
115
  logger.warning("Cloudflare detected, but `try_with_cloudflare` wasn't set to True!")
109
116
 
117
+ self._ensure_flaresolverr_initialized()
118
+
110
119
  try:
111
120
  self._get_url_via_flaresolverr(url)
112
- # After the url is retrieved from the flaresolverr proxy, it's not necessarily the one we want
113
- # --> So we'll re-request it here:
114
121
  return super().get(url, **kwargs)
115
122
  except Exception:
116
123
  logger.error("FlareSolverr didn't solve it :(")
@@ -129,8 +136,8 @@ class PersistentSession(Session):
129
136
  dta = response.json()
130
137
  for cookie in dta["solution"]["cookies"]:
131
138
  self.cookies.set(
132
- name=cookie["name"], # required
133
- value=cookie["value"], # required
139
+ name=cookie["name"],
140
+ value=cookie["value"],
134
141
  version=cookie.get("version", 0),
135
142
  port=cookie.get("port", None),
136
143
  domain=cookie.get("domain", ""),
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.3
2
2
  Name: anti_cf
3
- Version: 1.0.2
3
+ Version: 1.1.0
4
4
  Summary: Anti-CloudFlare package
5
5
  License: MIT
6
6
  Author: Steven Van Ingelgem
@@ -0,0 +1,7 @@
1
+ anti_cf/__init__.py,sha256=ZFXXzfWeiBqKC56vdyod1yXj5_Kg4NXJeTejs2WoEEU,71
2
+ anti_cf/_constants.py,sha256=xFIXkeBVkuHsTQKQU4p2leJkySHdJ_6xApgIoVrBWHA,262
3
+ anti_cf/_flaresolverr.py,sha256=vOuut3fH1CstumQrNyIhm7B58ybLCSPUaK5NDTiQwj8,1633
4
+ anti_cf/_persistent_session.py,sha256=UqDLEMrZ4ybJGWySn2AIDOlSCz43kzx14hlZNsuzjU4,5853
5
+ anti_cf-1.1.0.dist-info/METADATA,sha256=vmHncM9A664cySSKGwQ4aK9m_SqSZnw8GJFIvSnx9pM,3187
6
+ anti_cf-1.1.0.dist-info/WHEEL,sha256=b4K_helf-jlQoXBBETfwnf4B04YC67LOev0jo4fX5m8,88
7
+ anti_cf-1.1.0.dist-info/RECORD,,
@@ -1,4 +1,4 @@
1
1
  Wheel-Version: 1.0
2
- Generator: poetry-core 2.1.2
2
+ Generator: poetry-core 2.1.3
3
3
  Root-Is-Purelib: true
4
4
  Tag: py3-none-any
@@ -1,7 +0,0 @@
1
- anti_cf/__init__.py,sha256=ZFXXzfWeiBqKC56vdyod1yXj5_Kg4NXJeTejs2WoEEU,71
2
- anti_cf/_constants.py,sha256=xFIXkeBVkuHsTQKQU4p2leJkySHdJ_6xApgIoVrBWHA,262
3
- anti_cf/_flaresolverr.py,sha256=vOuut3fH1CstumQrNyIhm7B58ybLCSPUaK5NDTiQwj8,1633
4
- anti_cf/_persistent_session.py,sha256=z4cG16lbPLIDhAIGgFoCufI83xHZzHIT4vfW4303-mI,5654
5
- anti_cf-1.0.2.dist-info/METADATA,sha256=_VOtcWdnVaTxElWTPNKe3KEZinIWn-ul_hrDUk3TzQ0,3187
6
- anti_cf-1.0.2.dist-info/WHEEL,sha256=fGIA9gx4Qxk2KDKeNJCbOEwSrmLtjWCwzBz351GyrPQ,88
7
- anti_cf-1.0.2.dist-info/RECORD,,