updated the template to include the data from the logs

main
vitrinekast 8 months ago
parent aff952fa5f
commit 2f14bd2dfa

@ -0,0 +1,331 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=Edge">
<meta name="viewport"
content="width=device-width, initial-scale=1, maximum-scale=1, minimum-scale=1, user-scalable=no, viewport-fit=cover">
<meta name="format-detection" content="telephone=no">
<meta name="apple-mobile-web-app-capable" content="yes">
<meta name="apple-mobile-web-app-status-bar-style" content="black">
<link rel="apple-touch-icon" sizes="180x180" href="">
<meta name="author" content="">
<meta name="description" content="">
<meta name="keywords" content="">
<meta property="og:type" content="">
<meta property="og:title" content="">
<meta property="og:image" content="">
<meta property="og:description" content="">
<meta property="og:url" content="">
<title>Document</title>
<link rel="stylesheet" href="style.css">
</head>
<body>
<header>
<h1>TL;DR</h1>
<h2>too log didn't read</h2>
</header>
<nav class="slider slider--top">
<label for="time">time</label>
<input type="range" min="0" max="100" id="time">
</nav>
<nav class="slider slider--left">
<label for="annotation">annotations</label>
<input class="vertical" type="range" value="0" min="0" max="400" id="annotation">
</nav>
<main>
<div class="main__background">
<div class="main__background--radius"></div>
</div>
<article>
<h2>What happened today?</h2>
<pre>last_user_added</pre>
<p>Feb 29 15:08:48 chopchop useradd[8744]: new user: name=colord, UID=118, GID=130, home=/var/lib/colord, shell=/usr/sbin/nologin, from=/dev/pts/4
<span class="annotation fn-annotatation" level="1">
A level 1 annotation for last_user_added
</span>
<pre>users_created_today</pre>
<p>-- No entries --
<span class="annotation fn-annotatation" level="1">
A level 1 annotation for users_created_today
</span>
<pre>list_active_services</pre>
<p> [ - ] alsa-utils
[ - ] apparmor
[ + ] atop
[ + ] atopacct
[ + ] bluetooth
[ - ] console-setup.sh
[ + ] cron
[ + ] cups
[ - ] cups-browsed
[ + ] dbus
[ + ] dphys-swapfile
[ + ] exim4
[ + ] fake-hwclock
[ - ] fcgiwrap
[ - ] hwclock.sh
[ + ] incron
[ - ] keyboard-setup.sh
[ + ] kmod
[ + ] networking
[ - ] nfs-common
[ + ] nginx
[ - ] paxctld
[ - ] php7.4-fpm
[ + ] php8.2-fpm
[ + ] procps
[ - ] pulseaudio-enable-autospawn
[ + ] raspi-config
[ + ] rng-tools-debian
[ - ] rpcbind
[ - ] rsync
[ - ] saned
[ + ] ssh
[ - ] sudo
[ + ] triggerhappy
[ + ] udev
[ - ] uuidd
[ - ] x11-common
<span class="annotation fn-annotatation" level="1">
A level 1 annotation for list_active_services
</span>
<pre>list_groups</pre>
<p>root:x:0:
daemon:x:1:
bin:x:2:
sys:x:3:
adm:x:4:xpub
tty:x:5:
disk:x:6:
lp:x:7:aleevadh,bernabereit,lorenzo,mania,mszw,mxrwho,river,senak,thijsoid,v,vitrinekast,wang,xpub,xpub,zerozeta,zz1,www-data
mail:x:8:
news:x:9:
uucp:x:10:
man:x:12:
proxy:x:13:
kmem:x:15:
dialout:x:20:xpub,mb,river,joak,aleevadh,bernabereit,lorenzo,mania,mszw,mxrwho,river,senak,thijsoid,v,vitrinekast,wang,xpub,zerozeta,zz1,murtaugh,mb
fax:x:21:
voice:x:22:
cdrom:x:24:xpub
floppy:x:25:
tape:x:26:
sudo:x:27:joak,aleevadh,bernabereit,lorenzo,mania,mszw,mxrwho,river,senak,thijsoid,v,vitrinekast,wang,xpub,zerozeta,zz1,murtaugh,mb,strt,cristina,chipchip,killer
audio:x:29:xpub,river,pulse,vitrinekast,liquidsoap
dip:x:30:
www-data:x:33:vitrinekast
backup:x:34:
operator:x:37:
list:x:38:
irc:x:39:
src:x:40:
gnats:x:41:
shadow:x:42:
utmp:x:43:
video:x:44:xpub
sasl:x:45:
plugdev:x:46:xpub
staff:x:50:
games:x:60:xpub
users:x:100:xpub,murtaugh,aleevadh,h4ck3r,mania,mszw,mxrwho,senak,v,wang,zerozeta,bernabereit,lorenzo,mb,river,thijsoid,vitrinekast,zz1,joak,cristina,strt,chipchip,killer
nogroup:x:65534:
systemd-journal:x:101:
systemd-network:x:102:
systemd-resolve:x:103:
input:x:104:xpub
kvm:x:105:
render:x:106:xpub
crontab:x:107:
netdev:x:108:xpub
systemd-timesync:x:109:
messagebus:x:110:
bluetooth:x:112:
avahi:x:113:
spi:x:999:xpub
i2c:x:998:xpub
gpio:x:997:xpub
systemd-coredump:x:996:
xpub:x:1000:
vitrinekast:x:1001:
senak:x:1002:
lorenzo:x:1003:
mxrwho:x:1004:
bernabereit:x:1005:
river:x:1006:
v:x:1007:
mania:x:1008:
aleevadh:x:1009:
h4ck3r:x:1010:
thijsoid:x:1011:
mszw:x:1012:
zerozeta:x:1013:
wang:x:1014:
zz1:x:1015:
Debian-exim:x:114:
rtkit:x:115:
murtaugh:x:1017:
mb:x:1016:
pulse:x:116:
pulse-access:x:117:
mlocate:x:118:
uuidd:x:119:
joak:x:1018:
sgx:x:120:
plocate:x:121:
polkitd:x:995:
_ssh:x:111:
pipewire:x:122:
cristina:x:1019:
strt:x:1020:
incron:x:123:
chipchip:x:1021:
killer:x:1022:
tcpdump:x:124:
liquidsoap:x:125:
lpadmin:x:126:river,xpub
ssl-cert:x:127:
scanner:x:128:saned
saned:x:129:
colord:x:130:
<span class="annotation fn-annotatation" level="1">
A level 1 annotation for list_groups
</span>
<pre>since_last_boot</pre>
<p>2024-03-05 08:13:37
<span class="annotation fn-annotatation" level="1">
A level 1 annotation for since_last_boot
</span>
<pre>list_package_installs</pre>
<p>2024-03-10 15:16:14 install libtk8.6:armhf <none> 8.6.13-2
2024-03-10 15:16:14 status half-installed libtk8.6:armhf 8.6.13-2
2024-03-10 15:16:15 install tk8.6-blt2.5:armhf <none> 2.5.3+dfsg-4.1
2024-03-10 15:16:15 status half-installed tk8.6-blt2.5:armhf 2.5.3+dfsg-4.1
2024-03-10 15:16:15 install blt:armhf <none> 2.5.3+dfsg-4.1
2024-03-10 15:16:15 status half-installed blt:armhf 2.5.3+dfsg-4.1
2024-03-10 15:16:15 install python3-tk:armhf <none> 3.11.2-3
2024-03-10 15:16:15 status half-installed python3-tk:armhf 3.11.2-3
2024-03-10 15:16:16 status installed libtk8.6:armhf 8.6.13-2
2024-03-10 15:16:16 status installed tk8.6-blt2.5:armhf 2.5.3+dfsg-4.1
2024-03-10 15:16:16 status installed blt:armhf 2.5.3+dfsg-4.1
2024-03-10 15:16:16 status installed python3-tk:armhf 3.11.2-3
2024-03-10 15:16:16 status installed libc-bin:armhf 2.36-9+rpt2+deb12u4
2024-03-12 14:29:01 install python3-markupsafe:armhf <none> 2.1.2-1
2024-03-12 14:29:01 status half-installed python3-markupsafe:armhf 2.1.2-1
2024-03-12 14:29:02 install python3-jinja2:all <none> 3.1.2-1
2024-03-12 14:29:02 status half-installed python3-jinja2:all 3.1.2-1
2024-03-12 14:29:02 status installed python3-markupsafe:armhf 2.1.2-1
2024-03-12 14:29:03 status installed python3-jinja2:all 3.1.2-1
2024-03-15 09:51:48 install libhttp-parser2.9:armhf <none> 2.9.4-5
2024-03-15 09:51:48 status half-installed libhttp-parser2.9:armhf 2.9.4-5
2024-03-15 09:51:48 install libmbedx509-1:armhf <none> 2.28.3-1
2024-03-15 09:51:48 status half-installed libmbedx509-1:armhf 2.28.3-1
2024-03-15 09:51:48 install libmbedtls14:armhf <none> 2.28.3-1
2024-03-15 09:51:48 status half-installed libmbedtls14:armhf 2.28.3-1
2024-03-15 09:51:48 install libgit2-1.5:armhf <none> 1.5.1+ds-1+deb12u1
2024-03-15 09:51:48 status half-installed libgit2-1.5:armhf 1.5.1+ds-1+deb12u1
2024-03-15 09:51:49 install bat:armhf <none> 0.22.1-4
2024-03-15 09:51:49 status half-installed bat:armhf 0.22.1-4
2024-03-15 09:51:50 status installed libmbedx509-1:armhf 2.28.3-1
2024-03-15 09:51:50 status installed libmbedtls14:armhf 2.28.3-1
2024-03-15 09:51:50 status installed libhttp-parser2.9:armhf 2.9.4-5
2024-03-15 09:51:50 status installed libgit2-1.5:armhf 1.5.1+ds-1+deb12u1
2024-03-15 09:51:50 status installed bat:armhf 0.22.1-4
2024-03-15 09:51:50 status installed libc-bin:armhf 2.36-9+rpt2+deb12u4
2024-03-15 09:55:52 status installed bat:armhf 0.22.1-4
2024-03-15 09:55:52 status half-installed bat:armhf 0.22.1-4
2024-03-15 09:55:52 status not-installed bat:armhf <none>
<span class="annotation fn-annotatation" level="1">
A level 1 annotation for list_package_installs
</span>
<pre>list_package_upgrade</pre>
<p>
<span class="annotation fn-annotatation" level="1">
A level 1 annotation for list_package_upgrade
</span>
<pre>list_package_remove</pre>
<p>2024-03-15 09:55:52 startup packages remove
2024-03-15 09:55:52 remove bat:armhf 0.22.1-4 <none>
<span class="annotation fn-annotatation" level="1">
A level 1 annotation for list_package_remove
</span>
<pre>device_info</pre>
<p>Raspberry Pi 4 Model B Rev 1.4
<span class="annotation fn-annotatation" level="1">
A level 1 annotation for device_info
</span>
<pre>debian_version</pre>
<p>12.1
<span class="annotation fn-annotatation" level="1">
A level 1 annotation for debian_version
</span>
<pre>kernel_version</pre>
<p>Linux chopchop 6.1.65-v8+ #1703 SMP PREEMPT Tue Dec 5 16:25:41 GMT 2023 aarch64 GNU/Linux
<span class="annotation fn-annotatation" level="1">
A level 1 annotation for kernel_version
</span>
</article>
</main>
<aside>
<h3>whoami: Raspberry Pi 4 Model B Rev 1.4</h3>
</aside>
<footer>
<h3> current residency 127.0.1.1
</h3>
</footer>
<script type="text/javascript" src="script.js"></script>
</body>
</html>

@ -3,28 +3,46 @@ from jinja2 import Environment, FileSystemLoader
## Getting the data ## Getting the data
import subprocess import subprocess
last_user_added = subprocess.run(["sudo", "journalctl", "--output=json-pretty","_COMM=useradd","-r","-n","1","--output-fields=MESSAGE"], capture_output=True) # last_user_added = subprocess.run(["sudo", "journalctl","_COMM=useradd","-r","-n","1","--output-fields=MESSAGE"], capture_output=True).stdout.decode('UTF-8')
users_created_today = subprocess.run(["sudo", "journalctl", "--output=json-pretty","_COMM=useradd","-r","-n","1","--output-fields=MESSAGE", "-S","yesterday"], capture_output=True) # users_created_today = subprocess.run(["sudo", "journalctl","_COMM=useradd","-r","-n","1","--output-fields=MESSAGE", "-S","yesterday"], capture_output=True).stdout.decode('UTF-8')
# list_active_services = subprocess.run(["sudo", "journalctl","_COMM=useradd","-r","-n","1","--output-fields=MESSAGE", "-S","yesterday"], capture_output=True).stdout.decode('UTF-8')
last_user_added = subprocess.run(["sudo", "journalctl","_COMM=useradd","-r","-n", "1" , "--output-fields=MESSAGE"], capture_output=True).stdout.decode('UTF-8')
# #subprocess.run(["ls", "-l"]) users_created_today = subprocess.run(["sudo", "journalctl", "-S","today","_COMM=useradd","-r","-n","1","--output-fields=MESSAGE"], capture_output=True).stdout.decode('UTF-8')
# #print(os.popen("ls -l").read()) list_active_services = subprocess.run(["sudo", "service", "--status-all"], capture_output=True).stdout.decode('UTF-8')
# uptime = subprocess.run(["uptime", "-p"], capture_output=True) list_groups = subprocess.run(["getent","group"], capture_output=True).stdout.decode('UTF-8')
# #print(thing.stdout) since_last_boot = subprocess.run(["uptime","-s"], capture_output=True).stdout.decode('UTF-8')
# last_here = subprocess.run(["last", "-s", "today"], capture_output=True) list_package_installs = subprocess.run(["grep", 'install', "/var/log/dpkg.log"], capture_output=True).stdout.decode('UTF-8')
# ## Creating the HTML list_package_upgrade = subprocess.run(["grep", 'upgrade', "/var/log/dpkg.log"], capture_output=True).stdout.decode('UTF-8')
list_package_remove = subprocess.run(["grep", 'remove', "/var/log/dpkg.log"], capture_output=True).stdout.decode('UTF-8')
# # loading the environment device_info_grab = subprocess.run(["grep", 'Model' , "/proc/cpuinfo"], check=True, capture_output=True)
env = Environment(loader = FileSystemLoader('templates')) device_info = subprocess.run(['awk', '-F:', '{ print $2}'], input=device_info_grab.stdout, capture_output=True).stdout.decode('utf-8').strip()
debian_version = subprocess.run(["cat", "/etc/debian_version"], capture_output=True).stdout.decode('UTF-8')
kernel_version = subprocess.run(["uname","-a"], capture_output=True).stdout.decode('UTF-8')
hostname = subprocess.run(["hostname","-i"], capture_output=True).stdout.decode('UTF-8')
# loading the environment
env = Environment(loader=FileSystemLoader("templates"))
# # loading the template # # loading the template
template = env.get_template('template.jinja') template = env.get_template("template.jinja")
# rendering the template and storing the resultant text in variable output # rendering the template and storing the resultant text in variable output
output = template.render(last_user_added = last_user_added.stdout, users_created_today=users_created_today.stdout) output = template.render(
last_user_added=last_user_added,
# # printing the output on screen users_created_today=users_created_today,
# print(output) list_active_services=list_active_services,
with open("output.html", 'w') as f: list_groups=list_groups,
since_last_boot=since_last_boot,
list_package_installs=list_package_installs,
list_package_upgrade=list_package_upgrade,
list_package_remove=list_package_remove,
device_info=device_info,
debian_version=debian_version,
kernel_version=kernel_version,
hostname=hostname
)
with open("output.html", "w") as f:
print(output, file=f) print(output, file=f)

@ -145,7 +145,7 @@ nav label {
overflow: hidden; overflow: hidden;
display: inline-block; display: inline-block;
clear:both; clear:both;
transition: .2s linear max-height; transition: 0.2s linear max-height;
font-family: CascadiaCode VTT, monospace; font-family: CascadiaCode VTT, monospace;
font-size: 14px; font-size: 14px;
padding: 0px 2px; padding: 0px 2px;

@ -1,15 +1,173 @@
<!DOCTYPE html> <!DOCTYPE html>
<html lang="en"> <html lang="en">
<head> <head>
<meta charset="UTF-8"> <meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0"> <meta http-equiv="X-UA-Compatible" content="IE=Edge">
<meta name="viewport"
content="width=device-width, initial-scale=1, maximum-scale=1, minimum-scale=1, user-scalable=no, viewport-fit=cover">
<meta name="format-detection" content="telephone=no">
<meta name="apple-mobile-web-app-capable" content="yes">
<meta name="apple-mobile-web-app-status-bar-style" content="black">
<link rel="apple-touch-icon" sizes="180x180" href="">
<meta name="author" content="">
<meta name="description" content="">
<meta name="keywords" content="">
<meta property="og:type" content="">
<meta property="og:title" content="">
<meta property="og:image" content="">
<meta property="og:description" content="">
<meta property="og:url" content="">
<title>Document</title> <title>Document</title>
<link rel="stylesheet" href="style.css">
</head> </head>
<body> <body>
<h1>I am a HTML page fillllllled with data, such as the {{ uptime }}</h1>
<p>Or say something about who was here?</p>
<pre>{{ users_created_today }}</pre>
<pre>{{ last_user_added }}</pre>
<header>
<h1>TL;DR</h1>
<h2>too log didn't read</h2>
</header>
<nav class="slider slider--top">
<label for="time">time</label>
<input type="range" min="0" max="100" id="time">
</nav>
<nav class="slider slider--left">
<label for="annotation">annotations</label>
<input class="vertical" type="range" value="0" min="0" max="400" id="annotation">
</nav>
<main>
<div class="main__background">
<div class="main__background--radius"></div>
</div>
<article>
<h2>What happened today?</h2>
<pre>last_user_added</pre>
<p>{{last_user_added}}
{% if last_user_added is defined %}
<span class="annotation fn-annotatation" level="1">
A level 1 annotation for last_user_added
</span>
{% else %}
(no input)
{% endif %}
<pre>users_created_today</pre>
<p>{{users_created_today}}
{% if users_created_today is defined %}
<span class="annotation fn-annotatation" level="1">
A level 1 annotation for users_created_today
</span>
{% else %}
(no input)
{% endif %}
<pre>list_active_services</pre>
<p>{{list_active_services}}
{% if list_active_services is defined %}
<span class="annotation fn-annotatation" level="1">
A level 1 annotation for list_active_services
</span>
{% else %}
(no input)
{% endif %}
<pre>list_groups</pre>
<p>{{list_groups}}
{% if list_groups is defined %}
<span class="annotation fn-annotatation" level="1">
A level 1 annotation for list_groups
</span>
{% else %}
(no input)
{% endif %}
<pre>since_last_boot</pre>
<p>{{since_last_boot}}
{% if since_last_boot is defined %}
<span class="annotation fn-annotatation" level="1">
A level 1 annotation for since_last_boot
</span>
{% else %}
(no input)
{% endif %}
<pre>list_package_installs</pre>
<p>{{list_package_installs}}
{% if list_package_installs is defined %}
<span class="annotation fn-annotatation" level="1">
A level 1 annotation for list_package_installs
</span>
{% else %}
(no input)
{% endif %}
<pre>list_package_upgrade</pre>
<p>{{list_package_upgrade}}
{% if list_package_upgrade is defined %}
<span class="annotation fn-annotatation" level="1">
A level 1 annotation for list_package_upgrade
</span>
{% else %}
(no input)
{% endif %}
<pre>list_package_remove</pre>
<p>{{list_package_remove}}
{% if list_package_remove is defined %}
<span class="annotation fn-annotatation" level="1">
A level 1 annotation for list_package_remove
</span>
{% else %}
(no input)
{% endif %}
<pre>device_info</pre>
<p>{{device_info}}
{% if device_info is defined %}
<span class="annotation fn-annotatation" level="1">
A level 1 annotation for device_info
</span>
{% else %}
(no input)
{% endif %}
<pre>debian_version</pre>
<p>{{debian_version}}
{% if debian_version is defined %}
<span class="annotation fn-annotatation" level="1">
A level 1 annotation for debian_version
</span>
{% else %}
(no input)
{% endif %}
<pre>kernel_version</pre>
<p>{{kernel_version}}
{% if kernel_version is defined %}
<span class="annotation fn-annotatation" level="1">
A level 1 annotation for kernel_version
</span>
{% else %}
(no input)
{% endif %}
</article>
</main>
<aside>
<h3>whoami: {{device_info}}</h3>
</aside>
<footer>
<h3> current residency {{hostname}}</h3>
</footer>
<script type="text/javascript" src="script.js"></script>
</body> </body>
</html> </html>
Loading…
Cancel
Save