PortalExt
機能
動作しない場合がある(原因は分かっていない)
不安定な機能
試験を複数回実施することはできず、一機能の開発のためだけに試験を使い捨てる結果になった
開発の継続が難しいため、一旦廃止とする
Solomonを模倣したテスト用のWebサーバーを作成し動作確認ができた
一度目以降、Background scriptが、Contens script側からのメッセージを受け取れていない?
あるいはContent scriptが、iframe内での回答決定ボタンの押下を検知できていない
開発予定
これを誰かにやってほしいt6o_o6t.icon
PR募集中
既読は灰色で表示する
CBTのデザインを改善する
問題と解答欄を分ける
未入力を赤色、入力済を緑色とする
モーダルを画面幅、高さの80%まで拡大する
間違ったときは何を間違ったのか表示する
問題文と、間違った解答を表示する
iframeのサイズを可変にする
もともと大きくする
シアターモードがあったら良い
trなど
メンテナンス時表示
課題を提出した授業は緑色、未提出の授業は赤色
ボタンを押したあとの画面だけでなく、講義画面でも見れてほしいような気がするt6o_o6t.icon
教員情報をもっと細かくしたい?
教員名にmailto: を貼ってあげる
安全を期すなら、メールアドレスはポータル内のPDFを都度パースして取得する
廃止された機能
自前実装は考慮していないケースを生むと考え廃止した
技術的に難しそうな機能
現在の掲示システムは、サーバーが認識している状態と実際のクライアントの状態がずれると壊れる
これはバグな気がしてきた
Javaの
状態を表すパラメータが格納されている
パラメータに対して適切なページを表示できていないことになる
状態番号を控えておけば任意の状態のページを呼び出せる?
webRequestを見て画面を丸ごと書き換えても良いかもしれない
APIを噛ませたフロントエンドを作る
APIラッパー
もしバックエンドを作り込めるようになったら、ラッパーとして再実装する
現時点では、単にwebRequestを見て適切な値を返却する関数
□ 掲示ページAPIの実装
code:api_wrapper.ts
interface APIWrapper {
getAnnouncements(option?: { readed?: boolean }): Announcement[]
}
type Announcement = {
updated_at: Date,
expires: Date
/* API は文字列を返しうるという想定 */
reply_count: number,
is_important: boolean
category: string
}
掲示のリストの最新30件分を返す。
現在の実装
ViewUnReadTitlesページのリクエストをスクレイピング