atcoder-tools icon indicating copy to clipboard operation
atcoder-tools copied to clipboard

gen コマンドの --without-login をデフォルトにしたい

Open kmyk opened this issue 7 years ago • 10 comments

ログインしなくても見れるページしか触らない場合でもパスワードの入力が要求されてしまっています。必要もないのにパスワードを聞いてくるプログラムにパスワードを入力するのは勇気が必要であり、ユーザに優しくないです。なので --without-login はデフォルトにしたいです。

kmyk avatar Feb 15 '19 03:02 kmyk

UXの観点から同意します。 ただ、パスワードが必要なタイミングが生じたのを検出して、例えば --with-login が必要だと警告する、もしくは警告なしでそのままパスワード入力に移るというのをしたいです。

どちらがいいと思いますか?

kyuridenamida avatar Feb 15 '19 04:02 kyuridenamida

--with-login が必要だと警告して終了するのがよいと思います。

警告なしでそのままパスワード入力に移るのはたしかに入力文字数は減りますが、パスワード入力は頻繁な操作ではないのであまり差はありません。 一方で、どちらもユーザにとって予想外の事態であることは変わりませんし、ログインし直してから再試行することを実装するのは単に警告を出して終了するより複雑で面倒であり、さらに他のプログラムから呼び出されていた場合には来るはずのない入力を待ち受ける事態を生む罠になりえます。 なので総合的には警告を吐くだけの方が適切だと思います。

kmyk avatar Feb 15 '19 04:02 kmyk

その方針でいきましょう。 やってくれたら嬉しいですけど@kmykさんがcredential周りを触るのが少し気が進まない感じであれば僕のほうでやったほうがいいですかね?

kyuridenamida avatar Feb 15 '19 05:02 kyuridenamida

やります。 認証情報のまわりといえばそうですが、気にしなくてよいはずです。その機能そのものは触らず単に呼び出す部分だけなので。

変更は以下のようなものでいいですか?

  • サブコマンド gen codegen のオプション --without-login はそのまま、ただしデフォルトにする
  • サブコマンド gen codegen にオプション --with-login を追加し、 --without-login=false に相当するものとする
  • 設定ファイル中の etc.download_without_login はそのまま
  • --without-login が指定された場合、サブコマンド gen codegen の処理の冒頭で、対象のコンテストや問題のページを開いてみて 404 とかしたらメッセージを出して終了する。指定されてなければ今までのまま

kmyk avatar Feb 16 '19 10:02 kmyk

これ明日返事します。

kyuridenamida avatar Feb 16 '19 17:02 kyuridenamida

かなりおそくなりました。

  • サブコマンド gen codegen のオプション --without-login はそのまま、ただしデフォルトにする

OKです

  • サブコマンド gen codegen にオプション --with-login を追加し、 --without-login=false に相当するものとする

OKです

  • 設定ファイル中の etc.download_without_login はそのまま

これでOKです。但し、etc.download_with_loginもetc_configにあるようにして欲しいです。

  • --without-login が指定された場合、サブコマンド gen codegen の処理の冒頭で、対象のコンテストや問題のページを開いてみて 404 とかしたらメッセージを出して終了する。指定されてなければ今までのまま

これがありがたいです。

あと、--without-loginはコマンドとしては残しつつhelpからだけ消す方法があったと思うのでそれをお願いします。

お手数をおかけしますが、よろしくお願いします。

kyuridenamida avatar Feb 19 '19 16:02 kyuridenamida

etc.download_with_login を足したいというのも分かるのでそのようにしましょう。 しかし、これと etc.download_without_login が設定ファイルに同時に出現した場合が少し困ります。大きな選択肢としては「警告を出して終了する」「終了せずに続行する」のふたつがありますが、前者でいいですか?

kmyk avatar Feb 19 '19 21:02 kmyk

設定ファイルに二つ現れた場合は警告して終了しちゃって大丈夫です

kyuridenamida avatar Feb 20 '19 01:02 kyuridenamida

了解です

kmyk avatar Feb 20 '19 01:02 kmyk

これやるんですが、コードを整理した後にしたい気持ちが湧いてきました

kmyk avatar Feb 22 '19 21:02 kmyk