diff --git a/README.md b/README.md index bf07c5c..f519311 100644 --- a/README.md +++ b/README.md @@ -6,7 +6,7 @@ Tetra Stats works with TETR.IO Tetra Channel API, providing data from it and cal You can [download an app](https://github.com/dan63047/TetraStats/releases), or [use web version](https://ts.dan63.by). -![Screenshot of the app 1](https://imgur.com/e8CYvj3.png) +![Screenshot of the app 1](https://i.imgur.com/Hl02YkX.png) # Available functionality - Advanced stats for players diff --git a/debian/debian.yaml b/debian/debian.yaml index 3d8d822..366cf5b 100644 --- a/debian/debian.yaml +++ b/debian/debian.yaml @@ -6,7 +6,7 @@ flutter_app: control: Package: tetra-stats - Version: 2.0.3 + Version: 2.0.4 Architecture: amd64 Essential: no Priority: optional diff --git a/debian/gui/tetra-stats.desktop b/debian/gui/tetra-stats.desktop index 4d0e09a..976c9b1 100644 --- a/debian/gui/tetra-stats.desktop +++ b/debian/gui/tetra-stats.desktop @@ -1,5 +1,5 @@ [Desktop Entry] -Version=2.0.3 +Version=2.0.4 Name=Tetra Stats GenericName=Tetra Stats Comment=Track your and other player stats in TETR.IO diff --git a/lib/services/tetrio_crud.dart b/lib/services/tetrio_crud.dart index d059164..868348f 100644 --- a/lib/services/tetrio_crud.dart +++ b/lib/services/tetrio_crud.dart @@ -750,6 +750,7 @@ class TetrioService extends DB { int entries = 100; String? prisecter; while (entries > 0){ + await Future.delayed(const Duration(seconds: 1)); TetraLeagueBetaStream stream = await fetchTLStream(id, prisecter: prisecter); if (stream.records.isEmpty) break; records.addAll(stream.records); diff --git a/lib/views/destination_home.dart b/lib/views/destination_home.dart index e85bfbf..e80c2bb 100644 --- a/lib/views/destination_home.dart +++ b/lib/views/destination_home.dart @@ -593,10 +593,10 @@ class AchievementSummary extends StatelessWidget{ ), child: ClipRect( child: Align( - alignment: Alignment.topLeft.add(Alignment(0.286 * (((achievement?.k??1) - 1) % 8), 0.286 * (((achievement?.k??0) - 1) / 8).floor())), + alignment: Alignment.topLeft.add(Alignment(0.286 * (((achievement?.k??1) - 1) % 8), 0.286 * ((((achievement?.k??0) - 1) / 8).floor() % 8))), heightFactor: 0.125, widthFactor: 0.125, - child: Image.asset("res/icons/achievements.png", width: 2048, height: 2048, scale: 1, color: achievement?.v == null ? Colors.grey : achievementColors[min(achievement!.rank!, 6)]), + child: Image.asset("res/icons/achievements${(achievement?.k??1).floor() ~/ 64}.png", width: 2048, height: 2048, scale: 1, color: achievement?.v == null ? Colors.grey : achievementColors[min(achievement!.rank!, 6)]), ), ), ), @@ -1219,64 +1219,16 @@ class _DestinationHomeState extends State with SingleTickerProv closestAverageBlitz = blitzAverages.entries.last; blitzBetterThanClosestAverage = false; } - List tlAchievements = snapshot.data!.summaries!.achievements.isNotEmpty ? [ - snapshot.data!.summaries!.achievements.firstWhere((e) => e.k == 10), - snapshot.data!.summaries!.achievements.firstWhere((e) => e.k == 12), - snapshot.data!.summaries!.achievements.firstWhere((e) => e.k == 13), - snapshot.data!.summaries!.achievements.firstWhere((e) => e.k == 14), - snapshot.data!.summaries!.achievements.firstWhere((e) => e.k == 15), - snapshot.data!.summaries!.achievements.firstWhere((e) => e.k == 47), - ] : []; - List qpAchievements = snapshot.data!.summaries!.achievements.isNotEmpty ? [ - snapshot.data!.summaries!.achievements.firstWhere((e) => e.k == 16), - snapshot.data!.summaries!.achievements.firstWhere((e) => e.k == 17), - snapshot.data!.summaries!.achievements.firstWhere((e) => e.k == 18), - snapshot.data!.summaries!.achievements.firstWhere((e) => e.k == 20), - snapshot.data!.summaries!.achievements.firstWhere((e) => e.k == 21), - snapshot.data!.summaries!.achievements.firstWhere((e) => e.k == 22), - snapshot.data!.summaries!.achievements.firstWhere((e) => e.k == 23), - snapshot.data!.summaries!.achievements.firstWhere((e) => e.k == 24), - snapshot.data!.summaries!.achievements.firstWhere((e) => e.k == 25), - snapshot.data!.summaries!.achievements.firstWhere((e) => e.k == 26), - snapshot.data!.summaries!.achievements.firstWhere((e) => e.k == 27), - snapshot.data!.summaries!.achievements.firstWhere((e) => e.k == 28), - snapshot.data!.summaries!.achievements.firstWhere((e) => e.k == 29), - snapshot.data!.summaries!.achievements.firstWhere((e) => e.k == 30), - snapshot.data!.summaries!.achievements.firstWhere((e) => e.k == 33), - snapshot.data!.summaries!.achievements.firstWhere((e) => e.k == 41), - snapshot.data!.summaries!.achievements.firstWhere((e) => e.k == 43), - snapshot.data!.summaries!.achievements.firstWhere((e) => e.k == 44), - snapshot.data!.summaries!.achievements.firstWhere((e) => e.k == 45), - snapshot.data!.summaries!.achievements.firstWhere((e) => e.k == 46), - snapshot.data!.summaries!.achievements.firstWhere((e) => e.k == 51), - if (snapshot.data!.summaries!.achievements.any((e) => e.k == 54)) snapshot.data!.summaries!.achievements.firstWhere((e) => e.k == 54), - ] : []; - List qpExAchievements = snapshot.data!.summaries!.achievements.isNotEmpty ? [ - snapshot.data!.summaries!.achievements.firstWhere((e) => e.k == 19), - snapshot.data!.summaries!.achievements.firstWhere((e) => e.k == 31), - snapshot.data!.summaries!.achievements.firstWhere((e) => e.k == 32), - snapshot.data!.summaries!.achievements.firstWhere((e) => e.k == 34), - snapshot.data!.summaries!.achievements.firstWhere((e) => e.k == 40), - snapshot.data!.summaries!.achievements.firstWhere((e) => e.k == 49), - snapshot.data!.summaries!.achievements.firstWhere((e) => e.k == 50), - snapshot.data!.summaries!.achievements.firstWhere((e) => e.k == 53), - ] : []; - List sprintAchievements = snapshot.data!.summaries!.achievements.isNotEmpty ? [ - snapshot.data!.summaries!.achievements.firstWhere((e) => e.k == 5), - snapshot.data!.summaries!.achievements.firstWhere((e) => e.k == 7), - snapshot.data!.summaries!.achievements.firstWhere((e) => e.k == 8), - snapshot.data!.summaries!.achievements.firstWhere((e) => e.k == 9), - snapshot.data!.summaries!.achievements.firstWhere((e) => e.k == 36), - snapshot.data!.summaries!.achievements.firstWhere((e) => e.k == 37), - snapshot.data!.summaries!.achievements.firstWhere((e) => e.k == 38), - snapshot.data!.summaries!.achievements.firstWhere((e) => e.k == 48), - ] : []; - List blitzAchievements = snapshot.data!.summaries!.achievements.isNotEmpty ? [ - snapshot.data!.summaries!.achievements.firstWhere((e) => e.k == 6), - snapshot.data!.summaries!.achievements.firstWhere((e) => e.k == 39), - snapshot.data!.summaries!.achievements.firstWhere((e) => e.k == 52), - ] : []; + List tlAchievements = snapshot.data!.summaries!.achievements.isNotEmpty ? snapshot.data!.summaries!.achievements.where((e) => e.category == "league").toList() : []; + List qpAchievements = snapshot.data!.summaries!.achievements.isNotEmpty ? snapshot.data!.summaries!.achievements.where((e) => e.category == "zenith" && !e.object.contains("Expert Mode")).toList() : []; + List qpExAchievements = snapshot.data!.summaries!.achievements.isNotEmpty ? snapshot.data!.summaries!.achievements.where((e) => e.category == "zenith" && e.object.contains("Expert Mode")).toList() : []; + List sprintAchievements = snapshot.data!.summaries!.achievements.isNotEmpty ? snapshot.data!.summaries!.achievements.where((e) => e.category == "solo" && !e.object.contains("BLITZ")).toList() : []; + List blitzAchievements = snapshot.data!.summaries!.achievements.isNotEmpty ? snapshot.data!.summaries!.achievements.where((e) => e.category == "solo" && e.object.contains("BLITZ")).toList() : []; + tlAchievements.sort((a, b) => a.o! - b.o!); qpAchievements.sort((a, b) => a.o! - b.o!); + qpExAchievements.sort((a, b) => a.o! - b.o!); + sprintAchievements.sort((a, b) => a.o! - b.o!); + blitzAchievements.sort((a, b) => a.o! - b.o!); return TweenAnimationBuilder( duration: Durations.long4, tween: Tween(begin: 0, end: 1), diff --git a/pubspec.yaml b/pubspec.yaml index 4bfdc9a..25576b6 100644 --- a/pubspec.yaml +++ b/pubspec.yaml @@ -2,7 +2,7 @@ name: tetra_stats description: Track your and other player stats in TETR.IO publish_to: 'none' -version: 2.0.3+44 +version: 2.0.4+45 environment: sdk: '>=3.0.0' diff --git a/res/icons/achievements.png b/res/icons/achievements.png deleted file mode 100644 index 4b69a1a..0000000 Binary files a/res/icons/achievements.png and /dev/null differ diff --git a/res/icons/achievements0.png b/res/icons/achievements0.png new file mode 100644 index 0000000..e4bbb72 Binary files /dev/null and b/res/icons/achievements0.png differ diff --git a/res/icons/achievements874.png b/res/icons/achievements874.png new file mode 100644 index 0000000..25b4e5f Binary files /dev/null and b/res/icons/achievements874.png differ diff --git a/web/index.html b/web/index.html index 2d8b016..2dafe2a 100644 --- a/web/index.html +++ b/web/index.html @@ -131,7 +131,7 @@ } - +