glaumar / QRookie

Download and install Quest games from ROOKIE Public Mirror (like VRP Rookie Sideloader but for Linux and MacOS)
GNU General Public License v3.0
41 stars 4 forks source link

uploading #19

Open JarJarBlinkz opened 3 months ago

JarJarBlinkz commented 3 months ago

can you add a way to share the games we own with the vrp team the sharing is an integral part of keeping the group running

No donos = No VRP

glaumar commented 3 months ago

I'm sorry for the delay in adding the upload game feature. Several months ago, I promised the developer of VRP that I would add this feature, but due to some personal reasons, I haven't been able to devote much time to QRookie.

glaumar commented 3 months ago

Here, I promise again that I will add the upload game feature. I can't guarantee that it will be added very soon, but I will definitely implement this feature eventually.

victorwads commented 3 months ago

How this works?? It's secure that anyone could upload games? That person would need to create a torrent? I have a lot of questions about that.

If you could share your thoughts? @glaumar

glaumar commented 3 months ago

We need to implement the functionality of the getApkButton_Click function in rookie.

Simple description:

  1. Pull user-selected game (adb pull)
  2. Compress
  3. Upload to VRP's server

More details need to be read from the code, such as checking if the user is connected to a Quest VR device or an Android phone, and how the compressed file should be named.

Possible difficulties:

  1. Currently, the state management in QRookie is quite poor, and we may need to consider refactoring the code using Qt's state machine framework before introducing new states.
  2. Rookie uses rclone (with vrp.upload.config) to upload the compressed file. We need to use Wireshark to capture the packets and see how rclone works in order to implement the same functionality. @victorwads
frxctura commented 3 months ago

A more effective implementation approach would involve enabling QRookie to determine which packages on the connected device are either more up-to-date or missing, similar to how Rookie operates. This method is the primary source of most Rookie donations.

For reference, the following files are relevant:

The recommended functionality for QRookie should be as follows:

  1. Device Connection Check: Upon detecting a connected device, compare the packages and their versions.
  2. Package Verification: Identify if a package is missing or if an update is available compared to the current list.
  3. List Compilation: Generate a list of packages that can be donated.
  4. User Interaction: Present the list to the user and prompt for donation consent.
  5. File Retrieval: Upon user confirmation, pull the selected files from the device.
  6. Upload Process: Once the files are retrieved, initiate the upload process.

This approach ensures that QRookie efficiently facilitates the donation of game files. Relying on a single button that requires the user to manually select each package is not only inefficient but also fails to prompt immediate action.