Logs return list
This commit is contained in:
@@ -1,9 +1,10 @@
|
||||
import os
|
||||
import re
|
||||
import traceback
|
||||
|
||||
from couchpotato.api import addApiView
|
||||
from couchpotato.core.helpers.encoding import toUnicode
|
||||
from couchpotato.core.helpers.variable import tryInt
|
||||
from couchpotato.core.helpers.variable import tryInt, splitString
|
||||
from couchpotato.core.logger import CPLog
|
||||
from couchpotato.core.plugins.base import Plugin
|
||||
from couchpotato.environment import Env
|
||||
@@ -71,10 +72,11 @@ class Logging(Plugin):
|
||||
if current_path:
|
||||
f = open(current_path, 'r')
|
||||
log_content = f.read()
|
||||
logs = self.toList(log_content)
|
||||
|
||||
return {
|
||||
'success': True,
|
||||
'log': toUnicode(log_content),
|
||||
'log': logs,
|
||||
'total': total,
|
||||
}
|
||||
|
||||
@@ -93,13 +95,14 @@ class Logging(Plugin):
|
||||
break
|
||||
|
||||
f = open(path, 'r')
|
||||
reversed_lines = toUnicode(f.read()).split('[0m\n')
|
||||
reversed_lines.reverse()
|
||||
log_content = toUnicode(f.read())
|
||||
raw_lines = self.toList(log_content)
|
||||
raw_lines.reverse()
|
||||
|
||||
brk = False
|
||||
for line in reversed_lines:
|
||||
for line in raw_lines:
|
||||
|
||||
if type == 'all' or '%s ' % type.upper() in line:
|
||||
if type == 'all' or line.get('type') == type.upper():
|
||||
log_lines.append(line)
|
||||
|
||||
if len(log_lines) >= total_lines:
|
||||
@@ -112,9 +115,35 @@ class Logging(Plugin):
|
||||
log_lines.reverse()
|
||||
return {
|
||||
'success': True,
|
||||
'log': '[0m\n'.join(log_lines),
|
||||
'log': log_lines,
|
||||
}
|
||||
|
||||
def toList(self, log_content = ''):
|
||||
|
||||
logs_raw = toUnicode(log_content).split('[0m\n')
|
||||
|
||||
logs = []
|
||||
for log in logs_raw:
|
||||
split = splitString(log, '\x1b')
|
||||
if split:
|
||||
try:
|
||||
date, time, log_type = splitString(split[0], ' ')
|
||||
timestamp = '%s %s' % (date, time)
|
||||
except:
|
||||
timestamp = 'UNKNOWN'
|
||||
log_type = 'UNKNOWN'
|
||||
|
||||
message = ''.join(split[1]) if len(split) > 1 else split[0]
|
||||
message = re.sub('\[\d+m\[', '[', message)
|
||||
|
||||
logs.append({
|
||||
'time': timestamp,
|
||||
'type': log_type,
|
||||
'message': message
|
||||
})
|
||||
|
||||
return logs
|
||||
|
||||
def clear(self, **kwargs):
|
||||
|
||||
for x in range(0, 50):
|
||||
|
||||
Reference in New Issue
Block a user