Fixed HTML message formatting, Extended resolver for get, construct and transform functions, Added entire message history with aliasing for personal matrix account
This commit is contained in:
Binary file not shown.
@@ -7,7 +7,7 @@ def buildAction (action, outputs):
|
|||||||
|
|
||||||
if hasattr(action, "recursive"):
|
if hasattr(action, "recursive"):
|
||||||
items = outputs[action.recursive["source"]]
|
items = outputs[action.recursive["source"]]
|
||||||
reverse = action.recursive.get("reversed", False)
|
reverse = action.recursive.get("reverse", False)
|
||||||
|
|
||||||
if reverse:
|
if reverse:
|
||||||
items = reversed(items)
|
items = reversed(items)
|
||||||
|
|||||||
Binary file not shown.
@@ -1,11 +1,29 @@
|
|||||||
def resolveItem(action, item):
|
def resolveItem(action, item):
|
||||||
resolved = {}
|
resolved = {}
|
||||||
if hasattr(action, "resolve"):
|
if hasattr(action, "resolve"):
|
||||||
for label, keys in action.resolve.items():
|
for label, keys in action.resolve["get"].items():
|
||||||
target = item
|
target = item
|
||||||
|
|
||||||
for key in keys:
|
for key in keys:
|
||||||
target = target[key]
|
target = target[key]
|
||||||
|
|
||||||
resolved[label] = target
|
resolved[label] = target
|
||||||
|
if "construct" in action.resolve:
|
||||||
|
for label2, piece in action.resolve["construct"].items():
|
||||||
|
constructed = ""
|
||||||
|
|
||||||
|
for item in piece:
|
||||||
|
if isinstance(item, dict):
|
||||||
|
for key, value in item.items():
|
||||||
|
item = resolved[value]
|
||||||
|
|
||||||
|
constructed += str(item)
|
||||||
|
|
||||||
|
resolved[label2] = constructed
|
||||||
|
if "transform" in action.resolve:
|
||||||
|
for source, mutation in action.resolve["transform"].items():
|
||||||
|
for key, value in mutation.items():
|
||||||
|
if resolved[source] == key:
|
||||||
|
resolved[source] = value
|
||||||
|
|
||||||
return resolved
|
return resolved
|
||||||
|
|||||||
Binary file not shown.
+21
-4
@@ -8,7 +8,28 @@ from .createresponse import buildResponse
|
|||||||
|
|
||||||
port = int(os.environ.get("SERVER_PORT", 19001))
|
port = int(os.environ.get("SERVER_PORT", 19001))
|
||||||
|
|
||||||
|
from http.server import HTTPServer, BaseHTTPRequestHandler
|
||||||
|
|
||||||
|
class RequestHandler(BaseHTTPRequestHandler):
|
||||||
|
def do_POST(self):
|
||||||
|
print("POST request received")
|
||||||
|
|
||||||
|
self.send_response(200)
|
||||||
|
self.send_header("Content-Type", "application/json")
|
||||||
|
self.end_headers()
|
||||||
|
|
||||||
|
self.wfile.write(b'{"status": "ok"}')
|
||||||
|
|
||||||
def startServer():
|
def startServer():
|
||||||
|
server = HTTPServer(("127.0.0.1", port), RequestHandler)
|
||||||
|
|
||||||
|
print(f"Server listening on port {port}")
|
||||||
|
|
||||||
|
server.serve_forever()
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
def startServer2():
|
||||||
server = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
|
server = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
|
||||||
|
|
||||||
server.bind(("0.0.0.0", port))
|
server.bind(("0.0.0.0", port))
|
||||||
@@ -22,10 +43,6 @@ def startServer():
|
|||||||
print("Accepting connections")
|
print("Accepting connections")
|
||||||
connection.settimeout(30)
|
connection.settimeout(30)
|
||||||
|
|
||||||
class RequestHandler(BaseHTTPRequestHandler):
|
|
||||||
def do_POST(self):
|
|
||||||
print("POST request received")
|
|
||||||
|
|
||||||
try:
|
try:
|
||||||
while True:
|
while True:
|
||||||
data = connection.recv(4096)
|
data = connection.recv(4096)
|
||||||
|
|||||||
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
@@ -8,18 +8,15 @@ method = "GET"
|
|||||||
|
|
||||||
#Used to resolve path for recursive handling. Path location must match the location of the recursiveset data from pullmessage operation
|
#Used to resolve path for recursive handling. Path location must match the location of the recursiveset data from pullmessage operation
|
||||||
resolve = {
|
resolve = {
|
||||||
"path": ["messageheaders", "id"],
|
"get": {
|
||||||
|
"path": ["messageheaders", "id"],
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
#To add resolution suffix, second item must be a dictionary. References the "path" library under resolved
|
#To add resolution suffix, second item must be a dictionary. References the "path" library under resolved
|
||||||
path = [
|
path = [
|
||||||
"https://rentmasseur.com/api/v1/mailbox/",
|
"https://rentmasseur.com/api/v1/mailbox/",
|
||||||
{"resolved": "path"},
|
{"resolved": "path"},
|
||||||
#{
|
|
||||||
# "output": "id",
|
|
||||||
# #"keys": [0, "id"]
|
|
||||||
# "keys": "id"
|
|
||||||
#}
|
|
||||||
]
|
]
|
||||||
|
|
||||||
headers = {
|
headers = {
|
||||||
@@ -41,8 +38,8 @@ select = {
|
|||||||
"value": False,
|
"value": False,
|
||||||
},
|
},
|
||||||
"exclude": {
|
"exclude": {
|
||||||
"key": "senderId",
|
"key": {},
|
||||||
"value": 238302,
|
"value": {},
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -18,8 +18,6 @@ headers = {
|
|||||||
},
|
},
|
||||||
}
|
}
|
||||||
|
|
||||||
#domainname="rentmasseur.com"
|
|
||||||
|
|
||||||
cookies = {
|
cookies = {
|
||||||
"accessToken": {
|
"accessToken": {
|
||||||
"output": "access_token",
|
"output": "access_token",
|
||||||
|
|||||||
@@ -7,11 +7,14 @@ kind = "action"
|
|||||||
showstatus = True
|
showstatus = True
|
||||||
|
|
||||||
resolve = {
|
resolve = {
|
||||||
"sender": ["messages", 0, "senderId"],
|
"get": {
|
||||||
"space_id": ["space_id"],
|
"sender": ["messages", 0, "senderId"],
|
||||||
"username": ["profile", "username"],
|
"space_id": ["space_id"],
|
||||||
"room_id": ["dmroom_id"],
|
"username": ["profile", "username"],
|
||||||
|
"room_id": ["dmroom_id"],
|
||||||
|
},
|
||||||
}
|
}
|
||||||
|
|
||||||
keys = [
|
keys = [
|
||||||
{
|
{
|
||||||
"keytitle": "via",
|
"keytitle": "via",
|
||||||
|
|||||||
@@ -9,9 +9,19 @@ showstatus = True
|
|||||||
astoken = os.environ["AS_TOKEN"]
|
astoken = os.environ["AS_TOKEN"]
|
||||||
|
|
||||||
resolve = {
|
resolve = {
|
||||||
"sender": ["messages", 0, "senderId"],
|
"get": {
|
||||||
"username": ["profile", "username"],
|
"sender": ["messages", 0, "senderId"],
|
||||||
|
"username": ["profile", "username"],
|
||||||
|
},
|
||||||
|
"construct": {
|
||||||
|
"matrixuser": [
|
||||||
|
"@rmass_",
|
||||||
|
{"resolved": "sender"},
|
||||||
|
":loxthelion.com",
|
||||||
|
],
|
||||||
|
},
|
||||||
}
|
}
|
||||||
|
|
||||||
keys = [
|
keys = [
|
||||||
{
|
{
|
||||||
"keytitle": "displayname",
|
"keytitle": "displayname",
|
||||||
@@ -24,11 +34,10 @@ keys = [
|
|||||||
method = "PUT"
|
method = "PUT"
|
||||||
|
|
||||||
path = [
|
path = [
|
||||||
"https://loxthelion.com/_matrix/client/v3/profile/@rmass_",
|
"https://loxthelion.com/_matrix/client/v3/profile/",
|
||||||
{"resolved": "sender"},
|
{"resolved": "matrixuser"},
|
||||||
":loxthelion.com/displayname?user_id=@rmass_",
|
"/displayname?user_id=",
|
||||||
{"resolved": "sender"},
|
{"resolved": "matrixuser"},
|
||||||
":loxthelion.com"
|
|
||||||
]
|
]
|
||||||
|
|
||||||
headers = {
|
headers = {
|
||||||
|
|||||||
@@ -7,8 +7,21 @@ kind = "action"
|
|||||||
showstatus = True
|
showstatus = True
|
||||||
|
|
||||||
resolve = {
|
resolve = {
|
||||||
"sender": ["messages", 0, "senderId"],
|
"get": {
|
||||||
"username": ["profile", "username"],
|
"sender": ["messages", 0, "senderId"],
|
||||||
|
"username": ["profile", "username"],
|
||||||
|
},
|
||||||
|
"construct": {
|
||||||
|
"matrixuser": [
|
||||||
|
"@rmass_",
|
||||||
|
{"resolved": "sender"},
|
||||||
|
":loxthelion.com",
|
||||||
|
],
|
||||||
|
"matrixdm": [
|
||||||
|
"rmass_dm_",
|
||||||
|
{"resolved": "sender"},
|
||||||
|
],
|
||||||
|
},
|
||||||
}
|
}
|
||||||
|
|
||||||
keys = [
|
keys = [
|
||||||
@@ -21,8 +34,7 @@ keys = [
|
|||||||
{
|
{
|
||||||
"keytitle": "room_alias_name",
|
"keytitle": "room_alias_name",
|
||||||
"keyvalue": {
|
"keyvalue": {
|
||||||
"resolved": "sender",
|
"resolved": "matrixdm",
|
||||||
"prefix": "rmass_dm_",
|
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
@@ -55,9 +67,9 @@ keys = [
|
|||||||
method = "POST"
|
method = "POST"
|
||||||
|
|
||||||
path = [
|
path = [
|
||||||
"https://loxthelion.com/_matrix/client/v3/createRoom?user_id=@rmass_",
|
"https://loxthelion.com/_matrix/client/v3/createRoom?user_id=",
|
||||||
{"resolved": "sender"},
|
{"resolved": "matrixuser"},
|
||||||
":loxthelion.com",
|
#":loxthelion.com",
|
||||||
]
|
]
|
||||||
|
|
||||||
headers = {
|
headers = {
|
||||||
|
|||||||
@@ -7,11 +7,19 @@ kind = "action"
|
|||||||
showstatus = True
|
showstatus = True
|
||||||
|
|
||||||
resolve = {
|
resolve = {
|
||||||
"sender": ["messages", 0, "senderId"],
|
"get": {
|
||||||
#"messageid": ["message", "id"],
|
#"sender": ["messages", 0, "senderId"],
|
||||||
"username": ["profile", "username"],
|
#"username": ["profile", "username"],
|
||||||
"locationname": ["profile", "location"],
|
"locationname": ["profile", "location"],
|
||||||
"locationcode": ["profile", "searchCity"],
|
"locationcode": ["profile", "searchCity"],
|
||||||
|
},
|
||||||
|
"construct": {
|
||||||
|
"matrixspacealias": [
|
||||||
|
"rmass_space_",
|
||||||
|
{"resolved": "locationcode"},
|
||||||
|
#"%3Aloxthelion.com",
|
||||||
|
],
|
||||||
|
},
|
||||||
}
|
}
|
||||||
keys = [
|
keys = [
|
||||||
{
|
{
|
||||||
@@ -23,8 +31,8 @@ keys = [
|
|||||||
{
|
{
|
||||||
"keytitle": "room_alias_name",
|
"keytitle": "room_alias_name",
|
||||||
"keyvalue": {
|
"keyvalue": {
|
||||||
"resolved": "locationcode",
|
"resolved": "matrixspacealias",
|
||||||
"prefix": "rmass_space_",
|
#"prefix": "rmass_space_",
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
@@ -46,7 +54,7 @@ keys = [
|
|||||||
#"keyvalue": {
|
#"keyvalue": {
|
||||||
#"users": {
|
#"users": {
|
||||||
#"@lyncoln:loxthelion.com": 100,
|
#"@lyncoln:loxthelion.com": 100,
|
||||||
#"@rmass_:loxthelion.com": 100,
|
#"@rmass_*:loxthelion.com": 100,
|
||||||
#},
|
#},
|
||||||
#},
|
#},
|
||||||
#}
|
#}
|
||||||
@@ -55,9 +63,6 @@ keys = [
|
|||||||
method = "POST"
|
method = "POST"
|
||||||
|
|
||||||
path = [
|
path = [
|
||||||
#"https://loxthelion.com/_matrix/client/v3/createRoom?user_id=@rmass_",
|
|
||||||
#{"resolved": "sender"},
|
|
||||||
#":loxthelion.com",
|
|
||||||
"https://loxthelion.com/_matrix/client/v3/createRoom?user_id=@rmass_bridge:loxthelion.com"
|
"https://loxthelion.com/_matrix/client/v3/createRoom?user_id=@rmass_bridge:loxthelion.com"
|
||||||
]
|
]
|
||||||
|
|
||||||
|
|||||||
@@ -7,15 +7,23 @@ kind = "action"
|
|||||||
showstatus = True
|
showstatus = True
|
||||||
|
|
||||||
resolve = {
|
resolve = {
|
||||||
"sender": ["messages", 0, "senderId"],
|
"get": {
|
||||||
|
"sender": ["messages", 0, "senderId"],
|
||||||
|
},
|
||||||
|
"construct": {
|
||||||
|
"matrixdm": [
|
||||||
|
"%23rmass_dm_",
|
||||||
|
{"resolved": "sender"},
|
||||||
|
"%3Aloxthelion.com",
|
||||||
|
],
|
||||||
|
},
|
||||||
}
|
}
|
||||||
|
|
||||||
method = "GET"
|
method = "GET"
|
||||||
|
|
||||||
path = [
|
path = [
|
||||||
"https://loxthelion.com/_matrix/client/v3/directory/room/%23rmass_dm_",
|
"https://loxthelion.com/_matrix/client/v3/directory/room/",
|
||||||
{"resolved": "sender"},
|
{"resolved": "matrixdm"},
|
||||||
"%3Aloxthelion.com",
|
|
||||||
]
|
]
|
||||||
|
|
||||||
headers = {
|
headers = {
|
||||||
|
|||||||
@@ -7,16 +7,23 @@ kind = "action"
|
|||||||
showstatus = True
|
showstatus = True
|
||||||
|
|
||||||
resolve = {
|
resolve = {
|
||||||
"sender": ["messages", 0, "senderId"],
|
"get": {
|
||||||
"locationcode": ["profile", "searchCity"],
|
"locationcode": ["profile", "searchCity"],
|
||||||
|
},
|
||||||
|
"construct": {
|
||||||
|
"matrixspace": [
|
||||||
|
"%23rmass_space_",
|
||||||
|
{"resolved": "locationcode"},
|
||||||
|
"%3Aloxthelion.com",
|
||||||
|
],
|
||||||
|
},
|
||||||
}
|
}
|
||||||
|
|
||||||
method = "GET"
|
method = "GET"
|
||||||
|
|
||||||
path = [
|
path = [
|
||||||
"https://loxthelion.com/_matrix/client/v3/directory/room/%23rmass_space_",
|
"https://loxthelion.com/_matrix/client/v3/directory/room/",
|
||||||
{"resolved": "locationcode"},
|
{"resolved": "matrixspace"},
|
||||||
"%3Aloxthelion.com",
|
|
||||||
]
|
]
|
||||||
|
|
||||||
headers = {
|
headers = {
|
||||||
|
|||||||
@@ -13,12 +13,27 @@ recursive = {
|
|||||||
}
|
}
|
||||||
|
|
||||||
resolve = {
|
resolve = {
|
||||||
"sender": ["messageitem", "senderId"],
|
"get": {
|
||||||
"message_id": ["messageitem", "id"],
|
"sender": ["messageitem", "senderId"],
|
||||||
"message_body": ["messageitem", "text"],
|
"message_id": ["messageitem", "id"],
|
||||||
"room_id": ["dmroom_id"],
|
"message_body": ["messageitem", "text"],
|
||||||
"timestamp": ["messageitem", "createdAt"],
|
"room_id": ["dmroom_id"],
|
||||||
|
"timestamp": ["messageitem", "createdAt"],
|
||||||
|
},
|
||||||
|
"construct": {
|
||||||
|
"matrixuser": [
|
||||||
|
"@rmass_",
|
||||||
|
{"resolved": "sender"},
|
||||||
|
":loxthelion.com",
|
||||||
|
],
|
||||||
|
},
|
||||||
|
"transform": {
|
||||||
|
"matrixuser": {
|
||||||
|
"@rmass_238302:loxthelion.com": "@lyncoln:loxthelion.com",
|
||||||
|
},
|
||||||
|
},
|
||||||
}
|
}
|
||||||
|
|
||||||
keys = [
|
keys = [
|
||||||
{
|
{
|
||||||
"keytitle": "msgtype",
|
"keytitle": "msgtype",
|
||||||
@@ -30,6 +45,17 @@ keys = [
|
|||||||
"resolved": "message_body",
|
"resolved": "message_body",
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
"keytitle": "format",
|
||||||
|
"keyvalue": "org.matrix.custom.html",
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"keytitle": "formatted_body",
|
||||||
|
"keyvalue": {
|
||||||
|
"resolved": "message_body",
|
||||||
|
},
|
||||||
|
},
|
||||||
|
|
||||||
]
|
]
|
||||||
|
|
||||||
method = "PUT"
|
method = "PUT"
|
||||||
@@ -39,9 +65,9 @@ path = [
|
|||||||
{"resolved": "room_id"},
|
{"resolved": "room_id"},
|
||||||
"/send/m.room.message/",
|
"/send/m.room.message/",
|
||||||
{"resolved": "message_id"},
|
{"resolved": "message_id"},
|
||||||
"?user_id=@rmass_",
|
"?user_id=",
|
||||||
{"resolved": "sender"},
|
{"resolved": "matrixuser"},
|
||||||
":loxthelion.com&ts=",
|
"&ts=",
|
||||||
{"resolved": "timestamp"},
|
{"resolved": "timestamp"},
|
||||||
"000"
|
"000"
|
||||||
]
|
]
|
||||||
|
|||||||
@@ -7,8 +7,10 @@ kind = "action"
|
|||||||
showstatus = True
|
showstatus = True
|
||||||
|
|
||||||
resolve = {
|
resolve = {
|
||||||
"sender": ["messages", 0, "senderId"],
|
"get": {
|
||||||
"username": ["profile", "username"],
|
"sender": ["messages", 0, "senderId"],
|
||||||
|
"username": ["profile", "username"],
|
||||||
|
}
|
||||||
}
|
}
|
||||||
keys = [
|
keys = [
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -0,0 +1 @@
|
|||||||
|
{"access_token": "eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzUxMiJ9.eyJleHAiOjE3OTIwNDA4ODgsIm5iZiI6MTc5MjA0MDcwOCwic3ViIjoiMjM4MzAyIiwidXNlcm5hbWUiOiJYeHhvdGlxIiwidXNlclR5cGUiOjEsInN0YWdlTmFtZSI6Ilh4eG90aXEiLCJhcHByb3ZlZCI6MSwibG9jYXRpb25JZCI6NDcyLCJzZWFyY2hDaXR5IjoiYXRsYW50YSIsImNvdW50cnlTaG9ydCI6IlVTIiwic2Vzc2lvbkNvdW50cnlDb250aW5lbnQiOiJOQSIsImlzRnJvemVuIjowLCJsb2NhdGlvbkxhYmVsIjoiQXRsYW50YSwgR0EiLCJpc3MiOiJodHRwczovL3JlbnRtYXNzZXVyLmNvbSIsImlhdCI6MTc5MjA0MDc2OH0.8twTKQb2OG-OfT_C2eAwD2OpV__X7S-MWnpVXdLeLvBzfZcW6ZJLesvSqgYXeO56yn-_UblIUEwfy_B8EuDTSw", "refresh_token": "eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzUxMiJ9.eyJleHAiOjE3OTQ2MzI3NjgsIm5iZiI6MTc5MjA0MDcwOCwianRpIjoiUXRjRXE2TWtGdWhHNjdiTHdLak1kdzJXazIzMlFtVkp4K2J3aGs2RTlCZz0iLCJpc3MiOiJodHRwczovL3JlbnRtYXNzZXVyLmNvbSIsImlhdCI6MTc5MjA0MDc2OCwic3ViIjoiMjM4MzAyIn0.zmQ9S08NHgr2q0g3VloTgY3xBjATxXk2mdg6MbeHjuQ47OZ24E8bBNyRaqDJYJ0OnCkF5CvepJ5ISlnvkqTPRA"}
|
||||||
+1
-1
@@ -1 +1 @@
|
|||||||
{"access_token": "eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzUxMiJ9.eyJleHAiOjE3OTIwMzI4ODYsIm5iZiI6MTc5MjAzMjcwNiwic3ViIjoiMjM4MzAyIiwidXNlcm5hbWUiOiJYeHhvdGlxIiwidXNlclR5cGUiOjEsInN0YWdlTmFtZSI6Ilh4eG90aXEiLCJhcHByb3ZlZCI6MSwibG9jYXRpb25JZCI6NDcyLCJzZWFyY2hDaXR5IjoiYXRsYW50YSIsImNvdW50cnlTaG9ydCI6IlVTIiwic2Vzc2lvbkNvdW50cnlDb250aW5lbnQiOiJOQSIsImlzRnJvemVuIjowLCJsb2NhdGlvbkxhYmVsIjoiQXRsYW50YSwgR0EiLCJpc3MiOiJodHRwczovL3JlbnRtYXNzZXVyLmNvbSIsImlhdCI6MTc5MjAzMjc2Nn0.ChWvtapeudX4p0aEXxxMB0FWjDbLSCqgzevyi8UlhXj34l397o70_Owtns60TGh4JbC2l4EBInTggujF3bYREg", "refresh_token": "eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzUxMiJ9.eyJleHAiOjE3OTQ2MjQ3NjYsIm5iZiI6MTc5MjAzMjcwNiwianRpIjoibzNZYXMrNU5YNkRSc3pSa05kOTBQa3BMMTJ5VXkwWWx6ZTVNUUZMbFovcz0iLCJpc3MiOiJodHRwczovL3JlbnRtYXNzZXVyLmNvbSIsImlhdCI6MTc5MjAzMjc2Niwic3ViIjoiMjM4MzAyIn0.tXWt8Jgc9jW006ZKSPMsueWNUNWaaenlkDc9-TphAkLDtWWRY5_2zz8Bdt8qgl_s0NJ_WDXnv6WwU5on054BZA"}
|
{"access_token": "eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzUxMiJ9.eyJleHAiOjE3OTIwODQ2MDksIm5iZiI6MTc5MjA4NDQyOSwic3ViIjoiMjM4MzAyIiwidXNlcm5hbWUiOiJYeHhvdGlxIiwidXNlclR5cGUiOjEsInN0YWdlTmFtZSI6Ilh4eG90aXEiLCJhcHByb3ZlZCI6MSwibG9jYXRpb25JZCI6NDcyLCJzZWFyY2hDaXR5IjoiYXRsYW50YSIsImNvdW50cnlTaG9ydCI6IlVTIiwic2Vzc2lvbkNvdW50cnlDb250aW5lbnQiOiJOQSIsImlzRnJvemVuIjowLCJsb2NhdGlvbkxhYmVsIjoiQXRsYW50YSwgR0EiLCJpc3MiOiJodHRwczovL3JlbnRtYXNzZXVyLmNvbSIsImlhdCI6MTc5MjA4NDQ4OX0.CcXQrFvFl5LraO3VWoe3CZ4u-jAHVuMt6Fag2_v5QJ79ekRsPMnOFSMjLycaZoc0hTZRiJnpUIqBWKmTsg2juA", "refresh_token": "eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzUxMiJ9.eyJleHAiOjE3OTQ2NzY0ODksIm5iZiI6MTc5MjA4NDQyOSwianRpIjoiQjIrSmxQWVdvYjYvOVBYTjZ3VnFrZzhmZHFrY05nQVZjbHF5YVluclJUdz0iLCJpc3MiOiJodHRwczovL3JlbnRtYXNzZXVyLmNvbSIsImlhdCI6MTc5MjA4NDQ4OSwic3ViIjoiMjM4MzAyIn0.RSOQP-lQv7N7Ut_YOkwF58-k-kGoFYCsGqYISJiUxajJ2YuDWz6vMQoWCN82NYUPJvfFDnGgiiugAnrhWS-OoQ"}
|
||||||
Reference in New Issue
Block a user