async def github_repo_func(answers, text): URL = f"https://api.github.com/repos/{text}" URL2 = f"https://api.github.com/repos/{text}/contributors" results = await asyncio.gather(fetch(URL), fetch(URL2)) r = results[0] r1 = results[1] commits = 0 for developer in r1: commits += developer['contributions'] buttons = InlineKeyboard(row_width=1) buttons.add( InlineKeyboardButton('Open On Github', url=f"https://github.com/{text}")) caption = f""" **Info Of {r['full_name']}** **Stars:** `{r['stargazers_count']}` **Watchers:** `{r['watchers_count']}` **Forks:** `{r['forks_count']}` **Commits:** `{commits}` **Is Fork:** `{r['fork']}` **Language:** `{r['language']}` **Contributors:** `{len(r1)}` **License:** `{r['license']['name']}` **Repo Owner:** [{r['owner']['login']}]({r['owner']['html_url']}) **Created On:** `{r['created_at']}` **Homepage:** {r['homepage']} **Description:** __{r['description']}__""" answers.append( InlineQueryResultArticle(title="Found Repo", description=text, reply_markup=buttons, input_message_content=InputTextMessageContent( caption, disable_web_page_preview=True))) return answers
async def calc_distance_from_ip(ip1: str, ip2: str) -> float: Radius_Earth = 6371.0088 data1, data2 = await gather(fetch(f"http://ipinfo.io/{ip1}"), fetch(f"http://ipinfo.io/{ip2}")) lat1, lon1 = data1["loc"].split(",") lat2, lon2 = data2["loc"].split(",") lat1, lon1 = radians(float(lat1)), radians(float(lon1)) lat2, lon2 = radians(float(lat2)), radians(float(lon2)) dlon = lon2 - lon1 dlat = lat2 - lat1 a = sin(dlat / 2)**2 + cos(lat1) * cos(lat2) * sin(dlon / 2)**2 c = 2 * atan2(sqrt(a), sqrt(1 - a)) distance = Radius_Earth * c return distance