Krzysztof Sikorski
cf98bb3c66
Update requirements to PHP 8.2
2023-03-18 15:01:39 +01:00
Krzysztof Sikorski
d92b471239
Update dependencies (Composer & NPM)
2023-03-18 14:07:49 +01:00
Krzysztof Sikorski
4d269f8fb0
Fix sorting and encoding bugs in leaderboards export command
2022-05-14 00:29:18 +02:00
Krzysztof Sikorski
59d2500271
Set default order in `Leaderboard->entries` Doctrine collection
2022-05-13 22:40:48 +02:00
Krzysztof Sikorski
e74098c1a2
Quick and dirty command to export leaderboards in BBCode text format
2022-05-13 01:43:02 +02:00
Krzysztof Sikorski
1b48d21e9f
Update about page with info about contribution, remove submit form from menu
2022-04-28 02:46:54 +02:00
Krzysztof Sikorski
4ee90caaec
Add list of repository mirrors to README, update twin list on about page
2022-04-28 02:25:16 +02:00
Krzysztof Sikorski
e6009d48b6
Update CHANGELOG for version 1.0.0
2022-04-26 01:23:09 +02:00
Krzysztof Sikorski
3909314bde
Create "About" page, update main menu
2022-04-26 01:20:35 +02:00
Krzysztof Sikorski
1bbb8b5ebe
Code style: rename `MainMenuService` to `MainMenuGenerator`
2022-04-26 01:19:09 +02:00
Krzysztof Sikorski
c6fba257cb
Code style: group routes by user visibility
2022-04-26 00:11:22 +02:00
Krzysztof Sikorski
0ef7fcd709
Add CSS styles for the leaderboard page
2022-04-26 00:03:54 +02:00
Krzysztof Sikorski
f9d60a7d89
Implement page for browsing leaderboards
2022-04-25 23:54:56 +02:00
Krzysztof Sikorski
9fc7564f28
Extend Leaderboard entity with backward relation to LeaderboardEntry entity
2022-04-25 23:52:36 +02:00
Krzysztof Sikorski
8220fdc893
Insert rows for known game periods (up to B5 Stronghold launch)
2022-04-25 21:43:00 +02:00
Krzysztof Sikorski
8e511dc990
Extract main menu to a service class
2022-04-25 20:37:36 +02:00
Krzysztof Sikorski
13797d361d
Design basic layout & styling, generate production stylesheet
2022-04-25 20:33:27 +02:00
Krzysztof Sikorski
544672c443
Add Tailwind CSS to the project, configure it, create build scripts in `bin`
2022-04-25 09:10:45 +02:00
Krzysztof Sikorski
96a9e33404
Shorten display of IDs in worker logs
2022-04-25 09:09:28 +02:00
Krzysztof Sikorski
1c1d5f418d
Fix score parsing in `BreathFourthParser`, remove forgotten dummy code
2022-04-25 08:45:16 +02:00
Krzysztof Sikorski
11c3dc8f49
Code style: move all admin-related classes to dedicated namespace
2022-04-25 06:33:16 +02:00
Krzysztof Sikorski
03aa8ce59d
Document worker commands in README file
2022-04-25 03:08:34 +02:00
Krzysztof Sikorski
e5a11c4f68
Code cleanup: remove unused docker compose config files
2022-04-25 03:05:17 +02:00
Krzysztof Sikorski
dad9cce358
Code cleanup: remove traces of Symfony flux from `.gitignore` file
2022-04-25 03:04:35 +02:00
Krzysztof Sikorski
83e25ffedb
Implement parser for Breath 4 leaderboards
2022-04-24 23:05:30 +02:00
Krzysztof Sikorski
8ed57e5104
Add Symfony DomCrawler and Symfony CssSelector to dependencies
2022-04-24 23:02:25 +02:00
Krzysztof Sikorski
4720991c8a
Log parser errors via standard logger service
2022-04-24 22:55:18 +02:00
Krzysztof Sikorski
9aec5ba2c7
Redesign parser error handling, update ParserResult and PageView appropriately
2022-04-24 21:57:03 +02:00
Krzysztof Sikorski
1166cad011
Implement generic parser command to handle stored page views
2022-04-22 01:05:42 +02:00
Krzysztof Sikorski
eeef06f6d9
Configure service container to support parsers and ParserSelector
2022-04-22 01:02:59 +02:00
Krzysztof Sikorski
5a2c7eea97
Implement minimal `ParserResultProcessor` that can persists leaderboards
2022-04-22 00:57:18 +02:00
Krzysztof Sikorski
3a52a466f3
Define parser contract, implement ParserSelector and ParserResult
2022-04-22 00:47:19 +02:00
Krzysztof Sikorski
73805a2206
Rewrite `EntryList` class to fix bugs and increase readability
2022-04-22 00:21:03 +02:00
Krzysztof Sikorski
05fa4a6bb6
Fix structure of leaderboard tables to match leaderboard DTOs
2022-04-21 22:23:28 +02:00
Krzysztof Sikorski
6cc6038dad
Explicitly set default timezone to UTC
2022-04-21 02:30:45 +02:00
Krzysztof Sikorski
ebab7b0652
Extend prune command to also prune page views marked as succesfully parsed
2022-04-21 00:50:46 +02:00
Krzysztof Sikorski
fc5fbb0ccb
Redesign and refactor handling of page view submission
2022-04-21 00:21:35 +02:00
Krzysztof Sikorski
a733008cb4
Decorate serializer service to avoid having to always pass context array
2022-04-20 21:11:49 +02:00
Krzysztof Sikorski
93a5ab6b4f
Explicitly configure Serializer instead of relying on `JsonSerialize` interface
2022-04-20 04:18:51 +02:00
Krzysztof Sikorski
610a82e397
Code style: normalize use of timestamps
...
Details:
- always use `DateTimeInterface` in type declarations
- always clone arguments in setters
2022-04-19 23:16:49 +02:00
Krzysztof Sikorski
a645355ff3
Split and merge `UserAccessTokenManager` service into other services
...
Details:
- extracted`UserAccessTokenManager.generateValue` method into separate service
- merge the other methods into `UserAccessTokenRepository` service
2022-04-19 03:05:15 +02:00
Krzysztof Sikorski
4d56254eaf
Merge `UserManager` and `UserRepository` services
2022-04-19 02:50:07 +02:00
Krzysztof Sikorski
5b2ae8bffa
Refactor autogenerated Doctrine repositories into custom services
...
Repository classes generated by Symfony Maker are just useless boilerplate,
all the provided "magic" methods can be easily reproduced with just a few lines
of code, so I do not see any value in using them.
This patch removes almost all "magic" repositories that I have generated so far,
replacing them with plain old service classes, implemented by composition
instead of inheritance.
The only exception is `UserRepository` that is hooked too much to Symfony
Security component and because of that it had to be split into two identically
named classes - the old one was stripped to contain only the methods required
by Symfony, while all the other methods have been moved into a service class.
2022-04-19 02:35:19 +02:00
Krzysztof Sikorski
965a66d448
Rename "nexus raw data" to "page view", mark unused fields as nullable
...
Details:
- rename `nexus_raw_data` table to `page_view`
- rename `NexusRawData` entity to `PageView`
- approprietly rename repository class, method arguments, and local variables
- mark `requestStartedAt` and `responseCompletedAt` fields as nullable
- rename `submitter` property to `owner` to match `UserAccessToken` entity
2022-04-19 00:44:06 +02:00
Krzysztof Sikorski
dd4ee4579a
Redesign leaderboard entities to support game periods and better match DTOs
2022-04-18 03:39:10 +02:00
Krzysztof Sikorski
579d2047d8
Code style: fix indentation in doctrine migration 0001
2022-04-18 01:13:00 +02:00
Krzysztof Sikorski
78105244d9
Create Doctrine entity for storing date periods (Breaths etc)
2022-04-18 01:00:38 +02:00
Krzysztof Sikorski
71a52739c6
Remove Symfony Maker bundle because it does not work with modified config
2022-04-17 22:43:55 +02:00
Krzysztof Sikorski
3d838d175e
Make sure that stored timestamps are always in UTC time zone
2022-04-17 22:24:43 +02:00
Krzysztof Sikorski
2280822ab4
Refactor: split `BaseEntity` abstract class into a set of traits
2022-04-17 20:39:54 +02:00