use jstate, add requirements.txt
This commit is contained in:
parent
20b8791c54
commit
837137b3d0
39
main.py
39
main.py
@ -2,45 +2,24 @@
|
|||||||
import requests
|
import requests
|
||||||
import sys
|
import sys
|
||||||
import traceback
|
import traceback
|
||||||
import json
|
|
||||||
import os
|
import os
|
||||||
|
|
||||||
from argparse import ArgumentParser
|
from argparse import ArgumentParser
|
||||||
|
from jstate import JState
|
||||||
|
|
||||||
def readstate(file: str) -> dict:
|
|
||||||
if not os.path.exists(file):
|
|
||||||
default_state = {'seek': 0, 'size': 0}
|
|
||||||
writestate(file, default_state)
|
|
||||||
return default_state
|
|
||||||
|
|
||||||
with open(file, 'r') as f:
|
|
||||||
return json.loads(f.read())
|
|
||||||
|
|
||||||
|
|
||||||
def writestate(file: str, state: dict):
|
|
||||||
with open(file, 'w') as f:
|
|
||||||
f.write(json.dumps(state))
|
|
||||||
|
|
||||||
|
|
||||||
def main():
|
def main():
|
||||||
# parse arguments
|
# parse arguments
|
||||||
parser = ArgumentParser()
|
parser = ArgumentParser()
|
||||||
parser.add_argument('--log-file',
|
parser.add_argument('--log-file', type=str, help='A file to read from')
|
||||||
type=str,
|
parser.add_argument('--state-file', default=('%s/.log-checker.state' % os.getenv('HOME')))
|
||||||
help='A file to read from')
|
parser.add_argument('--token', help='Telegram bot token')
|
||||||
parser.add_argument('--state-file',
|
parser.add_argument('--chat-id', type=int, help='Telegram chat id (with bot)')
|
||||||
default=('%s/.log-checker.state' % os.getenv('HOME')))
|
|
||||||
parser.add_argument('--token',
|
|
||||||
help='Telegram bot token')
|
|
||||||
parser.add_argument('--chat-id',
|
|
||||||
type=int,
|
|
||||||
help='Telegram chat id (with bot)')
|
|
||||||
|
|
||||||
args = parser.parse_args()
|
args = parser.parse_args()
|
||||||
|
|
||||||
# read file
|
# read file
|
||||||
state = readstate(args.state_file)
|
jstate = JState(args.state_file, default=dict(seek=0, size=0))
|
||||||
|
state = jstate.read()
|
||||||
|
|
||||||
fsize = os.path.getsize(args.log_file)
|
fsize = os.path.getsize(args.log_file)
|
||||||
|
|
||||||
if fsize < state['size']:
|
if fsize < state['size']:
|
||||||
@ -57,7 +36,7 @@ def main():
|
|||||||
# save new position
|
# save new position
|
||||||
state['seek'] = f.tell()
|
state['seek'] = f.tell()
|
||||||
state['size'] = fsize
|
state['size'] = fsize
|
||||||
writestate(args.state_file, state)
|
jstate.write(state)
|
||||||
|
|
||||||
# if got something, send it to telegram
|
# if got something, send it to telegram
|
||||||
if content != '':
|
if content != '':
|
||||||
|
2
requirements.txt
Normal file
2
requirements.txt
Normal file
@ -0,0 +1,2 @@
|
|||||||
|
requests~=2.25.1
|
||||||
|
jstate~=0.0.4
|
Loading…
x
Reference in New Issue
Block a user