checkAvailability method
override
Checks whether the public I-School Plus homepage is reachable without using an authenticated session.
Implementation
@override
Future<void> checkAvailability() async {
final cancelToken = CancelToken();
final timer = Timer(
_availabilityTimeout,
() => cancelToken.cancel('I-School Plus availability probe timed out'),
);
try {
await Future.any([
_availabilityDio.get<void>(
'https://istudy.ntut.edu.tw/mooc/index.php',
cancelToken: cancelToken,
options: Options(responseType: .bytes),
),
cancelToken.whenCancel.then((error) => throw error),
]);
} finally {
timer.cancel();
}
}