Improve txt report for ntfy, mainly for mobile

This commit is contained in:
Joshua
2022-07-21 17:00:46 +10:00
parent 7e6c53f7b8
commit 70b6ccc523
3 changed files with 27 additions and 35 deletions

View File

@@ -8,7 +8,7 @@ ENV USER=pi USER_ID=1000 USER_GID=1000 TZ=Europe/London PORT=20211
RUN apt-get update \
&& apt-get install --no-install-recommends ca-certificates curl libwww-perl arp-scan perl apt-utils cron sudo lighttpd php php-cgi php-fpm php-sqlite3 sqlite3 dnsutils net-tools python iproute2 nmap python-pip -y \
&& pip install requests prettytable \
&& pip install requests \
&& apt-get clean autoclean \
&& apt-get autoremove \
&& rm -rf /var/lib/apt/lists/* \

View File

@@ -28,7 +28,6 @@ import io
import smtplib
import csv
import requests
from prettytable import PrettyTable
#===============================================================================
# CONFIG CONSTANTS
@@ -1201,7 +1200,6 @@ def skip_repeated_notifications ():
def email_reporting ():
global mail_text
global mail_html
# Reporting section
print ('\nReporting...')
openDB()
@@ -1248,7 +1246,7 @@ def email_reporting ():
mail_section_Internet = False
mail_text_Internet = ''
mail_html_Internet = ''
text_line_template = ' {} \t{}\t{}\t{}\n'
text_line_template = '{}\t{}\n{}\t{}\n{}\t{}\n{}\t{}\n\n'
html_line_template = '<tr>\n'+ \
' <td> <a href="{}{}"> {} </a> </td>\n <td> {} </td>\n'+ \
' <td style="font-size: 24px; color:#D02020"> {} </td>\n'+ \
@@ -1258,16 +1256,18 @@ def email_reporting ():
WHERE eve_PendingAlertEmail = 1 AND eve_MAC = 'Internet'
ORDER BY eve_DateTime""")
for eventAlert in sql :
mail_section_Internet = True
mail_text_Internet += text_line_template.format (
eventAlert['eve_EventType'], eventAlert['eve_DateTime'],
eventAlert['eve_IP'], eventAlert['eve_AdditionalInfo'])
'Event:', eventAlert['eve_EventType'], 'Time:', eventAlert['eve_DateTime'],
'IP:', eventAlert['eve_IP'], 'More Info:', eventAlert['eve_AdditionalInfo'])
mail_html_Internet += html_line_template.format (
REPORT_DEVICE_URL, eventAlert['eve_MAC'],
eventAlert['eve_EventType'], eventAlert['eve_DateTime'],
eventAlert['eve_IP'], eventAlert['eve_AdditionalInfo'])
format_report_section (mail_section_Internet, 'SECTION_INTERNET',
'TABLE_INTERNET', mail_text_Internet, mail_html_Internet)
@@ -1275,7 +1275,7 @@ def email_reporting ():
mail_section_new_devices = False
mail_text_new_devices = ''
mail_html_new_devices = ''
text_line_template = ' {}\t{}\t{}\t{}\t{}\n'
text_line_template = '{}\t{}\n\t{}\t{}\n\t{}\t{}\n\t{}\t{}\n\t{}\t{}\n\n'
html_line_template = '<tr>\n'+ \
' <td> <a href="{}{}"> {} </a> </td>\n <td> {} </td>\n'+\
' <td> {} </td>\n <td> {} </td>\n <td> {} </td>\n</tr>\n'
@@ -1284,21 +1284,17 @@ def email_reporting ():
WHERE eve_PendingAlertEmail = 1
AND eve_EventType = 'New Device'
ORDER BY eve_DateTime""")
mail_text_table = PrettyTable()
mail_text_table.field_names = ["MAC", "Time", "IP", "Name", "Additional Info"]
for eventAlert in sql :
mail_section_new_devices = True
mail_text_new_devices += text_line_template.format (
eventAlert['eve_MAC'], eventAlert['eve_DateTime'],
eventAlert['eve_IP'], eventAlert['dev_Name'],
eventAlert['eve_AdditionalInfo'])
'Name:', eventAlert['dev_Name'], 'MAC:', eventAlert['eve_MAC'], 'IP:', eventAlert['eve_IP'],
'Time:', eventAlert['eve_DateTime'], 'More Info:', eventAlert['eve_AdditionalInfo'])
mail_html_new_devices += html_line_template.format (
REPORT_DEVICE_URL, eventAlert['eve_MAC'], eventAlert['eve_MAC'],
eventAlert['eve_DateTime'], eventAlert['eve_IP'],
eventAlert['dev_Name'], eventAlert['eve_AdditionalInfo'])
mail_text_table.add_row([eventAlert['eve_MAC'], eventAlert['eve_DateTime'], eventAlert['eve_IP'], eventAlert['dev_Name'],eventAlert['eve_AdditionalInfo']])
mail_text_new_devices = mail_text_table
format_report_section (mail_section_new_devices, 'SECTION_NEW_DEVICES',
'TABLE_NEW_DEVICES', mail_text_new_devices, mail_html_new_devices)
@@ -1306,7 +1302,7 @@ def email_reporting ():
mail_section_devices_down = False
mail_text_devices_down = ''
mail_html_devices_down = ''
text_line_template = ' {}\t{}\t{}\t{}\n'
text_line_template = '{}\t{}\n\t{}\t{}\n\t{}\t{}\n\t{}\t{}\n\n'
html_line_template = '<tr>\n'+ \
' <td> <a href="{}{}"> {} </a> </td>\n <td> {} </td>\n'+ \
' <td> {} </td>\n <td> {} </td>\n</tr>\n'
@@ -1319,8 +1315,8 @@ def email_reporting ():
for eventAlert in sql :
mail_section_devices_down = True
mail_text_devices_down += text_line_template.format (
eventAlert['eve_MAC'], eventAlert['eve_DateTime'],
eventAlert['eve_IP'], eventAlert['dev_Name'])
'Name:', eventAlert['dev_Name'], 'MAC:', eventAlert['eve_MAC'],
'Time:', eventAlert['eve_DateTime'],'IP:', eventAlert['eve_IP'])
mail_html_devices_down += html_line_template.format (
REPORT_DEVICE_URL, eventAlert['eve_MAC'], eventAlert['eve_MAC'],
eventAlert['eve_DateTime'], eventAlert['eve_IP'],
@@ -1333,7 +1329,7 @@ def email_reporting ():
mail_section_events = False
mail_text_events = ''
mail_html_events = ''
text_line_template = ' {}\t{}\t{}\t{}\t{}\t{}\n'
text_line_template = '{}\t{}\n\t{}\t{}\n\t{}\t{}\n\t{}\t{}\n\t{}\t{}\n\t{}\t{}\n\n'
html_line_template = '<tr>\n <td>'+ \
' <a href="{}{}"> {} </a> </td>\n <td> {} </td>\n'+ \
' <td> {} </td>\n <td> {} </td>\n <td> {} </td>\n'+ \
@@ -1348,9 +1344,9 @@ def email_reporting ():
for eventAlert in sql :
mail_section_events = True
mail_text_events += text_line_template.format (
eventAlert['eve_MAC'], eventAlert['eve_DateTime'],
eventAlert['eve_IP'], eventAlert['eve_EventType'],
eventAlert['dev_Name'], eventAlert['eve_AdditionalInfo'])
'Name:', eventAlert['dev_Name'], 'MAC:', eventAlert['eve_MAC'],
'IP:', eventAlert['eve_IP'],'Time:', eventAlert['eve_DateTime'],
'Event:', eventAlert['eve_EventType'],'More Info:', eventAlert['eve_AdditionalInfo'])
mail_html_events += html_line_template.format (
REPORT_DEVICE_URL, eventAlert['eve_MAC'], eventAlert['eve_MAC'],
eventAlert['eve_DateTime'], eventAlert['eve_IP'],

View File

@@ -1,27 +1,23 @@
========================================
Pi.Alert Report
========================================
Report Date: <REPORT_DATE>
Scan Cycle: <SCAN_CYCLE>
Server: <SERVER_NAME>
Report Date: <REPORT_DATE>
Scan Cycle: <SCAN_CYCLE>
Server: <SERVER_NAME>
<SECTION_INTERNET>
Internet
----------------------------------------------------------------------
---------------------
<TABLE_INTERNET>
</SECTION_INTERNET><SECTION_NEW_DEVICES>
New Devices
----------------------------------------------------------------------
---------------------
<TABLE_NEW_DEVICES>
</SECTION_NEW_DEVICES><SECTION_DEVICES_DOWN>
Devices Down
----------------------------------------------------------------------
---------------------
<TABLE_DEVICES_DOWN>
</SECTION_DEVICES_DOWN><SECTION_EVENTS>
Events
----------------------------------------------------------------------
---------------------
<TABLE_EVENTS>
</SECTION_EVENTS>
----------------------------------------------------------------------
(?) <PIALERT_YEAR> Puche Pi.Alert <PIALERT_VERSION> (<PIALERT_VERSION_DATE>) GNU GPLv3
---------------------
<PIALERT_YEAR> Puche - Pi.Alert <PIALERT_VERSION> - GNU GPLv3