From a7eb24e128e951fe5be3de9008da9ffdb24a2f88 Mon Sep 17 00:00:00 2001 From: cjerrington Date: Thu, 31 Dec 2020 11:36:38 -0600 Subject: [PATCH] Updated wakey to v1.0.2 --- README.md | Bin 668 -> 5240 bytes imgs/help.png | Bin 0 -> 29666 bytes imgs/verbose.png | Bin 0 -> 18398 bytes wakey.py | 83 +++++++++++++++++++++++++++++++++++++++-------- 4 files changed, 69 insertions(+), 14 deletions(-) create mode 100644 imgs/help.png create mode 100644 imgs/verbose.png diff --git a/README.md b/README.md index f9bc7c7379f9d36a7f8b11eddc60f5076e87e3eb..f50e5eb4772ba76bc3a1f62ff665cd204af8b413 100644 GIT binary patch literal 5240 zcmbuDTW=dx6ot<-68~XP9w0zsS_BVBeJBB{iXtj#1*lZ2V>^k9Z?&CErT%tceP?<5 zoEbYP6|#~UpV{}l_GSFf-v_BlzomZqD~;0I^kMoS|NW?MqqImXJzb{@-8X5F=4q<4 zOP!3;QYZa%z2R)qskj@_k41BtCOTj1ewNNNU6X!D_tICox1LkU>PyB@CktIi;zU

pOir(<1A?)nq`(V6XhgZcTXJCY?XaD*7s-GJM^Kw zT+hWn)hXPL!dw&sQDftIrjN*+WxhA!fPRp5VR@tY;K!u$;AD?o#B(J*qwM=!GRO(h z8!ArMS<=1qMYhoKd9HY0>iJs#n{;2#jul@hK1q*c&0L?WY{w(rEhP&p`spxzE*f}= z-b~LNYpk{2aelIrpL0=7vPIBAf353M8EiJRoPrIoFjpSAtMk5+1@>#2eSn(hO}<`< zzDZ9-!@0G8DL=kWpXnU$;q7P3iA+JkK{^n{uj0r5#TFgUBn1q{dBKwvq@F(K(gydX;(olT zqMoj=#R)=f%Q{D(x2>qR;%ryJN++%>>pqlKQ7^U*+_d9X>>f%R83I2>=~&lQ71dXX z51BV+=>-ePTkMf~B-@M}P(RL=mTEbczc>0rf~7`Z`9ofU*g>{@zqPJk{J_6PI7U91 z1`AEL-e+JYv_e}~9QnMKFJtMt(7mN{Vgx=;ALqQf`PfFbG|92DHRHkYzu zCOSUh)BD7&?F)Ih%5wIdHya%*c>qclvS^k5l>GzUjm3#4qs;&R^R#HyVf6L4vVkYN znRE?4lx6Ks8Br;f*%_X) zGtkH9xkuh^FEf3TEpc5P>088?9?TYjg(tF^tpMD+JH*qrU47Y0o~eGQo##Ljn1P>e zKn<3-k5pBhc;?e9ki&^5&~5Q9_6Po5A7G%LyGfkab#X1bn9Foh`U)0#R>W-HS0&67 zTS)}G50pxA&gk*=p0ryfP5ODOvEDPtTy$XXJ(k$s-->2OY^mC9w1MpISJv`GGH3Gf zCi_V2iKu(3t2-j_N->CS)V=4GsNLI{2HtJx&GxzO+I_`kE=|;2J@3#Bg1};ve$U7X zgw~cVq=!j^-^ST+bI+!0nRM!bET^i;9y64!tCuxi>54X2OMU;TcCWH|l_;a9%us7) zdt2w~e!8&;+w1=DLR%PH*>&~^oYNWDmICXmv~L%omoqDl#Y_L~=^GJc7h$UOcJ}jL zw!7QGcDMMcqzsi4B2s4KZuV>ZJA*aK*gnScl>AypL7KDI-HZQQ-dV0I&r9>yZz1H( zxIV0Grg9IYpIOmYT(0-o;rE*FS%bjVQbsF6+H(y)SBa3q|gIOmP%RJzxj9lLZSPqx^6 zOO=_Q9)P_1?P}TC({Dq=E}wTGYKw^zQDZMcKj#mm$y>8e%;EimH!)~Hl6fEG*|rpq zpTxTaKDFlp8MK{|OJeESg>Ss?)Vt?oQwPJ07ZB$<;T;?6%bpf{XjD*qkGB?V_1ukI zwNV3h+x}q(`&Qi>jZ1beENJ@xLg|a~mO_W8hZGDB#TDNQ>O;zrp1shdd#UR~Q9?@= z*k-60Fcm%Bb;(u{b@4vjBnCcO@SJu$nJ zsw**~!|aM*FTg{IPvp3M4~xiqYhhERACzfPxcSYi-P@rKWcgPX?=bs*87i5L9T8Oc zmmlh-MB8)xJo_-!xpxY7nQkY1EPK3@uC}QANN53}6XAosfqeo5_O_?&V&LPj#bcDm MTSS|){jAOZFA98lWdHyG delta 169 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 literal 0 HcmV?d00001 diff --git a/imgs/verbose.png b/imgs/verbose.png new file mode 100644 index 0000000000000000000000000000000000000000..6f872e0101f7f413f9ca32ce83b86f05f6ead7be GIT binary patch literal 18398 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 literal 0 HcmV?d00001 diff --git a/wakey.py b/wakey.py index e693482..6baaae6 100644 --- a/wakey.py +++ b/wakey.py @@ -1,20 +1,75 @@ import keyboard, time, sys +import os, logging import ctypes -import os -if sys.platform == "win32": - cmd = 'mode 30,10' - os.system(cmd) - ctypes.windll.kernel32.SetConsoleTitleW('Wakey') +def main(duration, frequency, verbose, log): + if log: + # Setup logging + file, ext = os.path.splitext(__file__) + logfile = file+'.log' + logging.basicConfig(filename=logfile, filemode='w', format='%(asctime)s - %(levelname)s - %(message)s', level=logging.INFO, datefmt='%b-%d-%y %H:%M:%S') -print("Keeping computer awake :)") + if sys.platform == "win32": + #cmd = 'mode 30,10' + #os.system(cmd) + ctypes.windll.kernel32.SetConsoleTitleW('Wakey') + keypress = 'f15' -while True: - try: - keyboard.press_and_release('f15') - delay = 300 # 5 minutes - time.sleep(delay) # Sleep for the amount of seconds generated - except KeyboardInterrupt: - # quit - sys.exit() \ No newline at end of file + if sys.platform == 'linux': + if os.getuid() != 0: + print("Wakey needs to run as root/sudo. Please try relaunch") + sys.exit() + else: + keypress = 'shift' + + + # time.sleep() is in seconds. Multiple minutes wanted by 60 seconds to get delay + delay = frequency * 60 + print("Keeping computer awake :)") + if verbose: + print(f'Pressing {keypress} every {delay} seconds') + + while True: + try: + if sys.platform == "win32": + keyboard.press_and_release(keypress) + if verbose: + print(f'Button {keypress} was pressed at {currenttime()}') + + if log: + logging.info(f'Button {keypress} was pressed at {currenttime()}') + + if sys.platform == "linux": + keyboard.press_and_release(keypress) + + time.sleep(delay) # Sleep for the amount of seconds generated + except KeyboardInterrupt: + # quit + sys.exit() + + +def currenttime(): + t = time.localtime() + current_time = time.strftime("%H:%M:%S", t) + return current_time + + + +# If we are running the file directly, lets add some arguments for our script. +if __name__ == "__main__": + import argparse + parser = argparse.ArgumentParser(description="Simply keep your computer awake and session active") + parser.add_argument("-d", "--duration", type=int, help="Length of time in minutes, default is forever") + parser.add_argument("-f", "--frequency", type=int, help="Frequency of keypress in minutes, default is 1 minute", default=1) + parser.add_argument("-v", "--verbose", action='store_true', help="Verbosely see the output in the console") + parser.add_argument("-l", "--log", action='store_true', help="Creates a log of the application for later reference") + + # gather arguments + args = parser.parse_args() + duration = args.duration + frequency = args.frequency + verbose = args.verbose + log = args.log + + main(duration, frequency, verbose, log) \ No newline at end of file