Giter Club home page Giter Club logo

beatconnect_client's Introduction

Beatconnect client license CircleCI

The official client for Beatconnect which is a mirror for Osu! Beatmaps

Table of contents:

Quick Tour

  • This App gives you access to all the beatmaps mirrored on Beatconnect. You can downloads multiple beatmaps that will be automaticaly imported into osu!

  • You can launch an IRC bot from the app that will make all available commands usable to peoples pming you and from all the matches chats that the bot is connected to. (how to connect docs soon..)
    Comming with the autobeat feature that send the Beatconnect download link in the #multuplayer channel each time host change the beatmap

Technology

Documentation

Available ressources:

Development

These instructions will get you a copy of the project up and running on your local machine.

Prerequisites

  • NodeJs v14 or higher and yarn

Installing for development

Note: Before running beatconnect yourself you will need a .env file and a Beatconnect token.

# Clone this repository
git clone https://github.com/yadPe/beatconnect_client.git

# Go into the repository
cd beatconnect_client

# Install dependencies
yarn

# Start the dev server and launch the app
yarn dev

# (if you're running WSL you will have to start electron from within Windows with "yarn electron-dev")

Building for production

Given node 14 or superiour and yarn are installed

You can run yarn dist: followed by one of win, linux or mac. It will build beatconnect for x64 platform only by default but if prefixed by -ia32 builder will also output x86 version. Build artifacts will by located inside the dist folder

Note: Before building beatconnect yourself you will need a .env file and a Beatconnect token.

Example

# Build beatconnect as nsis-web installer for Windows x64
yarn dist:win

# Build beatconnect as dmg and mac for OSX x64
yarn dist:mac

# Build beatconnect as AppImage and deb for linux x64 and x86
yarn dist:linux --ia32

Env file

The .env file must be located at the root of the project

BEATCONNECT_CLIENT_TOKEN=your-beatconnect-token
BEATCONNECT_HOST_URL=https://beatconnect.io/
BEATCONNECT_CLIENT_GA_TRACKING_ID=ga-tracking-id
BEATCONNECT_CLIENT_API_KEY_V1=osu-api-key
BEATCONNECT_CLIENT_DISCORD_APP_ID=discord-app-id

Release

  1. Create a branch named vX.X.X from latest master branch
  2. Manually bump the version in package.json
  3. Run yarn changelog
  4. Commit and push
  5. Open a pull request
  6. Once the pull request is merged publish a new release on Github
  7. A workflow should have been created and needs to be approved by an admin before run
  8. Once the worflow is approved it will build the binaries artifacts for macos, windows and linux then it will upload them to the release you created
  9. Voila! Users will now receive the new release via the auto update system

Download test

  • Latest release available here

License

This project is licensed under the GNU V3.0 License.

beatconnect_client's People

Contributors

dependabot-preview[bot] avatar dependabot[bot] avatar gumatan avatar katsukumi avatar yadpe 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

Watchers

 avatar  avatar  avatar

beatconnect_client's Issues

Smart autobeat

Send beatmap link to #multiplayer channel only if one of the players doesn't have the map

Download queue randomly block

Download queue randomly block on a beatmap with no posibility to remove that beatmap from it, until it resume by itself ๐Ÿคทโ€โ™€๏ธ

  • can be caused by the server taking time to respond or simply not responding

Disable legacy beatmaps scan method

  • Fully replace the legacy beatmaps scan method with the new one redingosu!.db file

  • Scan beatmaps on app start

  • Move osu! path select to settings 'general' section

switch to custom download manager to handle files beatmaps

https://github.com/sindresorhus/electron-dl
Or a custom solution that can handle

  • Large queue
  • Auto Retry
  • Parallel download (if relevant)

Progress status

  • Set download save location according to user preference

  • Handle errors to display readable error messages to user

  • Calculate download speed

  • Give user feedback about download issues and retry

  • Let user bump one item to top of the queue

  • Import strategy hot switch

  • #109

  • Beatmap downloader

  • Queue system

  • Auto retry

  • Offline detection

  • Auto skip

  • Downloads are now managed from main trhead instead of renderer

  • Integration with our Task system

  • Integration with our beatmap db system

  • Interfacing with renderer thread via IPC

Daily map download

Make a feature that can download all map of the previous day every day.

The endpoint will be /api/daily
Parameters will be like "mode=std/taiko/mania/ctb"
The response body will be formatted like that :
{"beatmaps": [<some maps formatted as usual>] }

Settings should be always saving

If you change some settings, then you close the client without leaving the settings section, settings are backwarded to his previous state.
In my opinion, settings should be always updated and saved on any changes if you are not able to save it manually with a "Save" button.

Auto sync beatmap

Add an option to enable auto sync with osu!db on startup of the app

TasksControl component

image

  • the gray background expend based on the content size inside the tooltip
  • text inside the tooltip disappear with a little delay after stopping hovering it

Beatmaps collections sharing system

Let user create custom beatmap collection from his game beatmap library and/or the beatconnect catalog. And provide a way to share it with other, either via a link beatconnect://{packId} or a file

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.