Nokia123543 commited on
Commit
8879b17
·
verified ·
1 Parent(s): e4e1f36

PLUS: проверка API понимает заглушку провайдера, переоткрытий не больше 5

Browse files
Files changed (1) hide show
  1. plus/selfcheck.py +15 -1
plus/selfcheck.py CHANGED
@@ -45,10 +45,14 @@ def make_probe(path=PROBE, seconds=2.0, rate=44100):
45
  return path
46
 
47
 
 
 
 
48
  def get(url, timeout=20):
49
  started = time.time()
50
  try:
51
- with urllib.request.urlopen(url, timeout=timeout) as answer:
 
52
  body = answer.read()
53
  return answer.status, body, time.time() - started
54
  except urllib.error.HTTPError as problem:
@@ -121,9 +125,19 @@ def main():
121
  if args.url:
122
  print("\n[3] публичная ссылка")
123
  status, body, spent = get(args.url.rstrip("/") + "/instruments", timeout=30)
 
124
  print(" ссылка/instruments → %s за %.1f с" % (status, spent))
125
  if status != 200:
126
  print(" ВЫВОД: снаружи не отвечает, туннель не смотрит на прокси")
 
 
 
 
 
 
 
 
 
127
 
128
  if not args.skip_transcribe:
129
  print("\n[4] сама транскрипция через прокси")
 
45
  return path
46
 
47
 
48
+ BYPASS = {"serveo-skip-browser-warning": "true"}
49
+
50
+
51
  def get(url, timeout=20):
52
  started = time.time()
53
  try:
54
+ request = urllib.request.Request(url, headers=BYPASS)
55
+ with urllib.request.urlopen(request, timeout=timeout) as answer:
56
  body = answer.read()
57
  return answer.status, body, time.time() - started
58
  except urllib.error.HTTPError as problem:
 
125
  if args.url:
126
  print("\n[3] публичная ссылка")
127
  status, body, spent = get(args.url.rstrip("/") + "/instruments", timeout=30)
128
+ text = body.decode("utf-8", "ignore")
129
  print(" ссылка/instruments → %s за %.1f с" % (status, spent))
130
  if status != 200:
131
  print(" ВЫВОД: снаружи не отвечает, туннель не смотрит на прокси")
132
+ elif "instruments" not in text:
133
+ print(" ВЫВОД: вместо JSON пришла страница провайдера"
134
+ " (заглушка), API работать не будет")
135
+ else:
136
+ try:
137
+ count = len(json.loads(text).get("instruments", []))
138
+ print(" снаружи видно %d инструментов" % count)
139
+ except Exception:
140
+ print(" ВЫВОД: ответ снаружи не разобрать как JSON")
141
 
142
  if not args.skip_transcribe:
143
  print("\n[4] сама транскрипция через прокси")