diff --git a/.env.install b/.env.install index 059f502..9f907ae 100644 --- a/.env.install +++ b/.env.install @@ -1,8 +1,8 @@ export TRANSMISSION_REMOTE=true -export TRANSMISSION_HOST="myserver.example.com" +export TRANSMISSION_HOST="192.168.5.19" export TRANSMISSION_PORT="9091" -export TRANSMISSION_USER="username" -export TRANSMISSION_PASS="password" +export TRANSMISSION_USER="" +export TRANSMISSION_PASS="" export TRANSMISSION_RPC_PATH="/transmission/rpc" -export REMOTE_DOWNLOAD_DIR="/var/lib/transmission-daemon/downloads" -export LOCAL_DOWNLOAD_DIR="/mnt/downloads" +export REMOTE_DOWNLOAD_DIR="/downloads" +export LOCAL_DOWNLOAD_DIR="/media" diff --git a/main-installer.sh b/main-installer.sh index a23cf57..5b8f9c7 100755 --- a/main-installer.sh +++ b/main-installer.sh @@ -296,6 +296,13 @@ EOF exit 1 } + # Copy JavaScript module files during update as well + log "INFO" "Copying JavaScript module files..." + copy_module_files || { + log "ERROR" "Failed to copy JavaScript module files" + exit 1 + } + else # This is a fresh installation - run all steps @@ -359,6 +366,7 @@ else log "INFO" "Creating directories..." # Make sure CONFIG_DIR is set and exported export CONFIG_DIR=${CONFIG_DIR:-"/etc/transmission-rss-manager"} + # Call our new create_directories function create_directories || { log "ERROR" "Directory creation failed" exit 1 diff --git a/modules/file-creator-module.sh b/modules/file-creator-module.sh index 7f66238..f89285c 100644 --- a/modules/file-creator-module.sh +++ b/modules/file-creator-module.sh @@ -1,6 +1,40 @@ #!/bin/bash # File creator module for Transmission RSS Manager Installation +function create_directories() { + echo -e "${YELLOW}Creating directories...${NC}" + + # Create main installation directory + mkdir -p "$INSTALL_DIR" + log "INFO" "Created installation directory: $INSTALL_DIR" + + # Create modules directory + mkdir -p "$INSTALL_DIR/modules" + log "INFO" "Created modules directory: $INSTALL_DIR/modules" + + # Create data directory + mkdir -p "$INSTALL_DIR/data" + log "INFO" "Created data directory: $INSTALL_DIR/data" + + # Create public directory structure + mkdir -p "$INSTALL_DIR/public/css" + mkdir -p "$INSTALL_DIR/public/js" + log "INFO" "Created public directories" + + # Create config directory + mkdir -p "$CONFIG_DIR" + log "INFO" "Created config directory: $CONFIG_DIR" + + # Create logs directory + mkdir -p "$INSTALL_DIR/logs" + log "INFO" "Created logs directory: $INSTALL_DIR/logs" + + # Set permissions + chown -R "$USER:$USER" "$INSTALL_DIR" + chmod -R 755 "$INSTALL_DIR" + log "INFO" "Set permissions for installation directories" +} + function create_config_files() { echo -e "${YELLOW}Creating configuration files...${NC}" @@ -1771,4 +1805,29 @@ EOF } echo "Configuration files created." + + # Copy all JavaScript modules to the installation directory + echo "Copying JavaScript module files..." + copy_module_files +} + +# Function to copy all JavaScript module files to the installation directory +function copy_module_files() { + # Create the modules directory if it doesn't exist + mkdir -p "$INSTALL_DIR/modules" + + # Copy all JavaScript module files from the source directory + for js_file in "${SCRIPT_DIR}/modules/"*.js; do + if [ -f "$js_file" ]; then + module_name=$(basename "$js_file") + echo "Copying module: $module_name" + cp "$js_file" "$INSTALL_DIR/modules/$module_name" + + # Set permissions + chown "$USER:$USER" "$INSTALL_DIR/modules/$module_name" + chmod 644 "$INSTALL_DIR/modules/$module_name" + fi + done + + log "INFO" "Copied JavaScript modules to $INSTALL_DIR/modules/" } \ No newline at end of file diff --git a/server.js b/server.js index 2c44d02..f11caf8 100644 --- a/server.js +++ b/server.js @@ -15,9 +15,41 @@ const jwt = require('jsonwebtoken'); const bcrypt = require('bcrypt'); // Import custom modules -const RssFeedManager = require('./modules/rss-feed-manager.js'); -const TransmissionClient = require('./modules/transmission-client.js'); -const PostProcessor = require('./modules/post-processor.js'); +// Try to import with .js extension first, then fallback to no extension for better compatibility +let RssFeedManager, TransmissionClient, PostProcessor; + +try { + RssFeedManager = require('./modules/rss-feed-manager.js'); +} catch (e) { + try { + RssFeedManager = require('./modules/rss-feed-manager'); + } catch (err) { + console.error('Failed to load RssFeedManager module:', err); + process.exit(1); + } +} + +try { + TransmissionClient = require('./modules/transmission-client.js'); +} catch (e) { + try { + TransmissionClient = require('./modules/transmission-client'); + } catch (err) { + console.error('Failed to load TransmissionClient module:', err); + process.exit(1); + } +} + +try { + PostProcessor = require('./modules/post-processor.js'); +} catch (e) { + try { + PostProcessor = require('./modules/post-processor'); + } catch (err) { + console.error('Failed to load PostProcessor module:', err); + process.exit(1); + } +} // Constants and configuration const DEFAULT_CONFIG_PATH = '/etc/transmission-rss-manager/config.json';