- 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
from vk_bot.vk_config import GROUP_ID, TOKEN
import vk_api
from vk_api.bot_longpoll import VkBotLongPoll, VkBotEventType
import random
from vk_bot.db_session import *
from vk_bot.__all_models import BugReport, Comment
import datetime
from vk_bot.vacancies import get_vacancies, ServerError
def main():
global_init("feedback/feedback.sqlite")
vk_session = vk_api.VkApi(
token=TOKEN)
vk = vk_session.get_api()
longpoll = VkBotLongPoll(vk_session, GROUP_ID)
bot_state = {}
def send_msg(msg):
vk.messages.send(user_id=event.obj.message['from_id'],
message=msg,
random_id=random.randint(0, 2 ** 64))
for event in longpoll.listen():
if event.type == VkBotEventType.MESSAGE_NEW:
if event.obj.message['from_id'] in bot_state and bot_state[event.obj.message['from_id']]:
state = bot_state[event.obj.message['from_id']]
if state == 1:
send_msg('Спасибо, ваше мнение для нас очень важно.')
Comment().new(event.obj.message['from_id'], datetime.datetime.now().strftime('%Y-%m-%d %H:%M:%S'),
event.obj.message['text'])
bot_state[event.obj.message['from_id']] = 0
elif state == 2:
BugReport().new(event.obj.message['from_id'], datetime.datetime.now().strftime('%Y-%m-%d %H:%M:%S'),
event.obj.message['text'])
send_msg('Спасибо за ваш отзыв, мы постараемся исправить проблему в ближайшем будущем.')
bot_state[event.obj.message['from_id']] = 0
elif state == 4:
parameters = [r.strip() for r in event.obj.message['text'].split(',')]
try:
vacancies = get_vacancies(parameters[0], parameters[1])
except ServerError:
send_msg('Не удалось получить ответ от сервера, попробуйте позже')
bot_state[event.obj.message['from_id']] = 0
except Exception:
send_msg('Данные введены некорректно, попробуйте заново.')
send_msg('Формат: <должность>, <мин. зарплата>')
else:
if len(vacancies) == 0:
send_msg('По данным критериям ничего не найдено')
else:
vacancy_list = [f"{i}) {v['title']}, {v['salary']}" for i, v in enumerate(vacancies)]
send_msg('\n'.join(vacancy_list))
if bot_state[event.obj.message['from_id']] == 0:
send_msg('1 - написать отзыв или предложение\n 2 - сообщить о неправильной работе сайта\n 3 - документация к api\n 4 - посмотреть список доступных вакансий\n иначе напишите сообщение и модератор вскоре на него ответит')
elif event.obj.message['from_id'] not in bot_state:
send_msg('1 - написать отзыв или предложение\n 2 - сообщить о неправильной работе сайта\n 3 - документация к api\n 4 - посмотреть список доступных вакансий\n иначе напишите сообщение и модератор вскоре на него ответит')
bot_state[event.obj.message['from_id']] = 0
else:
key = event.obj.message['text'][0]
if key == '1':
send_msg('Пожалуйста, поделитесь вашим мнением по поводу сайта.')
bot_state[event.obj.message['from_id']] = 1
elif key == '2':
send_msg('Пожалуйста, максимально подробно опишите вашу проблему.')
bot_state[event.obj.message['from_id']] = 2
elif key == '3':
send_msg('https://www.youtube.com/watch?v=dQw4w9WgXcQ')
elif key == '4':
send_msg('Введите название должности и минимальную желаемую зарплату по образцу:<должность>, <мин. зарплата>')
bot_state[event.obj.message['from_id']] = 4
else:
send_msg('Модератор вам скоро ответит, пожалуйста подождите.')
if __name__ == '__main__':
main()
Код бота поддержки.
Один из товарищей по проекту ничего в нем не делал,
а потом чтобы его не выгоняли попросил дать ему хотя бы бота.
Вот результат.
Модели и вспомогательные файлы оставлять думаю не имеет смысла, все и так очевидно
bormand 13.05.2020 16:25 # 0
AlexandrovRoman 13.05.2020 16:33 # 0
bormand 13.05.2020 16:27 # +3
> ссылкой на ютуб
Остановите землю, я сойду. Мало того, что туториалы везде как видео публикуют, так теперь ещё и документацию к api...
З.Ы. У меня теперь непреодолимое желание исходники на ютуб заливать. Чтоб все заебались.
gost 13.05.2020 16:30 # 0
Всё нормально, XcQ в конце.
bormand 13.05.2020 17:02 # +2
jojaxon 13.05.2020 17:07 # 0
TEH3OPHblu_nemyx 13.05.2020 16:30 # 0
bormand 13.05.2020 16:32 # +1
jojaxon 13.05.2020 16:37 # +2
Needless 13.05.2020 16:41 # +2
Fike 13.05.2020 20:45 # 0
MAKAKA 13.05.2020 16:45 # 0
Приходится использовать видео
bormand 13.05.2020 16:54 # +1
Чувствую себя каким-то питекантропом, вспоминая старые добрые статьи с наскальной псевдографикой...
jojaxon 13.05.2020 16:58 # 0
TEH3OPHblu_nemyx 13.05.2020 17:16 # +5
jojaxon 13.05.2020 17:27 # 0
TEH3OPHblu_nemyx 13.05.2020 17:34 # +3
Fike 13.05.2020 20:46 # 0
MAKAKA 13.05.2020 17:47 # +2
Stallman 14.05.2020 20:54 # +2
bormand 14.05.2020 21:15 # 0
Хех, старая добрая разводка питания с противоположных углов... На современных частотах уже так не делают.
ropuJIJIa 14.05.2020 21:17 # 0
bormand 14.05.2020 21:24 # +2
ropuJIJIa 14.05.2020 21:25 # +1
bormand 14.05.2020 21:29 # +2
Сейчас питанию пара-тройка выделенных слоёв в плате посвящается. И керамические кондёры в упор к микросхеме тоже никто не отменял.
Рейку, видимо, ставили чтобы многослойную плату не делать.
Needless 13.05.2020 16:59 # 0
Но по видео всё-таки тяжело искать документацию например к какому-то конкретному методу.
jojaxon 13.05.2020 17:02 # +1
Needless 14.05.2020 19:28 # +1
ropuJIJIa 14.05.2020 20:26 # +1
guest8 15.05.2020 01:31 # −999
jojaxon 13.05.2020 16:31 # +2
guest8 13.05.2020 21:12 # −999
ropuJIJIa 13.05.2020 21:28 # 0
Какое отношение стихотворение имеет к коду?
guest8 13.05.2020 21:20 # −999
bormand 14.05.2020 07:49 # 0
ropuJIJIa 14.05.2020 12:21 # 0
jojaxon 14.05.2020 12:22 # 0
guest8 14.05.2020 12:22 # −999
ropuJIJIa 14.05.2020 13:05 # 0
https://www.opennet.ru/man.shtml?topic=da&category=4&russian=1
guest8 14.05.2020 13:38 # −999
MAKAKA 14.05.2020 22:54 # 0
Вообще построение дерева устройств и привязка драйверов к ним у бзды прозрачнее и проще. А у прыщей куча разрозненных утилит, и ноголомный /sys.
Ну, как всегда в общшем
guest8 14.05.2020 12:34 # −999
Needless 14.05.2020 12:40 # 0
guest8 14.05.2020 12:52 # −999
3oJIoTou_xyu 14.05.2020 12:59 # 0
Hãy ra khỏi chi nhánh của tôi, fag.
guest8 14.05.2020 13:00 # −999
3oJIoTou_xyu 14.05.2020 15:28 # 0
Needless 14.05.2020 13:02 # 0
bormand 14.05.2020 13:54 # 0
Needless 14.05.2020 14:03 # 0
guest8 14.05.2020 14:03 # −999
bormand 14.05.2020 14:07 # 0
guest8 14.05.2020 14:10 # −999
ropuJIJIa 14.05.2020 14:15 # 0
Но система может не заработать из-за того, что в реестре жёстко прописаны пути к разделу. Если поедут буквы дисков, нумерация физических дисков и разделов, то придётся загружаться с другого носителя и патчить реестр.
guest8 14.05.2020 14:23 # −999
jojaxon 14.05.2020 14:26 # 0
MAKAKA 14.05.2020 14:27 # 0
jojaxon 14.05.2020 14:31 # 0
https://codegolf.stackexchange.com/questions/22877/undefined-behavior-killed-my-cat
Needless 14.05.2020 14:56 # 0
guest8 14.05.2020 22:42 # −999
ropuJIJIa 14.05.2020 14:29 # 0
В принципе, если старый диск был первым физическим, система была установлена на первый раздел, и на новом месте система тоже будет на первом физическом и тоже на первом разделе, то по идее должно работать.
Хотя если используется GPT, то там же разделы нумеруются GUID'ами. Если переносишь не диск целиком, а только один раздел, GUID'ы могут не совпасть...
bormand, выручай. Винде важен GUID раздела, с которого грузиться или нет?
bormand 14.05.2020 14:37 # 0
guest8 14.05.2020 22:40 # −999
ropuJIJIa 14.05.2020 22:51 # 0
Короче, букву раздела при переезде лучше сохранять.
MAKAKA 14.05.2020 22:53 # 0
Я вообще всё целиком скопирну
bormand 14.05.2020 14:30 # +1
Именно поэтому я за загрузку с чего-то в духе прыщефлешки. Там думать вообще не надо. Главное не забудь потом старый диск выдрать или форматнуть.
jojaxon 14.05.2020 14:33 # +2
ropuJIJIa 14.05.2020 14:55 # 0
jojaxon 14.05.2020 15:05 # 0
3oJIoTou_xyu 14.05.2020 15:24 # 0
Наполняет ароматом атканчая
Дом в котором счастье обитает,
Золотая хуицаа, Золотая…
ATKAH4Au 14.05.2020 17:08 # 0
bormand 14.05.2020 14:16 # 0
guest8 14.05.2020 14:23 # −999
bormand 14.05.2020 14:28 # 0
ropuJIJIa 14.05.2020 21:32 # 0
https://web.archive.org/web/19980212102430/www.zinc.com:80/download/free/zaf.htm
Старый «Zinc» имитировал окошки «Windows 3.1», а более новые версии — окошки «Windows 95/98».
У «Цинка» появился свободный клон:
http://www.openzinc.com/Screenshots.html
Более новые версии дисковых утилит уже вместо DOS стали использовать Linux или Windows.
Needless 14.05.2020 22:19 # 0
MAKAKA 23.05.2020 04:42 # 0
MAKAKA 23.05.2020 05:03 # +1
Bootmg поднялся (потому что он адресуется через биос), а Winloader нет.
пришлось грузить с флешки "ERD Commander" и править BCD. Правда ERD сам всё сделал
guest8 14.05.2020 16:30 # −999
guest8 14.05.2020 16:47 # −999
Dpyroro 14.05.2020 17:00 # 0
guest8 15.05.2020 02:02 # −999