Open MurzNN opened 4 years ago
Попытался сделать:
log.info("try login matrix-client")
token = client.login(username=conf.username, password=conf.password,device_id=conf.device_id)
log.info("success login matrix-client")
log.info("try set set_presence='unavailable'")
# ['offline', 'unavailable', 'online']
ret = client.api.sync(set_presence="unavailable")
log.info(json.dumps(ret, indent=4, sort_keys=True,ensure_ascii=False))
log.info("success set set_presence='unavailable'")
В результате - ничего не поменялось :-( Причём, если передать, например, set_presence=2 - то в ret прилетает ошибка, что, дескать, допустимые значения только "online", "offline" и "unavailable". Пробовал "offline" и "unavailable" - результат один:
Вроде как из описания следует, что статус не должен меняться на "онлайн", даже если бот использует АПИ:
Controls whether the client is automatically marked as online by polling this API. If this parameter is omitted then the client is automatically marked as online when it uses this API. Otherwise if the parameter is set to "offline" then the client is not marked as being online when it uses this API. When set to "unavailable", the client is marked as being idle. One of: ["offline", "online", "unavailable"]
То ли оно не работает как должно, то ли я не понимаю чего-то :-)
Вроде как нужно при каждом запросе передавать свой статус "я всё ещё unavailable" иначе он принудительно метит online
В Riot-develop запилили индикатор онлайна, в результате теперь все ВК-юзеры светятся в онлайне постоянно, т.к. там отображается статус бота, а не юзера. Чтобы не смущать народ, наверное стоит боту поставить онлайн-статус "unavailable"?
https://matrix.org/docs/spec/client_server/r0.6.0#get-matrix-client-r0-sync - set_presence