Use with open(filePath) as f: instead of f = open(filePath) in search.py

This commit is contained in:
Benjamin Loison 2023-02-24 15:15:42 +01:00
parent 58f25a114e
commit d3c87d3b6f
Signed by: Benjamin_Loison
SSH Key Fingerprint: SHA256:BtnEgYTlHdOg1u+RmYcDE0mnfz1rhv5dSbQ2gyxW8B8

View File

@ -15,20 +15,19 @@ searchOnlyCaptions = pathSearchMessageParts[0] == 'search-only-captions'
clientFilePath = f'users/{clientId}.txt' clientFilePath = f'users/{clientId}.txt'
def write(s): def write(s):
f = open(clientFilePath, 'r+') with open(clientFilePath, 'r+') as f:
try: try:
fcntl.flock(f, fcntl.LOCK_EX) fcntl.flock(f, fcntl.LOCK_EX)
# If the output file is empty, then it means that `websocket.php` read it. Anyway we don't wait it and we append what we want to output. # If the output file is empty, then it means that `websocket.php` read it. Anyway we don't wait it and we append what we want to output.
read = f.read() read = f.read()
# We are appening content, as we moved in-file cursor. # We are appening content, as we moved in-file cursor.
if read != '': if read != '':
f.write("\n") f.write("\n")
f.write(s) f.write(s)
f.flush() f.flush()
fcntl.flock(f, fcntl.LOCK_UN) fcntl.flock(f, fcntl.LOCK_UN)
f.close() except Exception as e:
except Exception as e: sys.exit(e)
sys.exit(e)
def cleanCaption(caption): def cleanCaption(caption):
return caption.replace('\n', ' ') return caption.replace('\n', ' ')
@ -69,17 +68,15 @@ for fileIndex, file in enumerate(files):
write(toWrite) write(toWrite)
break break
f = open(clientFilePath) with open(clientFilePath) as f:
while True: while True:
try: try:
fcntl.flock(f, fcntl.LOCK_EX) fcntl.flock(f, fcntl.LOCK_EX)
if f.read() == '': if f.read() == '':
os.remove(clientFilePath) os.remove(clientFilePath)
break break
else: else:
fcntl.flock(f, fcntl.LOCK_UN) fcntl.flock(f, fcntl.LOCK_UN)
time.sleep(1) time.sleep(1)
except Exception as e: except Exception as e:
sys.exit(e) sys.exit(e)
f.close()