|
|
@ -4,24 +4,15 @@ import logging |
|
|
|
|
|
|
|
|
|
|
|
import requests |
|
|
|
import requests |
|
|
|
|
|
|
|
|
|
|
|
_username = None |
|
|
|
|
|
|
|
_password = None |
|
|
|
|
|
|
|
_auth = None |
|
|
|
|
|
|
|
_url = None |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
log = logging.getLogger("bridge.elasticsearch") |
|
|
|
class ElasticsearchLogger(): |
|
|
|
|
|
|
|
def __init__(self, url: str, username: str = "", password: str = ""): |
|
|
|
|
|
|
|
self.url = url |
|
|
|
|
|
|
|
self.username = username |
|
|
|
|
|
|
|
self.password = password |
|
|
|
|
|
|
|
self.log = logging.getLogger("bridge.elasticsearch") |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
def log_connection(self, uuid, reason, count=0): |
|
|
|
def initialize(config): |
|
|
|
|
|
|
|
global _username, _password, _url, _auth |
|
|
|
|
|
|
|
if config.es_auth: |
|
|
|
|
|
|
|
_auth = True |
|
|
|
|
|
|
|
_username = config.es_username |
|
|
|
|
|
|
|
_password = config.es_password |
|
|
|
|
|
|
|
_url = config.es_url |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
def log_connection(uuid, reason, count=0): |
|
|
|
|
|
|
|
if ConnectionReason(reason).name != "SEEN": |
|
|
|
if ConnectionReason(reason).name != "SEEN": |
|
|
|
es_payload = { |
|
|
|
es_payload = { |
|
|
|
"uuid": uuid, |
|
|
|
"uuid": uuid, |
|
|
@ -35,10 +26,9 @@ def log_connection(uuid, reason, count=0): |
|
|
|
"time": (lambda: int(round(time.time() * 1000)))(), |
|
|
|
"time": (lambda: int(round(time.time() * 1000)))(), |
|
|
|
"reason": ConnectionReason(reason).name, |
|
|
|
"reason": ConnectionReason(reason).name, |
|
|
|
} |
|
|
|
} |
|
|
|
post_request("connections/_doc/", es_payload) |
|
|
|
self.post_request("connections/_doc/", es_payload) |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
def log_chat_message(self, uuid, display_name, message, message_unformatted): |
|
|
|
def log_chat_message(uuid, display_name, message, message_unformatted): |
|
|
|
|
|
|
|
es_payload = { |
|
|
|
es_payload = { |
|
|
|
"uuid": uuid, |
|
|
|
"uuid": uuid, |
|
|
|
"display_name": display_name, |
|
|
|
"display_name": display_name, |
|
|
@ -46,25 +36,23 @@ def log_chat_message(uuid, display_name, message, message_unformatted): |
|
|
|
"message_unformatted": message_unformatted, |
|
|
|
"message_unformatted": message_unformatted, |
|
|
|
"time": (lambda: int(round(time.time() * 1000)))(), |
|
|
|
"time": (lambda: int(round(time.time() * 1000)))(), |
|
|
|
} |
|
|
|
} |
|
|
|
post_request("chat_messages/_doc/", es_payload) |
|
|
|
self.post_request("chat_messages/_doc/", es_payload) |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
def log_raw_message(type, message): |
|
|
|
def log_raw_message(self, type, message): |
|
|
|
es_payload = { |
|
|
|
es_payload = { |
|
|
|
"time": (lambda: int(round(time.time() * 1000)))(), |
|
|
|
"time": (lambda: int(round(time.time() * 1000)))(), |
|
|
|
"type": type, |
|
|
|
"type": type, |
|
|
|
"message": message, |
|
|
|
"message": message, |
|
|
|
} |
|
|
|
} |
|
|
|
post_request("raw_messages/_doc/", es_payload) |
|
|
|
self.post_request("raw_messages/_doc/", es_payload) |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
def post_request(endpoint, payload): |
|
|
|
def post_request(self, endpoint, payload): |
|
|
|
the_url = "{}{}".format(_url, endpoint) |
|
|
|
theURL = "{}{}".format(self.url, endpoint) |
|
|
|
if _auth: |
|
|
|
if self.username and self.password: |
|
|
|
post = requests.post(the_url, auth=(_username, _password), json=payload) |
|
|
|
post = requests.post(theURL, auth=(self.username, self.password), json=payload) |
|
|
|
else: |
|
|
|
else: |
|
|
|
post = requests.post(the_url, json=payload) |
|
|
|
post = requests.post(theURL, json=payload) |
|
|
|
log.debug(post.text) |
|
|
|
self.log.debug(post.text) |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
class ConnectionReason(Enum): |
|
|
|
class ConnectionReason(Enum): |
|
|
|