# -*- 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