Пишу код для себя по приколу, так сказать практикуюсь.
Решил узнать как парсить API.
Суть кода: я задаю запрос боту командой /username_search username123 бот загружает через api все данные, фильтрует всех участников, ищет клан, и отправляет о нем информацию. Но что-то пошло не так и бот не находит юзернейм(проводил тесты с KirillSafe и BlackSauron)
Но если выводить всех юзеров через принт то их ники там будут
Код:
import telebot, requests
from replit import db
TOKEN = db["token"]
bot = telebot.TeleBot(TOKEN)
@bot.message_handler(commands=['username_search'])
def search_clan_by_user(message):
nickname = message.text.lower()
data = get_clans_data()
all_leaders = []
found = False #if "leaders" in clan_data and clan_data["leaders"] is not None and len(clan_data["leaders"]) > 0:
for clan_name, clan_data in data.items():
if "leaders" in clan_data and clan_data["leaders"] is not None and len(clan_data["leaders"]) > 0:
all_leaders.extend(clan_data["leaders"]) # Add leaders to the list
if "trusted" in clan_data and clan_data["trusted"] is not None and len(clan_data["trusted"]) > 0:
all_leaders.extend(clan_data["trusted"])
if "officers" in clan_data and clan_data["officers"] is not None and len(clan_data["officers"]) > 0:
all_leaders.extend(clan_data["officers"])
if "members" in clan_data and clan_data["members"] is not None and len(clan_data["members"]) > 0:
all_leaders.extend(clan_data["members"])
if "newbies" in clan_data and clan_data["newbies"] is not None and len(clan_data["newbies"]) > 0:
all_leaders.extend(clan_data["newbies"])
#получаем всех дядя негро
if nickname in all_leaders: #ал лидерс это алл мемберс мне лень менять
#найден ли дядя негр
found = True
bot.send_message(message.chat.id, format_clan_info(clan, clan_data))
if not found:
bot.send_message(message.chat.id, 'Увы, я не смог найти ваш клан ')
def get_clans_data():
response = requests.get('https://excalibur-craft.ru/engine/ajax/clans/api.php')
data = response.json()
return data
def format_clan_info(clan, clan_data):
return f"Клан: {clan}\nАйди: {clan_data['id']}\nОпыт: {clan_data['xp']}\nОпыт за неделю: {clan_data['week_xp']}\nГолоса: {clan_data['votes']}\nОписание: {clan_data['motto']}"