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))
Esempio n. 2
0
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)
Esempio n. 3
0
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
Esempio n. 5
0
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)