Add bot_avatar config field

This commit is contained in:
Tulir Asokan
2018-07-15 16:03:46 +03:00
parent dfca56b292
commit 87dc1a44b2
4 changed files with 17 additions and 11 deletions
+5 -2
View File
@@ -41,14 +41,17 @@ appservice:
# The prefix to use in the provisioning API endpoints.
prefix: /_matrix/provision/v1
# The shared secret to authorize users of the API.
# If you leave the default token, a random token will be generated and saved at startup.
shared_secret: "Very secret shared secret"
# Set to "generate" to generate and save a new token.
shared_secret: generate
# The unique ID of this appservice.
id: telegram
# Username of the appservice bot.
bot_username: telegrambot
# Display name and avatar for bot. Set to "remove" to remove display name/avatar, leave empty
# to leave display name/avatar as-is.
bot_displayname: Telegram bridge bot
bot_avatar: mxc://maunium.net/tJCRmUyJDsgRNgqhOgoiHWbX
# Authentication tokens for AS <-> HS communication. Autogenerated; do not modify.
as_token: "This value is generated when generating the registration"
+2 -1
View File
@@ -162,12 +162,13 @@ class Config(DictWithRecursion):
copy("appservice.provisioning.enabled")
copy("appservice.provisioning.prefix")
copy("appservice.provisioning.shared_secret")
if base["appservice.provisioning.shared_secret"] == "Very secret shared secret":
if base["appservice.provisioning.shared_secret"] == "generate":
base["appservice.provisioning.shared_secret"] = self._new_token()
copy("appservice.id")
copy("appservice.bot_username")
copy("appservice.bot_displayname")
copy("appservice.bot_avatar")
copy("appservice.as_token")
copy("appservice.hs_token")
+3 -6
View File
@@ -14,13 +14,13 @@
#
# You should have received a copy of the GNU Affero General Public License
# along with this program. If not, see <https://www.gnu.org/licenses/>.
from typing import Tuple
import asyncio
from sqlalchemy.orm import scoped_session
from alchemysession import AlchemySessionContainer
from mautrix_appservice import AppService
class Context:
def __init__(self, az, db, config, loop, bot, mx, session_container, public_website,
provisioning_api):
@@ -38,10 +38,7 @@ class Context:
self.session_container = session_container # type: AlchemySessionContainer
self.public_website = public_website # type: PublicBridgeWebsite
self.provisioning_api = provisioning_api # type: ProvisioningAPI
self.t = (self.az, self.db, self.config, self.loop, self.bot)
def __iter__(self):
yield self.az
yield self.db
yield self.config
yield self.loop
yield self.bot
return iter(self.t)
+7 -2
View File
@@ -36,8 +36,13 @@ class MatrixHandler:
self.az.matrix_event_handler(self.handle_event)
async def init_as_bot(self):
await self.az.intent.set_display_name(
self.config.get("appservice.bot_displayname", "Telegram bridge bot"))
displayname = self.config["appservice.bot_displayname"]
if displayname:
await self.az.intent.set_display_name(displayname if displayname != "remove" else "")
avatar = self.config["appservice.bot_avatar"]
if avatar:
await self.az.intent.set_avatar(avatar if avatar != "remove" else "")
async def handle_puppet_invite(self, room, puppet, inviter):
self.log.debug(f"{inviter} invited puppet for {puppet.tgid} to {room}")