zhou12189108 commited on
Commit
49afc47
1 Parent(s): 8e4af33

Upload 4 files

Browse files
Files changed (4) hide show
  1. Dockerfile +1 -0
  2. api.py +10 -3
  3. get_all_model.py +29 -0
  4. hcaptcha_solver.py +2 -0
Dockerfile CHANGED
@@ -40,6 +40,7 @@ RUN playwright install firefox --with-deps
40
  USER foxer
41
  RUN playwright install firefox
42
  COPY hcaptcha_solver.py .
 
43
  COPY api.py .
44
  EXPOSE 7860
45
 
 
40
  USER foxer
41
  RUN playwright install firefox
42
  COPY hcaptcha_solver.py .
43
+ COPY get_all_model.py .
44
  COPY api.py .
45
  EXPOSE 7860
46
 
api.py CHANGED
@@ -1,10 +1,7 @@
1
  import hashlib
2
  import os
3
  import asyncio
4
- import time
5
- import multiprocessing
6
  import uuid
7
-
8
  from flask import Flask, jsonify, request, logging as flog
9
  from flask_limiter.util import get_remote_address
10
  import hcaptcha_solver
@@ -85,4 +82,14 @@ def solver_captcha():
85
  return asyncio.run(hcaptcha_solver.bytedance(data["host"], data["site_key"], generate_uuid()))
86
 
87
 
 
 
 
 
 
 
 
 
 
 
88
  app.run(host="0.0.0.0", port=7860)
 
1
  import hashlib
2
  import os
3
  import asyncio
 
 
4
  import uuid
 
5
  from flask import Flask, jsonify, request, logging as flog
6
  from flask_limiter.util import get_remote_address
7
  import hcaptcha_solver
 
82
  return asyncio.run(hcaptcha_solver.bytedance(data["host"], data["site_key"], generate_uuid()))
83
 
84
 
85
+ @app.route("/api/update", methods=["POST"])
86
+ def update_model():
87
+ require_data = ["token"]
88
+ data = request.get_json(force=True, silent=True)
89
+ if not check_request(require_data, data):
90
+ return jsonify(msg="Unauthorized Request"), 403
91
+ hcaptcha_solver.solver.install(upgrade=True)
92
+ return jsonify(statue="ok"), 200
93
+
94
+
95
  app.run(host="0.0.0.0", port=7860)
get_all_model.py ADDED
@@ -0,0 +1,29 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ import os
2
+ from pathlib import Path
3
+ import requests
4
+ import re
5
+
6
+ username = "QIN2DIM"
7
+ repo = "hcaptcha-challenger"
8
+
9
+ url = f"https://api.github.com/repos/{username}/{repo}/releases"
10
+ models_dir = "/usr/local/lib/python3.11/lib/site-packages/hcaptcha_challenger/onnx/models/"
11
+
12
+
13
+ def download_all():
14
+ session = requests.session()
15
+ response = session.get(url)
16
+ data = response.json()
17
+ os.makedirs(models_dir, exist_ok=True)
18
+ for i in data:
19
+ for j in i['assets']:
20
+ asset_url = j['browser_download_url']
21
+ asset_name = re.sub('.*/', '', asset_url)
22
+ models_path = models_dir + asset_name
23
+ if os.path.exists(models_path):
24
+ continue
25
+ print(f'Downloading {asset_name}')
26
+ r = session.get(asset_url, stream=True)
27
+ with open(models_path, 'wb') as f:
28
+ f.write(r.content)
29
+ print("Done!")
hcaptcha_solver.py CHANGED
@@ -1,10 +1,12 @@
1
  from pathlib import Path
2
  import os
3
  from loguru import logger
 
4
  from playwright.async_api import BrowserContext as ASyncContext, async_playwright
5
  import hcaptcha_challenger as solver
6
  from hcaptcha_challenger.agents import AgentT, Malenia
7
 
 
8
  # Init local-side of the ModelHub
9
  solver.install(upgrade=True)
10
 
 
1
  from pathlib import Path
2
  import os
3
  from loguru import logger
4
+ import get_all_model
5
  from playwright.async_api import BrowserContext as ASyncContext, async_playwright
6
  import hcaptcha_challenger as solver
7
  from hcaptcha_challenger.agents import AgentT, Malenia
8
 
9
+ get_all_model.download_all()
10
  # Init local-side of the ModelHub
11
  solver.install(upgrade=True)
12