AtCoderNoviSteps icon indicating copy to clipboard operation
AtCoderNoviSteps copied to clipboard

ABS?の詳細ページを表示しようとするとInternal Errorと表示されると報告を受けたので、AtCoderへの問題リンクと解答状況ボタンが表示されるようにしましょう

Open KATO-Hiro opened this issue 2 years ago • 5 comments

Summary / 概要

  • Describe the bug. A clear and concise description of what the bug is.

Steps to reproduce / 再現方法

  1. xxx
  2. yyy
  3. zzz

environments

  • Desktop (please complete the following information):

    OS: [e.g. Mac, Windows11, Linux] Browser [e.g. Chrome, Safari, Edge, Firefox] Version [e.g. 117.0.05938.44]

  • Smartphone (please complete the following information):

    Device: [e.g. iPhone15, Android13] OS: [e.g. iOS16.5, Android 13] Browser [e.g. Chrome, Safari] Version [e.g. 16.5]

  • Tablet (please complete the following information):

    OS: [e.g. Android OS, Chrome OS, Windows11, iPad OS] Browser [e.g. Chrome, Safari, Edge, Firefox] Version [e.g. 16.5]

Expected behavior / 期待される挙動

  • A clear and concise description of what you expected to happen.

Actual behavior / 実際の挙動

Screenshots

  • If applicable, add screenshots to help explain your problem.

Other notes / その他

  • Add any other context about the problem here.
  • Will you try to create a pull request?
    • yes / no

KATO-Hiro avatar Dec 03 '23 06:12 KATO-Hiro

ABS_X で来たら、実体としてはABC_Yに飛ばす、みたいな感じでしょうか? taskのデータベースに代替(実体)となるtask_xxx_idみたいに保持しておくのでしょうかねえ。 (昔のARCが、ABCのC以降だったのもありますよね)

prettyhappycatty avatar Dec 10 '23 15:12 prettyhappycatty

@prettyhappycatty

ABS_X で来たら、実体としてはABC_Yに飛ばす、みたいな感じでしょうか? 私はそのように認識しています。 ABSに関しては問題数も少ないので、UI側で対処しても差し支えないように思っていますが、いかがでしょうか? 例えば、ハッシュテーブルで処理するとよいのではないかと考えています。

taskのデータベースに代替(実体)となるtask_xxx_idみたいに保持しておくのでしょうかねえ。 (昔のARCが、ABCのC以降だったのもありますよね) 現状ではtask_idにunique制約を設けてしまっため、同じidで登録するのは難しいと思います。 スキーマを変更するか、UI側で処理をする必要がありそうです。

ABC・ARC同日開催の問題(#174)に関して、初回リリースの時点では公開の対象外なので、やや優先度が低めだと認識ですが、2回目以降のリリースでは対処したいですね。

KATO-Hiro avatar Dec 11 '23 00:12 KATO-Hiro

@KATO-Hiro ありがとうございます! ARC後回しの件承知しました! 最初思っていたのは、問題集機能で、ABSとか通常のABCとかARCを問題集として作ればいいのかなあなんて思っていました。 ハッシュテーブルも良さそうですね!

prettyhappycatty avatar Dec 11 '23 00:12 prettyhappycatty

@prettyhappycatty

ありがとうございます!

問題集機能で、ABSとか通常のABCとかARCを問題集として作ればいいのかなあなんて思っていました

ABS誕生の経緯を考えると、おっしゃる通りですね!! 長期的な視点で考えると、問題集機能として実装したほうが良さそうです。

ハッシュテーブルによる実装は、早期のレビュー・フィールドバックを受ける段階までの一時的的な扱いで、問題集機能として実装するまでのつなぎにするとよいのかもと思っています。

KATO-Hiro avatar Dec 11 '23 03:12 KATO-Hiro

Internal Errorが毎回発生するわけではなさそうですが、1回リロードすると正しく表示されるようです。

念のため、ローカルサーバで表示されたエラーを掲載しておきます。

TypeError: Cannot read properties of undefined (reading 'find')
    at Module.getTaskResult (/usr/src/app/src/lib/services/task_results.ts:61:16)
    at load (/usr/src/app/src/routes/problems/[slug]/+page.server.ts:8:33)
    at Module.load_server_data (/usr/src/app/node_modules/.pnpm/@[email protected][email protected][email protected]/node_modules/@sveltejs/kit/src/runtime/server/page/load_data.js:51:41)
    at /usr/src/app/node_modules/.pnpm/@[email protected][email protected][email protected]/node_modules/@sveltejs/kit/src/runtime/server/data/index.js:62:13
    at async Promise.all (index 1)
    at async Module.render_data (/usr/src/app/node_modules/.pnpm/@[email protected][email protected][email protected]/node_modules/@sveltejs/kit/src/runtime/server/data/index.js:100:17)
    at async resolve (/usr/src/app/node_modules/.pnpm/@[email protected][email protected][email protected]/node_modules/@sveltejs/kit/src/runtime/server/respond.js:394:17)
    at async Object.handle (/usr/src/app/src/hooks.server.ts:9:10)
    at async Module.respond (/usr/src/app/node_modules/.pnpm/@[email protected][email protected][email protected]/node_modules/@sveltejs/kit/src/runtime/server/respond.js:274:20)
    at async file:///usr/src/app/node_modules/.pnpm/@[email protected][email protected][email protected]/node_modules/@sveltejs/kit/src/exports/vite/dev/index.js:510:22
TypeError: Cannot read properties of undefined (reading 'find')
    at Module.getTaskResult (/usr/src/app/src/lib/services/task_results.ts:61:16)
    at load (/usr/src/app/src/routes/problems/[slug]/+page.server.ts:8:33)
    at Module.load_server_data (/usr/src/app/node_modules/.pnpm/@[email protected][email protected][email protected]/node_modules/@sveltejs/kit/src/runtime/server/page/load_data.js:51:41)
    at /usr/src/app/node_modules/.pnpm/@[email protected][email protected][email protected]/node_modules/@sveltejs/kit/src/runtime/server/data/index.js:62:13
    at process.processTicksAndRejections (node:internal/process/task_queues:95:5)
    at async Promise.all (index 1)
    at async Module.render_data (/usr/src/app/node_modules/.pnpm/@[email protected][email protected][email protected]/node_modules/@sveltejs/kit/src/runtime/server/data/index.js:100:17)
    at async resolve (/usr/src/app/node_modules/.pnpm/@[email protected][email protected][email protected]/node_modules/@sveltejs/kit/src/runtime/server/respond.js:394:17)
    at async Object.handle (/usr/src/app/src/hooks.server.ts:9:10)
    at async Module.respond (/usr/src/app/node_modules/.pnpm/@[email protected][email protected][email protected]/node_modules/@sveltejs/kit/src/runtime/server/respond.js:274:20)
TypeError: Cannot read properties of undefined (reading 'find')
    at Module.getTaskResult (/usr/src/app/src/lib/services/task_results.ts:61:16)
    at load (/usr/src/app/src/routes/problems/[slug]/+page.server.ts:8:33)
    at Module.load_server_data (/usr/src/app/node_modules/.pnpm/@[email protected][email protected][email protected]/node_modules/@sveltejs/kit/src/runtime/server/page/load_data.js:51:41)
    at /usr/src/app/node_modules/.pnpm/@[email protected][email protected][email protected]/node_modules/@sveltejs/kit/src/runtime/server/page/index.js:141:19
    at process.processTicksAndRejections (node:internal/process/task_queues:95:5)

KATO-Hiro avatar Dec 13 '23 04:12 KATO-Hiro