added a broken make-a-gif functionality
This commit is contained in:
parent
a413201ff7
commit
f57dd22b64
@ -23,5 +23,7 @@
|
|||||||
<img id="latest" src="/stills/test.jpg"/>
|
<img id="latest" src="/stills/test.jpg"/>
|
||||||
|
|
||||||
<p>The full catalog of still images should be seen at <a href="/stills/">http://telescopium.local/stills/</a>.</p>
|
<p>The full catalog of still images should be seen at <a href="/stills/">http://telescopium.local/stills/</a>.</p>
|
||||||
|
|
||||||
|
<p>Telescopium's ip address is <code id="ip_address">ip addr goes here</code>.</p>
|
||||||
</body>
|
</body>
|
||||||
</html>
|
</html>
|
||||||
|
26
make_a_gif.py
Normal file
26
make_a_gif.py
Normal file
@ -0,0 +1,26 @@
|
|||||||
|
#!/bin/python3
|
||||||
|
import os
|
||||||
|
from datetime import datetime
|
||||||
|
|
||||||
|
def make_it():
|
||||||
|
#filter out and sort to get only the frames we want (noon frames from the last two weeks)
|
||||||
|
files = os.listdir("/var/www/html/stills/")
|
||||||
|
twoweeks = []
|
||||||
|
now = datetime.now()
|
||||||
|
for fi in files:
|
||||||
|
f = "/var/www/html/stills/" + fi
|
||||||
|
dt = datetime.fromtimestamp(os.stat(f).st_mtime)
|
||||||
|
if (now-dt).days < 16 and dt.hour < 13 and dt.hour > 10:
|
||||||
|
twoweeks.append(f)
|
||||||
|
frames = sorted(twoweeks, key=lambda f: os.stat(f).st_mtime)
|
||||||
|
|
||||||
|
with open("/var/www/html/framelist.txt", "w+") as framelist:
|
||||||
|
framelist.write("".join(["file '" + f + "'\n" for f in frames]))
|
||||||
|
|
||||||
|
#make the actual gif
|
||||||
|
print(f"ffmpeg -r 7 -f concat -safe 0 -i /var/www/html/framelist.txt -c copy -s 1280x720 -vcodec libx264 /var/www/html/twoweeks.mp4")
|
||||||
|
print(f"convert -delay 14 -loop 0 -dispose previous {' '.join(frames)} /var/www/html/animation.gif")
|
||||||
|
|
||||||
|
|
||||||
|
if __name__ == "__main__":
|
||||||
|
make_it()
|
@ -1,7 +1,9 @@
|
|||||||
#!/bin/python3
|
#!/bin/python3
|
||||||
import os
|
import os
|
||||||
import shutil
|
import shutil
|
||||||
|
import socket
|
||||||
from bs4 import BeautifulSoup
|
from bs4 import BeautifulSoup
|
||||||
|
from datetime import datetime
|
||||||
|
|
||||||
index_filename = "/var/www/html/index.html"
|
index_filename = "/var/www/html/index.html"
|
||||||
|
|
||||||
@ -15,6 +17,15 @@ filename = "/stills/" + os.popen("date +%+4Y-%m-%d-%Hh%Mm.jpg").read().strip()
|
|||||||
|
|
||||||
os.system("libcamera-jpeg -o /var/www/html" + filename)
|
os.system("libcamera-jpeg -o /var/www/html" + filename)
|
||||||
|
|
||||||
|
import make_a_gif
|
||||||
|
make_a_gif.make_it()
|
||||||
|
|
||||||
|
# figgure out our local ip address
|
||||||
|
s=socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
|
||||||
|
s.connect(("8.8.8.8", 80))
|
||||||
|
ip_address = s.getsockname()[0]
|
||||||
|
s.close()
|
||||||
|
|
||||||
#make sure that the index shows the latest one
|
#make sure that the index shows the latest one
|
||||||
|
|
||||||
soup = None
|
soup = None
|
||||||
@ -26,5 +37,7 @@ with open(index_filename, "r") as the_file:
|
|||||||
|
|
||||||
latest_image['src'] = filename
|
latest_image['src'] = filename
|
||||||
|
|
||||||
|
soup.find(id="ip_address").string = ip_address
|
||||||
|
|
||||||
with open(index_filename, "w") as the_file:
|
with open(index_filename, "w") as the_file:
|
||||||
the_file.write(str(soup))
|
the_file.write(str(soup))
|
||||||
|
@ -8,4 +8,4 @@ ExecStart=python /home/shoofle/telescopium/take_a_still.py
|
|||||||
User=shoofle
|
User=shoofle
|
||||||
|
|
||||||
[Install]
|
[Install]
|
||||||
WantedBy=multi-user.target
|
WantedBy = multi-user.target
|
||||||
|
7
work_log
7
work_log
@ -19,3 +19,10 @@ added a listing for autoindexing the folder /var/www/html/stills/ with location
|
|||||||
made a python script to take a picture, plus a systemd service and timer to take pictures daily! they need to be symlinked into /etc/systemd/system/
|
made a python script to take a picture, plus a systemd service and timer to take pictures daily! they need to be symlinked into /etc/systemd/system/
|
||||||
|
|
||||||
finally realized i never did `systemctl enable telescopium.timer --now` so the timer never started which is why my daily task hasn't been running. remedied.
|
finally realized i never did `systemctl enable telescopium.timer --now` so the timer never started which is why my daily task hasn't been running. remedied.
|
||||||
|
|
||||||
|
telescopium physical has been installed in its place in the rear window. also i made it so that it prints its current ip address in the webpage.
|
||||||
|
|
||||||
|
gonna try and make it so it converts the latest month of images into a gif, at a rate of one week per second? hopefully just using imagemagick.
|
||||||
|
update: i am deep in the bowels of imagemagick and ffmpeg trying in vain to get this to work
|
||||||
|
|
||||||
|
fixed the unrelated issue where it was taking a picture every time the system rebooted. it's because i had the telescopium service enabled in addition to the timer; i disabled the service and made sure only the timer was enabled
|
||||||
|
Loading…
Reference in New Issue
Block a user