├── .gitattributes ├── .github └── FUNDING.yml ├── .gitignore ├── Packages.dgml ├── README.md ├── osu!Profile.sln ├── osu!Profile.v12.suo ├── osu!Profile ├── App.config ├── App.xaml ├── App.xaml.cs ├── Forms │ ├── FilesWindow.xaml │ ├── FilesWindow.xaml.cs │ ├── MainWindow.xaml │ ├── MainWindow.xaml.cs │ ├── RankingSelector.xaml │ ├── RankingSelector.xaml.cs │ ├── Settings.xaml │ └── Settings.xaml.cs ├── IO │ ├── IniFile.cs │ ├── OutputFile.cs │ └── Shortcut.cs ├── OsuAPIObjects │ ├── Beatmap.cs │ ├── Event.cs │ ├── Mapsapi.cs │ ├── Player.cs │ ├── Scoerapi.cs │ └── Score.cs ├── Properties │ ├── AssemblyInfo.cs │ ├── Resources.Designer.cs │ ├── Resources.resx │ ├── Settings.Designer.cs │ └── Settings.settings ├── Resources │ ├── Color.xaml │ ├── Entypo-license.txt │ ├── Entypo.ttf │ ├── Icons.xaml │ ├── MyStyle.xaml │ └── WindowsIcons-license.txt ├── osu!Profile.csproj ├── osu!Profile.sln ├── osu!Profile.v12.suo ├── osu!Profile │ ├── App.config │ ├── App.xaml │ ├── App.xaml.cs │ ├── FilesWindow.xaml │ ├── FilesWindow.xaml.cs │ ├── IniFile.cs │ ├── JSON.cs │ ├── LoopUpdate.cs │ ├── MainWindow.xaml │ ├── MainWindow.xaml.cs │ ├── Osu!Player.cs │ ├── Properties │ │ ├── AssemblyInfo.cs │ │ ├── Resources.Designer.cs │ │ ├── Resources.resx │ │ ├── Settings.Designer.cs │ │ └── Settings.settings │ ├── RankingSelector.xaml │ ├── RankingSelector.xaml.cs │ ├── Ressources │ │ └── MyStyle.xaml │ ├── favicon.ico │ ├── osu!Profile.csproj │ └── packages.config ├── osu!profile.ico ├── packages.config └── packages │ ├── HtmlAgilityPack.1.4.9 │ ├── HAPIcon.png │ ├── HtmlAgilityPack.1.4.9.nupkg │ ├── HtmlAgilityPack.1.4.9.nuspec │ ├── lib │ │ ├── Net20 │ │ │ ├── HtmlAgilityPack.dll │ │ │ ├── HtmlAgilityPack.pdb │ │ │ └── HtmlAgilityPack.xml │ │ ├── Net40-client │ │ │ ├── HtmlAgilityPack.dll │ │ │ ├── HtmlAgilityPack.pdb │ │ │ └── HtmlAgilityPack.xml │ │ ├── Net40 │ │ │ ├── HtmlAgilityPack.XML │ │ │ ├── HtmlAgilityPack.dll │ │ │ └── HtmlAgilityPack.pdb │ │ ├── Net45 │ │ │ ├── HtmlAgilityPack.XML │ │ │ ├── HtmlAgilityPack.dll │ │ │ └── HtmlAgilityPack.pdb │ │ ├── NetCore45 │ │ │ ├── HtmlAgilityPack.dll │ │ │ ├── HtmlAgilityPack.pdb │ │ │ ├── HtmlAgilityPack.pri │ │ │ └── HtmlAgilityPack.xml │ │ ├── portable-net45+netcore45+wp8+MonoAndroid+MonoTouch │ │ │ ├── HtmlAgilityPack.dll │ │ │ └── HtmlAgilityPack.pdb │ │ ├── portable-net45+netcore45+wpa81+wp8+MonoAndroid+MonoTouch │ │ │ ├── HtmlAgilityPack.dll │ │ │ └── HtmlAgilityPack.pdb │ │ ├── sl3-wp │ │ │ └── _._ │ │ ├── sl4 │ │ │ ├── HtmlAgilityPack.XML │ │ │ ├── HtmlAgilityPack.dll │ │ │ └── HtmlAgilityPack.pdb │ │ └── sl5 │ │ │ ├── HtmlAgilityPack.XML │ │ │ ├── HtmlAgilityPack.dll │ │ │ └── HtmlAgilityPack.pdb │ └── readme.txt │ ├── MahApps.Metro.0.15.0-ALPHA54 │ ├── MahApps.Metro.0.15.0-ALPHA54.nupkg │ ├── MahApps.Metro.0.15.0-ALPHA54.nuspec │ ├── lib │ │ ├── net40 │ │ │ ├── MahApps.Metro.XML │ │ │ ├── MahApps.Metro.dll │ │ │ └── System.Windows.Interactivity.dll │ │ └── net45 │ │ │ ├── MahApps.Metro.XML │ │ │ ├── MahApps.Metro.dll │ │ │ └── System.Windows.Interactivity.dll │ └── tools │ │ └── install.ps1 │ └── repositories.config └── packages ├── Extended.Wpf.Toolkit.2.4 ├── Extended.Wpf.Toolkit.2.4.nupkg ├── Extended.Wpf.Toolkit.2.4.nuspec ├── lib │ ├── net35 │ │ ├── WPFToolkit.dll │ │ └── Xceed.Wpf.Toolkit.dll │ └── net40 │ │ ├── Xceed.Wpf.AvalonDock.Themes.Aero.dll │ │ ├── Xceed.Wpf.AvalonDock.Themes.Metro.dll │ │ ├── Xceed.Wpf.AvalonDock.Themes.VS2010.dll │ │ ├── Xceed.Wpf.AvalonDock.dll │ │ ├── Xceed.Wpf.DataGrid.dll │ │ ├── Xceed.Wpf.Toolkit.dll │ │ ├── de │ │ └── Xceed.Wpf.AvalonDock.resources.dll │ │ ├── es │ │ └── Xceed.Wpf.AvalonDock.resources.dll │ │ ├── fr │ │ └── Xceed.Wpf.AvalonDock.resources.dll │ │ ├── hu │ │ └── Xceed.Wpf.AvalonDock.resources.dll │ │ ├── it │ │ └── Xceed.Wpf.AvalonDock.resources.dll │ │ ├── pt-BR │ │ └── Xceed.Wpf.AvalonDock.resources.dll │ │ ├── ro │ │ └── Xceed.Wpf.AvalonDock.resources.dll │ │ ├── ru │ │ └── Xceed.Wpf.AvalonDock.resources.dll │ │ ├── sv │ │ └── Xceed.Wpf.AvalonDock.resources.dll │ │ └── zh-Hans │ │ └── Xceed.Wpf.AvalonDock.resources.dll └── tools │ └── install.ps1 ├── Extended.Wpf.Toolkit.2.5 ├── Extended.Wpf.Toolkit.2.5.nupkg ├── Extended.Wpf.Toolkit.2.5.nuspec ├── lib │ ├── net35 │ │ ├── WPFToolkit.dll │ │ └── Xceed.Wpf.Toolkit.dll │ └── net40 │ │ ├── Xceed.Wpf.AvalonDock.Themes.Aero.dll │ │ ├── Xceed.Wpf.AvalonDock.Themes.Metro.dll │ │ ├── Xceed.Wpf.AvalonDock.Themes.VS2010.dll │ │ ├── Xceed.Wpf.AvalonDock.dll │ │ ├── Xceed.Wpf.DataGrid.dll │ │ ├── Xceed.Wpf.Toolkit.dll │ │ ├── de │ │ └── Xceed.Wpf.AvalonDock.resources.dll │ │ ├── es │ │ └── Xceed.Wpf.AvalonDock.resources.dll │ │ ├── fr │ │ └── Xceed.Wpf.AvalonDock.resources.dll │ │ ├── hu │ │ └── Xceed.Wpf.AvalonDock.resources.dll │ │ ├── it │ │ └── Xceed.Wpf.AvalonDock.resources.dll │ │ ├── pt-BR │ │ └── Xceed.Wpf.AvalonDock.resources.dll │ │ ├── ro │ │ └── Xceed.Wpf.AvalonDock.resources.dll │ │ ├── ru │ │ └── Xceed.Wpf.AvalonDock.resources.dll │ │ ├── sv │ │ └── Xceed.Wpf.AvalonDock.resources.dll │ │ └── zh-Hans │ │ └── Xceed.Wpf.AvalonDock.resources.dll └── tools │ └── install.ps1 ├── HtmlAgilityPack.1.4.9 ├── HAPIcon.png ├── HtmlAgilityPack.1.4.9.nupkg ├── HtmlAgilityPack.1.4.9.nuspec ├── lib │ ├── Net20 │ │ ├── HtmlAgilityPack.dll │ │ ├── HtmlAgilityPack.pdb │ │ └── HtmlAgilityPack.xml │ ├── Net40-client │ │ ├── HtmlAgilityPack.dll │ │ ├── HtmlAgilityPack.pdb │ │ └── HtmlAgilityPack.xml │ ├── Net40 │ │ ├── HtmlAgilityPack.XML │ │ ├── HtmlAgilityPack.dll │ │ └── HtmlAgilityPack.pdb │ ├── Net45 │ │ ├── HtmlAgilityPack.XML │ │ ├── HtmlAgilityPack.dll │ │ └── HtmlAgilityPack.pdb │ ├── NetCore45 │ │ ├── HtmlAgilityPack.dll │ │ ├── HtmlAgilityPack.pdb │ │ ├── HtmlAgilityPack.pri │ │ └── HtmlAgilityPack.xml │ ├── portable-net45+netcore45+wp8+MonoAndroid+MonoTouch │ │ ├── HtmlAgilityPack.dll │ │ └── HtmlAgilityPack.pdb │ ├── portable-net45+netcore45+wpa81+wp8+MonoAndroid+MonoTouch │ │ ├── HtmlAgilityPack.dll │ │ └── HtmlAgilityPack.pdb │ ├── sl3-wp │ │ └── _._ │ ├── sl4 │ │ ├── HtmlAgilityPack.XML │ │ ├── HtmlAgilityPack.dll │ │ └── HtmlAgilityPack.pdb │ └── sl5 │ │ ├── HtmlAgilityPack.XML │ │ ├── HtmlAgilityPack.dll │ │ └── HtmlAgilityPack.pdb └── readme.txt ├── MahApps.Metro.1.0.0.0 ├── MahApps.Metro.1.0.0.0.nupkg ├── MahApps.Metro.1.0.0.0.nuspec ├── lib │ ├── net40 │ │ ├── MahApps.Metro.XML │ │ ├── MahApps.Metro.dll │ │ └── System.Windows.Interactivity.dll │ └── net45 │ │ ├── MahApps.Metro.XML │ │ ├── MahApps.Metro.dll │ │ └── System.Windows.Interactivity.dll └── tools │ └── install.ps1 ├── MahApps.Metro.1.1.2.0 ├── MahApps.Metro.1.1.2.0.nupkg ├── MahApps.Metro.1.1.2.0.nuspec ├── lib │ ├── net40 │ │ ├── MahApps.Metro.XML │ │ ├── MahApps.Metro.dll │ │ └── System.Windows.Interactivity.dll │ └── net45 │ │ ├── MahApps.Metro.XML │ │ ├── MahApps.Metro.dll │ │ └── System.Windows.Interactivity.dll └── tools │ └── install.ps1 ├── MahApps.Metro.Resources.0.4.0.0 ├── MahApps.Metro.Resources.0.4.0.0.nupkg ├── MahApps.Metro.Resources.0.4.0.0.nuspec └── content │ └── Resources │ ├── Entypo-license.txt │ ├── Entypo.ttf │ ├── Icons.xaml │ └── WindowsIcons-license.txt ├── Newtonsoft.Json.6.0.8 ├── Newtonsoft.Json.6.0.8.nupkg ├── Newtonsoft.Json.6.0.8.nuspec ├── lib │ ├── net20 │ │ ├── Newtonsoft.Json.dll │ │ └── Newtonsoft.Json.xml │ ├── net35 │ │ ├── Newtonsoft.Json.dll │ │ └── Newtonsoft.Json.xml │ ├── net40 │ │ ├── Newtonsoft.Json.dll │ │ └── Newtonsoft.Json.xml │ ├── net45 │ │ ├── Newtonsoft.Json.dll │ │ └── Newtonsoft.Json.xml │ ├── netcore45 │ │ ├── Newtonsoft.Json.dll │ │ └── Newtonsoft.Json.xml │ ├── portable-net40+sl5+wp80+win8+wpa81 │ │ ├── Newtonsoft.Json.dll │ │ └── Newtonsoft.Json.xml │ └── portable-net45+wp80+win8+wpa81+aspnetcore50 │ │ ├── Newtonsoft.Json.dll │ │ └── Newtonsoft.Json.xml └── tools │ └── install.ps1 └── repositories.config /.gitattributes: -------------------------------------------------------------------------------- 1 | # Auto detect text files and perform LF normalization 2 | * text=auto 3 | 4 | # Custom for Visual Studio 5 | *.cs diff=csharp 6 | *.sln merge=union 7 | *.csproj merge=union 8 | *.vbproj merge=union 9 | *.fsproj merge=union 10 | *.dbproj merge=union 11 | 12 | # Standard to msysgit 13 | *.doc diff=astextplain 14 | *.DOC diff=astextplain 15 | *.docx diff=astextplain 16 | *.DOCX diff=astextplain 17 | *.dot diff=astextplain 18 | *.DOT diff=astextplain 19 | *.pdf diff=astextplain 20 | *.PDF diff=astextplain 21 | *.rtf diff=astextplain 22 | *.RTF diff=astextplain 23 | -------------------------------------------------------------------------------- /.github/FUNDING.yml: -------------------------------------------------------------------------------- 1 | # These are supported funding model platforms 2 | 3 | github: # Replace with up to 4 GitHub Sponsors-enabled usernames e.g., [user1, user2] 4 | patreon: # Replace with a single Patreon username 5 | open_collective: # Replace with a single Open Collective username 6 | ko_fi: respektive 7 | tidelift: # Replace with a single Tidelift platform-name/package-name e.g., npm/babel 8 | community_bridge: # Replace with a single Community Bridge project-name e.g., cloud-foundry 9 | liberapay: # Replace with a single Liberapay username 10 | issuehunt: # Replace with a single IssueHunt username 11 | otechie: # Replace with a single Otechie username 12 | lfx_crowdfunding: # Replace with a single LFX Crowdfunding project-name e.g., cloud-foundry 13 | custom: https://paypal.me/liamtoelke 14 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | <<<<<<< HEAD 2 | /.project 3 | /osu!Profile/bin/ 4 | /osu!Profile/obj/ 5 | .vs/ 6 | 7 | # Windows image file caches 8 | Thumbs.db 9 | ehthumbs.db 10 | 11 | # Folder config file 12 | Desktop.ini 13 | 14 | # Recycle Bin used on file shares 15 | $RECYCLE.BIN/ 16 | 17 | # Windows Installer files 18 | *.cab 19 | *.msi 20 | *.msm 21 | *.msp 22 | 23 | # ========================= 24 | # Operating System Files 25 | # ========================= 26 | 27 | # OSX 28 | # ========================= 29 | 30 | ======= 31 | # Windows image file caches 32 | Thumbs.db 33 | ehthumbs.db 34 | 35 | # Folder config file 36 | Desktop.ini 37 | 38 | # Recycle Bin used on file shares 39 | $RECYCLE.BIN/ 40 | 41 | # Windows Installer files 42 | *.cab 43 | *.msi 44 | *.msm 45 | *.msp 46 | 47 | # ========================= 48 | # Operating System Files 49 | # ========================= 50 | 51 | # OSX 52 | # ========================= 53 | 54 | >>>>>>> fc139be0b15e249571951fec75048852fa6034aa 55 | .DS_Store 56 | .AppleDouble 57 | .LSOverride 58 | 59 | # Icon must end with two \r 60 | <<<<<<< HEAD 61 | Icon 62 | 63 | ======= 64 | Icon 65 | >>>>>>> fc139be0b15e249571951fec75048852fa6034aa 66 | 67 | # Thumbnails 68 | ._* 69 | 70 | # Files that might appear on external disk 71 | .Spotlight-V100 72 | .Trashes 73 | 74 | # Directories potentially created on remote AFP share 75 | .AppleDB 76 | .AppleDesktop 77 | Network Trash Folder 78 | Temporary Items 79 | <<<<<<< HEAD 80 | .apdisk 81 | ======= 82 | .apdisk 83 | 84 | #Generated directories 85 | osu!Profile/osu!Profile/bin/ 86 | osu!Profile/osu!Profile/obj/ 87 | >>>>>>> fc139be0b15e249571951fec75048852fa6034aa 88 | .vs/osu!Profile/v16/.suo 89 | -------------------------------------------------------------------------------- /Packages.dgml: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 27 | 31 | 32 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | fork of [osu-profile](https://github.com/Entrivax/osu-profile) by [Entrivax](https://github.com/Entrivax) with some more stats and features mainly added by me ([respektive on osu!](https://osu.ppy.sh/users/1023489/osu)) and [-Koyuki-](https://osu.ppy.sh/users/8202576)(https://github.com/FreddyBadAdd). 2 | 3 | > Note that this is not actively being worked on anymore as it's just a pain in the ass to work with this code. In the future i might start working on a new osu! statistics tracking tool, but till then this has to do. Feel free to fork this yourself to add more stuff, as i probably won't check any PRs either. You might also check out [OsuAchievedOverlay](https://github.com/EngineerMark/OsuAchievedOverlay) which is getting regular updates and might become the spiritual successor of osu!Profile. 4 | 5 | # Newly added stats by this fork 6 | 7 | - Score Rank 8 | - Play Time 9 | - Total Hits 10 | - Hits per Play 11 | - Total S 12 | - Total SS 13 | - Profile Clears (Sum of SS/S/A Ranks) 14 | - Total Score per Play 15 | - Ranked Score per Play 16 | 17 | # Score Rank API 18 | 19 | Code is now available at and endpoints explanation moved to its [readme file](https://github.com/respektive/osu-score-rank-api#score-rank-api). 20 | 21 | # osu!Profile 22 | osu!Profile is a little program for helping you to see your progress in the ranking (if you're not very attentive and miss how many rank you've just passed when you finished a map), also allow you to export these data into files and importing them into your livestream with OBS or XSplit! 23 | 24 | ## Features 25 | - Shows your stats or these of any people 26 | - Auto check your progress 27 | - Choose the time interval between each update 28 | - Auto check if new version is available 29 | - You can export data shown in multiple files, many as you want 30 | - Shows stats changes after each time you finished a game 31 | 32 | ## Links 33 | [osu! forum thread](http://osu.ppy.sh/forum/t/252160) | [Website](http://entrivax.fr/osu!p) | [Get your API key](https://osu.ppy.sh/p/api) 34 | -------------------------------------------------------------------------------- /osu!Profile.sln: -------------------------------------------------------------------------------- 1 |  2 | Microsoft Visual Studio Solution File, Format Version 12.00 3 | # Visual Studio 2013 4 | VisualStudioVersion = 12.0.21005.1 5 | MinimumVisualStudioVersion = 10.0.40219.1 6 | Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "osu!Profile", "osu!Profile\osu!Profile.csproj", "{9442CAB6-0B20-43B8-B42B-0AE930D4FE2C}" 7 | EndProject 8 | Global 9 | GlobalSection(SolutionConfigurationPlatforms) = preSolution 10 | Debug|Any CPU = Debug|Any CPU 11 | Debug|x64 = Debug|x64 12 | Debug|x86 = Debug|x86 13 | Release|Any CPU = Release|Any CPU 14 | Release|x64 = Release|x64 15 | Release|x86 = Release|x86 16 | EndGlobalSection 17 | GlobalSection(ProjectConfigurationPlatforms) = postSolution 18 | {9442CAB6-0B20-43B8-B42B-0AE930D4FE2C}.Debug|Any CPU.ActiveCfg = Debug|Any CPU 19 | {9442CAB6-0B20-43B8-B42B-0AE930D4FE2C}.Debug|Any CPU.Build.0 = Debug|Any CPU 20 | {9442CAB6-0B20-43B8-B42B-0AE930D4FE2C}.Debug|x64.ActiveCfg = Debug|x64 21 | {9442CAB6-0B20-43B8-B42B-0AE930D4FE2C}.Debug|x64.Build.0 = Debug|x64 22 | {9442CAB6-0B20-43B8-B42B-0AE930D4FE2C}.Debug|x86.ActiveCfg = Debug|x86 23 | {9442CAB6-0B20-43B8-B42B-0AE930D4FE2C}.Debug|x86.Build.0 = Debug|x86 24 | {9442CAB6-0B20-43B8-B42B-0AE930D4FE2C}.Release|Any CPU.ActiveCfg = Release|Any CPU 25 | {9442CAB6-0B20-43B8-B42B-0AE930D4FE2C}.Release|Any CPU.Build.0 = Release|Any CPU 26 | {9442CAB6-0B20-43B8-B42B-0AE930D4FE2C}.Release|x64.ActiveCfg = Release|Any CPU 27 | {9442CAB6-0B20-43B8-B42B-0AE930D4FE2C}.Release|x64.Build.0 = Release|Any CPU 28 | {9442CAB6-0B20-43B8-B42B-0AE930D4FE2C}.Release|x86.ActiveCfg = Release|x86 29 | {9442CAB6-0B20-43B8-B42B-0AE930D4FE2C}.Release|x86.Build.0 = Release|x86 30 | EndGlobalSection 31 | GlobalSection(SolutionProperties) = preSolution 32 | HideSolutionNode = FALSE 33 | EndGlobalSection 34 | EndGlobal 35 | -------------------------------------------------------------------------------- /osu!Profile.v12.suo: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/respektive/osu-profile/eea2f16084ff182ac04b840c0d3b7eafb45d677a/osu!Profile.v12.suo -------------------------------------------------------------------------------- /osu!Profile/App.config: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | -------------------------------------------------------------------------------- /osu!Profile/App.xaml: -------------------------------------------------------------------------------- 1 |  5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | -------------------------------------------------------------------------------- /osu!Profile/App.xaml.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Configuration; 4 | using System.Data; 5 | using System.Linq; 6 | using System.Threading.Tasks; 7 | using System.Windows; 8 | 9 | namespace Osu_Profile 10 | { 11 | /// 12 | /// Logique d'interaction pour App.xaml 13 | /// 14 | public partial class App : Application 15 | { 16 | } 17 | } 18 | -------------------------------------------------------------------------------- /osu!Profile/Forms/FilesWindow.xaml: -------------------------------------------------------------------------------- 1 |  7 | 8 | 9 | 10 | 11 | 12 |