Skip to content

sortedcord/osu-statqt

Repository files navigation

Osu!StatQt

Osu statistics right on your desktop, made with Qt5

A lightweight desktop application to show you information about plays, scores and beatmaps. Basically a simple osu-web client.

Status

GitHub release (latest by date including pre-releases) GitHub last commit GitHub issues wakatime

Currently, it is a passion project for me and I'm creating this to learn the pyQt framework and more stuff about Python. I plan on adding features to it with time and frequent releases as well until its fully complete or there are changes in osu API V2.

In its alpha stage, this is just the barebones with basic features. With the subsequent beta and stable releases, the featureset would only increase.

Usage

usage

As of the current release, you can set a default user for osu stat and view your recent activity and scores (including failed scores) as well as their information such as Performance Points, Time, Beatmap Title, Diff and Ranked Score.

Installing Osu!StatQt

Latest Release:

Windows 8.1+ (x64) Linux (x64)

Binaries are available for both Windows and Linux (Needs more Testing). It's quite straightforward for windows as you simply have to run a .exe file. For Linux you may need to set the File as executable and then run it.

$ sudo chmod +x ./OsuStatQt-0.0.5-linux-x64-standalone

./OsuStatQt-0.0.5-linux-x64-standalone

Configuring Osu!StatQt

Note: Osu!StatQt generates a config file. Do not edit it manually by opening it in any text editor nor share it to anyone else!

Api Credentials

OsuStat uses Circleguard's ossapiV2 which is a python wrapper for Osu-api V2. This requires you to create a OAuth Application in your osu account settings

Note: You can use an existing OAth Application's credentials if you have created one before.

Open OsuStatQt and go to Preferences > Settings and then click on `Get Credentials` Button.

You would have to login in case you are not already logged in then go to the account setting page. There you would need to scroll all the way down to the OAuth Section and click on new OAuth Application.

In the popup, set the application name as anything you want and for the redirect url, set it as https://127.0.0.1:727.

You may need to change 727 to something else if you already have some process using that port.

Entering the details will give you Client ID and Client Secret. Copy them to the OsuStatQt settings page (Make sure there are no spaces in either of the fields) and click Verify.

If you entered the credentials properly, then you will get a message telling you so.

Once this is done, you can move on to setting up Default user and start using OsuStatQt.

Setting Default User

In order to set a default user (which generally is you but it can be any user on Bancho), open settings and enter the default username in the user field. You have to enter the correct spelling else it may set it as somebody else or may not find the user at all!

Building Osu!StatQt

I use pyinstaller for building and managing packages for OsuStatQt. It is highly recommended to use a virtual environment when building with pyinstaller.

Circleguard's ossapi causes issues with pyinstaller as for some reason its not able to read the dumped token files. Instead I suggest using https://github.com/sortedcord/ossapi which I have modified to not dump the tokens at all.

# Assuming this is in a venv

pip install -e git+https://github.com/sortedcord/ossapi.git@46a3c0a684aa792f2f3f55001539cb4faf3fd8ba#egg=ossapi

Other dependencies which you will need include the following.

pip install -r requirements.txt

And Clone this repository

git clone https://github.com/sortedcord/osu-statqt.git
cd osu-statqt

Build files are included with in the source code. Use onefile.spec to build a single file binary and use build_package.spec. Usage is like so:

$ pyinstaller ./build_package.spec #Or change this to onefile according to your need.

Enable verbose (console)

Change console=False to console=True in .spec files.

Mac OS (Catalina and above)

I don't own a Mac nor am I interested in setting up a hackintosh, so practically there is no way for me to test the mac os build, however the process of building binaries is more or less the same, the only catch is to build a standalone binary.

$ pyinstaller onefile.spec

Credits

Would like to thank these creators for their projects and contributions.