From 1e5a2df1a02b2205eaf211fbbdef819263ba9cc9 Mon Sep 17 00:00:00 2001 From: Evgeny Zinoviev Date: Thu, 15 Apr 2021 16:47:36 +0300 Subject: keep track of file size --- main.py | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) diff --git a/main.py b/main.py index 36cf5d9..3779688 100755 --- a/main.py +++ b/main.py @@ -10,7 +10,7 @@ from argparse import ArgumentParser def readstate(file: str) -> dict: if not os.path.exists(file): - default_state = {'seek': 0} + default_state = {'seek': 0, 'size': 0} writestate(file, default_state) return default_state @@ -41,15 +41,22 @@ def main(): # read file state = readstate(args.state_file) + fsize = os.path.getsize(args.log_file) + + if fsize < state['size']: + state['seek'] = 0 + with open(args.log_file, 'r') as f: - # jump to the latest readed position - f.seek(state['seek']) + if state['seek']: + # jump to the latest readed position + f.seek(state['seek']) # read till the end of the file content = f.read() # save new position state['seek'] = f.tell() + state['size'] = fsize writestate(args.state_file, state) # if got something, send it to telegram -- cgit v1.2.3