| 
									
										
										
										
											2021-06-25 15:41:31 +00:00
										 |  |  | __filename__ = "webapp_minimalbutton.py" | 
					
						
							|  |  |  | __author__ = "Bob Mottram" | 
					
						
							|  |  |  | __license__ = "AGPL3+" | 
					
						
							| 
									
										
										
										
											2024-01-21 19:01:20 +00:00
										 |  |  | __version__ = "1.5.0" | 
					
						
							| 
									
										
										
										
											2021-06-25 15:41:31 +00:00
										 |  |  | __maintainer__ = "Bob Mottram" | 
					
						
							| 
									
										
										
										
											2021-09-10 16:14:50 +00:00
										 |  |  | __email__ = "bob@libreserver.org" | 
					
						
							| 
									
										
										
										
											2021-06-25 15:41:31 +00:00
										 |  |  | __status__ = "Production" | 
					
						
							| 
									
										
										
										
											2021-06-26 11:27:14 +00:00
										 |  |  | __module_group__ = "Timeline" | 
					
						
							| 
									
										
										
										
											2021-06-25 15:41:31 +00:00
										 |  |  | 
 | 
					
						
							|  |  |  | import os | 
					
						
							| 
									
										
										
										
											2021-12-26 12:02:29 +00:00
										 |  |  | from utils import acct_dir | 
					
						
							| 
									
										
										
										
											2021-06-25 15:41:31 +00:00
										 |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2021-12-29 21:55:09 +00:00
										 |  |  | def is_minimal(base_dir: str, domain: str, nickname: str) -> bool: | 
					
						
							| 
									
										
										
										
											2021-06-25 15:41:31 +00:00
										 |  |  |     """Returns true if minimal buttons should be shown
 | 
					
						
							|  |  |  |        for the given account | 
					
						
							|  |  |  |     """
 | 
					
						
							| 
									
										
										
										
											2022-01-03 23:36:57 +00:00
										 |  |  |     account_dir = acct_dir(base_dir, nickname, domain) | 
					
						
							|  |  |  |     if not os.path.isdir(account_dir): | 
					
						
							| 
									
										
										
										
											2021-06-25 15:41:31 +00:00
										 |  |  |         return True | 
					
						
							| 
									
										
										
										
											2022-01-03 23:36:57 +00:00
										 |  |  |     minimal_filename = account_dir + '/.notminimal' | 
					
						
							|  |  |  |     if os.path.isfile(minimal_filename): | 
					
						
							| 
									
										
										
										
											2021-06-25 15:41:31 +00:00
										 |  |  |         return False | 
					
						
							|  |  |  |     return True | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2021-12-29 21:55:09 +00:00
										 |  |  | def set_minimal(base_dir: str, domain: str, nickname: str, | 
					
						
							|  |  |  |                 minimal: bool) -> None: | 
					
						
							| 
									
										
										
										
											2021-06-25 15:41:31 +00:00
										 |  |  |     """Sets whether an account should display minimal buttons
 | 
					
						
							|  |  |  |     """
 | 
					
						
							| 
									
										
										
										
											2022-01-03 23:36:57 +00:00
										 |  |  |     account_dir = acct_dir(base_dir, nickname, domain) | 
					
						
							|  |  |  |     if not os.path.isdir(account_dir): | 
					
						
							| 
									
										
										
										
											2021-06-25 15:41:31 +00:00
										 |  |  |         return | 
					
						
							| 
									
										
										
										
											2022-01-03 23:36:57 +00:00
										 |  |  |     minimal_filename = account_dir + '/.notminimal' | 
					
						
							|  |  |  |     minimal_file_exists = os.path.isfile(minimal_filename) | 
					
						
							|  |  |  |     if minimal and minimal_file_exists: | 
					
						
							| 
									
										
										
										
											2021-09-05 10:17:43 +00:00
										 |  |  |         try: | 
					
						
							| 
									
										
										
										
											2022-01-03 23:36:57 +00:00
										 |  |  |             os.remove(minimal_filename) | 
					
						
							| 
									
										
										
										
											2021-11-25 18:42:38 +00:00
										 |  |  |         except OSError: | 
					
						
							| 
									
										
										
										
											2022-01-03 23:36:57 +00:00
										 |  |  |             print('EX: set_minimal unable to delete ' + minimal_filename) | 
					
						
							|  |  |  |     elif not minimal and not minimal_file_exists: | 
					
						
							| 
									
										
										
										
											2021-11-25 18:42:38 +00:00
										 |  |  |         try: | 
					
						
							| 
									
										
										
										
											2022-06-09 14:46:30 +00:00
										 |  |  |             with open(minimal_filename, 'w+', encoding='utf-8') as fp_min: | 
					
						
							| 
									
										
										
										
											2022-01-03 23:36:57 +00:00
										 |  |  |                 fp_min.write('\n') | 
					
						
							| 
									
										
										
										
											2021-11-25 18:42:38 +00:00
										 |  |  |         except OSError: | 
					
						
							| 
									
										
										
										
											2022-01-03 23:36:57 +00:00
										 |  |  |             print('EX: unable to write minimal ' + minimal_filename) |