Skip to content
This repository has been archived by the owner on Jan 3, 2023. It is now read-only.

挙動が怪しい #13

Open
t4t5u0 opened this issue Jun 13, 2020 · 15 comments
Open

挙動が怪しい #13

t4t5u0 opened this issue Jun 13, 2020 · 15 comments

Comments

@t4t5u0
Copy link
Contributor

t4t5u0 commented Jun 13, 2020

else : # デフォルトではpngでupload

において、else ということは、適当なオプション例えば --svg などを指定した場合に、pngを返す。これは仕様なのか

@t4t5u0
Copy link
Contributor Author

t4t5u0 commented Jun 13, 2020

else : # デフォルトではpngで返す

ここもそう。多分デフォルトの保証がされていない

@kota-shiokara
Copy link
Owner

おっしゃる通り。現在のコマンドが!outputの後にスペース入れて文字列というのを正規表現使ってとってきてるので、--gif以外の文字列は全部pngで返す仕様になっている。
しかも@listen_to('!output (.*)')でなので、!outputの後にスペース入れて文字列を入力しないとoutputメソッドが動かない。ここは要改善かと考えている。

@t4t5u0
Copy link
Contributor Author

t4t5u0 commented Jun 13, 2020

気が向いたら直すわ。一応正規表現も使ったことあるので

@t4t5u0
Copy link
Contributor Author

t4t5u0 commented Jun 13, 2020

.* じゃなくて *じゃだめなの?

(|[--(png|gif)]) みたいな感じで取ってくるとか

@kota-shiokara
Copy link
Owner

参考にしたサイトが.*使ってただけなので特にこだわりはない
(|[--(png|gif)]) これでちょっと挙動確認してみる

@t4t5u0
Copy link
Contributor Author

t4t5u0 commented Jun 13, 2020

* でとって、.split() した方がよさそう。--gif のあとに int を受け取るのが楽になるので

@kota-shiokara
Copy link
Owner

splitでとることにした。それと.じゃなくての場合取ってくることができなかった。

@t4t5u0
Copy link
Contributor Author

t4t5u0 commented Jul 2, 2020

.*じゃなくての場合

とは

@kota-shiokara
Copy link
Owner

うわ、記号のせいで変な感じになってる
「.*」じゃなくて「.」の場合ってことです

@t4t5u0
Copy link
Contributor Author

t4t5u0 commented Jul 2, 2020

.の場合うまく取れないのは自明(任意の一文字を表す正規表現なので)

正規表現ちょっと勉強したほうがいいかも

ちなみに (|--[png|gif]) はうまくいった?

@kota-shiokara
Copy link
Owner

あ、ごめん「*」の時でもあった
確かに正規表現は勉強しといた方がいいですよね...
(|--[png|gif])は上手くいかなかった、「--」しか取れなかった

@t4t5u0
Copy link
Contributor Author

t4t5u0 commented Jul 2, 2020

((--(png|gif))| )
これでいけんか。多分なおした

@kota-shiokara
Copy link
Owner

--pngもしくは付け足して実行した場合

failed to handle message !output --png
void draw(){
background(255);
} with plugin "output"
Traceback (most recent call last):
  File "/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-packages/slackbot/dispatcher.py", line 55, in _dispatch_msg_handler
    func(Message(self._client, msg), *args)
TypeError: output() takes 2 positional arguments but 4 were given

と出た。ちなみにオプションなしや、「!output 」ってスペースつけた場合は無視された

@t4t5u0
Copy link
Contributor Author

t4t5u0 commented Jul 2, 2020

エラーだけ見せられてもコード見てないからわかんない…

関数に引数を多く渡していると怒られてるのでなんとかしてあげてください(エラー文からわかる情報)

無難に全部取るのが楽かも

@kota-shiokara
Copy link
Owner

そだね、多分これが一番手っ取り早い気がします

@listen_to('!output (.*)')
def output(message, arg): # argはオプション
args = arg.split() # オプションをリストで保持

Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants