51 lines
1.5 KiB
Python
51 lines
1.5 KiB
Python
|
import sys
|
||
|
import argparse
|
||
|
import time
|
||
|
from discord_webhook import DiscordWebhook
|
||
|
from requests.exceptions import Timeout
|
||
|
|
||
|
|
||
|
def send_discord_webhook(
|
||
|
webhook_url, message, max_retries=3, retry_delay=5, ignore_errors=False
|
||
|
):
|
||
|
for attempt in range(max_retries):
|
||
|
try:
|
||
|
webhook = DiscordWebhook(url=webhook_url, content=message)
|
||
|
webhook.execute()
|
||
|
print("Webhook message sent successfully.")
|
||
|
sys.exit(0)
|
||
|
except Timeout as e:
|
||
|
print(f"Error sending webhook message: {e}")
|
||
|
if attempt < max_retries - 1:
|
||
|
print(f"Retrying in {retry_delay} seconds...")
|
||
|
time.sleep(retry_delay)
|
||
|
elif ignore_errors:
|
||
|
print("Ignoring errors. Exiting with success.")
|
||
|
sys.exit(0)
|
||
|
else:
|
||
|
print("Max retries reached. Exiting with failure.")
|
||
|
sys.exit(1)
|
||
|
|
||
|
|
||
|
def main():
|
||
|
parser = argparse.ArgumentParser(description="Send messages to Discord webhooks.")
|
||
|
|
||
|
parser.add_argument("webhook_url", help="Discord webhook URL")
|
||
|
parser.add_argument("message", help="Message to send")
|
||
|
parser.add_argument(
|
||
|
"-i",
|
||
|
"--ignore-errors",
|
||
|
action="store_true",
|
||
|
help="Ignore errors and exit with success",
|
||
|
)
|
||
|
|
||
|
args = parser.parse_args()
|
||
|
|
||
|
send_discord_webhook(
|
||
|
args.webhook_url, args.message, ignore_errors=args.ignore_errors
|
||
|
)
|
||
|
|
||
|
|
||
|
if __name__ == "__main__":
|
||
|
main()
|