＊バイリンガル対応＊癒し猫と犬の写真を見えるLINE BOTを作成！

## Intro
10月の休み、友人と四国に来ました。
２人ともネコが好きくて、飛ぶネコが有名な猫島「佐柳島」に行きたいでした！
しかし、フェリーのスケジュールに間に合わず、
結局は断念でした😭😭😭
ネコを見ると、心が癒される気持ちをわかるので、
どこでも、いつでも可愛いネコが見えるLINE BOTを作るきっかけでした。
(自分は猫派だが、犬派のために、犬も見える機能を加入しました🐕)

## 実際に動く画面
結果物はこんな感じでした：

https://twitter.com/winniexedge/status/1584561092080324608?s=20&t=hb4Cs2un0FUd0zyLnIKN3g

今回は日本語と英語を対応できる機能を作りました。
(猫, ネコ, cat, Cat, 犬, イヌ, dog, Dog⇨対応OKです！)
設定した言葉以外を入力しましたら、
**'Please enter cat/dog/犬/猫 only!'**
の提示が出てきます。

## Node-redのフロー
#### 3つのパス
①犬, イヌ, dog, Dog　⇨　犬の写真
②猫, ネコ, cat, Cat　⇨　猫の写真
③他　⇨　提示
![截圖 2022-10-25 上午12.20.43.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2885175/5e27adc0-7512-3485-bcfc-38b721bf1bbf.png)

## JSONフロー
```[
    {
        "id": "5ad4580e7b557bfe",
        "type": "tab",
        "label": "流程10",
        "disabled": false,
        "info": "",
        "env": []
    },
    {
        "id": "095b9e2091e5c928",
        "type": "Webhook",
        "z": "5ad4580e7b557bfe",
        "name": "",
        "url": "/webhook",
        "x": 120,
        "y": 320,
        "wires": [
            [
                "6818bed824609303"
            ]
        ]
    },
    {
        "id": "fbdf0d4c616f69b0",
        "type": "ReplyMessage",
        "z": "5ad4580e7b557bfe",
        "name": "",
        "replyMessage": "",
        "x": 720,
        "y": 320,
        "wires": []
    },
    {
        "id": "96aacf45ef5dc534",
        "type": "http request",
        "z": "5ad4580e7b557bfe",
        "name": "",
        "method": "GET",
        "ret": "obj",
        "paytoqs": "ignore",
        "url": "https://aws.random.cat/meow",
        "tls": "",
        "persist": false,
        "proxy": "",
        "insecureHTTPParser": false,
        "authType": "",
        "senderr": false,
        "x": 420,
        "y": 320,
        "wires": [
            [
                "62d312497a058ee6"
            ]
        ]
    },
    {
        "id": "62d312497a058ee6",
        "type": "function",
        "z": "5ad4580e7b557bfe",
        "name": "",
        "func": "msg.payload = 'Cat🐈 for you: ' + msg.payload.file  ;\n\n\nreturn msg;",
        "outputs": 1,
        "noerr": 0,
        "initialize": "",
        "finalize": "",
        "libs": [],
        "x": 550,
        "y": 320,
        "wires": [
            [
                "fbdf0d4c616f69b0"
            ]
        ]
    },
    {
        "id": "6818bed824609303",
        "type": "switch",
        "z": "5ad4580e7b557bfe",
        "name": "",
        "property": "payload",
        "propertyType": "msg",
        "rules": [
            {
                "t": "eq",
                "v": "Dog",
                "vt": "str"
            },
            {
                "t": "eq",
                "v": "dog",
                "vt": "str"
            },
            {
                "t": "eq",
                "v": "犬",
                "vt": "str"
            },
            {
                "t": "eq",
                "v": "イヌ",
                "vt": "str"
            },
            {
                "t": "eq",
                "v": "cat",
                "vt": "str"
            },
            {
                "t": "eq",
                "v": "Cat",
                "vt": "str"
            },
            {
                "t": "eq",
                "v": "猫",
                "vt": "str"
            },
            {
                "t": "eq",
                "v": "ネコ",
                "vt": "str"
            },
            {
                "t": "else"
            }
        ],
        "checkall": "true",
        "repair": false,
        "outputs": 9,
        "x": 250,
        "y": 320,
        "wires": [
            [
                "b44bbb6ee673420f"
            ],
            [
                "b44bbb6ee673420f"
            ],
            [
                "b44bbb6ee673420f"
            ],
            [
                "b44bbb6ee673420f"
            ],
            [
                "96aacf45ef5dc534"
            ],
            [
                "96aacf45ef5dc534"
            ],
            [
                "96aacf45ef5dc534"
            ],
            [
                "96aacf45ef5dc534"
            ],
            [
                "27e1b03ee5ae7c04"
            ]
        ]
    },
    {
        "id": "b44bbb6ee673420f",
        "type": "http request",
        "z": "5ad4580e7b557bfe",
        "name": "",
        "method": "GET",
        "ret": "obj",
        "paytoqs": "ignore",
        "url": "https://dog.ceo/api/breeds/image/random",
        "tls": "",
        "persist": false,
        "proxy": "",
        "insecureHTTPParser": false,
        "authType": "",
        "senderr": false,
        "credentials": {},
        "x": 420,
        "y": 260,
        "wires": [
            [
                "c310ab9021353a46"
            ]
        ]
    },
    {
        "id": "c310ab9021353a46",
        "type": "function",
        "z": "5ad4580e7b557bfe",
        "name": "",
        "func": "msg.payload = 'Dog🐕 for you: ' + msg.payload.message  ;\n\n\nreturn msg;",
        "outputs": 1,
        "noerr": 0,
        "initialize": "",
        "finalize": "",
        "libs": [],
        "x": 550,
        "y": 260,
        "wires": [
            [
                "fbdf0d4c616f69b0"
            ]
        ]
    },
    {
        "id": "27e1b03ee5ae7c04",
        "type": "function",
        "z": "5ad4580e7b557bfe",
        "name": "",
        "func": "msg.payload = 'Please enter cat/dog/犬/猫 only😀!'  ;\n\n\nreturn msg;",
        "outputs": 1,
        "noerr": 0,
        "initialize": "",
        "finalize": "",
        "libs": [],
        "x": 410,
        "y": 380,
        "wires": [
            [
                "fbdf0d4c616f69b0"
            ]
        ]
    }
]
```

## 振り返り
最初の発想は、
結果のようなUrlを提供ではなく、
写真自体を送れる想定でした。
しかし、その機能を実現できるfunction最後までできず、
間をとって,今回のLINE BOTを作りました。
やはり写真自体を送れば、
使用者がより早めに癒されるので、
できればfunctionの書き方を改善したいと思います。