-
Notifications
You must be signed in to change notification settings - Fork 24
/
bot.php
85 lines (67 loc) · 2.42 KB
/
bot.php
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
<?php
require __DIR__.'/vendor/autoload.php';
require __DIR__.'/lib/lib.php';
require __DIR__.'/lib/vk.api.php';
require __DIR__.'/config/config.php';
$response = $v->api('messages.get', [
'count' => 10
]);
$messages = $response['items'];
foreach($messages as $message)
{
if (!$message['read_state']) {
if (preg_match('/бот/ui', $message['body'])) {
if (preg_match('/(погода|погоду).(.*)/ui', $message['body'], $city)) {
$city = explode(' ', $city[0]);
$weater = getWeather($city[2]);
if ($weater) {
$messageText = empty($city[2]) ? "Я не понял запрос. Напиши так: покажи погоду в киеве" : getWeather($city[2]);
} else {
$messageText = 'Не могу найти погоду в ' . $city[2];
}
sendMessage($message, $messageText, $v);
}
if (preg_match('/факт/ui', $message['body'])) {
$messageText = getRandomFact();
sendMessage($message, $messageText, $v);
}
if (preg_match('/команды|как с тобой разговаривать|помощь/ui', $message['body'])) {
$messageText = "
Я тебе не бесдушная скотина, поэтому называй мое имя, когда пишешь мне.
1. Показать команды: бот, покажи команды\n
2. Показать погоду: Покажи погоду в city_name. Пример: бот, покажи погоду в киеве\n
3. Интересный факт: бот, покажи интересный факт";
sendMessage($message, $messageText, $v);
}
if(preg_match('/фото/', $message['body']))
{
$attachments = $v->upload_photo(false, ['images/deer.jpg']);
$messageText = 'вот фото';
sendMessage($message, $messageText, $v, $attachments);
}
}
/**
* Общение с ботом
*/
$ignore_symbs = [')', '))', '(', '((', ')))', ',', '!', '?'];
$talkPhraces = file(__DIR__ . '/files/talk.txt');
foreach ($talkPhraces as $phrases)
{
$phrases = explode(":", $phrases);
foreach ($phrases as $phrase)
{
if (preg_match('/'.$phrase.'/ui', $message['body'])) {
$messageText = $phrases[array_rand($phrases)];
if(!preg_match('/'.$messageText.'/ui', $message['body']))
{
sendMessage($message, $messageText, $v);
}
else
{
$messageText = $phrases[array_rand($phrases)];
}
}
}
}
}
}