rename fluxer-reaper to server shuttle

This commit is contained in:
rambros 2026-03-01 15:16:07 +05:30
parent f33a860d5e
commit 9bf4b89e00
10 changed files with 59 additions and 59 deletions

View file

@ -13,17 +13,17 @@ jobs:
os: [ubuntu-latest, windows-latest, macos-latest] os: [ubuntu-latest, windows-latest, macos-latest]
include: include:
- os: ubuntu-latest - os: ubuntu-latest
artifact_name: fluxer-reaper-linux artifact_name: server-shuttle-linux
asset_name: fluxer-reaper-linux.zip asset_name: server-shuttle-linux.zip
executable_path: dist/fluxer-reaper executable_path: dist/server-shuttle
- os: windows-latest - os: windows-latest
artifact_name: fluxer-reaper-windows artifact_name: server-shuttle-windows
asset_name: fluxer-reaper-windows.zip asset_name: server-shuttle-windows.zip
executable_path: dist/fluxer-reaper.exe executable_path: dist/server-shuttle.exe
- os: macos-latest - os: macos-latest
artifact_name: fluxer-reaper-macos artifact_name: server-shuttle-macos
asset_name: fluxer-reaper-macos.zip asset_name: server-shuttle-macos.zip
executable_path: dist/fluxer-reaper executable_path: dist/server-shuttle
steps: steps:
- name: Checkout code - name: Checkout code
@ -45,27 +45,27 @@ jobs:
shell: python shell: python
run: | run: |
from PIL import Image from PIL import Image
img = Image.open('fluxer-reaper-icon.png') img = Image.open('server-shuttle-icon.png')
img.save('fluxer-reaper-icon.ico', format='ICO', sizes=[(256, 256)]) img.save('server-shuttle-icon.ico', format='ICO', sizes=[(256, 256)])
- name: Build with PyInstaller - name: Build with PyInstaller
run: | run: |
echo "Listing directory contents:" echo "Listing directory contents:"
ls -R || dir /s ls -R || dir /s
pyinstaller fluxer-reaper.spec pyinstaller server-shuttle.spec
- name: Prepare Release Asset (Linux/MacOS) - name: Prepare Release Asset (Linux/MacOS)
if: matrix.os == 'ubuntu-latest' || matrix.os == 'macos-latest' if: matrix.os == 'ubuntu-latest' || matrix.os == 'macos-latest'
run: | run: |
cp ${{ matrix.executable_path }} fluxer-reaper cp ${{ matrix.executable_path }} server-shuttle
chmod +x fluxer-reaper chmod +x server-shuttle
zip ${{ matrix.asset_name }} fluxer-reaper zip ${{ matrix.asset_name }} server-shuttle
- name: Prepare Release Asset (Windows) - name: Prepare Release Asset (Windows)
if: matrix.os == 'windows-latest' if: matrix.os == 'windows-latest'
run: | run: |
copy ${{ matrix.executable_path }} fluxer-reaper.exe copy ${{ matrix.executable_path }} server-shuttle.exe
powershell Compress-Archive -Path "fluxer-reaper.exe" -DestinationPath "${{ matrix.asset_name }}" powershell Compress-Archive -Path "server-shuttle.exe" -DestinationPath "${{ matrix.asset_name }}"
- name: Upload Artifact - name: Upload Artifact
uses: actions/upload-artifact@v4 uses: actions/upload-artifact@v4
@ -88,8 +88,8 @@ jobs:
uses: softprops/action-gh-release@v2 uses: softprops/action-gh-release@v2
with: with:
files: | files: |
artifacts/fluxer-reaper-linux/fluxer-reaper-linux.zip artifacts/server-shuttle-linux/server-shuttle-linux.zip
artifacts/fluxer-reaper-windows/fluxer-reaper-windows.zip artifacts/server-shuttle-windows/server-shuttle-windows.zip
artifacts/fluxer-reaper-macos/fluxer-reaper-macos.zip artifacts/server-shuttle-macos/server-shuttle-macos.zip
env: env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}

View file

@ -1,6 +1,6 @@
# Fluxer Reaper # Server Shuttle
Fluxer Reaper is a simple tool to help you move an entire Discord server over to a Fluxer community. It handles channels, roles, emojis, and even your message history. Server Shuttle is a simple tool to help you move an entire Discord server over to a Fluxer community. It handles channels, roles, emojis, and even your message history.
>Join our [**Reaper Community**](https://fluxer.gg/9KxDP8WH) if you need help or have any questions. >Join our [**Reaper Community**](https://fluxer.gg/9KxDP8WH) if you need help or have any questions.
@ -62,21 +62,21 @@ The Discord bot has **read-only access** to the Discord server. Hence **no chang
#### Setup the bots as per this [guide](BOT-SETUP.md) #### Setup the bots as per this [guide](BOT-SETUP.md)
### Option 1: Using Pre-built Binaries (Easiest) ### Option 1: Using Pre-built Binaries (Easiest)
1. **Download**: Download the latest executable from the [Releases](https://github.com/rambros3d/fluxer-reaper/releases) page & unzip it. 1. **Download**: Download the latest executable from the [Releases](https://github.com/rambros3d/server-shuttle/releases) page & unzip it.
2. **Run**: Simply run the downloaded file to start the tool. No Python installation is required. 2. **Run**: Simply run the downloaded file to start the tool. No Python installation is required.
- **Linux**: Run the **fluxer-reaper** file (or `./fluxer-reaper` in terminal). - **Linux**: Run the **server-shuttle** file (or `./server-shuttle` in terminal).
- **Windows**: Run the **fluxer-reaper.exe** file. - **Windows**: Run the **server-shuttle.exe** file.
### Option 2: Running from Source ### Option 2: Running from Source
1. **Clone**: Clone the repository to your local machine: 1. **Clone**: Clone the repository to your local machine:
```bash ```bash
git clone https://github.com/rambros3d/fluxer-reaper.git git clone https://github.com/rambros3d/server-shuttle.git
cd fluxer-reaper cd server-shuttle
``` ```
2. **Launch**: Run the appropriate launcher script for your OS. It will automatically create a virtual environment and install dependencies: 2. **Launch**: Run the appropriate launcher script for your OS. It will automatically create a virtual environment and install dependencies:
- **Linux**: `./launch-reaper-LINUX.sh` - **Linux**: `./launch-shuttle-LINUX.sh`
- **MacOS**: `./launch-reaper-MAC.sh` - **MacOS**: `./launch-shuttle-MAC.sh`
- **Windows**: Double-click `launch-reaper-WIN.bat` - **Windows**: Double-click `launch-shuttle-WIN.bat`
--- ---
@ -112,7 +112,7 @@ But now their own website states that **Persona** will be used in some countries
--- ---
### Documentation ### Documentation
Detailed info about the code can be found at https://deepwiki.com/rambros3d/fluxer-reaper Detailed info about the code can be found at https://deepwiki.com/rambros3d/server-shuttle
### Vibe Code Notice ### Vibe Code Notice

View file

@ -3,7 +3,7 @@
# Exit on error # Exit on error
set -e set -e
echo "--- Fluxer Reaper Cross-Distro Build Script ---" echo "--- Server Shuttle Cross-Distro Build Script ---"
echo "NOTE: For maximum compatibility (glibc), run this on your oldest target Linux distribution." echo "NOTE: For maximum compatibility (glibc), run this on your oldest target Linux distribution."
# Check for venv # Check for venv
@ -38,32 +38,32 @@ echo "Cleaning previous build artifacts..."
rm -rf build/ dist/ rm -rf build/ dist/
echo "Starting PyInstaller build..." echo "Starting PyInstaller build..."
pyinstaller --clean fluxer-reaper.spec pyinstaller --clean server-shuttle.spec
echo "Generating Launch-Reaper.sh launcher..." echo "Generating Launch-Shuttle.sh launcher..."
cat << 'EOF' > dist/Launch-Reaper.sh cat << 'EOF' > dist/Launch-Shuttle.sh
#!/bin/bash #!/bin/bash
# Convenient launcher for Fluxer Reaper # Convenient launcher for Server Shuttle
# Ensures it runs in a terminal if possible, but the binary also has internal auto-terminal logic. # Ensures it runs in a terminal if possible, but the binary also has internal auto-terminal logic.
BASEDIR=$(dirname "$0") BASEDIR=$(dirname "$0")
cd "$BASEDIR" cd "$BASEDIR"
if [ -f "./fluxer-reaper" ]; then if [ -f "./server-shuttle" ]; then
./fluxer-reaper ./server-shuttle
else else
echo "Error: fluxer-reaper binary not found in $(pwd)" echo "Error: server-shuttle binary not found in $(pwd)"
read -p "Press enter to exit..." read -p "Press enter to exit..."
fi fi
EOF EOF
chmod +x dist/Launch-Reaper.sh chmod +x dist/Launch-Shuttle.sh
echo "Packaging release: fluxer-reaper-linux.zip..." echo "Packaging release: server-shuttle-linux.zip..."
cp config.example.yaml dist/ cp config.example.yaml dist/
cd dist cd dist
if command -v zip >/dev/null 2>&1; then if command -v zip >/dev/null 2>&1; then
zip -q fluxer-reaper-linux.zip fluxer-reaper Launch-Reaper.sh config.example.yaml zip -q server-shuttle-linux.zip server-shuttle Launch-Shuttle.sh config.example.yaml
echo "Package created: dist/fluxer-reaper-linux.zip" echo "Package created: dist/server-shuttle-linux.zip"
else else
echo "Warning: 'zip' command not found. Skipping zip creation." echo "Warning: 'zip' command not found. Skipping zip creation."
echo "Files available in dist/ directory." echo "Files available in dist/ directory."
@ -72,7 +72,7 @@ cd ..
echo "-----------------------------------" echo "-----------------------------------"
echo "Build complete!" echo "Build complete!"
echo "Standalone executable: dist/fluxer-reaper" echo "Standalone executable: dist/server-shuttle"
echo "Launcher script: dist/Launch-Reaper.sh" echo "Launcher script: dist/Launch-Shuttle.sh"
echo "Release Package: dist/fluxer-reaper-linux.zip" echo "Release Package: dist/server-shuttle-linux.zip"
echo "---" echo "---"

View file

Before

Width:  |  Height:  |  Size: 492 KiB

After

Width:  |  Height:  |  Size: 492 KiB

View file

@ -30,5 +30,5 @@ else
fi fi
# Run the application # Run the application
python3 fluxer-reaper.py "$@" python3 server-shuttle.py "$@"

View file

@ -31,4 +31,4 @@ else
fi fi
# Run the application # Run the application
python3 fluxer-reaper.py "$@" python3 server-shuttle.py "$@"

View file

@ -29,7 +29,7 @@ if not exist "%DIR%venv" (
) )
:: Run the application :: Run the application
python fluxer-reaper.py %* python server-shuttle.py %*
if %ERRORLEVEL% neq 0 ( if %ERRORLEVEL% neq 0 (
echo. echo.

View file

Before

Width:  |  Height:  |  Size: 233 KiB

After

Width:  |  Height:  |  Size: 233 KiB

View file

@ -95,13 +95,13 @@ def relaunch_in_terminal():
# Check if we have a TTY on stdin or stdout, or if already relaunched # Check if we have a TTY on stdin or stdout, or if already relaunched
is_tty = sys.stdin.isatty() or sys.stdout.isatty() is_tty = sys.stdin.isatty() or sys.stdout.isatty()
if is_tty or os.environ.get("FLUXER_REAPER_RELAUNCHED"): if is_tty or os.environ.get("SERVER_SHUTTLE_RELAUNCHED"):
return return
# Diagnostic logging to help debug why it fails on some distros # Diagnostic logging to help debug why it fails on some distros
debug_log = "/tmp/reaper_terminal_debug.log" debug_log = "/tmp/shuttle_terminal_debug.log"
with open(debug_log, "a") as f: with open(debug_log, "a") as f:
f.write(f"Relaunching... isatty={is_tty}, env={os.environ.get('FLUXER_REAPER_RELAUNCHED')}\n") f.write(f"Relaunching... isatty={is_tty}, env={os.environ.get('SERVER_SHUTTLE_RELAUNCHED')}\n")
# List of terminals to try with their specific execution flags # List of terminals to try with their specific execution flags
terminals = [ terminals = [
@ -129,7 +129,7 @@ def relaunch_in_terminal():
# Set env var to prevent loops # Set env var to prevent loops
env = os.environ.copy() env = os.environ.copy()
env["FLUXER_REAPER_RELAUNCHED"] = "1" env["SERVER_SHUTTLE_RELAUNCHED"] = "1"
for term, cmd_args in terminals: for term, cmd_args in terminals:
if shutil.which(term): if shutil.which(term):

View file

@ -13,15 +13,15 @@ hiddenimports += collect_submodules('rich._unicode_data')
# Determine the best icon to use # Determine the best icon to use
icon_file = None icon_file = None
if os.path.exists('fluxer-reaper-icon.ico'): if os.path.exists('server-shuttle-icon.ico'):
icon_file = 'fluxer-reaper-icon.ico' icon_file = 'server-shuttle-icon.ico'
elif os.path.exists('fluxer-reaper-icon.png'): elif os.path.exists('server-shuttle-icon.png'):
icon_file = 'fluxer-reaper-icon.png' icon_file = 'server-shuttle-icon.png'
print(f"DEBUG: Selected icon_file = {icon_file}") print(f"DEBUG: Selected icon_file = {icon_file}")
a = Analysis( a = Analysis(
['fluxer-reaper.py'], ['server-shuttle.py'],
pathex=[], pathex=[],
binaries=[], binaries=[],
datas=[], datas=[],
@ -42,7 +42,7 @@ exe = EXE(
a.zipfiles, a.zipfiles,
a.datas, a.datas,
[], [],
name='fluxer-reaper', name='server-shuttle',
debug=False, debug=False,
bootloader_ignore_signals=False, bootloader_ignore_signals=False,
strip=False, strip=False,