async def save_user_actions(): statistics = users_db.get('STATISTICS') if statistics is None: statistic_dict = {'downloads': 0} users_db.set('STATISTICS', json.dumps(statistic_dict)) statistics = users_db.get('STATISTICS') statistic_dict = json.loads(statistics) statistic_dict['downloads'] = int(statistic_dict['downloads']) + 1 users_db.set('STATISTICS', json.dumps(statistic_dict))
async def start_command(message: Message): is_user_in_db = users_db.get(message.chat.id) if not is_user_in_db: users_db.set(message.chat.id, message.chat.id) # await save_user_info(message.chat.id) await send_message(message.chat.id, 'command-start', markup=start_markup)
async def all_messages(message: Message): # Check, if there is no space in message if ' ' in message.text: await bot.send_message(message.chat.id, msg_dict['link-wrong']) return user_info = users_db.get(message.chat.id) if int(user_info) == 0: await bot.send_message( message.chat.id, msg_dict['user-invite-link'].format(message.chat.id)) return # Check user message if TIKTOK_LINK in message.text or any(x in str(message.text) for x in TIKTOK_LIST): # Send video by link message_wait = await bot.send_message(message.chat.id, msg_dict['message-wait']) is_sent = await send_by_link(message) if not is_sent: await bot.send_message(message.chat.id, msg_dict['unable_download']) else: await save_user_actions() await bot.delete_message(message.chat.id, message_wait.message_id) else: await bot.send_message(message.chat.id, msg_dict['link-wrong'])
async def get_users_language(): russian = 0 english = 0 turkish = 0 arabic = 0 no_lang = 0 referral = 0 users_id = users_db.keys() for user_id in users_id: if str(user_id, 'utf-8') == 'STATISTICS': continue user_info = json.loads(users_db.get(user_id)) lang = user_info['lang'] referral += user_info['ref'] if lang == 'ru': russian += 1 elif lang == 'en': english += 1 elif lang == 'tr': turkish += 1 elif lang == 'ar': arabic += 1 else: no_lang += 1 return referral, russian, english, turkish, arabic, no_lang
async def start_command(message: Message): await bot.send_message(message.chat.id, msg_dict['command-start']) user_info = users_db.get(message.chat.id) if user_info is None: users_db.set(message.chat.id, 0) split_text = str(message.text).split() if len(split_text) == 2: user_invited = split_text[1] user_invited_info = users_db.get(user_invited) users_db.set(user_invited, int(user_invited_info) + 1) await bot.send_message(user_invited, msg_dict['user-invited'].format( message.from_user.full_name, message.chat.id), parse_mode='markdown')
async def backup_users_id(message): list_users_id = users_db.keys() with open('@TikTokchekBot users_id.csv', 'w', newline='') as file: writer = csv.writer(file) writer.writerow(["Number", "User Id", "User info"]) with open('@TikTokchekBot users_id.csv', 'a', newline='') as file: for i, user_id in enumerate(list_users_id, start=1): writer = csv.writer(file) writer.writerow([i, user_id, users_db.get(user_id)]) await bot.send_document(message.chat.id, open('@TikTokchekBot users_id.csv', 'rb')) os.remove('@TikTokchekBot users_id.csv')
async def get_bot_stat(message): waiting_message = await bot.send_message(ADMIN_ID, msg_dict['message-wait']) files_db = users_db.get('STATISTICS') downloads_count = json.loads(files_db)['downloads'] # Get statistics follow_count = len(users_db.keys()) admin_text = f'*Статистика бота*:\n\n' \ f' Пользователей: *{follow_count}*\n' \ f' Скачиваний: *{downloads_count}*\n' \ f'\nЗапущен: *5 Июля, 2020*' await bot.send_message(message.chat.id, admin_text, parse_mode='markdown') await bot.delete_message(message.chat.id, waiting_message.message_id)