Skip to content

brand-it/reelix

Repository files navigation

publish

Recommended IDE Setup

Read Before Using

I know your not going to read any of the things below so here is the download link.

Now that you have download the file, here is what you need to know to make this tool work.

Using MakeMKV for DVD Ripping

This tool relies on MakeMKV to handle the DVD ripping and convert your discs into MKV files. Unfortunately, MakeMKV is not free forever — you’ll need to purchase a license to unlock full functionality. I know, it’s a bit of a bummer, especially since the goal here is to make ripping your movie collection for Plex as smooth and cost-free as possible.

At some point, I plan to stop bundling the MakeMKV binaries with this package. When that happens, you’ll be responsible for managing the MKV ripping process on your own. For now, if you want to take full advantage of the built-in ripping feature, go ahead and download MakeMKV and register it.

👉 You can buy and register MakeMKV here:

https://www.makemkv.com/buy/

By registering it using their official process, the binaries used by this tool will be properly activated. Once that’s done, you shouldn’t need to open MakeMKV again unless you want to.

Really There is nothing better out there I could find then MakeMKV. The process to get lossless conversion of your movie data this is the best. It is a lot of money to buy but I will leave that up to you to decided if you think it is worth it. In the end this tool will have more feature out side of simply ripping movies for Plex. So you might end up not using it for the Ripping your collection. Might end up using it to manage your Plex Library. I don't know we will see.

Development

  1. asdf install
  2. cd src-tauri && cargo tauri build (run after code changes to ensure the Rust side still compiles)

Code Quality Requirements

After making code changes, you must run the following quality checks before committing:

cargo check --manifest-path src-tauri/Cargo.toml
cargo test --manifest-path src-tauri/Cargo.toml
cargo clippy --manifest-path src-tauri/Cargo.toml

These commands catch compilation errors, run tests, and check for code quality issues. Address any warnings or errors before proceeding.

Cross-Platform Checks

Note: Cross-platform compilation from Linux to macOS/Windows requires specialized toolchains that are complex to set up. Instead, rely on GitHub Actions CI/CD (see the build badge above) which tests on native runners for each platform.

If you have access to native macOS/Windows machines, you can check for specific targets:

# Check for macOS (Intel) - requires macOS
cargo check --manifest-path src-tauri/Cargo.toml --target x86_64-apple-darwin

# Check for macOS (Apple Silicon) - requires macOS
cargo check --manifest-path src-tauri/Cargo.toml --target aarch64-apple-darwin

# Check for Windows - requires Windows
cargo check --manifest-path src-tauri/Cargo.toml --target x86_64-pc-windows-msvc

# List installed targets
rustup target list --installed

# Install a new target if needed (on the appropriate OS)
rustup target add x86_64-apple-darwin
rustup target add aarch64-apple-darwin
rustup target add x86_64-pc-windows-msvc

The CI/CD pipeline will automatically test all platforms when you push changes or create a pull request.

Upgrade

Commands to upgrade packages and dependencies

npm outdated
npm upgrade
cargo update --manifest-path src-tauri/Cargo.toml

Bumping the Version

When releasing a new version, update the version number in all 3 locations:

# 1. Update package.json
# Change "version": "0.31.0" to "version": "0.32.0"

# 2. Update src-tauri/Cargo.toml
# Change version = "0.31.0" to version = "0.32.0"

# 3. Update src-tauri/tauri.conf.json
# Change "version": "0.31.0" to "version": "0.32.0"

All three files must have matching version numbers for builds to work correctly across all platforms (macOS, Linux, Windows).

Once the version is changed run the full sweet of checks and build command cargo tauri dev

Using Node

npm run tauri dev

Using Cargo

cargo install tauri-cli --version "^2.0.0" --locked
cargo tauri dev --config src-tauri/tauri.dev.conf.json

Linux Packages

sudo apt install \
  build-essential \
  libglib2.0-dev \
  libcairo2-dev \
  libgdk-pixbuf2.0-dev \
  libatk1.0-dev \
  libgtk-3-dev \
  libsoup-3.0-dev \
  pkg-config \
  libssl-dev \
  libwebkit2gtk-4.1-dev \
  curl \
  wget \
  libappindicator3-dev

Found this helps with development on linux

env WEBKIT_DISABLE_DMABUF_RENDERER=1 WEBKIT_DISABLE_COMPOSITING_MODE=1 cargo tauri
 dev --config src-tauri/tauri.linux.dev.conf.json

Build / Deployment

  1. asdf install

Using Node

npm run tauri build -- --bundles dmg`

Debug Build Image

npm run tauri build -- --bundles dmg --debug

Add new Cargo Package

cargo tauri add tara
cargo add tera --manifest-path src-tauri/Cargo.toml

Develpment Problems Issues & Solutions

Problem

cargo tauri dev --config src-tauri/tauri.dev.conf.json
No version is set for command cargo-tauri
Consider adding one of the following versions in yor config file at /Users/brandit/apps/reelix/.tool-versions
rust 1.83.0

Solution

cargo install tauri-cli --locked --version "^2"

AutoComplete

There is a titles.txt file that has all the possible auto complete for movies. I used SQLlite to pre process the data and then just copy the text into the file. Removed the follow characters ":, and double spaces. Just clean it up, updating this file ever so often is a good idea but even if we don't it has so much info it can general provide good suggestions for most movies except for new movies. It some times suggest things that don't exist but that is fine. recommend download new movies from the internet as I find them.

Macro Debugging

Good luck, askama makes micro debugging a pain so best solution I found is delete a single line rerun the thing and just keep checking. This is the worst way to do it but it will get you a answer eventually.

error[E0599]: the method `askama_auto_escape` exists for reference `&&AutoEscaper<'_, Option<u32>, Html>`, but its trait bounds were not satisfied
   --> src/templates/seasons.rs:16:10
    |
16  | #[derive(Template)]
    |          ^^^^^^^^ method cannot be called on `&&AutoEscaper<'_, Option<u32>,

About

A Tool To help Convert you Movies into a Plex File Format from DVD/Bluerays

Resources

Security policy

Stars

Watchers

Forks

Packages

 
 
 

Contributors