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"/> | ||||
| 
 | ||||
| <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> | ||||
| </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 | ||||
| import os | ||||
| import shutil | ||||
| import socket | ||||
| from bs4 import BeautifulSoup | ||||
| from datetime import datetime | ||||
| 
 | ||||
| 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) | ||||
| 
 | ||||
| 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 | ||||
| 
 | ||||
| soup = None | ||||
| @ -26,5 +37,7 @@ with open(index_filename, "r") as the_file: | ||||
| 
 | ||||
|     latest_image['src'] = filename | ||||
| 
 | ||||
|     soup.find(id="ip_address").string = ip_address | ||||
| 
 | ||||
| with open(index_filename, "w") as the_file: | ||||
|     the_file.write(str(soup)) | ||||
|  | ||||
| @ -8,4 +8,4 @@ ExecStart=python /home/shoofle/telescopium/take_a_still.py | ||||
| User=shoofle | ||||
| 
 | ||||
| [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/ | ||||
| 
 | ||||
| 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