# instagram 機器人 command line 使用手冊
## 執行前置
- 設定 Settingconfig.ini 檔案,才能夠執行
- 目前限定必須有chrome才能執行
- 所有額外檔案皆須與執行檔(InstagramBot.exe)同一層資料夾
```
可以的話使用 cmd 來執行檔案會比較好,執行結束後才會不整個視窗消失。
如果瀏覽器無法自動開啟,請查看電腦上chrome的版本號,(預設 chromedriver.exe for 版本 84 )
並且到 https://chromedriver.chromium.org/downloads 下載符合該版本的 chromedriver.exe,取代資料夾中的檔案
```
## SettingConfig 設定檔
```
只要有更改到該檔案,需重啟後設定才生效。
除了執行畫面會有訊息,程式執行後產生logging.log檔案,所有執行紀錄會存在該檔案中。
```
>如果無法正常閱讀 .md的檔案,可使用 https://dillinger.io/ 將內容複製貼上,以便閱讀。
## BaseSetting
` 基本設定 `
- username
- Ingstagram 帳號
- password
- Ingstagram 密碼
- infinite_loop (true or false)
- 是否要無限循環的執行,設定 false的話只會跑一次, true則會一直跑下去,直到 按 ctrl + c 中斷程式
## Function
` 可啟用功能,設定true or false決定該功能是否在這次執行時開啟,會隨著需求開發和更新新的功能`
- get_follower_links (true or false)
- 取得追隨該帳號的人個人頁連結
- send_msg_by_post (true or false)
- 發送推播訊息給,在該貼文下留言的人,不管回覆者回覆幾次,只會推播一次(可透過PostSendPushRecord.ini查看貼文下已推播過的帳號)
- reply_unread_msg (true or false)
- 自動回覆未讀訊息,可設定關鍵字來回覆特定文字,或者預設回覆
- get_links_by_tag (true or false)
- 取得特定Tag下所有貼文連結
- get_comment_username_by_post (true or false)
- 取得特定貼文下 "回覆" 者的Link
- get_like_username_by_post (true or false)
- 取得特定貼文下 "按讚" 者的Link
- push_msg_by_inbox_username (true or false)
- 根據聊天紀錄,對有紀錄者發送推播
- push_chat_script_by_inbox_username (true or false)
- 根據聊天紀錄,對有紀錄者發送腳本推播
## Function Setting
`以下為各個功能的參數設定`
### send_msg_by_post
`自動推播訊息,給貼文下留言的人`
- post_link
- 要監看的貼文連結
- msg
- 推播的訊息內容
### ReplyDict
` 自動回覆未讀訊息,辭典建立`
```
ex :
unread2=reply1
只要未讀的訊息中,有包含 "unread2",那將會自動回覆 "reply1" 的訊息給傳訊者
如 收到訊息為 "unread2 aaaabbbccc" ,則回覆 "reply1"
default=這是自動回覆測試
此項必須設置
此項為,如果收到訊息不在建立的詞典中,則回覆 ("這是自動回覆測試") 該訊息
如 收到訊息為 "不在辭典中" ,則回覆 "這是自動回覆測試"
```
### get_links_by_tag
`取得特定Tag下所有貼文連結`
- tag
- 要取得的Tag
### get_comment_username_by_post
`取得特定貼文下 "回覆" 者的Link`
- post_link
- 特定貼文之網址
### get_like_username_by_post
`取得特定貼文下 "按讚" 者的Link`
- post_link
- 特定貼文之網址
### push_msg_by_inbox_username
`根據聊天紀錄,對有紀錄者發送推播`
- msg
- 推播訊息
### push_chat_script_by_inbox_username
`根據聊天紀錄,對有紀錄者發送腳本推播`
- scrpit_json
- 以json格式做儲存
- script flow

```
{
"對話腳本_完整": [
{
"id": 1,
"question": "嗨嗨 又是我!\\n這是第二次ChatBot測試\\n上次感謝各位大大的幫忙,抓到許多問題,這一次加快了回覆速度,並且修復許多問題,大家可以嘗試多種回應方式(ex: 是 ooxx or 21313是 ...等),看看我這邊是不是可以抓到對的回答(或者觸發出更多的BUG...),以下為問題:\\n\\n你是否為第一次回覆問題\\n請選擇\\n\\n是 或 否",
"ans": [
{
"keyword": "是",
"result": "感謝大大參與測試,接下來還會有一些問題,再麻煩回答了!!!~~"
},
{
"keyword": "否",
"result": 3
}
],
"next": 2,
"isFirst": true
},
{
"id": 2,
"question": "嗨嗨 這是第二個問題,可以幫我看看接下來的問題回覆的速度好嗎? 好 or 不好",
"ans": [
{
"keyword": "不好",
"result": "雖然你回答不好,但我還是要繼續問下面的問題"
},
{
"keyword": "好",
"result": "感謝你~~~~"
}
],
"next": 3,
"isFirst": false
},
{
"id": 3,
"question": "你回答過其他問題,這機器人的回復速度是否即時?\\n\\n是 or 否",
"ans": [
{
"keyword": "否",
"result": "抱歉... 我再改進... 希望你可以回覆完所有問題..."
},
{
"keyword": "是",
"result": "感謝!希望你可以回覆完所有問題^^"
}
],
"next": 4,
"isFirst": false
},
{
"id": 4,
"question": "這是最後一題了,回答的途中有沒有遇到或發現什麼問題? 有 or 沒有",
"ans": [
{
"keyword": "沒有",
"result": "感謝你回答完問題,如果有遇到問題可留言喔!,有機率會有真人回應喔!!!"
},
{
"keyword": "有",
"result": "!! 麻煩你將遇到的問題描述一下,有機率會有真人回應喔!!!"
}
],
"next": null,
"isFirst": false
}
]
}
```
### Json 設定方式

### PushChatScriptRecord 閱讀方法
- 將 json 字串 放到這裡 用 path 查詢目前問題是什麼
- https://jsonpath.com/
- username -> key = 目前所在問題path value = 使用者回覆內容
