-
Notifications
You must be signed in to change notification settings - Fork 13
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Choice of language #23
Comments
Hey Peppy, we’re all thrilled you like what we are doing so far. I chose python to start developing this mostly since it was the easiest language to write a proof of concept, and it took off from there with the addition of Tybug and Sam. If you are actually interested in using this to some capacity, we are absolutely willing to develop under c# instead, albeit it will take some time to transition. What are you looking for in a project like this? We are not exactly sure how to move forward to provide something that osu! would actually use. We’d love to work with you to make this as usable and useful as possible! |
If u did it in .net c# it could be integrated into osu |
Yeah we understand that, we are aiming to have a stand-alone python release for osureport sometime this week and then once that is stable begin rewriting in .net c#. We would just like some input as to what features would be the most useful or if a literal direct re-write would be sufficient. |
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
As discussed in another thread, here's a basic interface which I would expect to be available. It can of course be made available in addition to CLI invocation like you already have, but this is an interface I would be using to add to our toolchain: public class Score
{
public int ID;
public DateTime Timestamp;
}
public class Match
{
public Score Score;
public Score Original;
public double Likeliness;
public Match(Score matched, Score, original, double likeliness)
{
Trace.Assert(original.Timestamp < matched.Timestamp);
Score = matched;
Original = original;
Likeliness = likeliness;
}
}
public class ReplayVerification
{
public static IEnumerable<Match> CheckTopPlays(int userId)
{
...
}
}
/* simple usage */
IEnumerable<Match> results = ReplayVerification.CheckTopPlays(userId)
foreach (var r in results)
Console.WriteLine($"Found match of {r.Score.ID} with {r.Original.ID}"); Let me know if you have any issues during implementation or any further questions (and thanks for your efforts here, it's great to finally see the community getting more involved again!). |
If you are adding CLI, I can recommend using Still hoping to add more structure to the project to make it more easily extensible (and some of this has been done internally, but I can't release that just yet). If you wait another few days to a week there will likely be improvements here. |
Seems easiest to add this to osu-tools, so that's probably what we'll end up doing. Would database integration be useful/feasible? If osu's score dbs are formatted the same as the api response (with a b64 encoded lzma for the play data) then loading from there would probably be a lot faster than calling the api. We would of course provide both for users who aren't staff. |
Using the API is fine for now. As long as you create model classes (using dapper is fine), we can easily switch out API for database in no time. |
Just wanted to give a quick update on our current developmental status for yourself and anyone else following this thread. We decided to focus on developing a program that would be immediately useful to a large amount of people (primarily the folks over at r/osureport, but obviously anybody with a particular penchant for catching cheaters) instead of a c# implementation. Although our recent gui release succeeds in making the program user friendly, there's still a lot of functionality missing before it becomes the goto tool for witchhunters, which is our end goal. The familiarity myself and the other developers (@samuelhklumpers and @InvisibleSymbol) have with python and the ease of development means that we won't switch the project language to c#. We are certainly interested in writing a c# version of the codebase (sans gui), but unless another developer comes along that wants to work on porting it, our current focus is on creating a community tool more so than one used by osu!staff. I'm sure you guessed as much given 5 months of silence, or have otherwise forgotten about this project entirely. We're still alive and kicking, I assure you, but can't justify working in c# yet. I will be sure to update this issue if that status changes. |
no worries, do what it takes to keep things moving |
Doing good work here.
May I ask if you are locked in to the python language choice? It would be hugely advantageous (and immediately usable) if this was available as .net core (would easily slot into our existing systems without forking execution).
The text was updated successfully, but these errors were encountered: