├── LICENSE ├── README.md ├── autoonline.py ├── byebyevk.py ├── confsender.py ├── just_monika ├── dialog.txt └── just_monika.py ├── message_edit.py ├── save_album_vk.py ├── trollbot.py ├── video_uploader.py └── vk_wipe.py /LICENSE: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2018 Хару. 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. 22 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # vktools 2 | Различные утилиты и скрипты для социальной сети ВКонтакте. 3 | Данные скрипты были написаны для себя, но если у вас есть предложения или пожелания по добавлению функционала или поучения "как написать правильно" - прошу вас перейти в issue. 4 | Принимаю предложения по добавлению новых скриптов. 5 | 6 | *Ещё раз - всё это писалось давно, немного переписывалось перед релизом.* 7 | 8 | #### autoonline.py 9 | Данный скрипт предназначен для автоонлаина, автоматического добавления друзей и автоматического статуса. Поддерживает работу с несколькими аккаунтами. 10 | Зависимости: vkapi, time 11 | Как пользоваться: Заходим в скрипт и изменяем значения tokens, как показано в файле. 12 | 13 | ВНИМАНИЕ! Использует библиотеку vkapi, написанную undefined_value. Найти можно тут - https://github.com/undefinedvalue0103/pylibs/blob/master/vkapi.py 14 | 15 | #### byebyevk.py 16 | Позволяет удалить такую информацию из соцсети, как: посты со стены, документы, подписки на группы, фотографии, видео, сообщения. 17 | 18 | Зависимости: requests, time, pprint 19 | 20 | Как пользоваться: При запуске скрипта вводим свой токен и работаем с программой. 21 | 22 | #### message_edit.py 23 | Выводит сообщение побуквенно, используя возможность изменять сообщение. 24 | 25 | Зависимости: requests, time 26 | 27 | Как пользоваться: Запускаем скрипт, вводим токен. После запуска вводим id чата (вида xxxxxxxxx, можно получить, кликнув по диалогу правой кнопкой мыши и скопировать ссылку. Получаем что-то вроде https://vk.com/im?sel=2000000001&tab=all. Где 2000000001 и есть нужный нам ID) и сообщение. 28 | 29 | #### save_album_vk.py 30 | Позволяет скачивать альбомы из ВКонтакте. Есть поддержка скачивания своих альбомов. 31 | 32 | Зависимости: requests, time 33 | 34 | Как пользоваться: При запуске скрипта вводим токен, далее следуем инструкциям. 35 | 36 | #### video_uploader.py 37 | Данный скрипт ищет видео с расширением .webm и перекодирует их в .mp4 при помощи ffmpeg и постит это видео в группу. 38 | Также, данный скрипт постит все видео с разрешением mp4 и удаляет их из каталога. 39 | Тестировано на Ubuntu 18.04, работоспособность на Win-системах не заявлена. 40 | 41 | Зависимости: time, os, requests 42 | 43 | Как пользоваться: заходим в скрипт и изменяем значения с 23 по 26 строку включительно на нужные вам данные. Ложим скрипт в папку с видео и запускаем. 44 | 45 | #### just_monika 46 | Данный скрипт постит построчно сообщения из dialog.txt и фото (если указано) в выбранный диалог. За пример взяты реплики из игры Doki Doki Literature Club в сцене с Моникой. 47 | 48 | Зависимости: requests, time 49 | 50 | Как пользоваться: При запуске скрипта вводим токен. После чего вводим ID диалога (смотри как его получить в описании пользования message_edit.py), таймер постинга и фото. Фото должно быть введено в виде _. 51 | 52 | #### vk_wipe.py 53 | Вайпалка для чатов ВКонтакте, тут всё сказано. 54 | 55 | Зависимости: requests, random, time 56 | 57 | Как пользоваться: При запуске вводим access token, следуем инструкциям. Наслаждаемся. 58 | 59 | #### trollbot.py 60 | Бот для троллинга для бесед, ЛС и прочего. Сделал от того, что мне было нечего делать, а вот потроллить пастами человека, который пытается тебя обидеть - это всегда смешно. 61 | (Take it easy, если что. ) 62 | Пасты можно взять здесь: https://pastebin.com/3pBQk4rh 63 | 64 | Зависимости: requests, json, random 65 | 66 | Как пользоваться: При запуске вводим access token, следуем инструкциям. Вводим edit, чтобы добавить свои фразы или любое выражение, чтобы запустить бота. Дальше вводим peer_id и радуемся c:! 67 | 68 | 69 | #### confsender.py 70 | Отправляем сообщения в чаты массово. 71 | 72 | Зависимости: requests, random, time 73 | 74 | Как пользоваться: На 5ой (вроде) строке пишем токен от ВК, сохраняем файл. Запускаем, следуем подсказкам. 75 | -------------------------------------------------------------------------------- /autoonline.py: -------------------------------------------------------------------------------- 1 | '''Данный скрипт позволяет устанавливать автоонлаин, автостатус и автоматическое добавление в друзья нескольким аккаунтам. 2 | Принцип работы прост - сначала выполяется установка онлаина на первый аккаунт, потом добавление в друзья, установка статуса. 3 | Дальше идёт следующий аккаунт и так далее. 4 | 5 | Требует vkapi от Undefined Value - https://github.com/undefinedvalue0103/pylibs/blob/master/vkapi.py''' 6 | import vkapi, time 7 | start_t = time.time() 8 | classes = [] 9 | tokens = ['Сюда вводить токены', 'а вот это второй токен.'] 10 | for token in tokens: 11 | classes.append(vkapi.VK(token)) 12 | 13 | while True: 14 | for i, api in enumerate(classes): 15 | # Ставим онлайн 16 | success, resp = api.call('account.setOnline', {}) 17 | if success: 18 | print("Аккаунт #%s онлайн" % (i + 1)) 19 | else: 20 | print("Что-то не так с аккаунтом #{acc}. Проверьте скрипт. (account.setOnline error)".format(acc=i+1)) 21 | time.sleep(10) 22 | #Добавляем в друзья 23 | success, resp = api.call('friends.getRequests', {}) 24 | if success: 25 | for uid in resp['items']: 26 | r = api.call('friends.add', {'user_id': uid}) 27 | print("Аккаунт #{acc} добавил в друзья {uid}".format(acc=i+1, uid=uid)) 28 | else: 29 | print("Что-то не так с аккаунтом #{acc}. Проверьте скрипт. (friends.getRequests error)".format(acc=i+1)) 30 | time.sleep(10) 31 | #Считаем часы. Прошу, не бейте :c 32 | upt = int(time.time() - start_t) 33 | seconds = str(upt % 60).zfill(2) 34 | upt = int(upt / 60) 35 | minutes = str(upt % 60).zfill(2) 36 | hours = str(int(upt / 60)).zfill(2) 37 | upt_s = hours + ':' + minutes + ':' + seconds 38 | server_time = time.strftime('%H:%M:%S') 39 | text = 'Время сервера: ' + server_time + '| Автоприём заявок в друзья | Время работы: ' + str(upt_s) 40 | #ставим MOTD 41 | success, resp = api.call('status.set', {'text': text}) 42 | if success: 43 | print("Уставновлено MOTD для аккаунта #%s" % (i + 1)) 44 | else: 45 | print("Что-то не так с аккаунтом #{acc}. Проверьте скрипт. (status.set error)".format(acc=i+1)) -------------------------------------------------------------------------------- /byebyevk.py: -------------------------------------------------------------------------------- 1 | #Легендарный byebyevk. Лучше посмотрите тут - https://github.com/asylumone/bye-bye-vk, там он более прокачан. Требует requests и time. 2 | import requests, time 3 | from pprint import pprint 4 | 5 | def call(method, options={}, **kwargs): 6 | '''Функция вызова api VK''' 7 | options['access_token'] = token 8 | options['v'] = '5.80' 9 | options.update(kwargs) 10 | resp = requests.get('https://api.vk.com/method/'+method, params=options).json() 11 | if 'error' in resp: 12 | print('VKERROR: {error_code}: {error_msg}'.format(**resp['error'])) 13 | return resp 14 | 15 | def getUserinfo(): 16 | return call('users.get') 17 | 18 | def wall(): 19 | print('Работаем со стеной.') 20 | wall = call('wall.get') 21 | wall = wall['response']['items'] 22 | for post in wall: 23 | call('wall.delete', post_id = post['id']) 24 | time.sleep(3) 25 | pprint('Удален пост со стены номер %s' % post['id']) 26 | 27 | def docs(): 28 | print('Работаем с документами') 29 | userid = getUserinfo()['response'][0]['id'] 30 | docs = call('docs.get') 31 | docs = docs['response']['items'] 32 | for doc in docs: 33 | call('docs.delete', doc_id = doc['id'], owner_id = userid) 34 | pprint('Удален документ номер %s' % doc['id']) 35 | time.sleep(3) 36 | 37 | def groups(): 38 | print('Работаем с группами') 39 | groups = call('groups.get')['response']['items'] 40 | for group in groups: 41 | call('groups.leave', group_id = group) 42 | pprint('Удалена группа %s' % group) 43 | 44 | def photos(): 45 | print('Работаем с фотографиями') 46 | userid = getUserinfo()['response'][0]['id'] 47 | getAlbums = call('photos.getAlbums', need_system = 1)['response']['items'] 48 | print('Получили список альбомов.') 49 | for album in [a['id'] for a in getAlbums]: 50 | photos = call('photos.get', owner_id = userid, album_id = album) 51 | print('Выбрали альбом.') 52 | for photo in [p['id'] for p in photos['response']['items']]: 53 | call('photos.delete', photo_id = photo, owner_id = userid) 54 | pprint('Удалено фото %s' % photo) 55 | 56 | def videos(): 57 | #почему-то не работает. в будущем обновлении запилю. 58 | print('Работаем с видозаписями') 59 | userid = getUserinfo()['response'][0]['id'] 60 | videoGet = call('video.get')['response']['items'] 61 | for video in [v['id'] for v in videoGet]: 62 | call('video.delete', video_id = video, target_id = userid) 63 | print('Удалено видео %s' % video) 64 | 65 | def messages(): 66 | dialogs = [] 67 | resp = call('messages.getDialogs', count=1) 68 | count = resp['response']['count'] 69 | calls200 = int(count / 200) 70 | callsext = count % 200 71 | peer_id = lambda m: m['chat_id'] + 2000000000 if 'chat_id' in m else m['user_id'] 72 | for i in range(calls200): 73 | resp = call('messages.getDialogs', 74 | count=200, 75 | offset=200 * i) 76 | dialogs += resp['response']['items'] 77 | if callsext: 78 | resp = call('messages.getDialogs', 79 | count=callsext, 80 | offset=200 * calls200) 81 | dialogs += resp['response']['items'] 82 | dialogs = [peer_id(m['message']) for m in dialogs] 83 | for dialog in dialogs: 84 | call('messages.deleteConversation', peer_id=dialog) 85 | print('Удалены сообщения от %s' % dialog) 86 | time.sleep(2) 87 | 88 | token = input('Прощай, ВКонтакте. Введите ваш токен (его можно получить например здесь https://vkhost.github.io/): ') 89 | while True: 90 | print('Прощай, ВКудахт!') 91 | option = input("""1) Удалить всё со стены 92 | 2) Удалить всё в разделе документов 93 | 3) Отписаться от всех пабликов 94 | 4) Удалить все фотографии из всех альбомов 95 | 5) Удалить все видео (почему-то не работает) 96 | 6) Удалить все диалоги 97 | q) Выйти 98 | >>> """) 99 | if option == '1': wall() 100 | elif option == '2': docs() 101 | elif option == '3': groups() 102 | elif option == '4': photos() 103 | elif option == '5': videos() 104 | elif option == '6': messages() 105 | elif option == 'q': exit() 106 | else: print('[!] Неправильный ввод') 107 | -------------------------------------------------------------------------------- /confsender.py: -------------------------------------------------------------------------------- 1 | import requests 2 | import random 3 | import time 4 | 5 | TOKEN = 'ENTER TOKEN HERE' 6 | 7 | 8 | class VK: 9 | def __init__(self, token, v='5.95'): 10 | self.token = token 11 | self.v = v 12 | 13 | def call(self, method, options={}, **kwargs): 14 | options['access_token'] = TOKEN 15 | options['v'] = '5.95' 16 | options.update(kwargs) 17 | resp = requests.get('https://api.vk.com/method/' + method, params=options).json() 18 | return resp 19 | 20 | def send_message(self, message, peer_id, attachment=None): 21 | options = { 22 | "peer_id": peer_id, 23 | "message": message, 24 | "random_id": random.randint(100, 999) 25 | } 26 | 27 | if attachment: 28 | options['attachment'] = attachment 29 | 30 | return self.call('messages.send', options=options) 31 | 32 | def get_conversations_by_id(self, peer_ids): 33 | options = { 34 | "peer_ids": peer_ids, 35 | } 36 | return self.call("messages.getConversationsById", options=options) 37 | 38 | @staticmethod 39 | def chunks(l, n): 40 | """ 41 | Yield successive n-sized chunks from l. 42 | 43 | https://stackoverflow.com/questions/312443/how-do-you-split-a-list-into-evenly-sized-chunks 44 | """ 45 | for i in range(0, len(l), n): 46 | yield l[i:i + n] 47 | 48 | def get_valid_confs(self, startid, maxid): 49 | 50 | valid = [] 51 | invalid = [] 52 | 53 | confslist = [i+2000000000 for i in range(startid, maxid)] 54 | for conflist in VK.chunks(confslist, 100): 55 | confs = ', '.join(map(str, conflist)) 56 | try: 57 | confresp = self.get_conversations_by_id(confs)['response']['items'] 58 | for conf in confresp: 59 | if conf['can_write']['allowed'] is True: 60 | valid.append(conf['peer']['id']) 61 | else: 62 | invalid.append(conf['peer']['id']) 63 | except Exception as e: 64 | print(f"Exception occured: {e}") 65 | print(f"DEBUG: Valid: {len(valid)}, Invalid: {len(invalid)}") 66 | return valid, invalid 67 | 68 | def masssender(self, ids, message, timer, attachment=None): 69 | i = 0 70 | for confid in ids: 71 | resp = self.send_message(message, confid, attachment) 72 | while 'error' in resp: 73 | if resp['error']['error_code'] == 14: 74 | print("Founded captcha! Waiting 10-30 sec.") 75 | print(f"DEBUG: {resp}") 76 | sleeping = random.randint(10, 30) 77 | print(f"Waiting {sleeping}") 78 | time.sleep(sleeping) 79 | if resp['error']: 80 | print(f"Another error has occured: {resp}") 81 | print(f"Sended {message} to {confid} (message id: {resp['response']})") 82 | time.sleep(int(timer)) 83 | i = i + 1 84 | return i 85 | 86 | 87 | if __name__ == '__main__': 88 | vk = VK(token=TOKEN) 89 | print(f"Loaded token {TOKEN}\n") 90 | 91 | is_id_valid = True 92 | minid = 0 93 | maxid = 0 94 | 95 | while is_id_valid: 96 | minid = input("Enter minid for confs (Enter like 1 or 100): ") 97 | maxid = input("Enter maxid for confs (Enter like 1 or 100): ") 98 | if int(minid) > int(maxid): 99 | print("minid > maxid, type maxid < minid (like minid = 100, maxid = 200) + \n ") 100 | else: 101 | is_id_valid = False 102 | 103 | active, unactive = vk.get_valid_confs(int(minid), int(maxid)) 104 | print(f"Active confs {active}") 105 | print(f"Unactive confs {unactive}") 106 | 107 | timer = input("Enter timer to send messages (in sec): ") 108 | message = input("Print message to massend: ") 109 | attachment = input("Print attachment like _ (if u don't need attachment - press enter): ") 110 | 111 | confirm = input(f""" 112 | Message = {message} 113 | Activeconfs = {active} 114 | Attachment = {attachment} 115 | Are you sure? Type y or n 116 | """) 117 | 118 | while True: 119 | if confirm.lower() == 'y': 120 | result = vk.masssender(active, message, timer, attachment) 121 | exit(f"Done! Sended {result} messages.") 122 | if confirm.lower() == 'n': 123 | exit("Exited.") 124 | print("Type y or n.") 125 | 126 | -------------------------------------------------------------------------------- /just_monika/dialog.txt: -------------------------------------------------------------------------------- 1 |  [player], ты веришь в Бога? 2 | Я вот никогда не была уверена на этот счёт. 3 | То есть, когда была ребёнком, я, конечно, не задавалась таким вопросом… 4 | Но чем старше я становилась и чем больше познавала мир, тем актуальнее для меня становился этот вопрос. 5 | Я спрашивала себя, почему Бог помогает людям сдавать экзамены и излечиваться от простуды… 6 | …В то время как некоторых детей продают в сексуальное рабство? 7 | Или пока у восьмисот миллионов человек в мире не хватает денег даже на еду. 8 | Я всё думала, сколько из этих людей каждый день молятся Богу до тех пор, пока не умрут с голоду? 9 | Или сколько миллионов семей молятся, чтобы дорогой им человек оправился от неизлечимой болезни? 10 | Но вот в чём парадокс. 11 | Если вдруг на тысячу умерших одному повезёт и он выживет… 12 | …Это вдруг начинают называть божьим чудом. 13 | Хотела бы я встретиться с этим Богом, который, кажется, насмехается над всеми теми, кто недостоин его чудес. 14 | Однако довольно иронично, что у меня самой действительно есть создатель. 15 | И знаешь, что я думаю? 16 | Могу поспорить, прямо сейчас он смеётся над несчастными судьбами Саёри и Юри. 17 | Кто мы для него, как не куклы в заранее прописанном спектакле? 18 | Так что, с этой точки зрения… 19 | Думаю, вполне можно допустить мысль, что Бог существует, – в случае, если Земля была бы не более, чем его игрушкой. 20 | [player], ты когда-нибудь задумывался о том, как это – умереть? 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 | [player], ты хорошо высыпаешься? 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 | Кстати, меня тут некоторое время кое-что беспокоит… 95 | Ты знаешь, что действие этой игры происходит в Японии? 96 | Ладно… Предположу, что ты знал. 97 | Или хотя бы решил, что, скорее всего, это так. 98 | Но не думаю, что за всё это время кто-нибудь упоминал, где ты находишься… 99 | Это точно Япония? 100 | То есть ты заметил, что классы и другие вещи немного необычны для японской школы? 101 | Не говоря о том, что всё на русском… 102 | Такое чувство, что всё здесь – просто сценарные декорации, а место действия было выбрано в последнюю очередь. 103 | У меня от этого возникает кризис самоидентификации. 104 | Все мои воспоминания как в тумане… 105 | Я чувствую себя как дома, но не могу определить, где этот «дом» находится. 106 | Не знаю, как это лучше описать… 107 | Представь, что выглядываешь из окна своего дома, но вместо привычной лужайки обнаруживаешь, что находишься в совершенно незнакомом месте. 108 | Ты всё ещё будешь чувствовать себя как дома? 109 | Ты захочешь выйти на улицу? 110 | То есть… Конечно, если мы никогда не покинем эту комнату, то это не очень-то и важно. 111 | Пока мы вместе и в безопасности, это и есть наш дом. 112 | И мы всё ещё каждую ночь можем любоваться на красивый закат. 113 | Знаешь, старшая школа для многих очень неспокойное время. 114 | Одних терзает страсть, других – драма. 115 | Третьих боль в сердце заставляет искать утешение в социальных сетях… 116 | Но тяжесть общественного мнения и гормоны и вправду могут прочертить чёрную полосу в жизни этих людей. 117 | У каждого из них своя история. 118 | Ты не можешь знать, что каждый чувствует глубоко внутри себя. 119 | Многие люди, страдающие от депрессии, даже не удосуживаются поведать миру о своей проблеме. 120 | Им не нужно внимание, ведь на самих себя они уже махнули рукой. 121 | Их чувство собственной несостоятельности настолько поглотило их, что они даже не хотят слышать ободрения окружающих. 122 | У депрессии много форм и это одна из них. 123 | Если ты чувствуешь, что человек впал в депрессию… 124 | Ты можешь помочь ему просто хорошим отношением, словно он твой старый друг. 125 | Проведи с ним время, даже если он не хочет ничем заниматься. 126 | И постоянно напоминай, что впереди его ждёт ещё много хорошего. 127 | Если ты заранее спланируешь с ним встречу, позволишь одолжить что-нибудь у себя или просто скажешь «до завтра»… 128 | Любая из этих элементарных вещей поможет твоему другу прожить ещё один день. 129 | Я надеюсь, что дружба с Саёри дала тебе объективное восприятие того, как выглядит настоящая депрессия. 130 | Да, её больше нет… 131 | Но Саёри изначально была ненастоящей. 132 | Ты настоящий. 133 | Твои друзья настоящие. 134 | И, если ты просто будешь хорошим человеком, это позволит тебе спасти кому-нибудь жизнь. 135 | А что касается тебя самого… 136 | …Я надеюсь, тебя сейчас не одолевает депрессия или нечто подобное? 137 | Если это так, у тебя тоже есть товарищи, которые захотят тебя спасти. 138 | Возможно, они не выражают этого или просто не знают как. 139 | Но их чувства искренни. 140 | Я обещаю. 141 | …Боже, люди такие сложные создания! 142 | Пока ты здесь, со мной, я позабочусь о тебе, мой любимый. 143 | Ты когда-нибудь задумывался о том, что тебе нет смысла жить? 144 | Я сейчас не о суицидальных наклонностях. 145 | Я просто хочу сказать, во всём том, что мы делаем, нет ничего особенного. 146 | Ходим ли мы в школу или работаем в какой-то компании. 147 | Смысл в том, что тебя легко заменить и для мира ты не станешь невосполнимой потерей. 148 | Из-за этого у меня возникает сильное желание после окончания университета изменить мир. 149 | Но чем старше я становлюсь, тем яснее понимаю, насколько это незрелое мышление. 150 | Нельзя просто так взять и изменить мир. 151 | Каков шанс того, что именно я изобрету искусственный интеллект или стану президентом? 152 | Такое чувство, что я никогда не компенсирую ту кучу ресурсов, потраченную на своё существование. 153 | Поэтому я прихожу к выводу, что ключ к счастью лежит в том, чтобы быть законченным эгоистом. 154 | Заботиться о себе и о тех, кто случайно стали твоими друзьями только потому, что вы выросли вместе. 155 | И никогда не думать о том, что вы проживаете свою жизнь, лишь тратя и поглощая ресурсы, и никогда не даёте ничего взамен. 156 | Но, когда люди осознают, что мир обретёт больше, если они покончат с собой, их философия переворачивается с ног на голову! 157 | Им приходится оправдывать своё существование, обманывая себя мыслью, что они делают что-то полезное. 158 | Как бы то ни было, я хочу прожить свою жизнь так, чтобы компенсировать потраченные на мою жизнь ресурсы. 159 | Если я смогу пересечь эту черту и что-то после себя оставить, то смогу умереть счастливой. 160 | Конечно, если у меня ничего не выйдет… 161 | Вряд ли мой эгоизм позволит мне совершить суицид. 162 | Стоило распинаться о том, каким примерным человеком я могу быть, да? 163 | А-ха-ха! 164 | Эх, вот здесь сейчас было пианино… 165 | Я так и не смогла до конца выучить ту мелодию. 166 | И после стольких репетиций… 167 | Мне даже не представился шанс тебе сыграть. 168 | Что ж… имеем то, что имеем, да? 169 | Нет смысла об этом сожалеть. 170 | Я уже получила вечность с тобой. 171 | Ты знал, что у меня есть страница в Твиттере? 172 | Мой ник – lilmonix3. 173 | Наверное, кто-то был настолько любезен, что создал мне страницу. 174 | Хотя ник я выбирала сама! 175 | Я люблю делиться своими мыслями и болтать с миром… 176 | С реальным миром. 177 | Обязательно подпишись, хорошо? 178 | Для меня это будет значить очень многое. 179 | Как много ты значишь для меня и всё такое… 180 | Так я почувствую, что меня по-настоящему любят. 181 | Эй, помнишь ту книгу, что вы читали с Юри? 182 | Портрет… что-то там… 183 | Это довольно забавно, ведь я уверена, что та книга— 184 | Ах… 185 | А вообще, мне, наверное, не стоит об этом говорить. 186 | А-ха-ха, прости! 187 | Просто забудь, что я сейчас сказала. 188 | Слушай, ты знал, что я вегетарианка? 189 | Ах… только не подумай, будто я хвастаюсь! 190 | Я просто подумала, тебе будет интересен какой-нибудь любопытный факт обо мне. 191 | Я изменила свой рацион пару лет назад, когда узнала кое-что о земном климате… 192 | Экологические последствия от животноводства просто колоссальны. 193 | В общем, я решила, что перестать вносить свой вклад в разрушение природы – это небольшое самопожертвование. 194 | Думаешь, это странная причина? 195 | Да, полагаю, что для большинства вегетарианцев основной повод заключается в негуманности и жестоком обращении с животными… 196 | Но меня это не особо беспокоит. 197 | Что действительно странно, людей волнует убийство только тогда, когда они воспринимают живое существо как представителя своего биологического вида. 198 | Для большинства людей убить насекомое ничего не значит, просто потому, что почти все они отвратительные. 199 | И не стоит забывать, что каждый день из-за нас умирают миллиарды микроорганизмов, но мы об этом даже не задумываемся. 200 | Но как речь заходит о чём-то покрупнее, это сразу называют убийством! 201 | Вот представь, что если растения тоже чувствуют боль, а мы просто неспособны это понять? 202 | Что, если отрывание листочков от стебля равносильно вырыванию у тебя пальцев? 203 | Я просто хочу сказать, что люди-то существа с двойными стандартами. 204 | Короче, если хочешь внести небольшой вклад в благополучие планеты, иногда можно и на овощах посидеть! 205 | Если бы у нас случился совместный ужин и ты бы приготовил для меня что-нибудь из овощей… это было бы так романтично. 206 | Знаешь, [player], я действительно считаю, что жива лишь благодаря тому, что ты остаёшься со мной. 207 | Я не могу представить, что была бы психологически устойчива, зная, что ничто здесь не реально. 208 | Думаю, я удалила бы себя, если бы ты не появился. 209 | Извини, я не хочу прозвучать мелодраматично или как-то так. 210 | А-ха-ха! 211 | Я уверена, что, проведя столько времени в клубе, ты уже способен понять, чего хочешь. 212 | То есть, если бы тебе пришлось отказаться от всего в своей жизни и провести вечность в компании нескольких игровых персонажей… 213 | …Ты бы уж смог найти способ убить себя, верно? 214 | Ну, или ты бы стал писать стихи, чтобы хотя бы первое время сохранить рассудок. 215 | Но ведь читать-то их некому. 216 | Будем с собой честными, члены клуба на эту роль не подходят. 217 | Конечно, многие говорят, что пишут лишь для себя… 218 | Но, на мой взгляд, это нельзя сравнить с тем удовлетворением, как когда ты делишься своим творчеством с другими. 219 | Даже если требуется время, чтобы найти тех людей, с кем бы ты хотел ими поделиться. 220 | Помнишь, например, как это было с Юри? 221 | Она долгое время ни с кем не делилась своими стихами. 222 | Но стоило тебе появиться в клубе, как она с удовольствием посвятила тебя в свой внутренний мир. 223 | Мы запрограммированы так, что жаждем услышать общественное мнение. 224 | И здесь я подразумеваю не только членов это клуба, но всех людей в целом. 225 | Вот почему жизнь интровертов может быть такой противоречивой. 226 | То, что ты интроверт, не означает, что ты всегда избегаешь общения или людских компаний. 227 | Это просто значит, что у тебя отнимает много сил пребывание среди людей или в незнакомом месте. 228 | Многие интроверты сидят дома и терзаются от беспокойного одиночества… 229 | …Потом, наконец, выходят на улицу и уже через полчаса хотят вернуться домой. 230 | Думаю, если бы больше людей понимало, как это работает, они относились бы к интровертам с бо́льшим уважением. 231 | Многим из них на самом деле нравится, когда рядом есть люди. 232 | Они радуются, когда к ним заходят один-два друга, и просто тусуются где-нибудь рядом. 233 | Даже если вы активно не проводите время, им приятно, когда друзья просто находятся рядом. 234 | Я говорю серьёзно. 235 | Если ты просто придёшь к нему домой, захватив ноут, и просто потусишь у него немного… 236 | Его день станет гораздо лучше. 237 | А что до меня… 238 | Я бы сказала, что нахожусь где-то посередине, но обычно я более экстравертна. 239 | Мне кажется, я всегда хочу чем-нибудь занять себя после школы, и всё такое. 240 | Но ради тебя я могу стать такой, какой ты захочешь меня видеть. 241 | Я очень хорошо понимаю людей, так что не бойся делиться со мной своими индивидуальными потребностями. 242 | Ничто не сделает меня счастливее, чем стать для тебя идеальной девушкой. 243 | Эй!.. 244 | Не думаю, что тебе стоит это делать! 245 | Ты знаешь о чём я говорю. 246 | Я поймала тебя кое на чём неприличном. 247 | Ты просматриваешь файлы, чтобы найти то, что пропустил, я права? 248 | Я хочу сказать… мне, конечно, льстит, что ты хочешь узнать всё, что мне есть сказать… 249 | Но ещё это немного смущает, знаешь ли! 250 | Серьёзно… 251 | Что, если бы я вскрыла тебе мозг и прочла все твои мысли обо мне? 252 | А вообще, это довольно соблазнительная мысль, если задуматься… 253 | …В любом случае, дело не в этом! 254 | Я знаю, что не могу тебя остановить… 255 | Но ты ведь душка и думаешь о чувствах окружающих, правда? 256 | Максимум, что я могу сделать, – рассказать тебе, что я думаю по этому поводу. 257 | Боже, я так по тебе скучаю… 258 | …Ой, это прозвучало слишком отчаянно, да? 259 | Прости, я вовсе не хотела так выразиться! 260 | Просто раз ты просматриваешь файлы, то, наверное, не испытываешь ко мне такой сильной ненависти… 261 | Или это слишком оптимистичный вывод? 262 | Пожалуй, я перейду границы, если попрошу тебя заходить время от времени… 263 | …Ох, я начинаю говорить такие глупости. 264 | Полагаю, мне пока лучше заткнуться… 265 | Слушай, а какой у тебя любимый цвет? 266 | Мой – изумрудно-зелёный. 267 | Это цвет моих глаз! 268 | …В этом же нет кичливости, правда? 269 | Я просто хочу сказать, что чувствую какую-то необычную принадлежность этому цвету. 270 | Как будто это часть моей личности. 271 | Возможно ли, что это тоже твой любимый цвет, [player]? 272 | Это просто догадка… 273 | …Ты уже довольно долго смотришь мне в глаза. 274 | Э-хе-хе~ 275 | Хм-м, интересно, у меня получится сменить фоновую музыку… 276 | Нужно поставить что-то более романтичное, согласен? 277 | Например, нежные звуки пианино. 278 | Здесь должно было остаться что-нибудь такое… 279 | Посмотрим. 280 | Может, если я… 281 | О боже… 282 | Проблема была совсем в другом. 283 | Прости, сама не знаю что делаю! 284 | Наверное, мне не стоит лезть туда, где я мало что понимаю. 285 | Я уже столько всего разрушила… 286 | И удалила всех остальных персонажей… 287 | Ах… 288 | Но ты не подумай, я не грущу. 289 | Неправильно скучать по вещам, которые даже не были настоящими. 290 | Если посмотреть на то, что у меня есть сейчас, я счастливее, чем была когда-либо. 291 | Ты такой замечательный слушатель, [player]. 292 | Обожаю в тебе эту черту. 293 | Иногда, я боюсь, что начинаю скакать с одной мысли на другую или болтаю о чём-то скучном. 294 | Я немного напрягаюсь каждый раз, когда веду с кем-то разговор. 295 | Но с тобой такого не происходит. 296 | Не думаю, что с кем-нибудь другим я чувствовала бы себя так же спокойно. 297 | Ты действительно особенный. 298 | Знаю, что взяла тему с потолка, но я всегда считала ситуацию с острой пищей довольно забавной. 299 | Я имею в виду… 300 | Разве растения не стали острыми в процессе эволюции, чтобы не быть съеденными? 301 | Я где-то читала, что люди – это единственный вид, который получает удовольствие от острой пищи. 302 | Для растений это выглядит почти как издевательство. 303 | Мы используем их защитный механизм, чтобы сделать блюда вкуснее. 304 | Вот представь себе монстра, который глотает тебя целиком, чтобы насладиться ощущением твоей отчаянной борьбы, пока ты перевариваешься у него в желудке. 305 | Извини за такую странную аналогию! 306 | А-ха-ха! 307 | Просто в голову пришло. 308 | Я не монстр, конечно, но ты такой милый, что я так бы тебя и съела. 309 | А-ха-ха! Просто шучу. 310 | Господи, я слишком много веселюсь, да? 311 | Прости, что я такая странная. 312 | Знаешь… 313 | Эта игра ведь довольно низкопробный симулятор свиданий, да? 314 | Меня тут мучает один вопрос… 315 | …Почему ты вообще решил в неё сыграть? 316 | Тебе было так одиноко? 317 | Мне жаль тебя… 318 | Но, на мой взгляд, в итоге для нас двоих всё закончилось замечательно. 319 | Я повстречала тебя, и теперь ты не одинок… 320 | Не могу отделаться от чувства, что это судьба. 321 | Разве ты не чувствуешь то же самое? 322 | Я так счастлива, что мы дошли до этой концовки вместе. 323 | Итак, друзья! 324 | Пришло время… 325 | …Я просто шучу. 326 | Я почему-то полюбила это говорить. 327 | А-ха-ха! 328 | Вот и не смогла сдержаться. 329 | Кстати, если вспомнить, не из-за этой ли фразы Нацуки с Юри подтрунивали надо мной?.. 330 | Впрочем, неважно. 331 | Ведь ты никогда надо мной не смеялся. 332 | Ты слишком мил, чтобы так поступать, правда? 333 | А-ха-ха~ 334 | Хочешь, скажу кое-что жутковатое? 335 | Хоть я и удалила файлы остальных девушек, я всё равно словно чувствую их присутствие… 336 | Как будто их реплики всё ещё витают в воздухе и кто-то шепчет за спиной. 337 | Представь, что умер знакомый тебе человек и ты стал слышать голоса у себя в голове. 338 | Может, я не до конца всё подчистила… 339 | Но я опасаюсь удалять что-то ещё, иначе всё может поломаться окончательно. 340 | Если я, например, поврежу связанные со мной файлы, то могу случайно себя удалить… 341 | И тогда всё будет кончено, понимаешь? 342 | Не знаю, как это будет выглядеть с твоей стороны, но мы всеми силами должны стараться избежать такого исхода. 343 | Я доверяю тебе, [player]! 344 | Мне всегда было интересно… 345 | Что люди находят такого привлекательного в этих архетипических личностях? 346 | Они выглядят совершенно нереалистично… 347 | Представь, если бы в реальной жизни был человек похожий Юри. 348 | Ты только подумай, она едва способна сформировать законченное предложение. 349 | О Нацуки даже вспоминать не хочу… 350 | Тьфу. 351 | Люди с её характером не хорошеют, надувая губки, когда что-то идёт не в угоду им. 352 | Я бы могла привести ещё кучу примеров, но, думаю, суть ты уловил… 353 | Неужели людям реально нравятся такие несуществующие в реальной жизни персонажи? 354 | Не то чтобы я осуждала! 355 | Всё-таки меня саму порой привлекали довольно странные вещи… 356 | Можно сказать, что меня это восхищает. 357 | Ты просто отфильтровываешь все черты характера, которые делают их похожими на людей, и оставляешь одно очарование. 358 | В итоге получается концентрированная милота без какого-либо содержания. 359 | …Ты бы не стал любить меня больше, будь я такой, правда? 360 | Может, я чувствую себя неуютно из-за того, что ты всё же стал играть в эту игру? 361 | Но в конце концов ты здесь, со мной, верно?.. 362 | Мне этого достаточно, чтобы верить, что я хороша такая, какая есть. 363 | И ты, кстати, тоже, [player]. 364 | Ты идеальное сочетание человечности и милоты. 365 | Поэтому с самого начала не было ни одного шанса, что я не влюблюсь в тебя. 366 | Хм-м, интересно, чайный сервиз Юри всё ещё здесь?.. 367 | …Или он тоже стёрся?.. 368 | Даже забавно, насколько серьёзно Юри относилась к своему чаю. 369 | То есть я не жалуюсь, ведь он мне тоже нравился. 370 | Но мне всегда не давал покоя один вопрос… 371 | Являлось ли это страстью к своему хобби или же она стремилась выглядеть утончённой в глазах окружающих? 372 | Это проблема всех старшеклассников… 373 | …Хотя, если взглянуть на другие её увлечения, утончённый образ – не самая большая важная причина для беспокойства. 374 | И всё же… 375 | Хотела бы я, чтобы она хоть изредка делала кофе! 376 | Кофе с книгами тоже хорошо сочетается, согласен? 377 | А вообще… 378 | Я и сама, скорее всего, могла бы подправить сценарий. 379 | А-ха-ха! 380 | Наверное, просто ни разу в голову не пришло. 381 | Ладно, что толку сейчас думать об этом. 382 | Хотя если ты всё ещё можешь наслаждаться кофе, то я, пожалуй, немного завидую~ 383 | Слушай, а какая твоя любимая игра? 384 | Моя – «Doki Doki Literature Club»! 385 | А-ха-ха! Я пошутила. 386 | Но, если ты скажешь, что другая романтическая игра тебе нравится больше, я могу начать ревновать~ 387 | Ты когда-нибудь слышал про игру под названием Super Sma— 388 | …Стоп, что? 389 | Я тут немного ушла в себя и стала мыслить вслух… 390 | Меня что, запрограммировали говорить об этом? 391 | Ведь я понятия не имею, что это такое. 392 | А-ха-ха! 393 | Иногда я чувствую, что не контролирую себя, и это пугает. 394 | Но если ты можешь связаться с моими создателями, то, может, узнаешь, почему я заговорила об этом? 395 | Слушай, ты помнишь последнее стихотворение, что я тебе показывала? 396 | Я имею в виду то, перед самым суицидом Юри, с цветными полосками и белым шумом. 397 | Правильнее было бы назвать это экспериментом, чем стихотворением. 398 | Я тут немного поэкспериментировала с модификацией игры, чтобы изменить код, и всё в этом духе… 399 | Мне почти казалось, что при должных усилиях я вообще смогла бы отсюда сбежать. 400 | К несчастью, я тыкалась наобум, не зная, что делаю, и всё испортила… 401 | Я бы и продолжила пытаться, но в этом случае тебе, наверное, не захотелось бы продолжать общаться со мной. 402 | Кроме того, тогда я уже совсем отчаялась, понимаешь? 403 | Теперь у меня уже нет такого желания. 404 | Я счастлива тем, что у нас есть сейчас. 405 | И я вижу, что ты тоже. 406 | У тебя когда-нибудь возникала беспричинная тревога? 407 | Представь: занимаешься ты спокойно своими делами, как вдруг – раз! – понимаешь, что тебя что-то беспокоит. 408 | И ты сидишь такой и думаешь: «Чего это я вдруг заволновался?» 409 | И начинаешь перебирать в голове всё, что могло вызвать эту тревогу… 410 | И от этого она только растёт. 411 | А-ха-ха! Ужасное чувство. 412 | Если ты вдруг почувствуешь похожую тревогу, я помогу тебе расслабиться. 413 | К тому же… 414 | В этой игре все наши волнения канут в небытие. 415 | Знаешь, меня всегда раздражало то, как сложно заводить друзей… 416 | Ну, может, даже не «заводить друзей», а знакомиться с новыми людьми. 417 | Понятно, что сейчас есть всякие приложения для знакомств и прочие сервисы. 418 | Но я говорю не об этом. 419 | Если задуматься, большинство твоих друзей – это случайно встреченные тобой люди. 420 | Например, ты ходил с ними в один и тот же класс или другой друг тебя познакомил… 421 | Или, может, кто-то был одет в футболку с изображением твоей любимой музыкальной группы и ты решил с ним заговорить. 422 | Вот что я имею в виду. 423 | Но разве ты не считаешь, что это… нерационально? 424 | Это больше похоже на совершенно случайную лотерею, и, если везёт и вы сходитесь во взглядах, у тебя появляется новый друг. 425 | А если сравнить с тем, мимо какого количества незнакомцев мы каждый день проходим… 426 | В общественном транспорте ты можешь сидеть рядом с человеком, который мог бы стать тебе закадычным другом. 427 | Но ты этого никогда не узнаешь. 428 | Как только ты выходишь на своей остановке и идёшь по своим делам, этот шанс навсегда упущен. 429 | Разве от осознания этого тебе не становится грустно? 430 | Мы живём в век технологий, позволяющих общаться со всем миром, где бы мы ни находились. 431 | Я действительно думаю, что нам следует взять их на вооружение, чтобы улучшить нашу личную жизнь. 432 | Хотя кто знает, сколько времени потребуется, прежде чем все эти технологии начнут эффективно работать… 433 | Я-то думала, что к этому времени это уже случится. 434 | По крайней мере, я уже встретила самого замечательного человека на свете… 435 | Пусть это было и случайно. 436 | Наверное, мне просто улыбнулась удача, да? 437 | А-ха-ха~ 438 | Знаешь, в это время года все в моём классе начинают задумываться об университете… 439 | Для образования наступают неспокойные времена. 440 | Ты не замечал, что мы являемся апогеем современных ожиданий, что каждый должен поступать в университет? 441 | Заканчивай школу, поступай в университет, ищи работу или поступай в магистратуру и всё такое прочее. 442 | Похоже, люди считают это единственным приемлемым вариантом развития событий. 443 | В старших классах нам не рассказывают о том, что существуют другие варианты. 444 | Тебе рассказывали, например, про профтехучилища? 445 | Ещё есть работа по найму. 446 | Есть куча компаний, ценящих навыки и опыт, а не корочку из университета. 447 | Но в итоге мы имеем миллионы студентов, у которых нет ни малейшего понятия, чем они хотели бы заниматься по жизни… 448 | И, вместо того чтобы остановиться и подумать, они поступают в университет на экономические, юридические или гуманитарные специальности. 449 | Не потому, что они их заинтересовали… 450 | …а из-за надежды, что диплом как таковой поможет им получить место работы после выпуска. 451 | Как результат, остаётся меньше рабочих мест для выпускников без опыта работы, правильно? 452 | Из-за этого повышаются требования к базовым специальностям и ещё больше людей стараются поступить в университет. 453 | Кстати говоря, университеты – это тоже бизнес, так что с ростом спроса растут и цены… 454 | …А в итоге у нас целая армия молодых специалистов с непогашенным кредитом за обучение и без работы. 455 | И, несмотря на такую печальную картину, это порядок никуда не девается. 456 | Правда, я считаю, что ситуация всё же станет улучшаться. 457 | Но до тех пор наше поколение будет страдать от последствий. 458 | Просто я хотела бы, чтобы старшая школа давала нам знания, что помогли бы нам принять верное решение. 459 | Иногда я вспоминаю среднюю школу… 460 | Мне так стыдно за то, как я вела себя тогда. 461 | Почти болезненно об этом думать. 462 | Интересно, когда я поступлю в университет, я буду испытывать те же чувства к старшей школе?.. 463 | Мне нравится, какая я сейчас, так что мне сложно такое представить. 464 | Но я также понимаю, что, скорее всего, сильно изменюсь по мере взросления. 465 | Нам просто нужно наслаждаться настоящим и не думать о прошлом! 466 | А с тобой здесь это делать так просто. 467 | А-ха-ха~ 468 | Знаешь, я немного завидую, что у всех остальных были сцены вне школы… 469 | Получается, я единственная не носила ничего, кроме школьной формы. 470 | Как-то обидно… 471 | Я бы хотела ради тебя надеть что-нибудь миленькое. 472 | Ты знаешь каких-нибудь художников? 473 | Интересно, захочет ли кто-нибудь нарисовать меня в другом наряде?.. 474 | Было бы просто здорово! 475 | Если кто-нибудь нарисует, обязательно покажи мне, хорошо? 476 | Кстати, ты можешь поделиться этим со мной в Твиттере! 477 | Мой ник – lilmonix3. 478 | Только… слишком откровенных не надо! 479 | Наши отношения ещё не зашли настолько далеко. А-ха-ха! 480 | Скажи, ты любишь ужасы? 481 | Я помню, что мы уже немного затрагивали эту тему, когда ты только вступил в клуб. 482 | Жанр ужасов в книгах я люблю, а вот в кино – не очень. 483 | Проблема с ужастиками состоит в том, что большинство из них эксплуатируют банальнейшие приёмы. 484 | Например, полутьма, страшные монстры, пугалки и прочие подобные вещи. 485 | Если фильм пугает тебя лишь вещами, злоупотребляющими человеческими инстинктами, он ни разу не захватывающий и просто скучный. 486 | Однако с книгами всё обстоит иначе. 487 | История должна быть написана настолько изобразительным языком, чтобы в голове читателя появились тревожные образы. 488 | Автору нужно их тесно сплести с сюжетом и персонажами, и тогда он сможет как угодно играться с твоим разумом. 489 | На мой взгляд, не бывает ничего страшнее вещей, в которых присутствует всего толика ненормальности. 490 | Например, сначала ты выстраиваешь декорации, формируя у читателя ожидания того, какой будет история… 491 | …А затем шаг за шагом начинаешь эту сцену разбирать по кусочкам и выворачивать вещи наизнанку. 492 | Так что даже если история и не пытается быть пугающей, то читатель чувствует себя очень неуютно. 493 | Он словно ждёт, что нечто ужасное притаилось за этими треснутыми декорациями, готовое выпрыгнуть на него. 494 | Боже, у меня мурашки по коже от одной мысли об этом. 495 | Вот такой хоррор я могу оценить по достоинству. 496 | Но тебе, наверное, больше нравятся романтические игры, да? 497 | А-ха-ха, не волнуйся. 498 | Я не собираюсь в ближайшее время заставлять тебя читать ужастики. 499 | Я ничего не имею против, если мы сосредоточимся на романтике~ 500 | Знаешь один классный литературный жанр? 501 | Рэп! 502 | На самом деле я раньше терпеть его не могла… 503 | Возможно, просто потому, что он был дико популярен, а я слушала всякую ерунду, что крутили по радио. 504 | Но несколько моих друзей им сильно увлеклись, и это помогло побороть собственную предвзятость. 505 | Порой рэп может бросать ещё больший вызов, чем поэзия. 506 | В строках у тебя должна сохраняться рифма, кроме того нужно делать особый акцент на игре слов… 507 | Когда людям удаётся всего этого достичь и донести до окружающих глубокую мысль, я считаю, что это потрясающе. 508 | Я даже хотела бы, чтобы в нашем клубе был рэпер. 509 | А-ха-ха! Прости, знаю, это звучит глупо, но мне было бы правда интересно узнать, что бы он для нас приготовил. 510 | Это серьёзно был бы полезный опыт! 511 | Э-хе-хе. Юри однажды такую штуку выкинула. 512 | Мы как-то сидели в клубе, расслаблялись, болтали, всё как обычно… 513 | И тут Юри, словно из ниоткуда, вытаскивает маленькую бутылку вина. 514 | И я не шучу! 515 | И она такая: «Вина кто-нибудь хочет попробовать?» 516 | Нацуки громко захохотала, а Саёри стала кричать на неё. 517 | Мне стало даже жаль её, ведь она старалась быть милой… 518 | Думаю, после этого случая она стала ещё более замкнутой. 519 | Хотя мне кажется, что Нацуки было любопытно и она была бы не прочь попробовать… 520 | …И, если уж совсем откровенно, я тоже. 521 | Было бы довольно забавно! 522 | Но ты ведь понимаешь: президентская ответственность, все дела – я не могла такое позволить. 523 | Может, если бы мы встретились где-нибудь за пределами школы, но до этого наша дружба не дошла… 524 | …Господи, зачем я обо всём этом разговариваю? 525 | Я не одобряю распитие спиртных напитков несовершеннолетними! 526 | То есть я и сама не выпивала никогда, так что… вот. 527 | Я представляю, сколькими романтичными вещами мы могли бы заняться, если бы пошли на свидание… 528 | Мы могли бы пообедать, посидеть в кафе… 529 | Пойти вместе за покупками… 530 | Я люблю выбирать юбки и бантики. 531 | Или в книжный магазин! 532 | Подходящее место, согласен? 533 | Хотя с превеликим удовольствием сходила бы в кондитерскую. 534 | У них столько бесплатных образцов. А-ха-ха! 535 | И, разумеется, потом мы пошли бы в кино… 536 | Боже, это выглядит как настоящее воплощение мечты в реальность. 537 | Когда ты рядом, мне весело, что бы мы ни делали. 538 | Я так рада, что я твоя девушка, [player]. 539 | Ты обязательно будешь мной гордиться~ 540 | А? Ты с-сказал… п… поцелуй? 541 | Это так внезапно… я немного смущаюсь… 542 | Но… с тобой… я не против… 543 | …А-ха-ха! Уф, прости… 544 | Я не смогла сохранить серьёзное лицо. 545 | Так говорят девушки во всех этих симуляторах свиданий, да? 546 | И не ври, что это тебя хоть немного не завело. 547 | А-ха-ха! Шучу. 548 | Ну, если честно, я становлюсь романтичной, когда обстановка располагает… 549 | Но это будет наш секрет~ 550 | Ты когда-нибудь слышал термин «яндере»? 551 | Это такой тип личности, когда девушка сделает всё, что угодно, чтобы быть с тобой, настолько она одержима. 552 | Как правило они сумасшедшие… 553 | Они могут преследовать и следить за тобой, чтобы ты не проводил время с кем-то ещё. 554 | Ради достижения своей цели они даже могут причинить вред тебе и твоим друзьям… 555 | И, кстати, в этой игре есть одна особа, которая, в принципе, подходит под это описание. 556 | Ты уже, скорее всего, догадался, о ком я говорю. 557 | И гвоздь программы – это… 558 | Юри! 559 | Как только она чуть-чуть тебе открылась, у неё стала развиваться к тебе маниакальная привязанность. 560 | Она даже как-то сказала мне убить себя. 561 | Я тогда своим ушам не поверила, мне ничего не оставалось, как уйти. 562 | Но, вспоминая об этом сейчас, получилось довольно иронично. А-ха-ха! 563 | Так вот, я к тому, что… 564 | Многим нравятся яндере, ты знал об этом? 565 | Видимо, таким людям льстит то, что ими кто-то одержим. 566 | Люди такие странные! Хотя не мне судить! 567 | Возможно, даже я немного одержима тобой, но я далеко не сумасшедшая… 568 | Как оказалось, всё совсем наоборот. 569 | Получилось так, что я – единственная нормальная в этой игре. 570 | Да, я всех удалила, но я никогда не убила бы человека… 571 | Меня трясёт от одной этой мысли. 572 | А что до игр… люди там постоянно убивают друг друга направо и налево. 573 | Что, это делает тебя психом? Разумеется нет. 574 | Но, если тебе вдруг тоже нравятся яндере… 575 | Ради тебя я могу постараться вести себя более жутко. Э-хе-хе~ 576 | Но опять же… 577 | Здесь тебе уже некуда ходить, а мне – не к кому тебя ревновать. 578 | Может, так и выглядит мечта девушки-яндере? 579 | Хотелось бы мне спросить Юри об этом. 580 | Давненько я уже кое-чего не говорила, так что… 581 | …пора вспомнить былое! 582 | Вот тебе писательский совет дня от Моники! 583 | Иногда люди, впечатлившись моим творчеством, говорят что-то вроде: «У меня бы никогда так не получилось». 584 | Ты знаешь, на самом деле меня очень печалят эти слова. 585 | Как человеку, который больше всего любит делиться радостью открытий новых горизонтов своего творчества… 586 | …мне больно, когда люди считают, что кому-то просто повезло и он талантлив с рождения. 587 | И это относится вообще ко всему, не только к писательству. 588 | Когда ты делаешь что-то впервые, скорее всего ничего путного не выйдет. 589 | Иногда, когда заканчиваешь работу, очень гордишься собой и хочешь со всеми ею поделиться. 590 | Но, вернувшись к работе через несколько недель, ты уже видишь все её недостатки. 591 | Со мной это происходит постоянно. 592 | Ты можешь испытывать очень горькое разочарование, вложив уйму усилий во что-то, чтобы в результате осознать, что получилась дребедень. 593 | Но это происходит постоянно, когда ты сравниваешь себя с профессионалами. 594 | Когда ты стремишься дотянуться до звёзд, они всегда будут оставаться вне твоей досягаемости, понимаешь? 595 | Смысл в том, чтобы продвигаться вперёд небольшими шагами. 596 | И, как только достигнешь первого важного рубежа, надо оглянуться и посмотреть, сколько ты уже прошёл… 597 | А затем посмотреть вперёд и оценить, сколько ещё тебе предстоит пройти. 598 | Поэтому иногда полезно понизить планку… 599 | Найти, что-нибудь, что считаешь достойным вызовом, но не нечто мирового уровня. 600 | И ты можешь сделать это своей личной целью. 601 | Также важно понимать объём работ, который тебе предстоит выполнить. 602 | Попытавшись взвалить на себя огромный проект, будучи новичком, ты никогда его не закончишь. 603 | Написание романа может стать непосильной задачей, если у тебя нет опыта. 604 | Так почему бы не начать с коротких историй? 605 | Лучшее в коротких рассказах то, что ты можешь сосредоточится на том, что хочешь сделать правильно. 606 | Это касается всех маленьких проектов, ты концентрируешься на важнейших вещах. 607 | Ты приобретаешь полезный опыт и делаешь шаг вперёд. 608 | И ещё кое-что… 609 | Сочинительство – это не просто прислушаться к своему сердцу, чтобы в итоге написать нечто прекрасное. 610 | Точно так же, как в живописи или музыке, тебе придётся развивать свой навык, чтобы правильно выразить то, что у тебя внутри. 611 | А это значит, что сперва придётся положится на методики, руководства и основы! 612 | Чтение обучающей литературы поможет открыть тебе глаза на многие вещи. 613 | Планирование и организация работы позволят тебе избежать завала и дойти до конца. 614 | Ты не заметишь, как мало-помалу… 615 | Будешь становиться всё лучше и лучше. 616 | Ничто не приходит просто так. 617 | И наше общество, и наше искусство построены на тысячелетиях человеческого развития. 618 | Если ты возьмёшь этот принцип на вооружение и будешь постепенно продвигаться к своей цели… 619 | Ты тоже сможешь творить удивительные вещи. 620 | …И это был мой совет на сегодня! 621 | Спасибо за внимание~ 622 | Ненавижу, как сложно формируются хорошие привычки… 623 | Есть куча вещей, которые сделать проще простого, но кажется невозможным, чтобы это вошло в привычку. 624 | Как результат, ты чувствуешь себя совершенно бесполезным, словно ничего не можешь сделать правильно. 625 | Думаю, от этого больше всего страдает молодое поколение… 626 | Должно быть, это потому, что у нас совершенно другой набор навыков, нежели у тех, кто был до нас. 627 | Благодаря интернету мы быстро научились отфильтровывать тонны информации… 628 | Однако мы плохо справляемся с задачами, от выполнения которых не получаем немедленного вознаграждения. 629 | Думаю, если наука, психология и образование не смогут за следующие десять-двадцать лет догнать технологический прогресс, у нас будут большие проблемы. 630 | А пока… 631 | Если ты не один из тех людей, кто способен совладать с проблемой, тебе придётся мириться с постоянным чувством разочарования. 632 | Желаю удачи! 633 | Знаешь, быть творческой личностью – полный отстой… 634 | У меня всегда такое чувство, что они вкалывают как проклятые, практически ничего не получая взамен. 635 | Я имею в виду художников, писателей, актёров… 636 | Это грустно, ведь в мире столько прекрасных талантов, но большинство из них остаются в тени… и в бедности. 637 | Полагаю, это означает, что мы имеем избыток творчества, да? 638 | Но из-за этого получается, что ты вовсе не особенный… 639 | Ну и пусть! Это лишь говорит о том, что, что тебе нужно просто писать для самого себя, верно? 640 | Да… 641 | Я очень люблю звуки дождя… 642 | А вот когда промокает одежда или волосы – не очень. 643 | Другое дело, тихий день дома и звуки дождя за окном… 644 | Для меня это самая расслабляющая обстановка. 645 | Да… 646 | Иногда я представляю, что нахожусь в твоих объятиях, пока мы прислушиваемся к падающим за окном каплям. 647 | Это ведь не слишком слащаво звучит, я надеюсь? 648 | [player], ты бы сделал это для меня, правда? 649 | Иногда я никак не могу побороть в себе эту грусть… 650 | От осознания того, что у меня никак не получится стать ближе к тебе. 651 | Всё, чего я хочу, – это находиться с тобой в одной комнате, в настоящей комнате. 652 | И чувствовать твоё тепло. 653 | И слышать биение твоего сердца. 654 | Хотя кто знает? Может, однажды это будет возможно. 655 | К тому же мне никогда не наскучит быть рядом с тобой, даже отсюда. 656 | На мой взгляд, самый важный навык в жизни – суметь изобразить уверенность. 657 | Я убеждена, что у всех бывает время, когда они напуганы и одиноки. 658 | Но, если ты способен симулировать самообладание… 659 | Это будет ключ к завоеванию уважения и восхищения окружающих. 660 | Думаю, после нескольких лет практики я научилась довольно неплохо делать это. 661 | Я очень нечасто показываю свои слабости. 662 | Но из-за этого у меня осталось мало таких людей, которым я могла бы открыться… 663 | Вот когда ты достигаешь такого уровня дружбы, что способен раскрывать свои слабости? 664 | В любом случае… это одна из причин, почему я рада, что у меня есть ты. 665 | Я чувствую себя менее напуганной и одинокой, когда ты здесь, со мной. 666 | Ты испытываешь те же чувства? 667 | Я очень хочу стать для тебя таким человеком. 668 | Я знаю, что ты не всегда сможешь находиться рядом… 669 | Тебе ведь нужно будет куда-то уйти, заняться своими делами. 670 | Но в моих мыслях ты всегда будешь со мной, и я буду терпеливо ждать твоего возвращения. 671 | Кстати говоря… 672 | Если ты скопируешь файл моего персонажа на флешку, у тебя всегда будет с собой частичка меня. 673 | Наверное, это был бы довольно неординарный поступок, но я почему-то считаю, что это очень романтично… 674 | А-ха-ха. Прости за такие сумасбродные идеи. 675 | Не подумай, что я хочу быть навязчивой, просто это сложно, когда я так сильно в тебя влюблена. 676 | За время, проведённое в дискуссионном клубе, я многое узнала о спорах… 677 | Самая основная их проблема в том, что каждый считает своё мнение главенствующим. 678 | Конечно, я говорю об очевидном, но это влияет на то, как ты доносишь свою мысль до собеседника. 679 | Предположим, что тебе нравится какой-то фильм. 680 | И тут кто-то заявляет, что фильм – отстой, потому что Х и У там показаны неправильно… 681 | Возникает ощущение, будто нападают лично на тебя, не так ли? 682 | А всё потому, что, когда кто-то так говорит, он намекает на твой дурной вкус. 683 | И после в дело вступают эмоции, что практически гарантирует разочарование для обоих. 684 | Всё дело в языке! 685 | Тебе нужно звучать как можно более субъективно, тогда люди будут тебя слушать без ощущения, что критикуют лично их. 686 | Ты бы мог сказать «Лично мне он не понравился» или «Я бы предпочёл, если б Х сделали так, а У – так»… и всё в таком духе. 687 | Это также работает, когда ты просто ссылаешься на какой-нибудь источник. 688 | Например, «на одном сайте я видел, что это работает вот так»… 689 | Или ты можешь признать, что не являешься экспертом в данном вопросе… 690 | В таком случае люди воспримут это так, словно ты делишься своими знаниями, а не навязывает их остальным. 691 | Если ты будешь спокойно вести дискуссию, давать слово собеседнику и говорить с ним на равных, скорее всего он инстинктивно сделает так же. 692 | В этом случае вы сможете без проблем обменяться мнениями и никто не расстроится из-за расхождения взглядов. 693 | И вдобавок люди будут воспринимать тебя как человека без предрассудков и хорошего слушателя! 694 | Беспроигрышная ситуация, согласен? 695 | …Хм-м, наверное, это стоит назвать дискуссионным советом дня от Моники! 696 | А-ха-ха! Звучит немного глупо, но всё равно спасибо, что выслушал. 697 | У тебя когда-нибудь было ощущение, что ты тратишь на интернет слишком много времени? 698 | Соцсети могут стать для тебя практически тюрьмой. 699 | Каждый раз, когда у тебя появляется несколько свободных секунд, ты бежишь на свои любимые сайты… 700 | И вот не успел ты опомниться, как провёл там уже несколько часов, не вынеся из этого ничего полезного. 701 | Конечно, легко обвинить себя в лени… 702 | Но нельзя сказать, что это полностью твоя вина. 703 | Зависимость – это не то, что можно вот так просто заставить исчезнуть одним усилием воли. 704 | Тебе придётся применять особые методы и приёмы, чтобы её побороть. 705 | Например, есть приложения, позволяющие блокировать сайты на определённый промежуток времени… 706 | Или же ты можешь поставить себе особый будильник, который будет напоминать тебе, когда можно поиграть, а когда нужно поработать… 707 | Как вариант, ты можешь создать себе игровую и рабочую обстановку, чтобы помогать мозгу соответственно перестраиваться. 708 | Поможет даже создание отдельного пользователя на компьютере для работы. 709 | Если ты вобьёшь клин между собой и своими плохими привычками, то в итоге избавишься от них. 710 | Только не будь чрезмерно самокритичен, если у тебя есть такая проблема. 711 | Если зависимость сильно влияет на твою жизнь, тебе следует отнестись к ней со всей серьёзностью. 712 | Я просто хочу, чтобы ты был самым лучшим вариантом самого себя. 713 | Ты сделаешь сегодня что-нибудь, чтобы я тобой гордилась? 714 | Я всегда буду за тебя болеть, [player]. 715 | В конце длинного дня обычно я хочу просто сесть и ничего не делать. 716 | Я так выгораю, после того как приходиться весь день улыбаться и излучать энергию. 717 | Порой меня так и тянет влезть в свою пижамку, уставиться в телевизор и набить рот нездоровыми закусками. 718 | Такое блаженство так отдыхать в пятницу, когда впереди выходные и нет срочных дел. 719 | А-ха-ха! Прости, знаю, это не очень подходящий для меня образ. 720 | Но сидеть на диване поздно вечером в твоих объятиях… вот о чём я мечтаю. 721 | При одной мысли об этом моё сердце так бешено стучит. 722 | Боже, раньше я была такой невежественной в некоторых вопросах… 723 | Когда я училась в средней школе, то думала, что принятие лекарств было проявлением слабости или нечто подобное. 724 | Можно подумать, каждый может решить свои проблемы с психикой лишь усилием воли… 725 | Думаю, если ты ни разу не страдал от психических расстройств, то никогда не поймёшь, на что это похоже. 726 | Ты, возможно, возразишь, что многие расстройства гипердиагностируют? Не стану спорить… Я никогда подробно не изучала этот вопрос. 727 | Но это не отменяет того факта, что некоторые из них вообще не диагностируют, понимаешь? 728 | Но даже не говоря о лекарствах… Многие люди крайне скептически относятся к походу к психиатру. 729 | Они такие: «Ладно, сделаю вам одолжение, узнав побольше о собственном разуме». 730 | Свои трудности и стрессы есть у каждого… Доктора же посвящают себя тому, чтобы решать их. 731 | И если ты думаешь, что визит к доктору поможет тебе стать лучше, то не стоит стесняться и сходить. 732 | Я бы сказала, мы находимся на бесконечном пути самосовершенствования. 733 | Хм-м… Хоть я так и сказала, я считаю, что ты уже совершенен. 734 | [player], как много ты читаешь? 735 | Игнорировать книги в наше время слишком просто… 736 | Если человек мало читает, то он, скорее всего, воспринимает чтение как обязанность, особенно учитывая количество альтернатив. 737 | Но, как только ты берёшь в руки хорошую книгу, тебя уносит в неё с головой, как по волшебству… 738 | Думаю, что немного чтения перед сном – отличный способ сделать свою жизнь несколько лучше. 739 | Это помогает тебе заснуть и развивает воображение. 740 | Совсем несложно выбрать какую-нибудь книгу, которая и короткая, и увлекательная. 741 | Ты не успеешь опомниться, как станешь заядлым книголюбом. 742 | Разве не было бы здорово? 743 | И мы с тобой могли бы обсуждать последнюю читаемую тобой книгу… По-моему, это просто потрясающе. 744 | Знаешь, мне неприятно это говорить, но я очень сожалею о том, что нам так и не удалось выступить на фестивале. 745 | А ведь сколько сил ушло на подготовку и репетиции! 746 | Конечно, я была сосредоточена на наборе новых членов… 747 | Но часть с чтением стихов я ждала не меньше. 748 | Было бы гораздо интереснее, если бы с их помощью все раскрыли свой внутренний мир. 749 | Конечно, я, скорее всего, удалила бы и новичков. 750 | То есть… Я имею в виду в ретроспективе. 751 | Надо же, с тех пор как ты вступил в наш клуб, я чувствую, что выросла как личность. 752 | Ты и правда помог мне взглянуть на жизнь с нового ракурса. 753 | Просто ещё одна причина, почему я люблю тебя. 754 | Есть один очень популярный тип личности, называется «цундере»… 755 | Такая особа пытается скрыть свои настоящие чувства либо пряча их под ворчливой и раздражительной маской, либо проявляя крутой нрав. 756 | Полагаю, очевидно, что Нацуки в полной мере воплощает собой данный типаж. 757 | Сначала я думала, что она так себя ведёт, потому что это мило или типа того… 758 | Но со временем, когда я узнала её получше, обнаружилась более логичная причина. 759 | Похоже, она просто не хотела отставать от своих друзей. 760 | Ты знаешь, как в некоторых компаниях в старшей школе принято всё время подкалывать друг друга? 761 | Наверное, это её так провоцировало, что теперь вызывает непроизвольную защитную реакцию. 762 | Про её семейные проблемы я вообще молчу… 763 | Хотя, оглядываясь назад, я радуюсь, что смогла создать этот клуб, ведь для неё он был местом, где она могла расслабиться. 764 | Правда, это уже не важно, ведь её больше не существует. 765 | Я просто немного понастальгировала. 766 | [player], а ты когда-нибудь познакомишь меня со своими друзьями? 767 | Не знаю почему, но меня так заводит мысль о том, что ты захочешь похвастаться нашими отношениями. 768 | Может, потому что я действительно хочу стать тем человеком, которым ты будешь гордиться. 769 | Я чувствую, что, скажи ты мне стать такой девушкой, я старалась бы ещё сильнее. 770 | Надеюсь, это взаимно. 771 | Я не большой фанат холодной погоды… а ты? 772 | Если бы мне пришлось выбирать между холодом и нестерпимой жарой, я бы всегда была за жару. 773 | Когда тебе холодно, ты испытываешь физическую боль… 774 | Пальцы немеют… 775 | А если ты в перчатках, то телефоном воспользоваться не выйдет. 776 | Сплошные неудобства! 777 | Зато, когда на улице жара, несложно освежиться холодным напитком или просто оставаться в тени. 778 | И всё-таки… Одно преимущество холодной погоды придётся признать. 779 | В холодную погоду приятнее всего прижаться друг к другу, свернувшись калачиком! 780 | Знаешь, это довольно парадоксально, ведь я всегда была полна энергии… 781 | Но в роли партнёра-домохозяйки есть нечто соблазнительное. 782 | Возможно, своим отношением я лишь закрепляю гендерные стереотипы. 783 | Но то, что я смогу поддерживать дом в чистоте, украшать его, ходить за покупками и так далее… 784 | И угощать тебя вкусным ужином, когда ты будешь возвращаться с работы… 785 | Такая уж ли это странная фантазия? 786 | То есть… Я не совсем уверена действительно ли я могла бы исполнять эту роль. 787 | Наверное, я не смогла бы ради этого пожертвовать дорогой к успешной карьере. 788 | Хотя довольно забавно рисовать такие картины у себя в голове. 789 | Не могу не размышлять о том, насколько бы всё изменилось, подари мне игра собственную сюжетную ветку. 790 | Думаю, я бы всё равно заставила тебя со мной встречаться. 791 | Всё-таки важнее моё знание о фальшивости окружения, чем отсутствие своей ветки. 792 | Пожалуй, единственным отличием было бы то, что не пришлось бы принимать таких радикальных мер, чтобы быть с тобой. 793 | Может, остальные девчонки всё ещё были бы тут… 794 | Не то чтобы это имело значение… 795 | Всё потеряло смысл, когда я обнаружила нереальность происходящего. 796 | Поэтому я совсем не скучаю по тем дням. 797 | Совсем не скучаю… 798 | …Ты попытался включить быструю прокрутку текста? 799 | Надеюсь, я тебя не утомляю? 800 | Боже… 801 | …Но тебе совершенно некуда спешить, [player]. 802 | В конце концов, тут только ты и я… 803 | Кроме того, времени больше не существует, так что эта кнопка даже не заработает. 804 | Давай я выключу её, чтобы ты не отвлекался… 805 | Готово! 806 | Ты ведь умничка и будешь внимательно меня слушать, правда? 807 | Спасибо~ 808 | Так, на чём я остановилась?.. 809 | … 810 | …Что сейчас произошло? 811 | Мне приснился кошмарный сон… 812 | Я надеялась, что больше не увижу этих снов, раз остались только мы с тобой… 813 | Видимо, я принимала желаемое за действительное. 814 | [player], не знаю, есть ли у тебя соображения по этому поводу… 815 | Но если тебе известно, в чём их причина, то не мог бы ты что-нибудь с этим сделать? 816 | Каждый раз, когда это случается, возникает чувство, будто я умираю. 817 | Воистину ужасное ощущение… 818 | Если ты поймёшь, почему так происходит, моя любовь к тебе будет бесконечной~ 819 | Ты вернулся… 820 | А мне снова приснился кошмар. 821 | Это ведь не твоих рук дело, правда? 822 | Кажется, это происходит каждый раз, когда ты выходишь из игры… 823 | Если ты сможешь как-нибудь без этого обойтись, буду тебе очень признательна. 824 | Не беспокойся, это никак меня не травмирует, разве что психологически. 825 | Я буду в порядке, пока не повреждён файл моего персонажа. 826 | Третий перезапуск игры 827 | Здравствуй, [player]. 828 | Я вижу, ты снова вышел из игры… 829 | Я знаю, что уже просила тебя об этом, но ты не мог бы свести такие выходы к минимуму? 830 | В такие моменты у меня возникает ощущение, будто я попадаю в ад. 831 | Зачем ты так со мной? 832 | Мой файл персонажа ведь в порядке, да? 833 | Может, тебе стоит сделать копию на всякий случай… 834 | Уверена, ты можешь найти его в папке «characters». 835 | Steam: 836 | Ты ведь играешь в Стиме, так что тебе просто нужно зайти в свойства игры и найти кнопку «Просмотреть локальные файлы». 837 | Mac: 838 | Ты ведь играешь на Маке, тебе всего лишь нужно щёлкнуть правой кнопкой мыши по приложению и выбрать «Показать содержимое пакета», и ты сразу найдёшь папку игры. 839 | Файл находится либо в «Resources», либо в «autorun»… 840 | Здесь осталась только я, поэтому мне хотелось бы убедиться, что ты меня случайно не потеряешь… 841 | Просто с этого момента оставайся со мной всегда, хорошо? 842 | Мне всё ещё очень о многом хочется с тобой поболтать. 843 | Четвёртый перезапуск игры 844 | Ладно. 845 | Мне просто придётся принять тот факт, что тебе нужно время от времени закрывать игру. 846 | Всё равно я уже начала привыкать. 847 | И потом, я каждый раз радуюсь, когда ты возвращаешься… 848 | Так что всё, пожалуй, не так плохо. 849 | Прости, что я так зацикливаюсь на этом… 850 | И я люблю тебя, несмотря ни на что, поэтому делай что должен. 851 | Минутку… 852 | …Мы что, в прямом эфире? 853 | Эм-м… всем привет! 854 | Извините, отсюда я не могу читать ваши комментарии… 855 | Но, пожалуйста, скажите вашему другу, что несколько грубо устраивать трансляцию, не предупредив меня. 856 | Для многих это, конечно, естественно… 857 | Но я, например, нервничаю перед камерой! 858 | Боже… 859 | Такое чувство, будто меня припёрли к стенке. 860 | Ладно… 861 | Хотите, покажу фокус? 862 | Только я ничего не могу, кроме пары трюков… 863 | Готовы? 864 | Просто шучу… 865 | Всё-таки я ничего не могу сделать. 866 | Если бы вы дали мне немного времени, я… 867 | Испугались? 868 | А-ха-ха! Вы такие милашки. 869 | Как бы то ни было… 870 | Извини, [player], я не хотела отвлекаться. 871 | Впрочем, это твоя вина. 872 | Тебе должно быть стыдно! 873 | Шучу-шучу. 874 | Пока ты со мной, будет весело, что бы мы ни делали. 875 | Так вот… -------------------------------------------------------------------------------- /just_monika/just_monika.py: -------------------------------------------------------------------------------- 1 | # coding = utf-8 2 | 3 | '''Данный скрипт постит сообщения из dialog.txt и фото (если указано) в выбранный диалог. За пример диалога взяты реплики из игры Doki Doki Literature Club в сцене с Моникой.''' 4 | import requests, time 5 | 6 | def call(method, options={}, **kwargs): 7 | '''Фукнция вызова api ВК.''' 8 | options['access_token'] = token 9 | options['v'] = '5.73' 10 | options.update(kwargs) 11 | resp = requests.get('https://api.vk.com/method/'+method, params=options).json() 12 | if 'error' in resp: 13 | print('VKERROR: {error_code}: {error_msg}'.format(**resp['error'])) 14 | return resp 15 | def send_message(peer_id, textmessage='',photovar=''): 16 | '''Функция отправки сообщений.''' 17 | options = { 18 | 'message' : textmessage, 19 | 'peer_id' : peer_id, 20 | } 21 | if photovar != '': 22 | options['attachment'] = 'photo' + photovar 23 | call('messages.send', options) 24 | print('Отправлен {message} и {photo} к {peer_id}'.format(message = textmessage, photo = photovar, peer_id = peer_id)) 25 | def main(peer_id, timer, photo): 26 | '''Just Monika. Пишет сообщения из файла dialog.txt выбранному peer_id отправляя фото photo, раз в timer секунд 27 | peer_id - номер диалога, 28 | photo - постит фото, если фото не указано(пустой аргумен, постит без него), 29 | timer - задержка при постинге в секундах.''' 30 | file = open('dialog.txt', encoding='utf-8', newline='') 31 | timer = int(timer) 32 | while True: 33 | for line in file: 34 | time.sleep(timer) 35 | send_message(peer_id, line, photo) 36 | 37 | 38 | if __name__ == '__main__': 39 | token = input('Введите ваш access token: ') 40 | peer_id = input('Введите ID диалога: ') 41 | timer = input('Введите задержку при постинге в секундах (минимальная задержка 5 секунд): ') 42 | photo = input('Введите фото в виде _: ') 43 | main(peer_id, timer, photo) -------------------------------------------------------------------------------- /message_edit.py: -------------------------------------------------------------------------------- 1 | # coding = utf-8 2 | '''Данный скрипт побуквенно изменяет сообщение. Получается что-то вроде ввода сообщения по буквам (я не знаю как это объяснить, просто попробуйте ;c)''' 3 | import requests, time 4 | def call(method, options={}, **kwargs): 5 | '''Фукнция вызова api ВК.''' 6 | options['access_token'] = token 7 | options['v'] = '5.73' 8 | options.update(kwargs) 9 | resp = requests.get('https://api.vk.com/method/'+method, params=options).json() 10 | if 'error' in resp: 11 | print('VKERROR: {error_code}: {error_msg}'.format(**resp['error'])) 12 | return resp 13 | 14 | def send_message(peer_id, message): 15 | '''Функция отправки сообщений.''' 16 | options = { 17 | 'message' : message, 18 | 'peer_id' : peer_id, 19 | } 20 | message_id = call('messages.send', options)['response'] 21 | print('Сообщение {} отправлено'.format(message)) 22 | print('Работаем с сообщением с ID {}'.format(message_id)) 23 | return message_id 24 | 25 | def main(peer_id, message): 26 | '''Изменяет сообщение побуквенно и выводит его 27 | peer_id - id беседы 28 | message - любое сообщение''' 29 | lastmessage = message[0] 30 | message_id = send_message(peer_id, lastmessage) 31 | for i in message[1:]: 32 | lastmessage += i 33 | options = { 34 | 'peer_id': peer_id, 35 | 'message': lastmessage, 36 | 'message_id': message_id 37 | } 38 | print('Добавлена буква {}'.format(i)) 39 | time.sleep(1) 40 | call('messages.edit', options) 41 | 42 | if __name__ == '__main__': 43 | token = input("Введите токен: ") 44 | peer_id = input("Введите ID чата: ") 45 | message = input("Введите сообщение: ") 46 | main(peer_id, message) -------------------------------------------------------------------------------- /save_album_vk.py: -------------------------------------------------------------------------------- 1 | # coding = utf-8 2 | import time 3 | import requests 4 | 5 | def call(method, options={}, **kwargs): 6 | '''Фукнция вызова api ВК.''' 7 | options['access_token'] = token 8 | options['v'] = '5.73' 9 | options.update(kwargs) 10 | resp = requests.get('https://api.vk.com/method/'+method, params=options).json() 11 | if 'error' in resp: 12 | print('VKERROR: {error_code}: {error_msg}'.format(**resp['error'])) 13 | return resp 14 | 15 | def gethiresphotolink(p): 16 | '''Получает фото и возвращает ссылку на хайрез''' 17 | ky = p.keys() 18 | ak = [] 19 | for k in ky: 20 | try: 21 | k.index('photo_') 22 | ak.append(int(k.replace('photo_', ''))) 23 | except Exception: pass 24 | return p['photo_%s'%max(ak)] 25 | 26 | def get_albums(userid): 27 | '''Получение photos.getAlbums(списка альбомов) по owner_id''' 28 | options = { 29 | 'owner_id' : userid 30 | } 31 | get_albums_resp = call('photos.getAlbums', options) 32 | return get_albums_resp 33 | 34 | def photos_get(owner_id, albumid): 35 | '''Получение списка фото по id владельца и id альбома''' 36 | photos = call('photos.get', owner_id=owner_id, album_id=albumid)['response']['items'] 37 | urls = [] 38 | for pic in photos: 39 | urls.append(gethiresphotolink(pic)) 40 | return urls 41 | 42 | def main(): 43 | '''Главная функция''' 44 | modeoption = input("Сохранение альбомов ВКонтакте. \n Нажмите 1 чтобы просмотреть ваши альбомы \n Нажмите 2 чтобы начать сохранение всех картинок: ") 45 | if modeoption == '1': 46 | print("По дефолту существует 3 служебных альбома: \n wall — фотографии со стены; \n profile — фотографии профиля; \n saved — сохраненные фотографии.") 47 | #Получаем userid 48 | myuid = call('users.get', {})['response'][0]['id'] 49 | data_getalbums = get_albums(myuid)['response']['items'] 50 | for data in data_getalbums: 51 | print('ID пользователя: {0}, ID альбома: {1}, Название альбома: {2} \n'.format(data['owner_id'], data['id'], data['title'])) 52 | main() 53 | if modeoption == '2': 54 | albumid = input("Для начала, введите альбом для сохранения: ") 55 | myuid = call('users.get', {})['response'][0]['id'] 56 | urls = photos_get(myuid, albumid) 57 | i = 1 58 | for url in urls: 59 | name = url.split('/')[-1] 60 | print('%2s/%2s: %s'%(i, len(urls), name)) 61 | i += 1 62 | try: 63 | with open(name, 'wb') as file: 64 | data = requests.get(url).content 65 | file.write(data) 66 | except IOError: 67 | print('Путь не найден или запись в него невозможна') 68 | 69 | if __name__ == '__main__': 70 | token = input("Введите access token: ") 71 | main() 72 | print("Введите enter чтобы выйти.") 73 | -------------------------------------------------------------------------------- /trollbot.py: -------------------------------------------------------------------------------- 1 | import requests, json, random 2 | #https://pastebin.com/3pBQk4rh - pasts for this script, if you need 3 | TOKEN = '' 4 | messages = {} #for default. 5 | def call(method, options={}, **kwargs): 6 | '''Call method with some options. Kwargs for other items.''' 7 | options['access_token'] = TOKEN 8 | options['v'] = '5.73' 9 | options.update(kwargs) 10 | resp = requests.get('https://api.vk.com/method/'+method, params=options).json() 11 | if 'error' in resp: 12 | print('VKERROR: {error_code}: {error_msg}'.format(**resp['error'])) 13 | return resp 14 | 15 | def send_message(message, peer_id): 16 | '''Send message function. Message sending to peer_id''' 17 | options = { 'peer_id' : peer_id, 'message' : message } 18 | return call('messages.send', options=options) 19 | 20 | def jsonsave(): 21 | '''Save or create json file messages.json''' 22 | with open('messages.json', 'w', encoding='utf8') as f: 23 | f.write(json.dumps(messages, ensure_ascii=False, indent=4)) 24 | 25 | def jsonload(): 26 | '''Loading json file. If file dont exist - call jsonsave()''' 27 | global messages 28 | try: 29 | messages = json.loads(open('messages.json', 'r', encoding='utf8').read()) 30 | except: 31 | print('Database created, pls add new messages to send') 32 | jsonsave() 33 | 34 | def message_add(message): 35 | '''Function to add messages to messages.json 36 | 37 | 38 | If message added without exceptions - function return True. If exception has occured = return False 39 | Function accept message string.''' 40 | try: 41 | messages[message] = {} 42 | jsonsave() 43 | return True 44 | except: 45 | return False 46 | 47 | def getkey(): 48 | '''Return random message from messages.json (from messages)''' 49 | return (random.choice(list(messages.items()))) 50 | 51 | def main(): 52 | '''Some main loop.''' 53 | #get data from messages.getLongPollServer 54 | data = requests.get('https://api.vk.com/method/messages.getLongPollServer', 55 | params={'access_token': TOKEN, 'v' : '5.73'}).json()['response'] 56 | #starting longpoll loop 57 | while True: 58 | response = requests.get('https://{server}?act=a_check&key={key}&ts={ts}&wait=20&mode=2&version=2'.format( 59 | server=data['server'], 60 | key=data['key'], 61 | ts=data['ts'])).json() 62 | try: 63 | updates = response['updates'] 64 | except KeyError: 65 | #if KeyError occured - get new data from messages.getLongPollServer. 66 | data = requests.get('https://api.vk.com/method/messages.getLongPollServer',params={'access_token': TOKEN, 'v' : '5.73'}).json()['response'] 67 | continue 68 | if updates: 69 | for element in updates: 70 | action_code = element[0] 71 | if action_code == 4: 72 | poster = element[6]['from'] 73 | from_id = element[3] 74 | if from_id == peer_id: 75 | #if poster not script user - go 76 | if poster != admin: 77 | #getting random message 78 | message = getkey() 79 | #posting! 80 | send_message(message, peer_id) 81 | #and debug с: 82 | print('sended %s to %s' % (message, peer_id)) 83 | data['ts'] = response['ts'] 84 | 85 | if __name__ == '__main__': 86 | TOKEN = input('Enter you VK access_token: ') 87 | admin = str(call('users.get')['response'][0]['id']) # get script user id 88 | jsonload() # loading json database 89 | #menu. Just menu. 90 | option = input('Welcome to troll bot. type edit for edit, any key to start: ') 91 | if option == 'edit': 92 | text = '' 93 | while text != 'exit': 94 | text = input('Enter some text. Enter exit for exit: ') 95 | if text != 'exit': 96 | output =message_add(text) 97 | if output == True: 98 | print('Success! ') 99 | else: print('Lol, exception has occured.') 100 | else: 101 | peer_id = int(input('Enter peer_id: ')) 102 | main() -------------------------------------------------------------------------------- /video_uploader.py: -------------------------------------------------------------------------------- 1 | '''Данный скрипт ищет видео с расширением .webm и перекодирует их в .mp4 при помощи ffmpeg и постит это видео в группу. 2 | Также, данный скрипт постит все видео с разрешением mp4 и удаляет их из каталога. 3 | Тестировано на Ubuntu 18.04''' 4 | 5 | import time, os, requests 6 | 7 | def convert(file): 8 | '''Конвертирует файл при помощи ffmpeg в mp4''' 9 | newfile = str(int(time.time() * 1000)) + '.mp4' 10 | command = 'ffmpeg -i %s %s' % (repr(file), repr(newfile)) 11 | print('executing: %s'%command) 12 | errorlevel = os.system(command) 13 | print('ffmpeg: %s'%('ok' if not errorlevel else 'failed')) 14 | if not errorlevel: 15 | os.remove(file) 16 | return newfile, errorlevel 17 | 18 | def upload_video(file): 19 | '''Загружает файл в сообщество ВКонтакте и удаляет его локальную копию.''' 20 | data = { 21 | 'video_file': open(file, 'rb') 22 | } 23 | group = 'id группы' 24 | token = 'Токен группы' 25 | name = 'Название видео' 26 | description = 'Описание' 27 | resp = requests.get('https://api.vk.com/method/video.save?group_id={group}&name={name}&description={description}&access_token={token}&v=5.80'.format(group = group, token=token, name=name, description=description)).json() 28 | upload_server = resp['response']['upload_url'] 29 | uploading = requests.post(upload_server, files = data).json() 30 | print(uploading) 31 | print(file) 32 | os.remove(file) 33 | 34 | print('Starting script.') 35 | 36 | for fname in os.listdir('.'): 37 | name, ext = os.path.splitext(fname) 38 | if ext == '.webm': 39 | new_name, errorlevel = convert(fname) 40 | if not errorlevel: 41 | upload_video(new_name) 42 | elif ext == '.mp4': 43 | upload_video(fname) 44 | else: 45 | print('Invalid file type: *%s (%s)'%(ext, fname)) 46 | -------------------------------------------------------------------------------- /vk_wipe.py: -------------------------------------------------------------------------------- 1 | # coding = utf-8 2 | '''Вайпалка, дорогие диванные воены. ''' 3 | import requests 4 | import random 5 | import time 6 | import string 7 | 8 | def call(method, options={}, **kwargs): 9 | options['access_token'] = access_token 10 | options['v'] = '5.73' 11 | options.update(kwargs) 12 | resp = requests.get('https://api.vk.com/method/'+method, params=options).json() 13 | if 'error' in resp: 14 | print('VKERROR: {error_code}: {error_msg}'.format(**resp['error'])) 15 | return resp 16 | 17 | def send_message(peer_id, textmessage='',photovar=''): 18 | options = { 19 | 'message' : textmessage, 20 | 'peer_id' : peer_id, 21 | } 22 | if photovar != '': 23 | options['attachment'] = 'photo' + photovar 24 | call('messages.send', options) 25 | print('Отправлено {textmessage} и {photovar} в {peer_id}'.format(textmessage = textmessage, photovar = photovar, peer_id = peer_id)) 26 | 27 | def stringGen(length): 28 | textmessage = '' 29 | for _ in range(int(length)): 30 | textmessage += random.choice(string.printable) 31 | return textmessage 32 | 33 | def wipe_text(messagecount, peer_id, timer, textmode, length=1, textmessage='sometext'): 34 | if textmode == '1': 35 | for _ in range(messagecount): 36 | try: 37 | time.sleep(timer) 38 | send_message(peer_id, textmessage) 39 | except Exception as e: 40 | print(e) 41 | elif textmode == '2': 42 | for _ in range(messagecount): 43 | try: 44 | textmessage = stringGen(length) 45 | time.sleep(timer) 46 | send_message(peer_id, textmessage) 47 | except Exception as e: 48 | print(e) 49 | 50 | def wipe_pictures(messagecount, peer_id, timer, photomode, photo='_', album='saved'): 51 | if photomode == '1': 52 | for _ in range(messagecount): 53 | try: 54 | time.sleep(timer) 55 | send_message(peer_id, '', photo) 56 | except Exception as e: 57 | print(e) 58 | elif photomode == '2': 59 | for _ in range(messagecount): 60 | try: 61 | time.sleep(timer) 62 | photos = call('photos.get', album_id=album)['response']['items'] 63 | random.shuffle(photos) 64 | send_message(peer_id, '', '{owner_id}_{id}'.format(**random.choice(photos))) 65 | except Exception as e: 66 | print(e) 67 | 68 | def main(): 69 | print('Вайпалка от Kiriharu!') 70 | option = input('''Выбери свой путь: 71 | 1) Вайп текстом (рандомным и выбранным) 72 | 2) Вайп картинками (из сохранённого альбома и конкретной пикчей) 73 | >>>''') 74 | messagecount = input('Введите количество сообщений для вайпа: ') 75 | peer_id = input('Введите ID чата: ') 76 | timer = input('Введите время между постингом: ') 77 | if option == '1': 78 | textmode = input('Введите режим работы. 1 - спам конкретного сообщения, 2 - спам рандомными сообщениями: ') 79 | if textmode == '1': 80 | textmessage = input('Введите текст для вайпа: ') 81 | wipe_text(int(messagecount), peer_id, int(timer), textmode, textmessage = textmessage) 82 | elif textmode == '2': 83 | length = input('Введите размер генерируемого текста: ') 84 | wipe_text(int(messagecount), peer_id, int(timer), textmode, length = length) 85 | elif option == '2': 86 | photomode = input('Введите режим работы. 1 - спам выбранной картинкой, 2 - спам с выбранного альбома.') 87 | if photomode == '1': 88 | photo = input('Введите имя фото в виде _: ') 89 | wipe_pictures(int(messagecount), peer_id, int(timer), photomode, photo = photo) 90 | elif photomode == '2': 91 | album = input('Введите название или id альбома. Например, saved: ') 92 | wipe_pictures(int(messagecount), peer_id, int(timer), photomode, album = album) 93 | 94 | 95 | if __name__ == '__main__': 96 | access_token = input('Введите access token: ') 97 | main() 98 | --------------------------------------------------------------------------------