Files
RFB/barabanov.py

76 lines
2.3 KiB
Python

from watchdog.observers import Observer
from watchdog.events import FileSystemEventHandler
import os,re
from threading import Event, Thread
import time
import requests
LOGFILE=r"C:\Users\virtVmix-1\Documents\Adobe\Adobe Media Encoder\22.0\AMEEncodingLog.txt"
LOGERRFILE=r"C:\Users\virtVmix-1\Documents\Adobe\Adobe Media Encoder\22.0\AMEEncodingErrorLog.txt"
TOKEN= ""
chat_id= ""
DIR=os.path.dirname(LOGFILE)
Log_event=Event()
Err_event=Event()
Stop_event=Event()
def send_message(m):
print(m)
requests.get(f'https://api.telegram.org/bot{TOKEN}/sendMessage?chat_id={chat_id}&text={m}')
pass
def parcer(event,LOGFILE):
SEEK=0
with open(LOGFILE,encoding='UTF-16') as file:
file.read()
SEEK=file.tell()
while not Stop_event.is_set():
event.wait()
time.sleep(5)
with open(LOGFILE,encoding='UTF-16') as file:
file.seek(SEEK)
for line in file.readlines():
if m:=re.search(r': Queue Started',line):
send_message(line)
elif m:=re.search(r'- Output File: ',line):
outfilename=line.split('\\')[-1]
send_message(outfilename)
elif m:=re.search(r'\d+/\d+/\d+ \d+:\d+:\d+ [AP]M : ',line):
send_message(line)
SEEK=file.tell()
event.clear()
class EventHandler(FileSystemEventHandler):
def on_modified(self, event):
print(time.strftime('%M:%S'),event.event_type,event.src_path)
if event.src_path== LOGFILE:
Log_event.set()
elif event.src_path== LOGERRFILE:
Err_event.set()
def on_closed(self, event): print(time.strftime('%M:%S'),event.event_type,event.src_path)
logThread=Thread(target=parcer, args=(Log_event,LOGFILE))
errThread=Thread(target=parcer, args=(Err_event,LOGERRFILE))
observer = Observer()
observer.schedule(EventHandler(), DIR)
try:
observer.start()
logThread.start()
errThread.start()
while input != 'stop':pass
finally:
Stop_event.set()
Log_event.set()
Err_event.set()
observer.stop()
logThread.join()
errThread.join()
observer.join()
print('stopped')