Initial commit: Discord automation tools
This commit is contained in:
57
scripts/status_updater.py
Executable file
57
scripts/status_updater.py
Executable file
@@ -0,0 +1,57 @@
|
||||
# discord_tools/scripts/status_updater.py
|
||||
|
||||
import os
|
||||
import sys
|
||||
import time
|
||||
import datetime
|
||||
|
||||
# Add the parent directory to the Python path
|
||||
script_dir = os.path.dirname(os.path.abspath(__file__))
|
||||
project_root = os.path.dirname(os.path.dirname(script_dir))
|
||||
sys.path.insert(0, project_root)
|
||||
|
||||
from discord_tools.config.settings import DEFAULT_STATUS_UPDATE_INTERVAL
|
||||
from discord_tools.utils.api_utils import make_discord_request
|
||||
|
||||
def update_status(start_datetime):
|
||||
"""
|
||||
Update the Discord status with the time elapsed since start_datetime.
|
||||
|
||||
:param start_datetime: The datetime to calculate the elapsed time from
|
||||
:return: True if the status was updated successfully, False otherwise
|
||||
"""
|
||||
now = datetime.datetime.now()
|
||||
time_diff = now - start_datetime
|
||||
|
||||
days = time_diff.days
|
||||
hours, remainder = divmod(time_diff.seconds, 3600)
|
||||
minutes, _ = divmod(remainder, 60)
|
||||
|
||||
status_text = f"{days} days, {hours} hours, {minutes} minutes"
|
||||
|
||||
payload = {
|
||||
"custom_status": {
|
||||
"text": status_text
|
||||
}
|
||||
}
|
||||
|
||||
response = make_discord_request('PATCH', '/users/@me/settings', json=payload)
|
||||
return response is not None
|
||||
|
||||
def main():
|
||||
start_date = datetime.datetime(2024, 2, 24, 3, 43)
|
||||
update_interval = DEFAULT_STATUS_UPDATE_INTERVAL
|
||||
|
||||
print(f"Starting status updater. Press Ctrl+C to exit.")
|
||||
try:
|
||||
while True:
|
||||
if update_status(start_date):
|
||||
print(f"Status updated successfully at {datetime.datetime.now()}")
|
||||
else:
|
||||
print("Failed to update status")
|
||||
time.sleep(update_interval)
|
||||
except KeyboardInterrupt:
|
||||
print("\nStatus updater stopped.")
|
||||
|
||||
if __name__ == "__main__":
|
||||
main()
|
||||
Reference in New Issue
Block a user