installer and systemd service added
This commit is contained in:
parent
8c23deb13b
commit
976f806397
5
.gitignore
vendored
5
.gitignore
vendored
@ -6,4 +6,7 @@ session.txt
|
|||||||
socks5.txt
|
socks5.txt
|
||||||
venv/
|
venv/
|
||||||
plugins/__pycache__/
|
plugins/__pycache__/
|
||||||
simplematrixbotlib/
|
simplematrixbotlib*/
|
||||||
|
chromedriver
|
||||||
|
store
|
||||||
|
funguybot.service
|
||||||
|
@ -1,17 +1,17 @@
|
|||||||
From 4aa5b913f75e32f6ed06fc6e691daa856824b26a Mon Sep 17 00:00:00 2001
|
From 7b3421cf893ef8ea36978ae1343f7c8d5d353412 Mon Sep 17 00:00:00 2001
|
||||||
From: Hash Borgir <atirjavid@gmail.com>
|
From: Hash Borgir <atirjavid@gmail.com>
|
||||||
Date: Mon, 12 Feb 2024 19:12:05 -0700
|
Date: Tue, 13 Feb 2024 15:48:35 -0700
|
||||||
Subject: [PATCH] Fixed stability issue in api.py
|
Subject: [PATCH] api.py patch
|
||||||
|
|
||||||
---
|
---
|
||||||
simplematrixbotlib/api.py | 2 ++
|
simplematrixbotlib/api.py | 2 ++
|
||||||
1 file changed, 2 insertions(+)
|
1 file changed, 2 insertions(+)
|
||||||
|
|
||||||
diff --git a/simplematrixbotlib/api.py b/simplematrixbotlib/api.py
|
diff --git a/simplematrixbotlib/api.py b/simplematrixbotlib/api.py
|
||||||
index 1d87b3d..13a78cf 100644
|
index 6d51b38..3af7e7e 100644
|
||||||
--- a/simplematrixbotlib/api.py
|
--- a/simplematrixbotlib/api.py
|
||||||
+++ b/simplematrixbotlib/api.py
|
+++ b/simplematrixbotlib/api.py
|
||||||
@@ -295,6 +295,7 @@ class Api:
|
@@ -347,6 +347,7 @@ class Api:
|
||||||
pass # Successful upload
|
pass # Successful upload
|
||||||
else:
|
else:
|
||||||
print(f"Failed Upload Response: {resp}")
|
print(f"Failed Upload Response: {resp}")
|
||||||
@ -19,7 +19,7 @@ index 1d87b3d..13a78cf 100644
|
|||||||
|
|
||||||
content = {
|
content = {
|
||||||
"body": os.path.basename(image_filepath),
|
"body": os.path.basename(image_filepath),
|
||||||
@@ -342,6 +343,7 @@ class Api:
|
@@ -394,6 +395,7 @@ class Api:
|
||||||
pass # Successful upload
|
pass # Successful upload
|
||||||
else:
|
else:
|
||||||
print(f"Failed Upload Response: {resp}")
|
print(f"Failed Upload Response: {resp}")
|
145
install-funguy.sh
Executable file
145
install-funguy.sh
Executable file
@ -0,0 +1,145 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
# Function to handle errors
|
||||||
|
handle_error() {
|
||||||
|
echo "Error: $1"
|
||||||
|
exit 1
|
||||||
|
}
|
||||||
|
|
||||||
|
# Function to handle sudo errors
|
||||||
|
handle_sudo_error() {
|
||||||
|
echo -e "\e[31mError: Failed to execute sudo command: $1\e[0m"
|
||||||
|
exit 1
|
||||||
|
}
|
||||||
|
|
||||||
|
# Function to execute sudo commands with error handling
|
||||||
|
sudo_execute() {
|
||||||
|
echo -e "\e[31m$ sudo $@\e[0m"
|
||||||
|
sudo "$@" || handle_sudo_error "$*"
|
||||||
|
}
|
||||||
|
|
||||||
|
# Function to create .env file with provided content
|
||||||
|
create_env() {
|
||||||
|
echo -e "MATRIX_URL = \"$1\"\nMATRIX_USER = \"$2\"\nMATRIX_PASS = \"$3\"" > .env || handle_error "Failed to create .env file"
|
||||||
|
}
|
||||||
|
|
||||||
|
# Function to prompt user for input
|
||||||
|
prompt_user() {
|
||||||
|
read -p "$1: " input
|
||||||
|
echo "$input"
|
||||||
|
}
|
||||||
|
|
||||||
|
# Store current directory
|
||||||
|
current_dir=$(pwd)
|
||||||
|
|
||||||
|
# Setup python virtual environment
|
||||||
|
python3 -m venv venv
|
||||||
|
source venv/bin/activate
|
||||||
|
|
||||||
|
# Check if simplematrixbotlib directory already exists
|
||||||
|
if [ -d "simplematrixbotlib" ] && [ "$(ls -A simplematrixbotlib)" ]; then
|
||||||
|
echo "simplematrixbotlib directory already exists."
|
||||||
|
else
|
||||||
|
# Clone the simplematrixbotlib repository
|
||||||
|
git clone https://codeberg.org/imbev/simplematrixbotlib.git || handle_error "Failed to clone simplematrixbotlib repository"
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Copy the patch file to the simplematrixbotlib directory
|
||||||
|
cp api.py.patch "$current_dir/simplematrixbotlib/" || handle_error "Failed to copy patch file"
|
||||||
|
|
||||||
|
# Change directory to simplematrixbotlib
|
||||||
|
cd "$current_dir/simplematrixbotlib/" || handle_error "Failed to change directory to simplematrixbotlib"
|
||||||
|
|
||||||
|
# Apply the patch
|
||||||
|
git apply api.py.patch || handle_error "Failed to apply patch"
|
||||||
|
|
||||||
|
# Install simplematrixbotlib
|
||||||
|
pip install . || handle_error "Failed to install simplematrixbotlib"
|
||||||
|
|
||||||
|
# Change back to the original directory
|
||||||
|
cd "$current_dir"
|
||||||
|
|
||||||
|
# Install requirements
|
||||||
|
pip install -r requirements.txt || handle_error "Failed to install requirements"
|
||||||
|
|
||||||
|
# Prompt for Matrix homeserver
|
||||||
|
read -p "Do you want to use the default homeserver https://matrix.org? (Y/n): " use_default_hs
|
||||||
|
if [[ $use_default_hs =~ ^[Nn]$ ]]; then
|
||||||
|
homeserver=$(prompt_user "Enter Matrix homeserver URL (e.g., example.com): ")
|
||||||
|
homeserver="https://$homeserver"
|
||||||
|
else
|
||||||
|
homeserver="https://matrix.org"
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Prompt for username
|
||||||
|
username=$(prompt_user "Enter Matrix username: ")
|
||||||
|
|
||||||
|
# Prompt for password
|
||||||
|
password=$(prompt_user "Enter Matrix password: ")
|
||||||
|
|
||||||
|
# Create .env file
|
||||||
|
create_env "$homeserver" "$username" "$password"
|
||||||
|
|
||||||
|
# Print ASCII art
|
||||||
|
cat << "EOF"
|
||||||
|
_____ ____ _
|
||||||
|
| ___| _ _ __ __ _ _ _ _ _ | __ ) ___ | |_
|
||||||
|
| |_ | | | | '_ \ / _\` | | | | | | | | _ \ / _ \| __|
|
||||||
|
| _|| |_| | | | | (_| | |_| | |_| | | |_) | (_) | |_
|
||||||
|
|_| \__,_|_| |_|\__, |\__,_|\__, | |____/ \___/ \__|
|
||||||
|
|___/ |___/
|
||||||
|
By HB (@hashborgir@mozilla.org)
|
||||||
|
--------------------------------------------------------
|
||||||
|
EOF
|
||||||
|
|
||||||
|
# Echo setup completion message
|
||||||
|
echo "Setting up funguy bot..."
|
||||||
|
echo "Setting up systemd service..."
|
||||||
|
|
||||||
|
working_directory=$current_dir
|
||||||
|
|
||||||
|
# Prompt for user and group
|
||||||
|
user=$(prompt_user "Enter user")
|
||||||
|
same_group=$(prompt_user "Is group same as user? (Y/n): ")
|
||||||
|
if [[ $same_group =~ ^[Yy]$ ]]; then
|
||||||
|
group=$user
|
||||||
|
else
|
||||||
|
group=$(prompt_user "Enter group")
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Create systemd service file
|
||||||
|
cat <<EOF > funguybot.service
|
||||||
|
[Unit]
|
||||||
|
Description=Funguy Bot Service
|
||||||
|
After=network.target
|
||||||
|
|
||||||
|
[Service]
|
||||||
|
Type=simple
|
||||||
|
User=$user
|
||||||
|
Group=$group
|
||||||
|
WorkingDirectory=$working_directory
|
||||||
|
ExecStart=$working_directory/start-funguy.sh
|
||||||
|
Restart=on-failure
|
||||||
|
StandardOutput=syslog
|
||||||
|
StandardError=syslog
|
||||||
|
SyslogIdentifier=funguybot
|
||||||
|
|
||||||
|
[Install]
|
||||||
|
WantedBy=multi-user.target
|
||||||
|
EOF
|
||||||
|
|
||||||
|
# Copy systemd service file
|
||||||
|
sudo_execute cp funguybot.service /etc/systemd/system/ || handle_sudo_error "Failed to copy systemd service file"
|
||||||
|
|
||||||
|
# Enable and start the service
|
||||||
|
sudo_execute systemctl daemon-reload || handle_sudo_error "Failed to reload systemd daemon"
|
||||||
|
sudo_execute systemctl enable funguybot || handle_sudo_error "Failed to enable funguybot service"
|
||||||
|
sudo_execute systemctl start funguybot || handle_sudo_error "Failed to start funguybot service"
|
||||||
|
|
||||||
|
echo "Funguy bot has been successfully installed and the service has been enabled."
|
||||||
|
echo "Before starting the service, make sure to edit the .env file and add your bot account's homeserver URL, username, and password."
|
||||||
|
echo ""
|
||||||
|
echo "Once done, start the service by running the following command:"
|
||||||
|
echo ""
|
||||||
|
echo ""
|
||||||
|
echo "sudo systemctl start funguybot"
|
45
install.sh
45
install.sh
@ -1,45 +0,0 @@
|
|||||||
#!/bin/bash
|
|
||||||
|
|
||||||
# Store current directory
|
|
||||||
current_dir=$(pwd)
|
|
||||||
|
|
||||||
# Load venv
|
|
||||||
source venv/bin/activate
|
|
||||||
|
|
||||||
# Clone the simplematrixbotlib repository
|
|
||||||
git clone https://codeberg.org/imbev/simplematrixbotlib.git
|
|
||||||
|
|
||||||
# Change directory to simplematrixbotlib
|
|
||||||
cd $current_dir/simplematrixbotlib/
|
|
||||||
|
|
||||||
# Install simplematrixbotlib
|
|
||||||
pip install .
|
|
||||||
|
|
||||||
# Change back to the original directory
|
|
||||||
cd $current_dir
|
|
||||||
|
|
||||||
# Install requirements
|
|
||||||
pip install -r requirements.txt
|
|
||||||
|
|
||||||
# Create .env file with required content
|
|
||||||
echo -e "MATRIX_URL = \"https://matrix.org\"\nMATRIX_USER = \"\"\nMATRIX_PASS = \"\"" > .env
|
|
||||||
|
|
||||||
# Print ASCII art
|
|
||||||
echo " _____ ____ _ "
|
|
||||||
echo "| ___| _ _ __ __ _ _ _ _ _ | __ ) ___ | |_ "
|
|
||||||
echo "| |_ | | | | '_ \ / _\` | | | | | | | | _ \ / _ \| __| "
|
|
||||||
echo "| _|| |_| | | | | (_| | |_| | |_| | | |_) | (_) | |_ "
|
|
||||||
echo "|_| \__,_|_| |_|\__, |\__,_|\__, | |____/ \___/ \__| "
|
|
||||||
echo " |___/ |___/ "
|
|
||||||
|
|
||||||
# Echo setup completion message
|
|
||||||
echo "Bot setup completed."
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
# Prompt user to modify funguy.py to set ADMIN_USER
|
|
||||||
echo "Modify .env file and set your credentials and homeserver"
|
|
||||||
echo "Please open funguy.py and set the ADMIN_USER variable to your admin username."
|
|
||||||
|
|
||||||
# Launch the bot
|
|
||||||
echo "Launch the bot with 'python funguy.py'"
|
|
@ -2,3 +2,4 @@ python-dotenv
|
|||||||
requests
|
requests
|
||||||
pytube
|
pytube
|
||||||
duckduckgo_search
|
duckduckgo_search
|
||||||
|
nio
|
||||||
|
17
start-funguy.sh
Executable file
17
start-funguy.sh
Executable file
@ -0,0 +1,17 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
# Function to handle errors
|
||||||
|
handle_error() {
|
||||||
|
echo "Error: $1"
|
||||||
|
exit 1
|
||||||
|
}
|
||||||
|
|
||||||
|
# Load Python virtual environment
|
||||||
|
source venv/bin/activate || { echo "Error: Failed to load Python virtual environment."; exit 1; }
|
||||||
|
|
||||||
|
# Get python path
|
||||||
|
python=$(which python)
|
||||||
|
|
||||||
|
# Run funguy.py
|
||||||
|
$python funguy.py || { echo "Error: Failed to execute funguy.py."; exit 1; }
|
||||||
|
|
Loading…
Reference in New Issue
Block a user