Basic ass "display"
This commit is contained in:
@@ -21,6 +21,17 @@ class Game {
|
|||||||
this.lastUpdated = '',
|
this.lastUpdated = '',
|
||||||
}) : _internalVersionRegex = RegExp(versionRegex);
|
}) : _internalVersionRegex = RegExp(versionRegex);
|
||||||
|
|
||||||
|
factory Game.fromMap(Map<String, dynamic> map) {
|
||||||
|
return Game(
|
||||||
|
name: map['name'],
|
||||||
|
versionRegex: map['version_regex'],
|
||||||
|
lastPlayed: map['last_played'],
|
||||||
|
rssFeedUrl: map['rss_feed_url'],
|
||||||
|
actualVersion: map['actual_version'],
|
||||||
|
lastUpdated: map['last_updated'],
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
Future<void> updateActualVersion() async {
|
Future<void> updateActualVersion() async {
|
||||||
final response = await http.get(Uri.parse(rssFeedUrl));
|
final response = await http.get(Uri.parse(rssFeedUrl));
|
||||||
final document = RssFeed.parse(response.body);
|
final document = RssFeed.parse(response.body);
|
||||||
@@ -74,6 +85,14 @@ last_updated = excluded.last_updated
|
|||||||
);
|
);
|
||||||
return game;
|
return game;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static Future<List<Game>> getAll() async {
|
||||||
|
final db = DB.db;
|
||||||
|
final games = await db.rawQuery(
|
||||||
|
'SELECT name, actual_version, last_played, rss_feed_url, version_regex, last_updated FROM games',
|
||||||
|
);
|
||||||
|
return games.map((e) => Game.fromMap(e)).toList();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
//CREATE TABLE IF NOT EXISTS games (
|
//CREATE TABLE IF NOT EXISTS games (
|
||||||
|
@@ -5,16 +5,6 @@ import 'package:gamer_updater/game.dart';
|
|||||||
void main() async {
|
void main() async {
|
||||||
await DB.init();
|
await DB.init();
|
||||||
|
|
||||||
var game = Game(
|
|
||||||
name: 'Rimworld',
|
|
||||||
versionRegex: r'(\d+\.\d+\.\d+)',
|
|
||||||
lastPlayed: '1.4.3704',
|
|
||||||
rssFeedUrl:
|
|
||||||
'https://store.steampowered.com/feeds/news/app/294100/?cc=HR&l=english',
|
|
||||||
);
|
|
||||||
await game.updateActualVersion();
|
|
||||||
await GameRepository.upsert(game);
|
|
||||||
|
|
||||||
runApp(const MyApp());
|
runApp(const MyApp());
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -55,6 +45,22 @@ class MyHomePage extends StatefulWidget {
|
|||||||
}
|
}
|
||||||
|
|
||||||
class _MyHomePageState extends State<MyHomePage> {
|
class _MyHomePageState extends State<MyHomePage> {
|
||||||
|
late List<Game> games = [];
|
||||||
|
|
||||||
|
@override
|
||||||
|
void initState() {
|
||||||
|
super.initState();
|
||||||
|
GameRepository.getAll().then((games) {
|
||||||
|
setState(() {
|
||||||
|
this.games = games;
|
||||||
|
});
|
||||||
|
for (var e in games) {
|
||||||
|
e.updateActualVersion();
|
||||||
|
GameRepository.upsert(e);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
@override
|
@override
|
||||||
Widget build(BuildContext context) {
|
Widget build(BuildContext context) {
|
||||||
return Scaffold(
|
return Scaffold(
|
||||||
@@ -65,7 +71,10 @@ class _MyHomePageState extends State<MyHomePage> {
|
|||||||
body: Center(
|
body: Center(
|
||||||
child: Column(
|
child: Column(
|
||||||
mainAxisAlignment: MainAxisAlignment.center,
|
mainAxisAlignment: MainAxisAlignment.center,
|
||||||
children: <Widget>[const Text('Hello cyka')],
|
children: <Widget>[
|
||||||
|
Text(games.map((e) => e.name).join('\n')),
|
||||||
|
Text(games.map((e) => e.actualVersion).join('\n')),
|
||||||
|
],
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
);
|
);
|
||||||
|
Reference in New Issue
Block a user