First commit
This commit is contained in:
		
						commit
						fe250668fc
					
				
							
								
								
									
										39
									
								
								authenticator.py
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										39
									
								
								authenticator.py
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,39 @@
 | 
				
			|||||||
 | 
					import pyotp
 | 
				
			||||||
 | 
					import time
 | 
				
			||||||
 | 
					import os
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					def clear_screen():
 | 
				
			||||||
 | 
					    os.system("cls" if os.name == "nt" else "clear")
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					def show_otp(issuer, account, secret):
 | 
				
			||||||
 | 
					    totp = pyotp.TOTP(secret)
 | 
				
			||||||
 | 
					    try:
 | 
				
			||||||
 | 
					        while True:
 | 
				
			||||||
 | 
					            clear_screen()
 | 
				
			||||||
 | 
					            current_otp = totp.now()
 | 
				
			||||||
 | 
					            time_remaining = totp.interval - (int(time.time()) % totp.interval)
 | 
				
			||||||
 | 
					            print("TOTP Authenticator\n")
 | 
				
			||||||
 | 
					            print(f"{issuer}\n{account}\n")
 | 
				
			||||||
 | 
					            print(current_otp)
 | 
				
			||||||
 | 
					            print(f"\nRemaining: {time_remaining:2} sec")
 | 
				
			||||||
 | 
					            for i in range(time_remaining, 0, -1):
 | 
				
			||||||
 | 
					                print(f"\rRefresh in: {i:2} sec", end="")
 | 
				
			||||||
 | 
					                time.sleep(1)
 | 
				
			||||||
 | 
					                if i == 1:
 | 
				
			||||||
 | 
					                    break
 | 
				
			||||||
 | 
					    except KeyboardInterrupt:
 | 
				
			||||||
 | 
					        pass
 | 
				
			||||||
 | 
					    print("\nEND")
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					def app():
 | 
				
			||||||
 | 
					    issuer = None
 | 
				
			||||||
 | 
					    account = None
 | 
				
			||||||
 | 
					    secret = None
 | 
				
			||||||
 | 
					    try:
 | 
				
			||||||
 | 
					        show_otp(issuer, account, secret)
 | 
				
			||||||
 | 
					    except KeyboardInterrupt:
 | 
				
			||||||
 | 
					        pass
 | 
				
			||||||
 | 
					    
 | 
				
			||||||
 | 
					if __name__ == "__main__":
 | 
				
			||||||
 | 
					    app()
 | 
				
			||||||
 | 
					
 | 
				
			||||||
		Loading…
	
		Reference in New Issue
	
	Block a user