Beispiel #1
0
    def get_text(self, args, delimiter_regex, replace_with):
        num_tabs = MAX_NUMBER_OF_TABS
        if len(args) > 0:
            num_tabs = int(args[0])

        result = self._get(
            '/get_text/?delimiter_regex=%s&replace_with=%s' % (
                encode_query(delimiter_regex),
                encode_query(replace_with),
            ), )
        lines = []
        for line in result.splitlines()[:num_tabs]:
            lines.append(line)
        return self.prefix_tabs(lines)
Beispiel #2
0
    def get_words(self, tab_ids, match_regex, join_with):
        words = set()
        match_regex = encode_query(match_regex)
        join_with = encode_query(join_with)

        for tab_id in tab_ids:
            prefix, _window_id, tab_id = tab_id.split('.')
            if prefix + '.' != self._prefix:
                continue

            logger.info(
                'SingleMediatorAPI: get_words: %s, match_regex: %s, join_with: %s',
                tab_id, match_regex, join_with)
            words |= set(self._get(
                '/get_words/%s?match_regex=%s&join_with=%s' % (tab_id, match_regex, join_with)
            ).splitlines())

        if not tab_ids:
            words = set(self._get(
                '/get_words/?match_regex=%s&join_with=%s' % (match_regex, join_with)
            ).splitlines())

        return sorted(list(words))
Beispiel #3
0
    def query_tabs(self, args):
        query = args
        if isinstance(query, str):
            try:
                query = json.loads(query)
                if not isinstance(query, Mapping):
                    raise json.JSONDecodeError("json has attributes unsupported by brotab.", "", 0)
            except json.JSONDecodeError as e:
                print("Cannot decode JSON: %s: %s" % (__name__, e), file=sys.stderr)
                return []

        result = self._get('/query_tabs/%s' % encode_query(json.dumps(query)))
        lines = result.splitlines()[:MAX_NUMBER_OF_TABS]
        return self.prefix_tabs(lines)
Beispiel #4
0
from brotab.const import DEFAULT_GET_HTML_DELIMITER_REGEX
from brotab.const import DEFAULT_GET_HTML_REPLACE_WITH
from brotab.const import DEFAULT_GET_TEXT_DELIMITER_REGEX
from brotab.const import DEFAULT_GET_TEXT_REPLACE_WITH
from brotab.const import DEFAULT_GET_WORDS_JOIN_WITH
from brotab.const import DEFAULT_GET_WORDS_MATCH_REGEX
from brotab.utils import encode_query

DEFAULT_TRANSPORT_TIMEOUT = 60.0
DEFAULT_SHUTDOWN_POLL_INTERVAL = 1.0
DEFAULT_HTTP_IFACE = '127.0.0.1'
DEFAULT_MIN_HTTP_PORT = 4625
DEFAULT_MAX_HTTP_PORT = DEFAULT_MIN_HTTP_PORT + 10
DEFAULT_GET_WORDS_MATCH_REGEX = encode_query(DEFAULT_GET_WORDS_MATCH_REGEX)
DEFAULT_GET_WORDS_JOIN_WITH = encode_query(DEFAULT_GET_WORDS_JOIN_WITH)
DEFAULT_GET_TEXT_DELIMITER_REGEX = encode_query(
    DEFAULT_GET_TEXT_DELIMITER_REGEX)
DEFAULT_GET_TEXT_REPLACE_WITH = encode_query(DEFAULT_GET_TEXT_REPLACE_WITH)
DEFAULT_GET_HTML_DELIMITER_REGEX = encode_query(
    DEFAULT_GET_HTML_DELIMITER_REGEX)
DEFAULT_GET_HTML_REPLACE_WITH = encode_query(DEFAULT_GET_HTML_REPLACE_WITH)