Logs return list

This commit is contained in:
Ruud
2014-05-08 16:16:42 +02:00
parent e7fbff5b3f
commit 923c794e39

View File

@@ -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):