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