mckabue commited on
Commit
d0ba16d
·
1 Parent(s): 505d72e

Refactor Instagram username resolution to improve logging functionality and enhance parameter typing

Browse files
Files changed (1) hide show
  1. app.py +5 -4
app.py CHANGED
@@ -26,11 +26,12 @@ async def index():
26
  @app.route('/check/<platform>/<username>', methods=['GET'])
27
  async def check_social_media_handle(platform: str, username: str):
28
  logs = []
 
29
  response = {}
30
  match platform.lower():
31
  case "instagram":
32
  response = await async_availability_status(
33
- resolve_instagram_username(username, logs.append))
34
  case "linkedin-user":
35
  response = await async_availability_status(
36
  resolve_linkedin_username(username, "in"))
@@ -43,7 +44,7 @@ async def check_social_media_handle(platform: str, username: str):
43
  }
44
  return {**response, "logs": logs}
45
 
46
- def resolve_instagram_username(username: str, logger) -> tuple[str, bool, str] :
47
  def get_json_value(page_source, key, value_pattern):
48
  pattern = rf'[\'"]?{key}[\'"]?\s*:\s*[\'"]?({value_pattern})[\'"]?'
49
  match = re.search(pattern, page_source, flags=re.IGNORECASE)
@@ -73,8 +74,8 @@ def resolve_instagram_username(username: str, logger) -> tuple[str, bool, str] :
73
  headers={
74
  "x-ig-app-id": x_ig_app_id,
75
  })
76
- logger(f"user_data_response:status: {user_data_response.ok}")
77
- logger(f"user_data_response:text: {user_data_response.text}")
78
  status = (user_data_response.json() or {}).get('status')
79
  return (
80
  username,
 
26
  @app.route('/check/<platform>/<username>', methods=['GET'])
27
  async def check_social_media_handle(platform: str, username: str):
28
  logs = []
29
+ logger = lambda key, value: logs.append({ "key": key, "value": value })
30
  response = {}
31
  match platform.lower():
32
  case "instagram":
33
  response = await async_availability_status(
34
+ resolve_instagram_username(username, logger))
35
  case "linkedin-user":
36
  response = await async_availability_status(
37
  resolve_linkedin_username(username, "in"))
 
44
  }
45
  return {**response, "logs": logs}
46
 
47
+ def resolve_instagram_username(username: str, logger: Callable[[str, str], None]) -> tuple[str, bool, str] :
48
  def get_json_value(page_source, key, value_pattern):
49
  pattern = rf'[\'"]?{key}[\'"]?\s*:\s*[\'"]?({value_pattern})[\'"]?'
50
  match = re.search(pattern, page_source, flags=re.IGNORECASE)
 
74
  headers={
75
  "x-ig-app-id": x_ig_app_id,
76
  })
77
+ logger("user_data_response:status", user_data_response.status_code)
78
+ logger("user_data_response:text", user_data_response.text)
79
  status = (user_data_response.json() or {}).get('status')
80
  return (
81
  username,