summaryrefslogtreecommitdiff
path: root/oracles/time.php
blob: 57af0930a0ca0c6453a504678bdf0bbd31c8c510 (plain)
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
<?php
include_once("oracles/base.php");
class time extends oracle {
	public $info = [
		"name" => "what time is it?"
	];
	public function check_query($q) {
		$prompts = [
			"what", "time", "is", "it",
			"right", "now", "the", "current",
			"get"
		];
		$q = str_replace(",", "", $q);
		$q = str_replace("?", "", $q);
		$q = str_replace("what's", "what is", $q);
		$oq = $q;
		$q = explode(" ", $q);
		$count = 0;
		foreach ($q as $word) {
			if (in_array($word, $prompts)) {
				$count++;
			}
		}
		// remove one from total count if a timezone is specified
		return ($count/(count($q) + (str_contains($oq, "tz:") ? -1 : 0))) > 3/4;
	}
	public function generate_response($q) {
		$timezone = timezone_name_from_abbr("UTC");
		foreach (explode(" ", $q) as $word) {
			if (str_starts_with($word, "tz:")) {
				$decltz = timezone_name_from_abbr(substr($word, 3, 3));
				if ($decltz) {
					$timezone = $decltz;
				}
			}
		}
		date_default_timezone_set($timezone);
		return [
			"The time in ".$timezone => date("H:i:s"),
			"" => "include the string \"tz:XXX\" to use timezone XXX"
		];
	}
}
?>