- 01
- 02
- 03
- 04
- 05
- 06
- 07
- 08
- 09
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- 31
- 32
- 33
- 34
- 35
- 36
- 37
- 38
- 39
- 40
- 41
- 42
- 43
- 44
- 45
- 46
- 47
- 48
- 49
- 50
- 51
- 52
- 53
- 54
- 55
- 56
- 57
- 58
- 59
- 60
- 61
- 62
- 63
- 64
- 65
- 66
- 67
- 68
- 69
- 70
- 71
- 72
- 73
- 74
- 75
- 76
- 77
- 78
- 79
- 80
- 81
- 82
- 83
- 84
- 85
- 86
- 87
- 88
- 89
- 90
- 91
- 92
- 93
- 94
import datetime, random, time, os, vk_api
import sqlite3 as sl
from vk_api.exceptions import Captcha
from vk_api.longpoll import VkEventType, VkLongPoll
from functions import *
from settings import *
vk_session = vk_api.VkApi(token=token, api_version=5.126)
longpoll = VkLongPoll(vk_session)
vk = vk_session.get_api()
now = datetime.datetime.now()
for event in longpoll.listen():
    try:
        def send_msg(msg='', chat=False, prefix=True, attach=''):
            if chat:
                vk.messages.send(chat_id=event.chat_id,message=msg,attachment=attach)
            else:
                vk.messages.send(user_id=event.user_id,message=msg,attachment=attach)
    except Captcha:
        time.sleep(1)
        send_msg('Ошибка. Слишком частые запросы.')
    except Exception as e:
        time.sleep(1)
        send_msg(f'Неизвестная ошибка при отправке сообщения.\n{e}')
    try:
        if event.type == VkEventType.MESSAGE_NEW and event.to_me:
            user_get = vk.users.get(user_ids=event.user_id)
            first_name = user_get[0]['first_name']
            last_name = user_get[0]['last_name']
            if event.from_chat and event.chat_id and (event.message == '!meme' or event.message == '!мем'):
                meme_create()
                upload = vk_api.VkUpload(vk_session)
                try:
                    a = upload.photo_messages(photos=os.path.dirname(__file__) + '/random_meme.jpg', peer_id=event.user_id)
                    send_msg(attach=f'photo{a[0]["owner_id"]}_{a[0]["id"]}',chat=True, prefix=False)
                except:
                    send_msg("Ошибка. Попробуйте снова.")
            elif event.from_chat and event.chat_id and (event.message == '!info' or event.message == '!инфо'):
                response = requests.get(f'https://vk.com/foaf.php?id={event.user_id}')
                soup = BeautifulSoup(response.text, 'lxml')
                created = soup.find('ya:created').get('dc:date')
                created1 = datetime.datetime.strptime(created, '%Y-%m-%dT%H:%M:%S%z').replace(tzinfo=None)
                diff = datetime.datetime.now()-created1
                modified = soup.find('ya:modified').get('dc:date')
                modified1 = datetime.datetime.strptime(modified, '%Y-%m-%dT%H:%M:%S%z').replace(tzinfo=None)
                send_msg(f'''https://vk.com/id{event.user_id}\nИмя пользователя: {first_name} {last_name}\nАккаунт существует {diff.days} дней.\nДата регистрации: {created1.month} {months[created1.month-1]} {created1.year} в {created1.time()}\nПоследнее обновление информации: {modified1.month} {months[modified1.month-1]} {modified1.year} в {modified1.time()}''', chat=True)
            elif event.from_user and event.user_id and (event.message == '!info' or event.message == '!инфо'):
                response = requests.get(f'https://vk.com/foaf.php?id={event.user_id}')
                soup = BeautifulSoup(response.text, 'lxml')
                created = soup.find('ya:created').get('dc:date')
                created1 = datetime.datetime.strptime(created, '%Y-%m-%dT%H:%M:%S%z').replace(tzinfo=None)
                diff = datetime.datetime.now()-created1
                modified = soup.find('ya:modified').get('dc:date')
                modified1 = datetime.datetime.strptime(modified, '%Y-%m-%dT%H:%M:%S%z').replace(tzinfo=None)
                send_msg(f'''https://vk.com/id{event.user_id}\nИмя пользователя: {first_name} {last_name}\nАккаунт существует {diff.days} дней.\nДата регистрации: {created1.month} {months[created1.month-1]} {created1.year} в {created1.time()}\nПоследнее обновление информации: {modified1.month} {months[modified1.month-1]} {modified1.year} в {modified1.time()}''')
            elif event.from_user and event.user_id and event.message == '!coin':
                coin = 'Орёл' if random.randint(0, 1) == 1 else 'Решка'
                send_msg(f'{coin}')
            elif event.from_user and event.user_id and (event.message == '!anek' or event.message == '!анек'):
                send_msg(f'{get_anek()}', prefix=False)
            elif event.from_user and event.user_id:
                con = sl.connect(os.path.dirname(__file__) + '/users.db')
                count = 0
                with con:
                            con.execute("""
                                CREATE TABLE IF NOT EXISTS USER (
                                    user_id INTEGER NOT NULL PRIMARY KEY,
                                    name TEXT,
                                    permission_lvl INTEGER
                                );
                            """)
                with con:
                    data = con.execute("SELECT * FROM USER")
                    for row in data:
                        if event.user_id in row:
                            count += 1
                    if count == 0:
                        send_msg(f'''Привет, это сообщение отправлено автоматически.\nПока я добавляю информацию о тебе в базу данных, ты можешь ознакомиться с командами написав !help\nКоманд не так много, но в будущем их станет больше ;)''')
                        sql = 'INSERT INTO USER (user_id, name, permission_lvl) values(?, ?, ?)'
                        data = [(event.user_id, f'{first_name} {last_name}', 1)]
                        with con:
                            con.executemany(sql, data)
            if event.attachments:
                print(
                    f"{now}\nuser_id: {event.user_id} | {first_name} {last_name}\nmessage: {event.message}\nattach: {event.attachments}\n")
            else:
                print(
                    f"{now}\nuser_id: {event.user_id} | {first_name} {last_name}\nmessage: {event.text}\n")
    except Captcha:
        time.sleep(1)
        send_msg('Ошибка. Слишком частые запросы.')
    except Exception as e:
        time.sleep(1)
        send_msg(f'Упс. Произошла неизвестная ошибка.\n{e}')