- 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}')
                                 
        
Ну очевидно же, как улучшить. Добавлять новые команды до тех пор, пока не придёт озарение.
а зачем это кстати? это же не пропустит кадр ивент лупа? Там вообще есть ивент луп?
А задержка нужна чтобы ВК не забанил за спам, видимо.
Я просто немного новичок, стараюсь как могу
Для йажи что-то официальное есть:
https://vk.com/dev/Java_SDK
А для питона, кажется, нету )))
«SDK упрощает использование API ВКонтакте в Android-приложениях. Пользователи смогут пройти авторизацию без ввода логина и пароля. После этого вы сможете сразу начать использовать методы API»
https://vk.com/dev/android_sdk
А ещё есть для ПХП и йажаскрипта.
//Create service actor
Integer appId = 4123123;
String accessToken = "sadf0asfsadfas";
ServiceActor actor = new ServiceActor(appId, accessToken);
Я думал, может для говна под названием mail agent использовалась javaSDK, хуй ведь знает, на чем он написан? Стал гуглить, и увидел это:
https://agent.mail.ru/linux
> Агент для Linux
>Удобство работы и ничего лишнего.
> Linux 16.04 и новее
Это ж охуенно. Linux 16.04!
Чуваки из будущего, наверное. У меня пока пятый.
Вы, кстати, вообще, осознаёте, какой пирдолинг стоит при желании делать саунд-продакшен под линуксом? И какой при этом флоу, когда всё отконфижено нормально?
Примерно. Мне подключения пианинки к lmms хватило: по-умолчанию такой охуенный пердёж, дисторшен и лаги, что можно просто ебашить и не париться с эффектами.
Не забывай про пшшшпшшшаудио от поттеринга, которое сейчас во всех дистрибах по-умолчанию.
Я конечно не ыксперд, но если верить заявлениям пердоликам что можно все поменять в леньке. А в винде как всегда сосни.
Угу. Приходишь ты в магазин за гитарой, а тебе продают лопату. Ахуенный инструмент, бери не пожалеешь, надо всего лишь струны прикрутить и звукосниматель. Ну и древко доработать напильником рубанком.
Вся суть линукса.
Вон теннисные ракетки, начиная со среднего ценового уровня, вообще продаются без струн, потому что типа ты всё равно будешь нормальные ставить
А покупать гитару ради куска дерева - ебанутсво чтоли. Нахуя и зачем тебе это зубочистка и зачем с этим говном тебе пердолится, когда можно было заведомо купить нормальную гитару с нормальными звукоснимателями.
Но я не гитарист, только рядом стоял
Я тоже не джитарист но джитару имею и даже могу 1 струну дергать, вот это блядь скилл!
И это на стоковых cort x6 звукоснимателях за 5 гривен. Ну да ладно, у каждого свой долбоебизм и свои заморочки на тему "прекрасного" и "идеального".
Приходишь ты в магазин за гитарой, а тебе продают УШМ. Ахуенный инструмент, бери не пожалеешь, надо всего лишь купить димер и защитный кожух, и рубанок на скочь прилепить. А Самое главное УНИВЕРСАЛЬНЫЙ!
Ну я вот знаю чувака, у которого в макоси музыка "типа" без пердолинга, но фактически там просто весь пердолинг перемещён в ёблю с пираченными софтами (не покупать же их в самом деле, тем более что для нормального продакшена их нужно штук шесть).
Вся суть винды.
в остальном сложно не согласиться
Это и на винде может быть киллер-фичей. Просто надо позиционировать такой софт под правильную ЦА. Любителей попердолиться и попревозмогать невозможное там хватает. Вспомни, как народ ебашит всякие моды к игрушкам, у которых даже API публичного то нету, не то что исходников.
А философия она всё-таки не у осей, а у людей. И чем популярнее ось, тем больше людей с различной философией тусуется вокруг них.
какая философия у винды? у лялиха? у фрибисди? у полуоси?
Да нету её. У нишевых дистрибов или какого-нибудь эппла может и есть какое-то консистентное видение, а у остальных с годами всё размылось. Философия -- это круто, конечно, но юзеров и разрабов то хочется привлечь.
- я десять лет пользуюсь макосью, имхо самыми большими изменениями были отказ от x32, что принесло обычному юзеру только геморрой, и плоский дизайн, спижженный у мс
Кстати, а нахуя? Неужели мешок 32-битных либ и переходник с 32-битного API на 64-битное так дорого обходится в поддержке? Все остальные вроде смирились с этим костылём.
Ну и если уж хочется зафорсить миграцию, почему бы не запретить 32-битность только для нового софта?
решили унифицировать. но у эппла вроде современных железок на тридцати двух битах и не осталось давным давно
Да 32-битных железок и на ПК то не осталось. Я про 32-битный софт.
Я представляю, какая боль в жопе там была у разрабов, которые до последнего сидели на 32 и забивали на 64, а потом эппл им сказал: "идите нахуй из моего стора пока не портанёте".
- ну тут надо отдать должное, за пару версий до Каталины при запуске 32-битного софта появлялось предупреждающее окошко. так что софт, который не был заброшен, должны были успеть обновить.
правда, официальный wine до сих пор на новых макосях не работает, какая жалость
Как-то так. Кто-то юзает потому что тыщу серваков поднять выходит дешевле чем на венде, кто-то юзает потому что подпилить легче чем проприетарщину, кто-то юзает потому что идеология RMS'а нравится. У всех свои тараканы.
Даже у RMS и Линуса философия разная, вспомни их спор о GPLv3.
З.Ы. Ну и с развитием ОС она становится интересна каким-то другим группам и они начинают тащить одеяло на себя.
Какой еблан будет себе мамаку покупать Раде хорошей интегрированной ЦАП/АЦП?
P.s. у меня аппаратное почему то ассоциируется со встроенным
16.04 - похоже на версию убунты.
Ubuntu 16.04 LTS «Xenial Xerus»
Самое смешное, что Ubuntu is not Linux
Кстати, смотри какой смайлик-петузок:
&(:4)<
Громко фер теть
Очень показательно, что даже полный нуб, используя язык программирования, отличный от «PHP», смог сделать параметризованный SQL-запрос и не обосраться с «инъекцией».