Update prometheus stuff
This commit is contained in:
@@ -31,6 +31,7 @@ from mautrix.errors import MatrixRequestError
|
||||
from mautrix.types import UserID, RoomID
|
||||
from mautrix.bridge import BaseUser
|
||||
from mautrix.util.logging import TraceLogger
|
||||
from mautrix.util.opt_prometheus import Enum
|
||||
|
||||
from .types import TelegramID
|
||||
from .db import User as DBUser, Portal as DBPortal
|
||||
@@ -45,6 +46,11 @@ config: Optional['Config'] = None
|
||||
|
||||
SearchResult = NamedTuple('SearchResult', puppet='pu.Puppet', similarity=int)
|
||||
|
||||
METRIC_LOGGED_IN = Enum('bridge_logged_in', 'Bridge Logged in', states=["true", "false"],
|
||||
labelnames=("tgid",))
|
||||
METRIC_CONNECTED = Enum('bridge_connected', 'Bridge Connected', states=["true", "false"],
|
||||
labelnames=("tgid",))
|
||||
|
||||
|
||||
class User(AbstractUser, BaseUser):
|
||||
log: TraceLogger = logging.getLogger("mau.user")
|
||||
@@ -193,15 +199,21 @@ class User(AbstractUser, BaseUser):
|
||||
|
||||
async def start(self, delete_unless_authenticated: bool = False) -> 'User':
|
||||
await super().start()
|
||||
METRIC_CONNECTED.labels(tgid=self.tgid).state("true")
|
||||
if await self.is_logged_in():
|
||||
self.log.debug(f"Ensuring post_login() for {self.name}")
|
||||
asyncio.ensure_future(self.post_login(), loop=self.loop)
|
||||
elif delete_unless_authenticated:
|
||||
self.log.debug(f"Unauthenticated user {self.name} start()ed, deleting session...")
|
||||
await self.client.disconnect()
|
||||
METRIC_CONNECTED.labels(tgid=self.tgid).state("false")
|
||||
self.client.session.delete()
|
||||
return self
|
||||
|
||||
async def stop(self) -> None:
|
||||
await super().stop()
|
||||
METRIC_CONNECTED.labels(tgid=self.tgid).state("true")
|
||||
|
||||
async def post_login(self, info: TLUser = None, first_login: bool = False) -> None:
|
||||
try:
|
||||
await self.update_info(info)
|
||||
@@ -209,6 +221,8 @@ class User(AbstractUser, BaseUser):
|
||||
self.log.exception("Failed to update telegram account info")
|
||||
return
|
||||
|
||||
METRIC_LOGGED_IN.labels(tgid=self.tgid).state("true")
|
||||
|
||||
try:
|
||||
puppet = pu.Puppet.get(self.tgid)
|
||||
if puppet.custom_mxid != self.mxid and puppet.can_auto_login(self.mxid):
|
||||
@@ -300,6 +314,7 @@ class User(AbstractUser, BaseUser):
|
||||
if not ok:
|
||||
return False
|
||||
self.delete()
|
||||
METRIC_LOGGED_IN.labels(tgid=self.tgid).state("false")
|
||||
return True
|
||||
|
||||
def _search_local(self, query: str, max_results: int = 5, min_similarity: int = 45
|
||||
|
||||
Reference in New Issue
Block a user