import instaloader
import config
import threading
L = instaloader.Instaloader()
L.login(config.nick, config.password) # (login)
nickname = str(input('Введите никнейм '))
# Checking followers without pic
followers_no_pic = []
# Checking the list of subscribers on existing business accounts
check_business = []
# Create list of followers
followers_list = []
print(f'Анализ пользователя {nickname}'
f'\nПроцесс может занять некоторое время, пожалуйста, подождите')
# NICK FROM USER
Profile = instaloader.Profile.from_username(L.context, nickname)
def s(num):
for followers in Profile.get_followers():
followers_list.append(followers.username)
account = instaloader.Profile.from_username(L.context, followers.username)
if account.is_business_account is True:
check_business.append(account.is_business_account)
pic = account.profile_pic_url
pic = str(pic)
print('P r o c e s s')
if "https://instagram" in pic:
followers_no_pic.append(pic)
else:
pass
t1 = threading.Thread(target=s, args=(0.1,))
t2 = threading.Thread(target=s, args=(0.1,))
t3 = threading.Thread(target=s, args=(0.1,))
t4 = threading.Thread(target=s, args=(0.1,))
s(1)
t1.start()
t2.start()
t3.start()
t4.start()
print(f'Пользователь {nickname}'f'\nКоличество подписчиков: {len(followers_list)}')
print(f'\nИз них без аватарок: {len(followers_no_pic)}')
print(f'\nБизнес-аккаунтов: {len(check_business)}')
# аналитика бота: имя аккаунта, количество подписчиков, подписчики без аватарок и бизнес-аккаунты
@bot.message_handler(content_types=['text'])
def inline_key(a):
if a.text == "Хочу предсказание":
mainmenu = types.InlineKeyboardMarkup( )
key1 = types.InlineKeyboardButton(text='', callback_data='key1')
key2 = types.InlineKeyboardButton(text='', callback_data='key2')
key3 = types.InlineKeyboardButton(text='', callback_data='key3')
mainmenu.add(key1, key2, key3)
bot.send_message(a.chat.id, 'Выбери печеньку...', reply_markup=mainmenu)
@bot.callback_query_handler(func=lambda call: True)
def callback_inline(call):
global mainmenu
if call.data == "mainmenu":
mainmenu = types.InlineKeyboardMarkup( )
key1 = types.InlineKeyboardButton(text='', callback_data='key1')
key2 = types.InlineKeyboardButton(text='', callback_data='key2')
key3 = types.InlineKeyboardButton(text='', callback_data='key3')
mainmenu.add(key1, key2, key3)
bot.edit_message_reply_markup(call.message.chat.id, call.message.message_id, reply_markup=mainmenu)
elif call.data == "key1":
next_menu = types.InlineKeyboardMarkup( )
back = types.InlineKeyboardButton(text='✨', callback_data='mainmenu')
next_menu.add(back)
bot.edit_message_text('Лучшее - враг хорошего.', call.message.chat.id, call.message.message_id,
reply_markup=next_menu)
if call.data == "mainmenu":
bot.edit_message_text('Выбери печеньку...', call.message.chat.id, call.message.message_id,
reply_markup=mainmenu)
elif call.data == "key2":
next_menu2 = types.InlineKeyboardMarkup( )
back = types.InlineKeyboardButton(text='✨', callback_data='mainmenu')
next_menu2.add(back)
bot.edit_message_text('Каждому причитается столько счастья, сколько сам в силах подарить.',
call.message.chat.id, call.message.message_id,
reply_markup=next_menu2)
if call.data == "mainmenu":
bot.edit_message_text('Выбери печеньку...', call.message.chat.id, call.message.message_id,
reply_markup=mainmenu)
elif call.data == "key3":
next_menu2 = types.InlineKeyboardMarkup( )
back = types.InlineKeyboardButton(text='✨', callback_data='mainmenu')
next_menu2.add(back)
bot.edit_message_text('Дорога в тысячу миль начинается с первого шага.', call.message.chat.id, call.message.message_id, reply_markup=next_menu2)
if call.data == "mainmenu":
bot.edit_message_text('Выбери печеньку...',call.message.chat.id, call.message.message_id, reply_markup=mainmenu)
bot.polling(none_stop=True, interval=0)