Skip to content

Commit

Permalink
バージョンアップ
Browse files Browse the repository at this point in the history
  • Loading branch information
natade-jp committed Dec 18, 2019
1 parent d5a0ecd commit 8d2e2e2
Show file tree
Hide file tree
Showing 11 changed files with 177 additions and 144 deletions.
2 changes: 1 addition & 1 deletion .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -11,4 +11,4 @@ jest.config.js
Thumbs.db
*.bak

*.json
*.json
27 changes: 26 additions & 1 deletion main/0-mainloop.js
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,29 @@ const onWakeVoice = function(target_text, pattern) {
}
};

Pod.talkText("プログラムを開始します。");
Pod.talkText("電源供給を確認しました。");

{
if(!Pod.isConnectedInternet()) {
Pod.talkText("外部ネットワークへの接続を試みます。");
const wait_time_sec = parseFloat(env["WAIT_TIME_SEC"]);
let now_time_sec = 0;
for(let now_time_sec = 0; now_time_sec < wait_time_sec; now_time_sec += 0.5) {
if(Pod.isConnectedInternet()) {
break;
}
Pod.sleep(0.5);
}
}
if(Pod.isConnectedInternet()) {
Pod.talkText("外部ネットワークへの接続が完了しました。");
}
else {
Pod.talkText("スタンドアロンモードで動作開始します。");
}
}

Pod.talkText("対話モードを開始します。");

while(true) {
console.log("...");
Expand Down Expand Up @@ -62,6 +84,9 @@ while(true) {
{
search: [ /すごいですね/ ], run:(test) => {Pod.talkText("ほめても、何も出ませんよ。");}
},
{
search: [ /ありがとうございます/ ], run:(test) => {Pod.talkText("いえいえ、お安い御用です。");}
},
{
search: [ /かわいいですね/ ], run:(test) => {Pod.talkText("ありがとうございます。心に受け止めておきます。");}
},
Expand Down
46 changes: 6 additions & 40 deletions main/13-get-ip.js
Original file line number Diff line number Diff line change
Expand Up @@ -2,45 +2,11 @@

const Pod = require("./Pod.js");

/*
以下のような情報を取得できる
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
valid_lft forever preferred_lft forever
inet6 ::1/128 scope host
valid_lft forever preferred_lft forever
2: eth0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc pfifo_fast state DOWN group default qlen 1000
link/ether aa:aa:aa:aa:aa:aa brd ff:ff:ff:ff:ff:ff
3: wlan0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
link/ether aa:aa:aa:aa:aa:aa brd ff:ff:ff:ff:ff:ff
inet 192.168.11.202/24 brd 192.168.11.255 scope global noprefixroute wlan0
valid_lft forever preferred_lft forever
inet6 XXXX:XXXX:XXXX:XXXX:XXXX:XXXX:XXXX:165a/64 scope global dynamic mngtmpaddr noprefixroute
valid_lft 14177sec preferred_lft 14177sec
inet6 XXXX::XXXX:XXXX:XXXX:XXXX/64 scope link
valid_lft forever preferred_lft forever
*/

const ip_data = Pod.run("ip address");
const ip_data_line = ip_data.split("\n");
let ip4 = null;

for(let i = 0; i < ip_data_line.length; i++) {
const line = ip_data_line[i];
if(/ inet /.test(line)) {
const m = line.match(/[0-9]+\.[0-9]+\.[0-9]+\.[0-9]+/);
if(m) {
const get_ip4 = m[0];
if(get_ip4 !== "127.0.0.1") {
ip4 = get_ip4;
break;
}
}
}
let ip4 = Pod.getIpAddress();
if(ip4 === null) {
Pod.talkText("現在、外部ネットワークへ接続を行っておらず、IPアドレスは付与されておりません。");
}
else {
Pod.talkText("私のIPアドレスは、" + ip4.replace(/\./g, " ") + "です。");
}

Pod.talkText("私のIPアドレスは、" + ip4.replace(/\./g, " ") + "です。");
38 changes: 35 additions & 3 deletions main/Pod.js
Original file line number Diff line number Diff line change
Expand Up @@ -49,13 +49,38 @@ class Pod {
return Pod.run("sleepenh " + time);
}


/**
* @returns {boolean}
* @returns {string|null}
*/
static isConnectedInternet() {
static getIpAddress() {
/*
以下のような情報を取得できる
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
valid_lft forever preferred_lft forever
inet6 ::1/128 scope host
valid_lft forever preferred_lft forever
2: eth0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc pfifo_fast state DOWN group default qlen 1000
link/ether aa:aa:aa:aa:aa:aa brd ff:ff:ff:ff:ff:ff
3: wlan0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
link/ether aa:aa:aa:aa:aa:aa brd ff:ff:ff:ff:ff:ff
inet 192.168.11.202/24 brd 192.168.11.255 scope global noprefixroute wlan0
valid_lft forever preferred_lft forever
inet6 XXXX:XXXX:XXXX:XXXX:XXXX:XXXX:XXXX:165a/64 scope global dynamic mngtmpaddr noprefixroute
valid_lft 14177sec preferred_lft 14177sec
inet6 XXXX::XXXX:XXXX:XXXX:XXXX/64 scope link
valid_lft forever preferred_lft forever
*/

const ip_data = Pod.run("ip address");
const ip_data_line = ip_data.split("\n");
let ip4 = null;

for(let i = 0; i < ip_data_line.length; i++) {
const line = ip_data_line[i];
if(/ inet /.test(line)) {
Expand All @@ -69,7 +94,14 @@ class Pod {
}
}
}
return ip4 !== null;
return ip4;
}

/**
* @returns {boolean}
*/
static isConnectedInternet() {
return Pod.getIpAddress() !== null;
}

/**
Expand Down
49 changes: 25 additions & 24 deletions main/dict/main.dfa
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
0 46 1 0 0
0 47 1 0 0
1 0 2 0 0
1 1 2 0 0
1 3 3 0 0
Expand All @@ -11,44 +11,45 @@
1 15 2 0 0
1 16 2 0 0
1 17 2 0 0
1 27 4 0 0
1 18 2 0 0
1 28 4 0 0
1 29 2 0 0
1 29 4 0 0
1 30 2 0 0
1 36 5 0 0
1 37 6 0 0
1 40 7 0 0
1 41 8 0 0
1 31 2 0 0
1 37 5 0 0
1 38 6 0 0
1 41 7 0 0
1 42 8 0 0
2 45 9 0 0
1 43 8 0 0
2 46 9 0 0
3 9 2 0 0
3 19 10 0 0
3 24 2 0 0
3 34 10 0 0
3 20 10 0 0
3 25 2 0 0
3 35 10 0 0
4 25 2 0 0
3 36 10 0 0
4 26 2 0 0
4 27 2 0 0
5 9 2 0 0
5 19 10 0 0
5 22 2 0 0
5 24 2 0 0
5 34 10 0 0
5 20 10 0 0
5 23 2 0 0
5 25 2 0 0
5 35 10 0 0
5 36 10 0 0
6 6 11 0 0
6 20 11 0 0
6 22 12 0 0
6 21 11 0 0
6 23 12 0 0
7 7 2 0 0
7 8 2 0 0
7 38 2 0 0
7 39 2 0 0
8 21 2 0 0
7 40 2 0 0
8 22 2 0 0
9 -1 -1 1 0
10 18 13 0 0
10 19 13 0 0
11 2 13 0 0
12 23 2 0 0
12 43 2 0 0
12 24 2 0 0
12 44 2 0 0
12 45 2 0 0
13 5 2 0 0
13 31 2 0 0
13 32 2 0 0
13 33 2 0 0
13 34 2 0 0
75 changes: 38 additions & 37 deletions main/dict/main.dict
Original file line number Diff line number Diff line change
Expand Up @@ -8,40 +8,41 @@
7 [しゃっとだうん] sh a q t o d a u N
8 [りぶーと] r i b u: t o
9 [あいぴーあどれす] a i p i: a d o r e s u
10 [おはようございます] o h a y o u g o z a i m a s u
11 [おやすみなさい] o y a s u m i n a s a i
12 [おつかれさまです] o ts u k a r e s a m a d e s u
13 [すごいですね] s u g o i d e s u n e
14 [かわいいですね] k a w a i i d e s u n e
15 [じこしょうかいをしてください] j i k o sh o u k a i o sh i t e k u d a s a i
16 [じこしょうかいをおねがいします] j i k o sh o u k a i o o n e g a i sh i m a s u
17 [なまえをおしえてください] n a m a e o o sh i e t e k u d a s a i
18 [の] n o
19 [てんき] t e N k i
20 [なんにち] n a N n i ch i
21 [しつもん] sh i ts u m o N
22 [いみ] i m i
23 [どういう] d o u i u
24 [あどれす] a d o r e s u
25 [はい] h a i
26 [よろしく] y o r o sh i k u
27 [おねがいします] o n e g a i sh i m a s u
28 [おねがいいたします] o n e g a i i t a sh i m a s u
29 [いいえきょひします] i i e ky o h i sh i m a s u
30 [きょひします] ky o h i sh i m a s u
31 [いま] i m a
32 [きょう] ky o u
33 [あした] a sh i t a
34 [きおん] k i o N
35 [おんど] o N d o
36 [をおしえてください] o o sh i e t e k u d a s a i
37 [ですか] d e s u k a
38 [ぷろせすをしゅうりょう] p u r o s e s u o sh u u ry o u
39 [ぷろぐらむをしゅうりょう] p u r o g u r a m u o sh u u ry o u
40 [してください] sh i t e k u d a s a i
41 [していいですか] sh i t e i i d e s u k a
42 [します] sh i m a s u
43 [どのような] d o n o y o u n a
44 [どんな] d o N n a
45 [[s]] silB
46 [[/s]] silE
10 [ありがとうございます] a r i g a t o u g o z a i m a s u
11 [おはようございます] o h a y o u g o z a i m a s u
12 [おやすみなさい] o y a s u m i n a s a i
13 [おつかれさまです] o ts u k a r e s a m a d e s u
14 [すごいですね] s u g o i d e s u n e
15 [かわいいですね] k a w a i i d e s u n e
16 [じこしょうかいをしてください] j i k o sh o u k a i o sh i t e k u d a s a i
17 [じこしょうかいをおねがいします] j i k o sh o u k a i o o n e g a i sh i m a s u
18 [なまえをおしえてください] n a m a e o o sh i e t e k u d a s a i
19 [の] n o
20 [てんき] t e N k i
21 [なんにち] n a N n i ch i
22 [しつもん] sh i ts u m o N
23 [いみ] i m i
24 [どういう] d o u i u
25 [あどれす] a d o r e s u
26 [はい] h a i
27 [よろしく] y o r o sh i k u
28 [おねがいします] o n e g a i sh i m a s u
29 [おねがいいたします] o n e g a i i t a sh i m a s u
30 [いいえきょひします] i i e ky o h i sh i m a s u
31 [きょひします] ky o h i sh i m a s u
32 [いま] i m a
33 [きょう] ky o u
34 [あした] a sh i t a
35 [きおん] k i o N
36 [おんど] o N d o
37 [をおしえてください] o o sh i e t e k u d a s a i
38 [ですか] d e s u k a
39 [ぷろせすをしゅうりょう] p u r o s e s u o sh u u ry o u
40 [ぷろぐらむをしゅうりょう] p u r o g u r a m u o sh u u ry o u
41 [してください] sh i t e k u d a s a i
42 [していいですか] sh i t e i i d e s u k a
43 [します] sh i m a s u
44 [どのような] d o n o y o u n a
45 [どんな] d o N n a
46 [[s]] silB
47 [[/s]] silE
1 change: 1 addition & 0 deletions main/dict/main.grammar
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
S: NS_B KONNICHIWA NS_E
S: NS_B KONBANWA NS_E
S: NS_B ARIGATOUGOZAIMASU NS_E
S: NS_B OHAYOUGOZAIMASU NS_E
S: NS_B OYASUMINASAI NS_E
S: NS_B OTSUKARESAMADESU NS_E
Expand Down
1 change: 1 addition & 0 deletions main/dict/main.kisoku
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@

$文 → こんにちは
$文 → こんばんは
$文 → ありがとうございます
$文 → おはようございます
$文 → おやすみなさい
$文 → おつかれさまです
Expand Down
Loading

0 comments on commit 8d2e2e2

Please sign in to comment.