We read every piece of feedback, and take your input very seriously.
To see all available qualifiers, see our documentation.
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
#78 の対策の一環。
本拡張機能では Manaba の課題と各タスク管理ツール上のタスクとの紐づけを chrome.storage.sync で持っている。これは manaba 上で課題の状態が変化したとき、連携して各タスク管理ツールのタスクの状態も変更するためである。
chrome.storage.sync
しかし現状の処理だと manaba 上で課題そのものが消えた場合に対応ができない。 現状は manaba 上の各課題の URL を保存し、その URL をスクレイピングすることにより課題の状態を追跡している。このとき例えば「秋学期になり課題ページそのものが消えた」となると、ページにアクセスできなくなり、状態を追跡することができず、タスク管理ツール上には永遠に課題が残ることになる。
そのため Manaba 上で消えた課題を削除するための仕組みが必要になる。 ただし普通に課題にアクセスできないだけでは、ただの通信不良か課題が削除されたかの判定ができないので工夫が必要。
課題が消えたことを自動的に判定する場合 消えた課題などは「ページが削除されているか、非公開になっている可能性があります。また、リンク元の記述に誤りがあるのかもしれません。」というページになることがよく観測される。 また course そのものが違う場合は「このページを開く権限がありません。」と表示される。 この 2 つを自動で判定して、削除できないか。
人力で解決する場合 発生頻度が少ないのであれば自分で紐づけを解除するとかでも十分かもしれない
課題が消えたことを自動的に判定する
の方針にする。
非公開になった課題は各タスク管理ツール上でも削除されて支障がないとする。 仮に教員のミスで非公開になってしまったとしても、最悪「同期」をすれば解決できるので)
課題が削除された判定は status code が 404 かで判定する。 調べたところページ本文中に「ページが削除されているか、非公開になっている可能性があります。また、リンク元の記述に誤りがあるのかもしれません。」と表示される場合は status code が 404 になることがわかったため。この文章で判定してもいいが、文章で判定するほうが manaba の仕様変更に追従できなさそうなので、status code で判定する。
なお権限がない場合でも 404 を返すサービスが多々あるが、manaba の場合は 403 を返してくれるので 「このページを開く権限がありません。」の判別も可能。
具体的には ManabaTodoStatus に notFound を追加し
ManabaTodoStatus
notFound
manaba-report-integration/src/types/manabaTodo.ts
Line 11 in 8d31bab
upsert 時に relation から削除する。
upsert
relation
manaba-report-integration/src/repositories/googleTask.ts
Line 39 in 5a5fcf0
このとき各タスク管理ツール上に保持された課題の扱いには以下の選択肢があるが
1 はいきなり消えるのは混乱のもとなのでなし 2 も「課題が消えたのに完了」なのは混乱の元だが、大抵のタスク管理ツールには「未完」「完了」の 2 値ぐらいしかないので、そうするしかないか?期限切れあつかいでもいいのかもしれない。 3 ができればベストだが、各サービスごとに事情がことなる
あるいは relation に課題の期限も記録するようにして、manaba から最新の情報が得られなくなれば、その期限を暫定として、例の「2 週間以上前の課題は削除」の対象にしてもいいかもしれない。 ただし別の観点として「この課題は manaba には掲載されておらず、連携もされていない」ということを明示的に表現しないと混乱が生じないか?
The text was updated successfully, but these errors were encountered:
No branches or pull requests
背景
#78 の対策の一環。
本拡張機能では Manaba の課題と各タスク管理ツール上のタスクとの紐づけを
chrome.storage.sync
で持っている。これは manaba 上で課題の状態が変化したとき、連携して各タスク管理ツールのタスクの状態も変更するためである。しかし現状の処理だと manaba 上で課題そのものが消えた場合に対応ができない。
現状は manaba 上の各課題の URL を保存し、その URL をスクレイピングすることにより課題の状態を追跡している。このとき例えば「秋学期になり課題ページそのものが消えた」となると、ページにアクセスできなくなり、状態を追跡することができず、タスク管理ツール上には永遠に課題が残ることになる。
そのため Manaba 上で消えた課題を削除するための仕組みが必要になる。
ただし普通に課題にアクセスできないだけでは、ただの通信不良か課題が削除されたかの判定ができないので工夫が必要。
課題が消えたことを自動的に判定する場合
消えた課題などは「ページが削除されているか、非公開になっている可能性があります。また、リンク元の記述に誤りがあるのかもしれません。」というページになることがよく観測される。
また course そのものが違う場合は「このページを開く権限がありません。」と表示される。
この 2 つを自動で判定して、削除できないか。
人力で解決する場合
発生頻度が少ないのであれば自分で紐づけを解除するとかでも十分かもしれない
設計
の方針にする。
非公開になった課題は各タスク管理ツール上でも削除されて支障がないとする。
仮に教員のミスで非公開になってしまったとしても、最悪「同期」をすれば解決できるので)
課題が削除された判定は status code が 404 かで判定する。
調べたところページ本文中に「ページが削除されているか、非公開になっている可能性があります。また、リンク元の記述に誤りがあるのかもしれません。」と表示される場合は status code が 404 になることがわかったため。この文章で判定してもいいが、文章で判定するほうが manaba の仕様変更に追従できなさそうなので、status code で判定する。
なお権限がない場合でも 404 を返すサービスが多々あるが、manaba の場合は 403 を返してくれるので 「このページを開く権限がありません。」の判別も可能。
具体的には
ManabaTodoStatus
にnotFound
を追加しmanaba-report-integration/src/types/manabaTodo.ts
Line 11 in 8d31bab
upsert
時にrelation
から削除する。manaba-report-integration/src/repositories/googleTask.ts
Line 39 in 5a5fcf0
このとき各タスク管理ツール上に保持された課題の扱いには以下の選択肢があるが
1 はいきなり消えるのは混乱のもとなのでなし
2 も「課題が消えたのに完了」なのは混乱の元だが、大抵のタスク管理ツールには「未完」「完了」の 2 値ぐらいしかないので、そうするしかないか?期限切れあつかいでもいいのかもしれない。
3 ができればベストだが、各サービスごとに事情がことなる
あるいは relation に課題の期限も記録するようにして、manaba から最新の情報が得られなくなれば、その期限を暫定として、例の「2 週間以上前の課題は削除」の対象にしてもいいかもしれない。
ただし別の観点として「この課題は manaba には掲載されておらず、連携もされていない」ということを明示的に表現しないと混乱が生じないか?
The text was updated successfully, but these errors were encountered: