forum

BeatmapStation - search beatmaps, and download them from your in-game messages

posted
Total Posts
64
Topic Starter
Eber

BeatmapStation
A tool to search beatmaps, and download them from replays or messages-ingame

Hi guys! I've been developing this project for almost 2 years, and today I decided to release it to the community.
It's a desktop application made to make easier the task of searching and downloading new beatmaps:
Features
- Real-time recognition of beatmaps sent to you by in-game messages, and download them if you haven't them.

- Search beatmaps filtering them by title, artist, source, ranking status or even in-game stats, like AR, CS, OD, Stars amount, and much more other filters

- Select how many maps you want from multiple searches.

- It's possible to set and save your preferred filters under a name and a color, so you can reuse them later.

- It can download beatmaps from replays, just drag 'n drop them on the app's window to start the download.

- It can keep track of what maps you already have, so they won't be downloaded twice.

- By using the in-game command "/savelog", it's possible to download maps from #spectator and #multiplayer.

- Auto-installs downloaded maps.

- Minimize it to the system tray if you don't wanna it opened all the time.

- Pause your downloads whenever you want

- It supports multiple languages (current English, Brazilian Portuguese, Spanish, Russian and German).

How it works?
- The maps are downloaded using mirrors (actually the app uses mog's one and another one to download unranked beatmaps or when the first doesn't have a requested beatmap). After the download they're sent to osu!'s song folder, making the game installing them.

- By reading the osu!.db file, the app can keep track of already installed maps.

- Chat recognition works by activating the osu's option "Log private messages", or using the in-game "/savelog" command.

- You can drag and drop replay files in the main screen to download them. Their information are gathered using the osu! API.

- Also, the searching feature works by gathering the results from Rivenation's osu!search. His powerful tool returns precise results, and integrated with this app, you can now search for beatmaps and download them without even opening your browser.

- It can be minimized to the system tray to not stay open all the time.


About the in-game chat recognition

The chat message auto-recognition will only work if you activate the in-game option "Log private messages",
since they can't be recognized from anywhere else.
How to activate the option in-game

This way the game will log all your chat messages in the the Chat folder, located in the osu!'s folder.

Otherwise you'll need to use the /savelog in-game command every time you wanna download a map that someone sent to you. Also, this command can be used in chat rooms like #multiplayer or #spectator.
It works in public rooms too (#osu and language-specific channels), but I wouldn't recommend to use it that way, 'cause they usually have a huge amount of links and it won't be possible to take control of each one.

Don't worry, I'm not interested in your conversations and the app won't share your chat logs with other persons, and will only be used to recognize beatmaps sent to you.




Download

Current version: v2018.08.11.2.4

- To use the app, you need Java 8 Update 161 (or higher). You can download it here.
- BeatmapStation won't work with Java feature releases (like Java 9 or Java 10). Please make sure you have installed only the aforementioned public releases to use it.

Download link (mega.nz)
How to install
- Download the .zip from the link above and extract the .jar from it.
- Open it. A set-up screen will appear.
- Follow the 2 steps (set the API key and the game folder).
- It'll load your beatmap library (it'll do it only in the first time, don't worry).
- The app will open when it finishes loading the maps.


Changelog

Click to open

Eber wrote:

2018.08.11.2.4
- Text width calculation was using a native method that wasn't working in other operating systems other than Windows. Now it should be working in a more reliable way.
- Now a error message will be showed when you try to run the app in any Java that's not 8
- BeatmapStation won't die anymore if the Chat folder doesn't exist. (reported by Fusyon and Haibara-Chan).
- Added a error reporting dialog.

Eber wrote:

2018.07.29.2.3
- App's directory shouldn't be attempted to be created inside the app's jar when in operating systems that aren't Windows. (reported by Moltqn)
- Checking if a beatmap is being downloaded is now a synchronized method, to avoid throwing a ConcurrentModificationException.
- Chat handler won't die anymore if an exception is thrown.

Eber wrote:

2018.07.28.2.2
- Now the single-instance system should be working.
- Fixed some problems of the language system, making it check the update only for the selected language.
- Errors thrown during the splash screen will now be displayed in a dialog box.
- Fixed downloads being downloaded 'till the end, even if they were cancelled by the user. (reported by [ Neopolitan ])
- Fixed tray window positioning for people who anchor the task bar in other places other than the bottom. (reported by [ Neopolitan ])

Eber wrote:

2018.07.23.2.1
- Fixed a bug where the app would try to load a language file even if it didn't existed, leading to an endless splash screen loading.

Eber wrote:

2018.07.22.2.0
+ You can now set and save your own filters on the search dialog
+ A new pagination system
+ Beatmapset cover images
+ A cool dark theme to the search dialog
+ Beatmaps' files will be opened, instead of just sending them to osu!'s folder when received from #spectator or #multiplayer channels
+ Now LOVED ranked status is supported!
+ The app will now warn when a new update is out
+ BeatmapStation is now limited to run with just one instance at the time.
+ Now the app pulls changes and new language files from GitHub
+ Changed config file's format
- Fixed wrong usernames when multiple people send to you beatmap links on the chat at the same time.
- Fixed search dialog using favorite values as BPM values
- Fixed downloaded beatmaps disappearing from the game
- Many other little bugs that I fixed but they were so insignificant that I forgot about them lol

Eber wrote:

2018.04.11.1.2
+ Fixed some incorrect phrasing on English and Spanish translations.
- Fixed a bug where the amount of visible beatmaps in the search results would not update (thanks for DJNeonNight for reporting it).

Eber wrote:

2018.04.09.1.1
+ Added Spanish translation (thanks for DJNeonNight).
+ Added translators credits to the settings screen.
+ Added a little warning when the language is changed on the settings screen.
- Fixed some bugs related to the configuration file.


Special thanks

- Thanks for my friend Fusyon, for making some icons for the app.
- Rivenation, for letting me use osu!search to gather the searching requests. Without him a lot of the user experience would be lost. Please thank him on the osu!search's topic.
- Thanks for my friends Vvdczinho, Lewd Imouto, Acooler and Coconutt, for helping me testing this app.
- Thanks for peppy for being nice and letting me release this.

- Thanks for DJNeonNight for translating this app to Spanish.


Translations & Bugs

I've translated the app to English and Brazilian Portuguese (my native language).
But other people have took their time to make it available in other languages:
• Spanish (made by DJNeonNight).
• Russian (made by i3ym).

If you're interested in helping translating it to your language, please make a pull request on its GitHub repository. You can pick whatever language file you wanna from there and translate it to your local tongue.

Also, I'll be really glad in solving any bug that you find on the program.
If you found one, please go the app's installation directory (%appdata%/beatmap-station), and send me the the files inside the logs folder. They're the files where the app drops the errors.
If possible, please describe the conditions that made the bug occur. I'll sure take a look on it and solve when I have some time.
You can send them to me by creating an issue on the GitHub repo, sending me a PM or just posting it on this thread.


Don't forget to leave your feedback about the program! :)
abraker
nice UI
hirohi
Nice work!🙌 Been followed your job along those 2 years and it's really impressive you could deploy it. Cheers! 👏
Topic Starter
Eber

abraker wrote:

nice UI

Thanks! I paid a special attention to integrate the functionality with a good design.

[ H I R O ] wrote:

Nice work!🙌 Been followed your job along those 2 years and it's really impressive you could deploy it. Cheers! 👏

Thanks man. It took a lot of time and effort to get finally done to be released. Fortunately, I could push it to a very functional state.
Shad0wz
It's a good and useful program if you aren't a supporter, nice work dude, plus you can filter maps by AR and other stuff, which is really nice too, it's a nice program overall :D
Luuukee N7
nice... up
maot
Nice man! You did a thing i was about to start to do. By the way nice design :)
Poseidon
Add pp and ill ditch osu!direct
FunYellow
Cara, parabéns por esse prorana, ficou show <3
ladywarrior23
:thinking:
Booze
this is great

i'd love a button that would give you a random beatmap within the filters you set
Ideal
opa :eyes:
YohanSabrac
bom :3
SynnerStar
carai man ótimo trabalho!!!parabéns por fazer algo tão bom assim dar certo ^^
Topic Starter
Eber
Hi guys! I just updated the app with a few little fixes and the Spanish translation made by DJNeonNight. Please thank him for taking his time to do it ^-^

Also, thanks for all the people that are giving feedback, that means a lot for me.

Shad0wz wrote:

It's a good and useful program if you aren't a supporter, nice work dude, plus you can filter maps by AR and other stuff, which is really nice too, it's a nice program overall :D
Thank you so much for your feedback, though I don't think this app can replace osu! supporter in any ways.

Poseidon wrote:

Add pp and ill ditch osu!direct
Soon™. osu! direct is faster by the way.

Maot wrote:

Nice man! You did a thing i was about to start to do. By the way nice design :)
During these 2 years, I was thinking that it was almost impossible that some other person didn't have a similar idea. I'm glad that I could release it anyway.

isopaharuntikka wrote:

this is great

i'd love a button that would give you a random beatmap within the filters you set
Thanks for your suggestion man, I appreciate it. But I'm sorry, to do it I would need to get the results from ALL the pages of the current search from osu!search (that would overload hammer Rivenation's servers). So, it aren't likely to happen, unless he makes someone like this in his system, sorry =(

Luuukee N7 wrote:

nice... up

FunYellow wrote:

Cara, parabéns por esse prorana, ficou show <3

sayonara - wrote:

:thinking:

Idealism wrote:

opa :eyes:

YohanSabrac wrote:

bom :3

jhIee0I33 wrote:

carai man ótimo trabalho!!!parabéns por fazer algo tão bom assim dar certo ^^
Valeus. Fico feliz que tenham gostado e deixarem seu comentário na thread : 3
-Makishima S-
Well done, now share source code so people who know how to read alien can check if it's safe.
Sorry, I especially do not trust Java devs and Java apps... well, In general I do not trust Java at all 8-)

Personal problems aside - adding source code as someone who shows up first app here is appreciated for trust issues of many users. Especially when in the past afair there were problems with this.
Topic Starter
Eber

[Taiga] wrote:

Well done, now share source code so people who know how to read alien can check if it's safe.
Sorry, I especially do not trust Java devs and Java apps... well, In general I do not trust Java at all 8-)

Personal problems aside - adding source code as someone who shows up first app here is appreciated for trust issues of many users. Especially when in the past afair there were problems with this.

Hi Taiga! Thanks for your feedback. While I agree that Java is not the safest language, I'm not planning in make open-source the app or share its basecode, at least for the moment.
That's because I worked really hard to finish this project, and it took a great amount of time to do it, and because of this I just don't feel comfortable to release the source.

So, I'd not spent the amount of time and efforts that I spent, to harm the users, you can be sure of this.

I agree that I never published any other app on the forums, and I'm aware that some people can fear downloading the app because it's not open-source. But, for the moment, I'm not gonna share its source.
xenonius
can you add loved and pending to the search filters?

also really nice work you've done here owo

edit: and qualified

edit 2: i'm blind
Topic Starter
Eber

xenonius wrote:

can you add loved and pending to the search filters?

also really nice work you've done here owo

edit: and qualified

Thx for your feedback dude ^-^
You already can filter by qualified maps on the app. If is that what you're meaning:


About the loved ones, I need to talk with Rivenation (the osu!search developer) about if to see if is possible (since the search results are gathered from there).
For the moment, the app can only determine the status rank of the maps.
Acrith
Hey,

Nice tool, tho I can't understand why program is not EXCLUDING already downloaded maps from my osu.db?
show more
Please sign in to reply.

New reply