v1.0 it works. Gonna add it to crontab and see if anything blows up

This commit is contained in:
wes
2024-03-18 18:15:46 -04:00
parent e5ec68e219
commit 9634bedb9b
+48
View File
@@ -0,0 +1,48 @@
# Poopballs
import json, re, requests, subprocess
WEBHOOK_URL = 'https://script.google.com/macros/s/AKfycbwgDA3qkwtRSR437gv0yGwvaIL19H3WcvtzX0eXV0D_MfOQtqrpy9-uJ1a6uF3gUIaxKw/exec'
PATTERN = r'\s+(?P<temp>\d+)\s+(?P<powerOnDays>\d+)\s+(?P<errCount>\d+)\s+(?P<fp>\d+)%\s+(?P<capacity>\d+.\d+)\s+(?P<serial>[A-Z\d]+)\s+(?P<device>[a-z/]+)\s+(?P<snapraidID>[a-z\d-]+)'
FIELD_NAMES = ['temp', 'powerOnDays', 'errCount', 'fp', 'capacity', 'serial', 'device', 'snapraidID']
results = []
def run_snapraid_smart():
try:
# Run the command "snapraid smart" using subprocess.run()
completed_process = subprocess.run(["snapraid", "smart"], capture_output=True, text=True, check=True)
# Check if the command was successful
if completed_process.returncode == 0:
return completed_process.stdout.strip()#.split('\n')[5:]
else:
return "Error executing SnapRAID SMART command."
except subprocess.CalledProcessError as e:
return "Error executing SnapRAID SMART command: " + str(e)
# Call the function to run the SnapRAID SMART command and get the output
snapraid_smart_output = run_snapraid_smart()
matches = re.finditer(PATTERN, snapraid_smart_output)
for match in matches:
row = {
FIELD_NAMES[0]: match.group(FIELD_NAMES[0]),
FIELD_NAMES[1]: match.group(FIELD_NAMES[1]),
FIELD_NAMES[2]: match.group(FIELD_NAMES[2]),
FIELD_NAMES[3]: match.group(FIELD_NAMES[3]),
FIELD_NAMES[4]: match.group(FIELD_NAMES[4]),
FIELD_NAMES[5]: match.group(FIELD_NAMES[5]),
FIELD_NAMES[6]: match.group(FIELD_NAMES[6]),
FIELD_NAMES[7]: match.group(FIELD_NAMES[7])
}
results.append(row)
json_payload = json.dumps(results)
response = requests.post(WEBHOOK_URL, json=json_payload)
# Check if the request was successful (status code 200)
if response.status_code == 200:
print("POST request successful.", response.text)
else:
print("POST request failed:", response.status_code)