1
0
mirror of https://github.com/ppy/osu.git synced 2024-11-15 15:17:44 +08:00
Commit Graph

365 Commits

Author SHA1 Message Date
TocoToucan
63fe569afa Remove DatabaseBackedStore Prepare functions 2017-10-25 14:53:20 +03:00
Dean Herbert
66f1d2fb2e Ensure all parsed "Online" IDs are above zero or null
Some .osu file sources (or database sources) may be in a bad state. We want to get these ones right as they cannot be enforced by the database itself (via FKs or constraints).
2017-10-25 14:34:39 +09:00
Dean Herbert
22b3f5dd19 Merge remote-tracking branch 'upstream/master' into import-test-fixes 2017-10-23 22:03:37 +09:00
Dean Herbert
dc9c474033 Move all TestCases to Testing project
This allows tests to successfully retrieve rulesets, as they are referenced.
2017-10-23 19:32:02 +09:00
Dean Herbert
1a3debc91d Ensure thread safety on shared contexts
Let's call this one temporary.
2017-10-23 17:56:04 +09:00
Dean Herbert
df20845fbb Share one context per file store for performance reasons
There is now a CreateContext method for retrieving a stand-alone context for threaded use.

We may want to add safety against this context being disposed (or just return a fresh one if it is).
2017-10-23 16:35:35 +09:00
Dean Herbert
4a68dd88cb Centralise BeginTransaction and disable transaction use for now 2017-10-23 14:53:13 +09:00
Dean Herbert
61c1dd3636 Don't output database logs unless DEBUG_DATABASE is specified compile-time 2017-10-22 19:46:08 +09:00
Dean Herbert
1514d8451e Use a more elegant method of setting the connection timeout 2017-10-22 16:20:04 +09:00
Dean Herbert
29fcd210aa Centralise transaction committing 2017-10-22 16:17:40 +09:00
Dean Herbert
39b356880e Fix typo 2017-10-22 15:32:47 +09:00
Dean Herbert
6818ebdaff Change the way migrations are checked for
This method allows switching between sqlite-net and EF builds without completely breaking. Note that DB migration still only happens in a forward direction, but this will allow switching back and forth without eventually being unable to start the game.
2017-10-22 15:27:16 +09:00
Dean Herbert
47213d2498 Rely on storage.DeleteDatabase for guaranteed database deletion
Relies on https://github.com/ppy/osu-framework/pull/1100 being merged for most effectiveness.
2017-10-21 00:15:02 +09:00
Dean Herbert
d32059a7ba Ignore include-ignore warnings for now 2017-10-20 09:25:54 +09:00
Dean Herbert
ca78078436 Add more logging output 2017-10-20 08:06:07 +09:00
Dean Herbert
efaf98c5cf Allow recovery from a very broken database 2017-10-20 00:48:27 +09:00
Dean Herbert
d9fd05a5af Hidden cannot be null 2017-10-19 23:19:30 +09:00
Dean Herbert
8aea6068ba Add fallback logic for the case where previous database can't be migrated 2017-10-19 21:37:09 +09:00
Dean Herbert
1672e0d6b6 Add fallback logic in case migration fails
Nuke it all.
2017-10-19 21:11:43 +09:00
Dean Herbert
1fbbee14e4 Allow migration from sqlite-net to EF
Bonus stage
2017-10-19 20:04:59 +09:00
Dean Herbert
f7d0df1743 Fix beatmap difficulty and metadata deletion 2017-10-19 17:50:46 +09:00
Dean Herbert
b02dd196f6 Don't make one factory each context
A factory is supposed to be re-used.
2017-10-19 17:29:39 +09:00
Dean Herbert
36c00577af Reduce database log output
Also hard-disables it for uninteresting log levels, providing a further performance boost.
2017-10-19 16:35:06 +09:00
Dean Herbert
5d5ea5fb2e Fix all remaining db structure issues 2017-10-19 14:05:11 +09:00
Dean Herbert
4e8019b313 Add some more missing indices 2017-10-17 19:59:22 +09:00
Dean Herbert
e4a066dc5f Run cleanup tasks only on startup via manual calls 2017-10-17 19:58:33 +09:00
Dean Herbert
b9d0fb96ed Fix cascade deletions 2017-10-17 18:26:28 +09:00
Dean Herbert
12639c6819 Use a different database name for now to avoid conflicts when switching versions 2017-10-17 17:52:20 +09:00
Dean Herbert
3e415e3269 Fix tooling failures 2017-10-17 17:52:02 +09:00
Dean Herbert
0177fcbe5f Fix xmldoc 2017-10-17 17:08:47 +09:00
Dean Herbert
ad54ca9268 Fix TestCasePlaySongSelect 2017-10-17 16:04:54 +09:00
Dean Herbert
e487b6f82a Standardise context retrieval 2017-10-17 15:50:42 +09:00
Dean Herbert
cd41862e3b Add back transaction support for beatmap importing 2017-10-17 15:00:27 +09:00
Dean Herbert
fe44a28d48 Add back startup tasks runner 2017-10-17 12:46:38 +09:00
Dean Herbert
66894d11ea Connection -> context 2017-10-17 12:46:29 +09:00
Dean Herbert
ec51314e37 Remove duplicate command 2017-10-16 16:11:34 +09:00
Dean Herbert
7049a73490 Remove ValidTypes from databased stored; explicitly expose query methods instead 2017-10-16 14:47:33 +09:00
Dean Herbert
4981630131 Fix formatting regressions 2017-10-16 13:12:51 +09:00
Dean Herbert
8a0b184dd6 Revert "Return back DatabaseBackedStore's query and populate functions"
This reverts commit 7cf5d63cd3.
2017-10-16 12:59:59 +09:00
Dean Herbert
e3d31bdd10 Not implemented instead of incorrect 2017-10-16 12:59:59 +09:00
Dean Herbert
129cca0704 Tidy up context creation 2017-10-16 12:59:59 +09:00
Dean Herbert
a232033469 Fix some file headers and unused files 2017-10-16 00:54:09 +09:00
TocoToucan
7cf5d63cd3 Return back DatabaseBackedStore's query and populate functions 2017-10-15 00:40:41 +03:00
smoogipoo
167eefa397 Add logging 2017-10-14 15:16:08 +09:00
TocoToucan
ef417c6388 Small DB-related refactoring 2017-10-09 23:30:32 +03:00
TocoToucan
81b9e08fb6 Fix foreign key constraint failure 2017-10-09 00:30:52 +03:00
TocoToucan
6a4198d0d6 Initial EF Core commit 2017-10-04 22:52:12 +03:00
Dean Herbert
3b1166d1e6 Optimise file lookups and other database operations
FirstOrDefault when called on a TableQuery with a predicate doesn't use table indices
2017-08-01 17:37:21 +09:00
Dean Herbert
b4acdd5f90 Merge remote-tracking branch 'upstream/master' into fix-file-references 2017-08-01 11:05:38 +09:00
Dean Herbert
c060d32765 Separate out startup tasks to ensure they run after migrations 2017-08-01 10:24:00 +09:00
Dean Herbert
404497fa10 Allow a single beatmap to reference the same file multiple times
This fixes incorrect reference counts causing database desync.
2017-07-31 21:49:57 +09:00
Dean Herbert
bc8f8de049 Make QueryAndPopulate's filter non-optional (you basically *never* want this missing) 2017-07-31 18:41:54 +09:00
Dean Herbert
9ee59dd637 Add the ability to create migrations on a per-store level
Now stores store versions to the database itself.
2017-07-28 12:58:35 +09:00
Dean Herbert
3a6f3cdd8a Add the ability to create migrations on a per-store level
Now stores store versions to the database itself.
2017-07-27 20:38:40 +09:00
Dean Herbert
5f53426a9a *Database -> *Store
Welcome back BeatmapManager
2017-07-27 16:56:41 +09:00
Dean Herbert
96b08b8777 Simplify and document DatabaseStore API 2017-07-27 15:06:10 +09:00
Dean Herbert
898a601098 Introduce a reference counting file store 2017-07-26 20:22:02 +09:00
Dean Herbert
9e20a02c0a Split out BeatmapDatabase into BeatmapStore
Hide database functionality at a lower level in preparation from eventually making it private.
2017-07-26 16:31:34 +09:00
Dean Herbert
fce580d717 Reshuffle namespaces 2017-07-26 13:22:46 +09:00
Dean Herbert
d6968ca09c Remove FullyLoaded logic
Always parse storyboards for now.

Let's not optimise this until it is necessary. It was leading to weird threading problems due to the load call in Player's async load method.
2017-07-20 11:01:50 +09:00
Dean Herbert
d69470f2ae Fix TestWorkingBeatmap broken by attempting to load storyboard 2017-07-20 09:22:39 +09:00
Dean Herbert
da92fccdb0 Merge branch 'master' into non-null-beatmap 2017-07-19 18:32:42 +09:00
Dean Herbert
d7dddec328 Set zero-difficulty values local to the dummy beatmap 2017-07-19 18:32:11 +09:00
Dean Herbert
35157ca6b8 Make DefaultBeatmap private get. 2017-07-19 18:09:59 +09:00
Dean Herbert
632d2e8ba5 Dummy beatmap has dummy ruleset 2017-07-19 15:16:48 +09:00
Dean Herbert
f168ee660c Move dummy to BeatmapDatabase 2017-07-19 15:16:43 +09:00
Dean Herbert
6016310b09 Use a better default for difficulty values 2017-07-19 15:16:37 +09:00
Dean Herbert
f00140f0a4 Avoid crashes on attempting to import the same path twice in quick succession 2017-07-19 14:56:24 +09:00
Dean Herbert
5761eb30a0 Fix nullref error on re-importing a DeletePending beatmap
Callback was expecting the beatmap to be populated where it wasn't being.
2017-07-19 14:56:20 +09:00
Dan Balasescu
c13dc943f8 Merge branch 'master' into fix-track-rotation 2017-07-14 19:25:54 +10:00
Dean Herbert
2c1f3de47a Rename 2X resources to be defaults 2017-07-13 10:27:39 +09:00
Dean Herbert
1bd3519ecb Have beatmap return a zero-length TrackVirtual instead of null on load failure 2017-07-11 18:38:27 +09:00
DrabWeb
b448603d6c CI fixes. 2017-07-11 01:42:51 -03:00
DrabWeb
69b290519f Better BeatmapSetOnlineInfo comments. 2017-07-11 00:28:25 -03:00
DrabWeb
84701846ec Merge https://github.com/ppy/osu into osu-direct-search 2017-07-11 00:26:49 -03:00
John Neijzen
d9a9616125 EOF remove blank spaces 2017-06-08 14:56:03 +08:00
DrabWeb
ddc4d45ae8 Unused usings 2017-06-07 11:39:04 -03:00
DrabWeb
add08e65ff Result counts displaying 2017-06-07 11:30:52 -03:00
DrabWeb
8745948a01 Basic searching in osu!direct, move BeatmapSetOnlineInfo covers into their own class 2017-05-28 02:26:25 -03:00
DrabWeb
ab32e962ca Make BeatmapOnlineInfo and BeatmapSetOnlineInfo separate classes, -OnlineWorkingBeatmap 2017-05-28 00:37:55 -03:00
DrabWeb
a25c504965 CI fixes 2017-05-24 03:08:48 -03:00
DrabWeb
ba2627d4e2 Merge branch 'osu-direct' of https://github.com/DrabWeb/osu into osu-direct 2017-05-24 02:40:00 -03:00
DrabWeb
e59c1879a2 Remove tabs 2017-05-24 02:38:55 -03:00
DrabWeb
4490596f5f Keep one object per file 2017-05-24 02:37:27 -03:00
Dean Herbert
4ee11764b8 Merge branch 'master' into osu-direct 2017-05-24 12:16:34 +09:00
Dean Herbert
fe7ac20e29 Read menu music from osz resource 2017-05-23 16:38:43 +09:00
Dean Herbert
0b987be600 Merge branch 'master' into osu-direct 2017-05-20 16:17:59 +09:00
DrabWeb
c981a4a511 Formatting 2017-05-19 19:50:45 -03:00
DrabWeb
0a90965a5b CI formatting 2017-05-19 19:22:42 -03:00
DrabWeb
7a60aa614d Reword comment 2017-05-19 19:05:54 -03:00
DrabWeb
e1c4c36122 +BeatmapOnlineInfo, +OnlineWorkingBeatmap, minor cleanups, panel beatmap backgrounds 2017-05-19 15:43:18 -03:00
Dean Herbert
c51d640241 Add support for searching beatmap author at song select
Resolves #792
2017-05-19 13:13:27 +09:00
Dean Herbert
f730769186 Rewrite to make better 2017-05-15 12:54:56 +09:00
Dean Herbert
a9b3f74218 Fix ruleset not always getting populated in a WorkingBeatmap 2017-05-12 20:05:44 +09:00
Dean Herbert
a2f6d8a3e6 Fix broken test cases, remove some recursive lookup methods. 2017-05-11 19:38:28 +09:00
Dean Herbert
70ef503403 Merge branch 'master' into metadata 2017-05-11 12:23:00 +09:00
Huo Yaoyuan
4c26a02e99 Remove unnecessary arguments in WorkingBeatmap's constructor. 2017-05-08 16:42:53 +08:00
Huo Yaoyuan
4f8549f220 Standardise usages of exceptions. 2017-05-07 00:38:17 +08:00
Huo Yaoyuan
767cfaaac3 Access database recursively. 2017-05-06 15:37:53 +08:00
Huo Yaoyuan
146d57953d Use metadata field of WorkingBeatmap. 2017-05-06 14:57:11 +08:00
Huo Yaoyuan
4f49151984 Make metadata a member of WorkingBeatmap. 2017-05-06 14:52:28 +08:00
Dean Herbert
a993790a66 Ensure all searchable terms are non-null non-empty. 2017-05-02 17:54:07 +09:00
Dean Herbert
6074cb5979 Make playlist filtering work.
Also standardises searchable terms in beatmap metadata.
2017-05-02 10:45:55 +09:00
Dean Herbert
28375ed1fc Allow transfer of previously loaded background between WorkingBeatmaps 2017-04-28 15:03:07 +09:00
Dean Herbert
e1a2f1bc7a Add beatmap metrics lookup. 2017-04-24 19:17:11 +09:00
smoogipooo
61090d918c Temporary for taiko lagging on auto replays due to inImportantSection.
Note that this isn't a full "as intended" fix, because the full fix is quite big. I'll be saving it for a separate branch/pull-req.
2017-04-20 15:26:42 +09:00
Dean Herbert
873599b359
Fix conversion regression. 2017-04-20 11:36:50 +09:00
Dean Herbert
a47870b376
Apply Ruleset to Scores. Reduce complexity of score creation. 2017-04-20 11:16:08 +09:00
Dean Herbert
3e65cab9b7
Move replay creation logic to ScoreDatabase. 2017-04-20 10:25:07 +09:00
Dean Herbert
3b95fbab7d
Add score statistic tracking (osu!). 2017-04-19 16:29:27 +09:00
Dean Herbert
fbd26a1d5e
Mode -> Ruleset. 2017-04-18 16:05:58 +09:00
Dean Herbert
5939ba9143
Fix ruleset not always being initialised correctly. 2017-04-18 10:55:33 +09:00
Dean Herbert
f2174054ea
Fix song select. 2017-04-18 10:04:32 +09:00
Dean Herbert
d3c1520a2d
Fix beatmaps not getting the correct ruleset on import. 2017-04-18 09:47:29 +09:00
Dean Herbert
2734983564
Add unique constraints on RulesetInfo table to ensure things stay sane. 2017-04-18 09:47:16 +09:00
Dean Herbert
af13f97435
Fix regressions and test cases. 2017-04-17 19:44:03 +09:00
Dean Herbert
db6556a0f9
Index DeletePending for better performance. 2017-04-17 17:44:02 +09:00
Dean Herbert
a4e2f34ee7
Make a RulesetDatabase. 2017-04-17 17:43:48 +09:00
Dean Herbert
83b083ce64
Move SQLite connections out of database classes; make abstract Database. 2017-04-17 14:37:52 +09:00
smoogipooo
4a149c4ab8 Better default values + don't set Mode from outside. 2017-04-15 06:14:31 +09:00
smoogipooo
0a1376c2db Remove PlayMode game-wide. 2017-04-15 05:22:41 +09:00
smoogipooo
a89af273be Make BeatmapInfo expose Ruleset instead of PlayMode. 2017-04-15 05:01:36 +09:00
smoogipooo
59bfc7abad Move statics to RulesetCollection to avoid conflicts later on. 2017-04-15 04:53:37 +09:00
Dean Herbert
2c3fa30386
Metric -> Metrics. 2017-04-12 21:09:39 +09:00
Dean Herbert
00cd2c8372
Better comments. 2017-04-12 21:08:28 +09:00
Jorolf
50b6bcd574 Merge branch 'master' into details 2017-04-11 19:06:58 +02:00
Jorolf
d4e5f55091 the power of linq 2017-04-11 18:43:48 +02:00
Jorolf
fb5952186c changes and fixes 2017-04-11 14:02:56 +02:00
Dean Herbert
24fea2809b
Map beatmap md5 from online response to BeatmapInfo. 2017-04-11 13:44:55 +09:00
Jorolf
24b4b3ad7d update to everything 2017-04-10 16:42:23 +02:00
Huo Yaoyuan
411988f038 Remove all trailing whitespaces in this repo. 2017-04-06 16:21:18 +08:00
Huo Yaoyuan
9b1e010dcc Fix filename mismatch. 2017-04-06 16:05:41 +08:00
smoogipooo
0107772737 Fix using. 2017-04-06 16:25:46 +09:00
Dan Balasescu
6fc1384927 Merge branch 'master' into taiko-fixes 2017-04-06 16:23:22 +09:00
Dean Herbert
4783d17d94 Merge branch 'master' into better-hitsounds 2017-04-06 16:00:56 +09:00
smoogipooo
cec8bca78a Implement IJsonSerializable, BeatmapInfo IJsonSerializable. 2017-04-06 15:54:50 +09:00
Dean Herbert
18ff8efd46
Mark TODO for BeatmapVersion. 2017-04-06 13:15:33 +09:00
Dean Herbert
f193af2a2a
Add better defaults for BaseDifficulty. 2017-04-06 13:15:21 +09:00
smoogipooo
eb82a4c090 Back to using SampleInfo + fix taiko beatmap conversion. 2017-04-06 11:41:16 +09:00
smoogipooo
4b424263ce Fully parse control points. 2017-04-04 13:13:27 +09:00
smoogipooo
19b5555ef2 Slightly clean up archive readers + decoders. Read beatmap version into BeatmapInfo. 2017-04-03 20:26:46 +09:00
Dean Herbert
fa7c72a099
Refactor ReplayInputHandler creation for more flexibility. 2017-03-31 15:59:53 +09:00
smoogipooo
136665e52e Add virtual method to instantiate legacy replays. 2017-03-24 14:28:17 +09:00
smoogipooo
2074812f46 Move ScoreProcessor and Score to Scoring/. 2017-03-24 09:51:52 +09:00
Dean Herbert
54e1b24fe9
Enforce readonly private members where possible. 2017-03-23 13:50:08 +09:00
Dean Herbert
859ee5d316
Tidy up DatabaseWorkingBeatmap. 2017-03-23 10:07:26 +09:00
Drew DeVault
2e1f596b2a Move DatabaseWorkingBeatmap out of partial class 2017-03-22 06:50:48 -04:00
Drew DeVault
2b1d31e69c Address linting issues 2017-03-22 06:25:49 -04:00
Drew DeVault
267238dc27 Simplify derived classes of WorkingBeatmap 2017-03-22 06:15:32 -04:00
Drew DeVault
cc2b4c5c5b Refactor WorkingBeatmap
Gets ArchiveReader out of WorkingBeatmap and delegates extracting stuff
from it to subclasses. Should enable us to make an OnlineWorkingBeatmap
or so.
2017-03-22 05:57:08 -04:00