Android端末上でDiscordのbotを動かす(Termux)

# スマホ(Android)でbotを動かそう！
## はじめに
「とりあえずやってみたらできた」状態なので無駄な部分、必要なのに実行していない部分などがあるかもしれません。いや、絶対ある。
この記事に出てくる`pip`や`cd`の意味はここでは解説しません。

正直なところ、常時動かしたいならHerokuとかのサーバーサービスを利用したほうが無難です。

## 私の環境
XperiaXZ 601SO Android7.0

## インストールするもの
何もTermuxがないと始まりません。
playストアから持って来ましょう。
[Termux - Google Play](https://play.google.com/store/apps/details?id=com.termux&hl=ja)

あと、Hacker's Keyboardのようなキーボードも入れておくことを推奨します。
場合によってはescキーなどを使うので。
私は[CodeBoard Keyboard](https://play.google.com/store/apps/details?id=com.gazlaws.codeboard)を使っています。

## Termuxの操作

`>>>`：python実行中
`$`：ターミナル

`exit`と打つ(入力してENTER)か、通知バーからEXITを押します。
pythonから抜ける場合は`exit()`です。


## 手順
### Pythonの準備
Termuxを開きます。キーボードをインストールしたなら切り替えておきます。

はじめに内部ストレージアクセスの許可を取ります。
`termux-setup-storage`
許可するかどうかの画面が出るので許可します。
ブルーライトフィルター等のオーバーレイ系アプリを利用している場合は解除してからでないと押せません(Androidの仕様です。)

まずはパッケージのアップデートをします
`pkg update`
本命のPython3を入れます。
`pkg install python`
一応バージョン確認をします。
`python -V`
おそらく3.7以上になっていると思います。

### よし、Discord.pyを入れよう
~~お待ちを。
python3.7ではそのままDiscord.pyを入れるとあとあとエラーが出て動きません。~~

### ~~対処~~
~~githubから3.7に対応したrewrite版を入手します。~~

~~まずはgithubから取得できるようgitをインストールします。
`pkg install git`~~

~~gitが入ったらrewrite版をインストールします。
`pip install git+https://github.com/Rapptz/discord.py.git@rewrite`~~

**追記**：現在のDiscord.pyのバージョンならば直接`pip install discord.py`でも問題なさそうです。

(pipはpythonをインストールした際に勝手にパスが通される模様。)
これでbotを動かす環境ができました。

## pyファイルからの実行
既に作ってあるpyファイルから起動するには、そのファイルが置いてあるディレクトリに移動して
`python ファイル名.py`
と入力します。

### どう起動するか
例としてダウンロードフォルダ直下にあるとします。
その場合、

```
cd ~/storage/downloads
python ファイルの名前.py
```

で起動することができます。（"~"の部分は`/data/data`なんちゃらを表す）

~/storage/ 以下の指定
Download：downloads
DCIM：dcim
Movies：movies
Pictures：pictures
Music：music
内部ストレージのルート：shared

### botを起動させた後放置していたら勝手に落ちた
termux長時間手動で開いていないとAndroidOSに勝手に終了させられます。
通知バーを引き出し、termuxの通知部分に`ACQUIRE WAKELOCK` があるので押すと勝手な終了を抑制できます。


## 簡単に実行しよう
### いちいち打つのが面倒

**【上記のキーボードが入れてあることが前提です】**

というわけで短いコマンドで実行できるようにします。
`vi ~/.bashrc `
編集するため、キーボードの`I`キーを押します。（ファイルが存在しない場合勝手に新規作成されます。）

書き方は、
`alias 好きな名前='実行したい動作'`
です。
例えば、`alias bot1='cd ../'`
とするとbot1と入力するだけで上の階層へ移動できます。
入力終わったらescで編集モードの解除をします。
`:wq`と打つと保存して終了、破棄する(保存しない)場合`:q!`と打ちます

次に、毎回この簡略化を反映させる(起動時自動的に有効化する)ために
`vi ~/.bash_profile` と打ち、`I`で編集モードへ
　`source ~/.bashrc`
と記述
同じく`esc`で抜けて:wqで保存します。

termuxを再起動します。

これで好きな名前で実行できるようになります。

## numpy(scipy)の導入
必要な方のみ。pipを使うとエラーでインストールできません。
https://wiki.termux.com/wiki/Package_Management
の
By its-pointless (live_the_dream):
という部分までスクロールすると3行のコマンドが載っています。これを順に実行してください。
注意点としては、Google翻訳等で翻訳をしている場合不要なスペース等が入ることがあります。解除してからの入力をおすすめします。

---

お疲れ様でした。

## 参考サイト
[Termux上でPython関連のライブラリを入れる: LibreOfficeとPythonを楽しむ](http://hibagon.sblo.jp/article/181186800.html)
[termuxでDocomoでもらった０円タブレット(d-01J)に開発環境を作る - Live the Life you Love](http://www.llul.info/entry/2018/06/03/termux%E3%81%A7Docomo%E3%81%A7%E3%82%82%E3%82%89%E3%81%A3%E3%81%9F%EF%BC%90%E5%86%86%E3%82%BF%E3%83%96%E3%83%AC%E3%83%83%E3%83%88%28d-01J%29%E3%81%AB%E9%96%8B%E7%99%BA%E7%92%B0%E5%A2%83%E3%82%92%E4%BD%9C)
[Termuxメモ | 粉末@それは風のように (日記)](https://funmatu.wordpress.com/2018/01/14/termux%E3%83%A1%E3%83%A2/)
[【Termux】Android上にPython環境を作成する - Qiita](https://qiita.com/HirotakaK/items/a9e7faf048a3bd9d1e9d)
[AndroidでPythonの実行環境を整える - Qiita](https://qiita.com/kokorinosoba/items/a700cc94f3c9ef19440f)