#!/bin/bash echo "===============================================" echo " EBoek.info Scraper - Installation and Setup" echo "===============================================" echo # Function to check if command exists command_exists() { command -v "$1" >/dev/null 2>&1 } # Check operating system OS="$(uname -s)" case "${OS}" in Linux*) MACHINE=Linux;; Darwin*) MACHINE=Mac;; *) MACHINE="UNKNOWN:${OS}" esac echo "Operating System: $MACHINE" # Check if Python is installed if command_exists python3; then PYTHON_CMD="python3" elif command_exists python; then PYTHON_VERSION=$(python --version 2>&1 | grep -oP '\d+\.\d+') if [[ ${PYTHON_VERSION%.*} -ge 3 ]]; then PYTHON_CMD="python" else echo "ERROR: Python 3 is required. Found Python $PYTHON_VERSION" PYTHON_CMD="" fi else PYTHON_CMD="" fi if [ -z "$PYTHON_CMD" ]; then echo "Python 3 is not installed." echo if [ "$MACHINE" = "Mac" ]; then echo "To install Python on macOS:" echo "1. Install Homebrew: /bin/bash -c \"\$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)\"" echo "2. Install Python: brew install python" echo " OR download from: https://www.python.org/downloads/" elif [ "$MACHINE" = "Linux" ]; then echo "To install Python on Linux:" echo "Ubuntu/Debian: sudo apt update && sudo apt install python3 python3-pip" echo "CentOS/RHEL: sudo yum install python3 python3-pip" echo "Fedora: sudo dnf install python3 python3-pip" fi echo echo "After installing Python, run this script again." exit 1 fi echo "Python found: $($PYTHON_CMD --version)" # Check if pip is available if ! $PYTHON_CMD -m pip --version >/dev/null 2>&1; then echo "pip is not available. Installing pip..." if [ "$MACHINE" = "Mac" ]; then curl https://bootstrap.pypa.io/get-pip.py -o get-pip.py $PYTHON_CMD get-pip.py rm get-pip.py elif [ "$MACHINE" = "Linux" ]; then echo "Please install pip using your package manager:" echo "Ubuntu/Debian: sudo apt install python3-pip" echo "CentOS/RHEL: sudo yum install python3-pip" exit 1 fi fi # Check if GUI is already set up if [ -f "../gui_main.py" ]; then echo "GUI application already set up." echo else echo echo "Installing required packages..." echo "===============================================" # Upgrade pip first $PYTHON_CMD -m pip install --upgrade pip # Install requirements if ! $PYTHON_CMD -m pip install -r requirements.txt; then echo echo "ERROR: Failed to install requirements." echo "Please check your internet connection and try again." echo "You may need to install additional system dependencies." if [ "$MACHINE" = "Mac" ]; then echo echo "On macOS, you might need to install Xcode command line tools:" echo "xcode-select --install" elif [ "$MACHINE" = "Linux" ]; then echo echo "On Linux, you might need additional packages:" echo "Ubuntu/Debian: sudo apt install python3-dev python3-tk" echo "CentOS/RHEL: sudo yum install python3-devel tkinter" fi exit 1 fi echo echo "Requirements installed successfully!" echo "Setting up GUI application..." fi # Check for Chrome browser if [ "$MACHINE" = "Mac" ]; then if [ ! -d "/Applications/Google Chrome.app" ]; then echo echo "WARNING: Google Chrome not found." echo "Please install Chrome from: https://www.google.com/chrome/" echo "The scraper requires Chrome to function." fi elif [ "$MACHINE" = "Linux" ]; then if ! command_exists google-chrome && ! command_exists chromium-browser; then echo echo "WARNING: Chrome/Chromium not found." echo "Please install Chrome or Chromium:" echo "Ubuntu/Debian: sudo apt install chromium-browser" echo "Or download Chrome from: https://www.google.com/chrome/" fi fi echo echo "===============================================" echo "Installation complete!" echo "===============================================" # Run the GUI application if [ -f "../gui_main.py" ]; then echo "Starting EBoek.info Scraper GUI..." echo if ! $PYTHON_CMD ../gui_main.py; then echo echo "GUI failed to start. You can still use the terminal version:" echo "$PYTHON_CMD main.py" echo fi else echo "GUI version not found. Running terminal version..." echo if [ -f "main.py" ]; then $PYTHON_CMD main.py else echo "Error: No scraper found. Please check installation." exit 1 fi fi echo echo "Application closed." echo "Press Enter to exit..." read