46 lines
		
	
	
	
		
			1.1 KiB
		
	
	
	
		
			Python
		
	
	
		
			Executable file
		
	
	
	
	
			
		
		
	
	
			46 lines
		
	
	
	
		
			1.1 KiB
		
	
	
	
		
			Python
		
	
	
		
			Executable file
		
	
	
	
	
#!/usr/bin/env python3
 | 
						|
 | 
						|
import os
 | 
						|
import argparse
 | 
						|
 | 
						|
 | 
						|
def qute(cmd):
 | 
						|
    with open(os.environ['QUTE_FIFO'], 'w') as fifo:
 | 
						|
        fifo.write(cmd)
 | 
						|
        fifo.write('\n')
 | 
						|
        fifo.flush()
 | 
						|
 | 
						|
def error(msg):
 | 
						|
    print(msg, file=sys.stderr)
 | 
						|
    qute('message-error "{}"'.format(msg))
 | 
						|
 | 
						|
def parse_args():
 | 
						|
    parser = argparse.ArgumentParser(description="Full passwords from KeepassXC")
 | 
						|
    parser.add_argument('--selection', '-s', action='store_true',
 | 
						|
                        help='Yank to selection')
 | 
						|
    return parser.parse_args()
 | 
						|
 | 
						|
 | 
						|
if __name__ == '__main__':
 | 
						|
    if 'QUTE_FIFO' not in os.environ:
 | 
						|
        print(f"No QUTE_FIFO found - {sys.argv[0]} must be run as a qutebrowser userscript")
 | 
						|
        sys.exit(-1)
 | 
						|
 | 
						|
    try:
 | 
						|
        args = parse_args()
 | 
						|
 | 
						|
        url = os.environ['QUTE_URL']
 | 
						|
 | 
						|
        try:
 | 
						|
            import unalix
 | 
						|
            url = unalix.clear_url(url)
 | 
						|
        except:
 | 
						|
            pass
 | 
						|
 | 
						|
        if args.selection:
 | 
						|
            qute('yank inline "{}" -s'.format(url))
 | 
						|
        else:
 | 
						|
            qute('yank inline "{}"'.format(url))
 | 
						|
 | 
						|
    except Exception as e:
 | 
						|
        error(str(e))
 |