zardoru / raindrop

yet another beatgame.
GNU General Public License v3.0
128 stars 16 forks source link

BMS Table (GLAssist) Support #47

Closed DolphinDTM closed 8 years ago

DolphinDTM commented 8 years ago

Support for download GLAssist tables such as the Insane scale or the Normal2 scale. These should show up as separate folders in-game.

zardoru commented 8 years ago

so this is basically just special folders right

DolphinDTM commented 8 years ago

yes

zardoru commented 8 years ago

got any docs about what format the tables are in? this should be pretty quick to add

DolphinDTM commented 8 years ago

I don't really know how they work. All I know is that you simply feed GLAssist (or beatoraja) links to the tables. Some examples are:

You can find more links here http://bmsnormal2.syuriken.jp/bms_dtimporter.html Each category (here they are usually level groups) is its own sub-folder.

The clients might be grabbing something from the html files for identifying BMS in the database. Maybe you should check the beatoraja source code? https://github.com/exch-bms2/beatoraja

Btw it is worth mentioning that it would be really helpful if the tables updated automatically when you launch the game (tho this could be turned off by the player in the config file), and perhaps an in-game key bind to refresh too.

dtinth commented 8 years ago

Difficulty tables are JSON files. Take this for example: http://www.ribbit.xyz/bms/tables/normal.html

<meta name="bmstable" content="normal_header.json" />

Inside it will contain the metadata:

{
   "data_url" : "normal_body.json",
   "last_update" : "2016/02/29",
   "symbol" : "☆",
   "name" : "通常難易度表",
   "original_url" : "http://nekokan.dyndns.info/~lobsak/genocide/normal.html"
}

If you follow the URL to normal_body.json, you’ll see this:

[
   {
      "url_diff" : "http://starterpack.bms.ms/",
      "name_diff" : "syatten + 140 / BMSSP",
      "md5" : "9e2e666673cb500e97f320f4e2953ef6",
      "url" : "http://www.yamajet.com/bmssp/",
      "artist" : "syatten + 140 / BMSSP",
      "lr2_bmsid" : "11442",
      "title" : "Evangelize (Radio Edit) (SP BEGINNER)",
      "level" : "1",
      "comment" : "TOTAL260 (100%)\n\nBMS Starter Pack 2009にのみ同梱されている譜面\n旧BMS段位認定 初段1曲目\n\nBMSSP2009(Mirror:367MB)\nhttps://mega.co.nz/#!JoJxwaKY!E0GBn6c_iBxIe2l2ZJ7rIBtZBLSY2qFuTV-VAYdl7yI"
   },
   {
      "level" : "1",
      "title" : "ametsuchi [7keys Beginner]",
      "comment" : "TOTAL360 (138%)\n\n作者HP\nhttp://stereoberry.sakura.tv/music.htm\n\nBMS Starter Pack 2009にのみ同梱されている譜面\n\nBMSSP2009(Mirror:367MB)\nhttps://mega.co.nz/#!JoJxwaKY!E0GBn6c_iBxIe2l2ZJ7rIBtZBLSY2qFuTV-VAYdl7yI",
      "artist" : "stereoberry / BMSSP",
      "lr2_bmsid" : "11327",
      "url" : "http://starterpack.bms.ms/guide.html",
      "url_diff" : "http://starterpack.bms.ms/",
      "name_diff" : "stereoberry / BMSSP",
      "md5" : "9d230f38776ed6be1d15dfad7e9ec04a"
   },
   {
      "lr2_bmsid" : "39571",
      "artist" : "void BGA : Identity 7",
      "comment" : "TOTAL280 (107%)\n\nEvent会場\nhttp://manbow.nothing.sh/event/event.cgi?action=More_def&num=71&event=60\n所属チーム「きっとリア充」",
      "level" : "1",
      "title" : "Ordeal [SP Beginner]",
      "md5" : "6c744a1568a9e98e7080f2f67766b2af",
      "url_diff" : "http://manbow.nothing.sh/event/event.cgi?action=More_def&num=71&event=60",
      "name_diff" : "void BGA : Identity 7",
      "url" : "http://www.mournfinale.com/"
   },
   ...
]

Note that GLAssist itself if open source, which you can download here: https://osdn.jp/projects/bms-dtimporter/. It’s also available on SVN: svn co http://svn.osdn.jp/svnroot/bms-dtimporter/

zardoru commented 8 years ago

Okay, that looks a hell of a lot more reasonable than I originally thought. Thanks dtinth. As I've stated before - Java is a hard langauge to get information from, so I was hoping someone had properly documented this info.

zardoru commented 8 years ago

if this happens it won't be through raindrop itself, but through the IR. closing.