near final

This commit is contained in:
ImBenji
2024-03-02 18:07:05 +00:00
parent 67e1cd3530
commit 429eb4ad5f
29 changed files with 7870 additions and 1345 deletions

View File

@@ -0,0 +1,36 @@
import 'dart:async';
import 'dart:convert';
import 'package:http/http.dart' as http;
import 'info_module.dart';
class SyncedTimeModule extends InfoModule {
int timeOffset = -1;
DateTime lastUpdate = DateTime.now().add(const Duration(seconds: -15));
SyncedTimeModule() {
refreshTimer();
}
Timer refreshTimer() => Timer.periodic(const Duration(seconds: 10), (timer) async {
var res = await http.get(Uri.parse('http://worldtimeapi.org/api/timezone/Europe/London'));
if (res.statusCode == 200) {
var json = jsonDecode(res.body);
DateTime time = DateTime.parse(json['datetime']);
timeOffset = time.millisecondsSinceEpoch - DateTime.now().millisecondsSinceEpoch;
lastUpdate = DateTime.now();
print("Time offset: $timeOffset");
} else {
print("Failed to get time from worldtimeapi.org");
}
});
DateTime Now() {
if (timeOffset == -1) {
return DateTime.now();
}
return DateTime.now().add(Duration(milliseconds: timeOffset));
}
}