forked from Ninjasoturi/PokemonRaidBot
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathgymgps.php
101 lines (87 loc) · 2.92 KB
/
gymgps.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
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
<?php
// Write to log.
debug_log('GYMGPS()');
// For debug.
//debug_log($update);
//debug_log($data);
// Check access.
bot_access_check($update, 'gym-gps');
// Get gym by name.
// Trim away everything before "/gymgps "
$id_info = $update['message']['text'];
$id_info = substr($id_info, 8);
$id_info = trim($id_info);
// Display keys to get gym ids.
if(empty($id_info)) {
debug_log('Missing gym coordinates!');
// Set message.
$msg = CR . '<b>' . getTranslation('gym_id_gps_missing') . '</b>';
$msg .= CR . CR . getTranslation('gym_gps_instructions');
$msg .= CR . getTranslation('gym_gps_example');
// Set keys.
$keys = [];
} else {
// Set keys.
$keys = [];
// Get gym id.
$split_id_info = explode(',', $id_info,2);
$id = $split_id_info[0];
$info = $split_id_info[1];
$info = trim($info);
// Count commas given in info.
$count = substr_count($info, ",");
// 1 comma as it should be?
// E.g. 52.5145434,13.3501189
if($count == 1) {
$lat_lon = explode(',', $info);
$lat = $lat_lon[0];
$lon = $lat_lon[1];
// Lat and lon with comma instead of dot?
// E.g. 52,5145434,13,3501189
} else if($count == 3) {
$lat_lon = explode(',', $info);
$lat = $lat_lon[0] . '.' . $lat_lon[1];
$lon = $lat_lon[2] . '.' . $lat_lon[3];
} else {
// Invalid input - send the message and exit.
$msg = '<b>' . getTranslation('invalid_input') . '</b>' . CR . CR;
$msg .= getTranslation('gym_gps_coordinates_format_error') . CR;
$msg .= getTranslation('gym_gps_example');
sendMessage($update['message']['chat']['id'], $msg);
exit();
}
// Make sure we have a valid gym id.
$gym = false;
if(is_numeric($id)) {
$gym = get_gym($id);
}
if($gym && !empty($info)) {
debug_log('Updating gps coordinates for gym with ID: ' . $id);
debug_log('Gym latitude: ' . $lat);
debug_log('Gym longitude: ' . $lon);
my_query(
"
UPDATE gyms
SET lat = {$lat},
lon = {$lon}
WHERE id = {$id}
"
);
// Set message.
$msg = get_gym_details($gym);
$msg .= EMOJI_NEW . SP . $info;
$msg .= CR . CR . '<b>' . getTranslation('gym_gps_added') . '</b>';
} else if($gym && empty($info)) {
debug_log('Missing gym coordinates!');
// Set message.
$msg .= CR . '<b>' . getTranslation('gym_id_gps_missing') . '</b>';
$msg .= CR . CR . getTranslation('gym_gps_instructions');
$msg .= CR . getTranslation('gym_gps_example');
} else {
// Set message.
$msg .= getTranslation('invalid_input');
}
}
// Send message.
send_message($update['message']['chat']['id'], $msg, $keys, ['reply_markup' => ['selective' => true, 'one_time_keyboard' => true], 'disable_web_page_preview' => 'true']);
?>