# -*- coding: utf-8 -*-
from subprocess import Popen, PIPE
import sys
import re
from processor import Processor
from decorators import simple_named_processor
from message import Message
class UrlgrepProcessor(Processor):
limit = 3
@simple_named_processor('urlgrep')
def process(self, frm, text):
if not text:
return ''
else:
splitted = text.split(" ")
url = splitted[0]
pattern = " ".join(splitted[1:])
re_pattern = re.compile(re.escape(pattern), re.I)
data = Popen(["lynx", "-dump", url], stdout=PIPE).communicate()[0]
lines = []
for line in data.splitlines():
if re_pattern.search(line):
lines.append(line)
if len(lines) == self.limit:
break
return res