Giter Site home page Giter Site logo

beatsaver-reloaded's Introduction

🎵 BeatSaver Reloaded

Build Status Docker Image Size Docker Image Size Docker Pulls

⚠ Legal Notice

I do not operate BeatSaver, this repo is just the code that powers BeatSaver and anyone is free to use it. Only host beatmaps with audio that you own the legal copyright to. I am not responsible for any legal trouble you run into using this code to host beatmaps.

In addition to this, standard open-source licensing applies to this project. If you wish to use BeatSaver Reloaded for your own purposes, you must adhere to the ISC License terms, as documented in this project's LICENSE file.

🚀 Running in Production

This project uses Travis to run automated docker builds, you can find the project on Docker Hub. A sample Docker Compose file has been provided for you to use.

It is recommended to use Redis caching and a long, random JWT token in production.

🛑 Prerequisites

  • Docker
  • Docker Compose (optional, recommended)
  • MongoDB
  • Redis

📝 Configuration

Configuration is done using environment variables. Please refer to .env.example for more information.

🔧 Developing

If you wish to contribute, please refer to the contribution guidelines or the documentation.

ℹ Documentation

Documentation is available as a vuepress site at /docs.

The code that builds the site is licensed under the project's ISC License. However the content of the documentation is licensed using the Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International (CC BY-NC-SA 4.0) license, as documented here.

beatsaver-reloaded's People

Contributors

assistant avatar balibalo avatar cheezy64 avatar dependabot[bot] avatar jackwilsdon avatar luludotdev avatar mattlupino avatar megalon avatar migushthe2nd avatar thewillmundy avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

beatsaver-reloaded's Issues

Last page is empty in API search

Platform

This bug report concerns: (select all that apply)

  • Client
  • Server

Details

When doing an API search (/text/ or /advanced/) and the search results are a multiple of 10, the 'lastPage' reported at the bottom will be empty. (i.e. for a search with 10 results, lastPage and nextPage is 1 instead of 0).

Reproducing the Problem

https://beatsaver.com/api/search/text/0/?q=terrariaguy99 gives 10 results and claims there's a next page. Listing maps by uploader ID gives 10 results and nextPage is null: https://beatsaver.com/api/maps/uploader/5cff0b7798cc5a672c8556cf/0

Enforce .egg filename restrictions

Platform

This feature request concerns: (select all that apply)

  • [?] Client
  • [?] Server

Details

This may be something that needs to be addressed by BMBF instead, but some songs have filenames that are long or contain special characters. For example, https://beatsaver.com/beatmap/5768 has a file named "THE POKÉMON THEME - (METAL COVER) Jonathan Young & Jason Paige (the original singer).egg". Currently, the Quest version of Beat Saber isn't able to load songs like that. This could also benefit PC users where the length of the egg filename puts the full path length over the file system/OS limit.

Preferred Solution

Enforce a maximum filename length for egg files and disallow special characters for new uploads.

Advanced search

Details

The website could really use an advanced search feature. Currently you can only search for (parts of) titles.
Advanced search should include the ability to search for difficulty, number of downloads, rating, up-/down-votes and map type (Standard, Lightshow, ...).

Preferred Solution

On https://beatsaver.com/search in addition to the simple text input field for the title search i'd like to see a few more things added. These could be on a secondary search site or just be hidden behind some CSS/JS to hide them by default.

  1. A bunch of checkboxes, one for each difficulty. By default all these checkboxes should be checked so a search just by title would always find all difficulties. The search should only return songs matching the difficulties of the checked checkboxes.

  2. For map rating either two text input fields (lower and upper limit) or a range slider of some sorts (with a selector for the lower and a selector for the upper limit) would be good. Lower limit would be 0% and upper limit 100%, I guess. By default the search range would be between 0% and 100%.

  3. For number of downloads and number of up-/down-votes a similar approach using the two text input boxes could be used. A slider is kind of not an option here though, since the upper limit is variable.

  4. And lastly a number of checkboxes for the map types (Standard, Lightshow, and whatever other types there are) would be very nice to have.

The search only finds full matches

The search on https://beatsaver.com/search will only find full words. Search for "Hatsune" and you'll find lots of songs by Hatsune Miku. But search for "Hatsu" and you will not find even a single song.

I'd expect the search to also find partial matches because you don't always know the full artist or song name or how to write it.

UI of map listing/details should be consistent with previous version (UX problems)

Platform

This feature request concerns:

  • Client
  • Server

Details

People who've been using BeatSaver daily for many months shouldn't be forced to adapt to author's view of where certain info is currently displayed, as well as to missing behaviors.

Visual comparison:

Problems I see:

  1. Crucial map info (number of downloads, likes and dislikes) is pushed to the right side, making it harder to understand if a certain map is worth checking or not based on metadata (need to move your eyes or head each time). Considering the increasing amount of maps posted, you can't say this info is "secondary" in nature. Also there's an empty space above difficulties anyway.
  2. Listing: there's no download link on map card
  3. Listing: whole map card is clickable, which makes it impossible to copy (and search in google, for example) song/artist name, map ID, author name or any other metadata without opening details page. Before there were 3 ways to go to Details page: clicking on map name, cover image and Details button, so you could easily explore maps without extra clicks.
  4. Details: map cover as a background is kinda useless

Preferred Solution

  1. Move map stats close to map title/uploader and cover image:
     
    bs_details_move
  2. Add download links to map card on listing page
  3. Make map title/cover clickable instead of the whole card
  4. Display cover image separately on details page, preferably with an increased size (compared to listing - as an improvement)

Finalise infinite scroll

To-do

  • Implement storing beatmaps in redux store
    • Per-route
    • Refactor to reference a global store
  • Scroll handler
    • Save key to URL on scroll
    • Restore scroll position on navigate
    • Reset scroll position on PUSH
    • Fix bugs with search

Add meta/OpenGraph tags to song pages to make Discord embeds nicer

Platform

This feature request concerns: (select all that apply)

  • Client
  • Server

Details

Previously embeds looked like this:

bs-embeds

But now there's just a link, no info is fetched and embedded:

bs-embed-now

Preferred Solution

Add meta/OpenGraph tags to song pages. Here's a tutorial, for example.
Would be great to include uploader name and other useful stats too (difficulties, votes, etc).

Add CORS for ZIPs.

Platform

This feature request concerns: (select all that apply)

  • Client
  • Server

Details

Please describe the requested feature in as much detail as possible:
Note if your feature request is related to a problem.

The BeatSaver Viewer needs to be able to fetch and parse the ZIPs from JavaScript. The ZIPs no longer have access-control-allow-origin * headers so the Viewer cannot fetch and play the ZIPs.

Preferred Solution

Write a clear and concise description of what you want to happen:

Add CORS headers on the ZIP files.

Will workaround with https://cors-anywhere.herokuapp.com/ for now.

Include _noteJumpStartBeatOffset data

Platform

This feature request concerns: (select all that apply)

  • Client
  • Server

Details

Include "_noteJumpStartBeatOffset" data in metadata/characteristics//difficulties//

Unable to load map pages

Platform

This bug report concerns: (select all that apply)

  • Client
  • Server

Details

I don't know if this is related to #1, but I'm unable to to load any page with map (search works fine, but when I try to click on any map, I get infinite load). See gif bellow.

Reproducing the Problem

Open link (while logged in or logged out): https://beatsaver.com/beatmap/2087

Further Detail

It's my first experience with this site, so I don't know how it works, but in any case I shouldn't get infinite loads.

Browser: Opera (Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/78.0.3904.108 Safari/537.36 OPR/65.0.3467.78)
OS: Windows 10 1909
Region: Ukraine (tried US VPN)

beat saved issue

Song duration details in song list

Would be great if the song list could display the song duration in (HH:)MM:SS format.

Reasoning is that there are a lot of "tv size" releases of e.g. anime openings and endings that are just ~1:30 in length instead of the 3:00-4:00 normal duration. And I personally really dislike such short tracks.

Songs don't work in beat saber after the rewrite

Platform

This bug report concerns: (select all that apply)

  • Client
  • Server

Details

Please describe the problem you are having in as much detail as possible:
When I download songs and put them into the custom songs folder, it doesn't appear in the game,. even after I drag the beat saber.exe over the IPA. Something isn't right at all.

Reproducing the Problem

Please include detailed steps to reproduce the problem:

Further Detail

[Please include screenshots/browser info/anything else relevant]
[Otherwise delete this section]

Realtime Stats Endpoint

Only includes basic stats about a beatmap (votes, downloads, etc) but has a much lower cache time.

beatsaver.com doesn't show precise upload timestamp of songs

Platform

This bug report concerns: (select all that apply)

  • Client
  • Server

Details

Please display the exact upload timestamp instead of "4 hours ago" "3 days ago" etc.

Reproducing the Problem

Go to https://beatsaver.com/browse/latest and look at the metadata. The songs have vague upload timestamps like "3 hours ago" or "4 days ago", which are useless when trying to figure out if the song is newer than the most recent song in my custom song folder.

Details area shrinks with more buttons on results page

Platform

This bug report concerns: (select all that apply)

  • Client
  • Server

(Further) Details

Please describe the problem you are having in as much detail as possible:
The text area is way smaller because of the buttons in the stats element.
Screenshot_20190818-151007_Chrome

Another Download redirecting to the dashboard on Beatsaver

Platform

This bug report concerns:

  • Client

Details

As shown with oksoffs problem, the download sends me to the main page. I'm on the most recent version of Chrome (77 and some decimals or so) and not sure why it would still be doing it, be it my end or the site.

#47

but WHY?

Platform

This bug report concerns:

  • Client
  • Server

Details

I can't seem to upload anything even though i have all my files in order. is there something wrong with the internals of the file itself? i doubt it; i have had no issues playing this map. I have a difficulty file and a square cover (300X300)... oof.

Reproducing the Problem

upload a file?... idk, someone else was having the same issue. after tampering with the .dat file i was able to get it to upload but i don't know what i changed to get it to work.

Further Detail

image

Mobile UI optimisation and improvement

Platform

This feature request concerns:

  • Client
  • Server

Details

Would be nice to give mobile users some love by adding responsive styles.

Current screens from BrowserStack:

  • Listing
    2019-06-16_153723
  • Details 1
    2019-06-16_153745
  • Details 2
    2019-06-16_153807

Preferred Solution

Make mobile styles user-friendly:

  • don't squish cover images (maintain aspect ratio)
  • adjust fonts
  • move blocks
  • set multi-column layout to single-column
  • resize all cover images through cdn (?) to decrease traffic
  • etc.

Search for Modes

Platform

This feature request concerns: (select all that apply)

  • [When i click "Search" than i can just write Charckters for Title and Bandnames. But i want just see ALL 360°, 90° or Lightshow - Maps. It is good when i can turn on or off "Features" for Maps. Or i just want see "Easy, Normal or Hard" - Maps... I hope you understand what i mean. Best reguards] Client
  • Server

Details

Please describe the requested feature in as much detail as possible:
Note if your feature request is related to a problem.

Preferred Solution

Write a clear and concise description of what you want to happen:

API returning "null" difficulty data for recently uploaded maps

Platform

This bug report concerns: (select all that apply)

  • Client
  • Server

Details

Please describe the problem you are having in as much detail as possible:
The API is returning null for each difficulty in the
metadata -> characteristics -> 0 -> difficulties
section.

Reproducing the Problem

Please include detailed steps to reproduce the problem:
See any of these maps uploaded within the last day
https://beatsaver.com/api/maps/detail/7121
https://beatsaver.com/api/maps/detail/7110
https://beatsaver.com/api/maps/detail/710f

Further Detail

image

This is causing the Song Request Manager to return 0 for the NJS of all of these maps, since it is null from the API.

Beatsaver Stats

Platform

  • Client
  • Server

Details

There currently is no way to view Beatsaver stats (number of maps, etc.) on the site.

Preferred Solution

A new page (could be linked at the bottom (DMCA - Privacy - GitHub) of the site) with stats like:

  • Total number of maps
  • Total number of [difficulty] maps
  • Total number of downloads (all maps combined)
  • Total number of mappers
  • Total number of beatsaver users
  • Total number of maps with 50% or more like/dislike ratio
    More could be added

Map difficulty metadata

Platform

This feature request concerns: (select all that apply)

  • Client
  • Server (API)

Details

The API used to provide for each difficulty informations like the duration (time of the last note), number of notes and number of obstacles.
Is there any plan to add that back?

Preferred Solution

Having this data in the metadata field. Maybe an object containing the various properties instead of true in the difficulties object when the difficulty exists.

No verification e-mails

Platform

This bug report concerns: (select all that apply)

  • Client
  • Server

Details

When I create a new account, with a valid e-mail, I don't receive it in my Inbox nor in Spam.
I can't upload beatmap.

Reproducing the Problem

Create a new account with valid e-mail

Further Detail

I've tried with two accounts, one in gmail and the other one in protonmail.
Accounts are Adraenor and Adraenor2

Basic Search

Is it too much to ask for a sort function in the search results?
Now it's sort OR search, could it be possible to add a sort or a filter to he search query? Please
Now I get old songs or bad ones. And If I'm looking for a map made by a mapper, I'll never find it if (s)he made a bunch
I'm a noob in this game, but this is a bummer to me.
Don't get me wrong, I adore the modders and the respect I have for you is deserved, especially when the devs don't care, but something basic as this should be added.
Just my 2c

Rewrite has missing features

The initial release has been rushed, and some web UI stuff is still incomplete.
Please refer to the project tracker for more info about what is still in progress.

BeatSaver Reloaded has been released early to coincide with a Beat Saber update to minimize downtime. Please do not report issues about missing features in the meantime.

Duplicate account creation and inability to login.

Platform

This bug report concerns: (select all that apply)

  • [ X] Client
  • [ X] Server

Details

Site does not properly login accounts. I was unable to log in to my account, so I tried remaking my account with the same username and same email, which worked for some reason. However, it did not bring me to the same account that I uploaded to previously. I log out of this account, and attempt to log back in. This time, the password does not work at all. Attempting to create another account a third time also does not work, as it now registers as an existing account.

Note that, while I am unable to verify this, I am fairly certain I used the same password for both accounts as well. Username is "conspiracy" in both instances.

Reproducing the Problem

Can reproduce by following same process in Details.

Further Detail

Google Chrome, Win10, with script blockers OFF
Below is a screenshot of the duplicate email verifications.
https://puu.sh/Fgboc/87a28cddbe.png

Some songs are missing?

I used to download a song named "What you know" mapped by BennyDabeast from this URL:

Now it has a 404 error
Is this a bug of new system? or this song is removed by someone?
I'm sure the URL is correct

Support for SideQuest custom protocol.

Platform

This feature request concerns: (select all that apply)

  • Client
  • Server

Details

Please describe the requested feature in as much detail as possible:
Note if your feature request is related to a problem.

I would like to do a PR to add support for the sidequest custom protocol but I said I would open this issue first to see if you would be receptive. The sidequest protocol takes the download url directly so I think it would be really easy to add.

sidequest://bsaber/#<zip_download_url> or sidequest://bsaber/#https://beatsaver.com/api/download/key/53fb

Preferred Solution

Write a clear and concise description of what you want to happen:

Covered above.

Comments

It would be nice to have rudimentary comment support to leave feedback on uploaded songs.

Crash on any iOS device (Safari/Chrome) and Safari 11.1 (macOS)

Platform

This bug report concerns:

  • Client
  • Server

Details

Stack Trace:

f@https://beatsaver.com/src.4059cd8d.js:268:1068
https://beatsaver.com/src.4059cd8d.js:268:3493
_i@https://beatsaver.com/src.4059cd8d.js:74:77736
ro@https://beatsaver.com/src.4059cd8d.js:74:84866
ro@[native code]
lo@https://beatsaver.com/src.4059cd8d.js:74:85046
xa@https://beatsaver.com/src.4059cd8d.js:74:58481
xa@[native code]
https://beatsaver.com/src.4059cd8d.js:264:840
promiseReactionJob@[native code]

Probably because of some unsupported browser API, please check on https://caniuse.com/

Reproducing the Problem

Open website on:

  • Safari 11.1 on macOS High Sierra
  • Safari on iPhone XS (iOS 12)
  • Chrome on iPhone XS (iOS 12)
  • Safari/Chrome on iPad Pro 12.9

Further Detail

Screenshots from BrowserStack (real devices):

  • iPhone XS
     
    — Safari
    2019-06-16_155012
     
    — Chrome
    2019-06-16_155146

  • iPad Pro 12.9
    2019-06-16_155227
    (Chrome has the same issue)

  • macOS High Sierra
    2019-06-16_162605
    (not reproduced in Chrome or macOS Mojave / Safari 12)

Visual cues for map types (data visualization)

Platform

This feature request concerns: (select all that apply)

  • Client (definitely)
  • Server (probably?)

Details

Different people like different kinds of maps. Some might like a barrage of chaos, while others would prefer intricate patterns that flow well. Some people really care about lighting, while others are purely interested in the blocks.

Beyond preference, there are also some accessibility concerns. For example, I have bad knees, and have to fail (and subsequently delete) maps with wall patterns that force you to duck under them. I'd love to be able to know this information before investing the time downloading/syncing/trying the song.

I think there should be some sort of UI widget that would help showcase the substance of a map.

Preferred Solution

Dance Dance Revolution, my all-time favourite rhythm game, had an interesting solution to this problem: they included a radar chart that shows exactly where the song's challenges are:

DDR radar chart

From this chart, I can quickly deduce that this song is essentially a stream of arrows, with very few "jumps" (two arrows at once) or "holds" (leaving your foot on an arrow for a long time), and so you can see its "AIR" and "FREEZE" scores are super low.

Rubric

I'm still pretty new to BeatSaber, and so I'm probably not the best person to come up with a rubric for the axes, but I imagine something like:

  • Gymnastics (amount of body movement required)
  • Volatility (does the song have lots of lulls and moments of chaos - peaks and valleys - or is the song a consistent stream of blocks?)
  • Intensity (# of blocks per second during the peaks)
  • Flow (how smooth are the patterns?)
  • Mines (how many mines are there?)
  • Lighting (how much effort was put into the lights?)

These might be too ambitious, in that it may not be feasible to algorithmically evaluate the "flow" of a map, but they're just ideas. Potentially they could be user-submitted scores?

I'm interested in possibly contributing to this project! I've been building stuff with React since 2014, and I particularly enjoy making interesting, dynamic UI elements, so please do let me know if there are other projects that could benefit from this skillset =)

Feature Request: Link/Button for copying !bsr to clipboard

Platform

This bug report concerns:

  • Client
  • Server

Details

One of the main uses for BeatSaver is to look up songs for streamers to play. The ability to easily copy the !bsr command to the clipboard would be a useful addition.

Preferred Solution

A link or button from the search results and the song view page that copies the !bsr <songid> text to the clipboard, ready for pasting into Twitch chat.

BeatSaver website wont load songs to download

Platform

This bug report concerns: (select all that apply)

  • Client
  • Server

Details

When I try to download a song from the BeatSaver website the website is just loading but nothing happened.

Reproducing the Problem

I just have to try to get on a song as example: I click on the beatmap link https://beatsaver.com/beatmap/12f2 and nothing will happen an the site just loads
97e89b15c9ac9888a990108b4311ff94

Clarify dev environment setup

Platform

This feature request concerns:

  • Client
  • Server

Details

It's unclear how to properly get this project running in a dev environment.
It would be helpful to show how to use the typescript dev compiler and then run the server and client locally.

Preferred Solution

Basic instructions for setting up the project should be included in the readme (or perhaps github wiki).

So far I've only been able to get the client webpage running, but not the server.

Steps I've attempted:

Download and install the latest versions of

Project setup

  1. Clone the beatsaver-reloaded project.
  2. Install Node packages:
    - Open a powershell window in the beatsaver-reloaded/client directory and run yarn to install required node packages.
    - Open a powershell window in the beatsaver-reloaded/server directory and run yarn to install required node packages.

MongoDB
Create a new mongo container in Docker for the mongodb. I followed these instructions: https://blog.jeremylikness.com/mongodb-on-windows-in-minutes-with-docker-3e412f076762
In short: In any powershell window, run
docker volume create --name=beatsaverdev
docker run --name mongodb -v beatsaverdev:/data/db -d -p 27017:27017 mongo

Attempt to setup server
Copy beatsaver-reloaded/.env.example to beatsaver-reloaded/server/.env and fill it out.

Attempt to run the server by running node . in the powershell window that is in the beatsaver-reloaded/server directory.
From here I'm stuck. Even if I set CACHE_DRIVER=none in the .env file, when I run the server it says:

PS D:\megalon-github\beatsaver-reloaded\server> node .
[6/11/2019] [6:29:42 AM] » ‼  warning   JWT Secret does not meet security recommendations!
[6/11/2019] [6:29:42 AM] » ‼  warning   Route caching is disabled! This is not recommended for production.
[6/11/2019] [6:29:42 AM] » ‼  warning   Enabling local CDN... Do not use this in production!
[6/11/2019] [6:29:42 AM] » ‼  warning   Running in development environment!
[6/11/2019] [6:29:42 AM] » i  info      Connected to MongoDB Instance
[6/11/2019] [6:29:43 AM] » ×  error     Failed to connect to Ratelimit KV Store

Then the server exits.

Run Client
Running the client seems to work just fine.
In the powershell window for the client directory, run yarn dev to start the typescript compiler and also serve the webpage locally. I see this in the console

PS D:\megalon-github\beatsaver-reloaded\client> yarn dev
yarn run v1.15.2
$ parcel ./src/index.html
Server running at http://localhost:1234
√  Built in 2.43s.

And visiting that URL shows the BeatSaver webpage as expected.

API server not handling www subdomain in requests

Platform

This bug report concerns: (select all that apply)

  • Client
  • Server

Details

API server gives below error if request contains the www subdomain:

404 Site www.beatsaver.com is not served on this interface

Reproducing the Problem

Links in this format will work:

http://beatsaver.com/api/download/key/32e

Links with the www will fail:

http://www.beatsaver.com/api/download/key/32e

Further Detail

image

CORS Header inconsistently missing from CDN downloads

Platform

This bug report concerns: (select all that apply)

  • Client
  • Server

Details

When using the API to download a map from another webpage (https://skystudioapps.com/bs-viewer/?id=1051 for example), occasionally the access-control-allow-origin header will be missing from the response to the cdn request, causing a CORS violation.

Reproducing the Problem

I am not entirely sure how to reliably reproduce this issue, since it seems rather inconsistent.

I do however notice that the access-control-allow-origin header will not appear on a cdn response unless the request contains an origin header:

$ curl -s -H "Origin: http://example.com" -I https://beatsaver.com/cdn/1049/04d68717bfa11d8031ba470d760090a814602596.zip | grep allow-origin
access-control-allow-origin: *
$ curl -s -I https://beatsaver.com/cdn/1049/04d68717bfa11d8031ba470d760090a814602596.zip | grep allow-origin
$

Possibly there is some issue with cloudflare caching going on here?
The prudent thing to do would be to simply always supply access-control-allow-origin: * header on API/CDN responses.

Further Detail

If I can reproduce this again I will update the issue with a HAR from chrome.

Unable to verify account

Platform

This bug report concerns: (select all that apply)

  • Client
  • Server

Details

When I sign up for an account, the account verification email never comes through. As a result, I'm unable to upload new tracks.

Reproducing the Problem

  1. Create a new account using a gmail address.
  2. The verification email never arrives.
  3. https://beatsaver.com/user/upload says "You must verify your account before you can upload beatmaps. Check your email for a verification URL."

Further Detail

I checked my spam folder and it's been over a week. Still no verification.

Need CORS on API endpoints (/api/maps/detail/{key}) and on CDN images.

Platform

This feature request concerns: (select all that apply)

  • Client
  • Server

Details

Please describe the requested feature in as much detail as possible:
Note if your feature request is related to a problem.

Similar to ZIP CORS, but for detail endpoint + images for BeatSaver Viewer.

Preferred Solution

Write a clear and concise description of what you want to happen:

Enable CORS for detail API endpoint (and maybe on most of them), and on the cover images.

Thumbnail Size Cover Art

Platform

This feature request concerns:

  • [x ] Client
  • [x ] Server

Details

Some songs are uploaded with cover art that is 3+MB in size which is overkill for a program that displays them in thumbnail size. It would save on bandwidth if a smaller sized version was available.

Preferred Solution

Have a smaller, thumbnail size cover art generated when beatmaps are uploaded and list the link alongside the full-size cover art in the API.

Beatmap zip edits

  • API
  • Web UI

When uploading a new version, stats are cloned to the new version and the old version is linked to the new one.

New API result keys

Say a map 123 is updated, map 124 would look like

{
  "previous": "123",
  "next": null,
  "latest": null
}

and 123 would then look like

{
  "previous": null,
  "next": "124",
  "latest": "124"
}

Reset password

This feature request concerns: (select all that apply)

  • Client
  • Server

Details

We need a reset password button.

Preferred Solution

I want a button so I can reset my password.

Remove infinite scroll, or change the way scroll position is handled

Platform

This feature request concerns: (select all that apply)

  • Client
  • Server

Details

Please describe the requested feature in as much detail as possible:
Whenever you click on a link in a list of maps, it takes you to the details page for that map. When you then go back to the list, it returns you to the top of the list instead of your scroll position.

No matter if you are viewing the "Latest" list, looking at a particular users' uploads, or looking at search results, as soon as you click on a link you have completely lost your scroll position and have to scroll back to it if you want to pick up where you left off.

There are no download buttons when you are viewing a list, so you have to view the details to download a map, or read the description.

Middle click also does not open the link in a new window, so there is no way to get around this.

Preferred Solution

Pagination seems like the best solution here. You can simply return to the previous page you were looking at, similar to how BeatSaver used to work.

Also, being able to middle click and open a window in a new tab is always helpful.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.