LoginSignup
3
5

More than 3 years have passed since last update.

使わなくなったiPhoneでDiscord Botを動かしてみる

Last updated at Posted at 2020-04-17

動機

24時間稼働させたいけどレンタルサーバーは面倒だしiPhoneで動いたらいいな~と思ったから

用意したもの

StaSh(Pythonista Shell)を入れる

適当にThis iPhone の下に好きな名前のScriptファイルを作って下のコードを書き込む
import requests as r; exec(r.get('http://bit.ly/get-stash').text)
インストールが終わったらPythonistaを再起動してlaunch_stash.pyを実行する(作ったファイルと同じ場所にある)

discord.pyを入れる

launch_stash.pyを実行するとターミナルみたいな画面になるのでそこで次のコードを打ち込む
pip install discord.py[voice]
音声を使わないなら
pip install discord.py
無事インストールできているか確認のために適当なScriptファイルで
import discord
と書いて実行してみる

するとModuleNotFoundErrorでctypes.macholibが無いよと言われる

Cpythonを入れる

次のURLをsafariで開くとダウンロードが始まるので待つ
https://github.com/python/cpython/archive/v3.6.1.zip
ダウンロードが終わったらファイル(アプリ)を開く
cpythonというファイルをクリックすると解凍してくれるので少し待って、解凍したフォルダを長押しして移動を押すと移動する場所を選択することになるのでこのiPhone内>Pythonista3を押してコピーする(時間かかるかも)

Pythonistaを開き左側のタブを開いたらEXTERNAL FILESのopen...を押すと選択肢が出てくるのでFolder...を選択さっきコピーしたこのiPhone内のPythonista 3を押すとcpythonが出てくるので選択して完了を押す

するとcpythonフォルダーができているのでcpythonフォルダーのlibを開く、その中にctypesというフォルダーがあるのでEditを押してsite-package-3にファイルを移動させる

うまくいっていればimport discordでエラーが出ない

動かしてみる


import sys
import time
import discord

TOKEN = '自分のBOTのアクセストークン'
client = discord.Client()

# 接続時の処理
@client.event
async def on_connect():
    print('login')
    time.sleep(5)
    await client.close()
    print('logout')
    sys.exit()

client.run(TOKEN)

動いたのでヨシ!

1回目は正常に動くが2回目以降エラーがでて機能しない
非同期処理のことが全く分からないので解決できない
エラー文はEvent loop is closedという単純なものでいろいろ調べて確かめてみたが結局解決できなかった
非同期処理の勉強して出直してきます......

エラーが出ないコード

実行し終わったらpythonistaを落とすやつです。


import os
import time
import discord

TOKEN = '自分のBOTのアクセストークン'
client = discord.Client()

#接続時の処理
@client.event
async def on_connect():
    print('login')
    time.sleep(5)
    await client.close()
    print('logout')
    os.abort()

client.run(TOKEN)

以下参考サイト

Pythonista 3 にStaSh をインストールする。
https://qiita.com/maboy/items/cef5dee13d5b2e9ac843
Missing ctypes.macholib breaks ctypes.util
https://github.com/omz/Pythonista-Issues/issues/311

3
5
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
5