mirror of
https://github.com/YunoHost-Apps/mautrix_telegram_ynh.git
synced 2024-09-03 19:45:55 +02:00
Merge pull request #24 from YunoHost-Apps/testing
Testing to master [update v0.11.3, configure e2be and add autoupdater]
This commit is contained in:
commit
d1892c2bdb
11 changed files with 267 additions and 82 deletions
93
.github/workflows/updater.sh
vendored
Executable file
93
.github/workflows/updater.sh
vendored
Executable file
|
@ -0,0 +1,93 @@
|
||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
#=================================================
|
||||||
|
# PACKAGE UPDATING HELPER
|
||||||
|
#=================================================
|
||||||
|
|
||||||
|
# This script is meant to be run by GitHub Actions
|
||||||
|
# The YunoHost-Apps organisation offers a template Action to run this script periodically
|
||||||
|
# Since each app is different, maintainers can adapt its contents so as to perform
|
||||||
|
# automatic actions when a new upstream release is detected.
|
||||||
|
|
||||||
|
#=================================================
|
||||||
|
# FETCHING LATEST RELEASE AND ITS ASSETS
|
||||||
|
#=================================================
|
||||||
|
|
||||||
|
# Fetching information
|
||||||
|
current_version=$(cat manifest.json | jq -j '.version|split("~")[0]')
|
||||||
|
repo=$(cat manifest.json | jq -j '.upstream.code|split("https://github.com/")[1]')
|
||||||
|
# Some jq magic is needed, because the latest upstream release is not always the latest version (e.g. security patches for older versions)
|
||||||
|
version=$(curl --silent "https://api.github.com/repos/$repo/releases" | jq -r '.[] | select( .prerelease != true ) | .tag_name' | sort -V | tail -1)
|
||||||
|
tarball_url="https://github.com/$repo/archive/refs/tags/$version.tar.gz"
|
||||||
|
|
||||||
|
# Later down the script, we assume the version has only digits and dots
|
||||||
|
# Sometimes the release name starts with a "v", so let's filter it out.
|
||||||
|
# You may need more tweaks here if the upstream repository has different naming conventions.
|
||||||
|
if [[ ${version:0:1} == "v" || ${version:0:1} == "V" ]]; then
|
||||||
|
version=${version:1}
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Setting up the environment variables
|
||||||
|
echo "Current version: $current_version"
|
||||||
|
echo "Latest release from upstream: $version"
|
||||||
|
echo "VERSION=$version" >> $GITHUB_ENV
|
||||||
|
# For the time being, let's assume the script will fail
|
||||||
|
echo "PROCEED=false" >> $GITHUB_ENV
|
||||||
|
|
||||||
|
# Proceed only if the retrieved version is greater than the current one
|
||||||
|
if ! dpkg --compare-versions "$current_version" "lt" "$version" ; then
|
||||||
|
echo "::warning ::No new version available"
|
||||||
|
exit 0
|
||||||
|
# Proceed only if a PR for this new version does not already exist
|
||||||
|
elif git ls-remote -q --exit-code --heads https://github.com/$GITHUB_REPOSITORY.git ci-auto-update-v$version ; then
|
||||||
|
echo "::warning ::A branch already exists for this update"
|
||||||
|
exit 0
|
||||||
|
fi
|
||||||
|
|
||||||
|
#=================================================
|
||||||
|
# UPDATE SOURCE FILES
|
||||||
|
#=================================================
|
||||||
|
|
||||||
|
# Create the temporary directory
|
||||||
|
tempdir="$(mktemp -d)"
|
||||||
|
|
||||||
|
# Download sources and calculate checksum
|
||||||
|
filename=${tarball_url##*/}
|
||||||
|
curl --silent -4 -L "$tarball_url" -o "$tempdir/$filename"
|
||||||
|
checksum=$(sha256sum "$tempdir/$filename" | head -c 64)
|
||||||
|
|
||||||
|
# Rewrite source file
|
||||||
|
cat <<EOT > conf/app.src
|
||||||
|
SOURCE_URL=$tarball_url
|
||||||
|
SOURCE_SUM=$checksum
|
||||||
|
SOURCE_SUM_PRG=sha256sum
|
||||||
|
SOURCE_FORMAT=tar.gz
|
||||||
|
SOURCE_IN_SUBDIR=true
|
||||||
|
SOURCE_FILENAME=mautrix-telegram.tar.gz
|
||||||
|
SOURCE_EXTRACT=false
|
||||||
|
EOT
|
||||||
|
|
||||||
|
echo "... conf/app.src updated"
|
||||||
|
|
||||||
|
# Delete temporary directory
|
||||||
|
rm -rf $tempdir
|
||||||
|
|
||||||
|
#=================================================
|
||||||
|
# SPECIFIC UPDATE STEPS
|
||||||
|
#=================================================
|
||||||
|
|
||||||
|
# Any action on the app's source code can be done.
|
||||||
|
# The GitHub Action workflow takes care of committing all changes after this script ends.
|
||||||
|
|
||||||
|
#=================================================
|
||||||
|
# GENERIC FINALIZATION
|
||||||
|
#=================================================
|
||||||
|
|
||||||
|
# Replace new version in manifest
|
||||||
|
echo "$(jq -s --indent 4 ".[] | .version = \"$version~ynh1\"" manifest.json)" > manifest.json
|
||||||
|
|
||||||
|
# No need to update the README, yunohost-bot takes care of it
|
||||||
|
|
||||||
|
# The Action will proceed only if the PROCEED environment variable is set to true
|
||||||
|
echo "PROCEED=true" >> $GITHUB_ENV
|
||||||
|
exit 0
|
49
.github/workflows/updater.yml
vendored
Normal file
49
.github/workflows/updater.yml
vendored
Normal file
|
@ -0,0 +1,49 @@
|
||||||
|
# This workflow allows GitHub Actions to automagically update your app whenever a new upstream release is detected.
|
||||||
|
# You need to enable Actions in your repository settings, and fetch this Action from the YunoHost-Apps organization.
|
||||||
|
# This file should be enough by itself, but feel free to tune it to your needs.
|
||||||
|
# It calls updater.sh, which is where you should put the app-specific update steps.
|
||||||
|
name: Check for new upstream releases
|
||||||
|
on:
|
||||||
|
# Allow to manually trigger the workflow
|
||||||
|
workflow_dispatch:
|
||||||
|
# Run it every day at 6:00 UTC
|
||||||
|
schedule:
|
||||||
|
- cron: '0 6 * * *'
|
||||||
|
jobs:
|
||||||
|
updater:
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
steps:
|
||||||
|
- name: Fetch the source code
|
||||||
|
uses: actions/checkout@v2
|
||||||
|
with:
|
||||||
|
token: ${{ secrets.GITHUB_TOKEN }}
|
||||||
|
- name: Run the updater script
|
||||||
|
id: run_updater
|
||||||
|
run: |
|
||||||
|
# Setting up Git user
|
||||||
|
git config --global user.name 'yunohost-bot'
|
||||||
|
git config --global user.email 'yunohost-bot@users.noreply.github.com'
|
||||||
|
# Run the updater script
|
||||||
|
/bin/bash .github/workflows/updater.sh
|
||||||
|
- name: Commit changes
|
||||||
|
id: commit
|
||||||
|
if: ${{ env.PROCEED == 'true' }}
|
||||||
|
run: |
|
||||||
|
git commit -am "Upgrade to v$VERSION"
|
||||||
|
- name: Create Pull Request
|
||||||
|
id: cpr
|
||||||
|
if: ${{ env.PROCEED == 'true' }}
|
||||||
|
uses: peter-evans/create-pull-request@v3
|
||||||
|
with:
|
||||||
|
token: ${{ secrets.GITHUB_TOKEN }}
|
||||||
|
commit-message: Update to version ${{ env.VERSION }}
|
||||||
|
committer: 'yunohost-bot <yunohost-bot@users.noreply.github.com>'
|
||||||
|
author: 'yunohost-bot <yunohost-bot@users.noreply.github.com>'
|
||||||
|
signoff: false
|
||||||
|
base: testing
|
||||||
|
branch: ci-auto-update-v${{ env.VERSION }}
|
||||||
|
delete-branch: true
|
||||||
|
title: 'Upgrade to version ${{ env.VERSION }}'
|
||||||
|
body: |
|
||||||
|
Upgrade to v${{ env.VERSION }}
|
||||||
|
draft: false
|
|
@ -50,7 +50,8 @@ See also [upstream wiki Authentication page](https://docs.mau.fi/bridges/python/
|
||||||
* see https://docs.mau.fi/bridges/python/telegram/relay-bot.html
|
* see https://docs.mau.fi/bridges/python/telegram/relay-bot.html
|
||||||
|
|
||||||
|
|
||||||
**Shipped version:** 0.10.2~ynh4
|
**Shipped version:** 0.11.3~ynh2
|
||||||
|
|
||||||
## Disclaimers / important information
|
## Disclaimers / important information
|
||||||
|
|
||||||
### Configuration of the bridge
|
### Configuration of the bridge
|
||||||
|
|
|
@ -50,7 +50,8 @@ See also [upstream wiki Authentication page](https://docs.mau.fi/bridges/python/
|
||||||
* see https://docs.mau.fi/bridges/python/telegram/relay-bot.html
|
* see https://docs.mau.fi/bridges/python/telegram/relay-bot.html
|
||||||
|
|
||||||
|
|
||||||
**Version incluse :** 0.10.2~ynh4
|
**Version incluse :** 0.11.3~ynh2
|
||||||
|
|
||||||
## Avertissements / informations importantes
|
## Avertissements / informations importantes
|
||||||
|
|
||||||
### Configuration of the bridge
|
### Configuration of the bridge
|
||||||
|
|
|
@ -20,7 +20,7 @@
|
||||||
setup_private=0
|
setup_private=0
|
||||||
setup_public=0
|
setup_public=0
|
||||||
upgrade=1
|
upgrade=1
|
||||||
upgrade=1 from_commit=78e25377746ff6a488614c6ea00b8ce7c7e6d88a
|
upgrade=1 from_commit=dfed70e3419d23349690ea2234747ac1de2d7fb0
|
||||||
backup_restore=1
|
backup_restore=1
|
||||||
multi_instance=1
|
multi_instance=1
|
||||||
port_already_use=1
|
port_already_use=1
|
||||||
|
@ -29,5 +29,5 @@
|
||||||
Email=
|
Email=
|
||||||
Notification=none
|
Notification=none
|
||||||
;;; Upgrade options
|
;;; Upgrade options
|
||||||
; commit=78e25377746ff6a488614c6ea00b8ce7c7e6d88a
|
; commit=dfed70e3419d23349690ea2234747ac1de2d7fb0
|
||||||
name=0.10.1~ynh3
|
name=0.10.2~ynh3
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
SOURCE_URL=https://github.com/mautrix/telegram/archive/refs/tags/v0.10.2.tar.gz
|
SOURCE_URL=https://github.com/mautrix/telegram/archive/refs/tags/v0.11.3.tar.gz
|
||||||
SOURCE_SUM=6c55dd22d71dc8c78a3069acabcd66d8c181c795688f37bfc88fc461e99f5e25
|
SOURCE_SUM=5ce51e8265316e1ac706c7f70c446d28b9728cb26e63b6afc48412d12ccd9a97
|
||||||
SOURCE_SUM_PRG=sha256sum
|
SOURCE_SUM_PRG=sha256sum
|
||||||
SOURCE_FORMAT=tar.gz
|
SOURCE_FORMAT=tar.gz
|
||||||
SOURCE_IN_SUBDIR=true
|
SOURCE_IN_SUBDIR=true
|
||||||
|
|
134
conf/config.yaml
134
conf/config.yaml
|
@ -8,6 +8,17 @@ homeserver:
|
||||||
# Only applies if address starts with https://
|
# Only applies if address starts with https://
|
||||||
verify_ssl: __VERIFY_SERVER_SSL_CERTIFICATES__
|
verify_ssl: __VERIFY_SERVER_SSL_CERTIFICATES__
|
||||||
asmux: __MATRIX_SERVER_SUPPORTS_ASMUX__
|
asmux: __MATRIX_SERVER_SUPPORTS_ASMUX__
|
||||||
|
# Number of retries for all HTTP requests if the homeserver isn't reachable.
|
||||||
|
http_retry_count: 4
|
||||||
|
# The URL to push real-time bridge status to.
|
||||||
|
# If set, the bridge will make POST requests to this URL whenever a user's Telegram connection state changes.
|
||||||
|
# The bridge will use the appservice as_token to authorize requests.
|
||||||
|
status_endpoint: null
|
||||||
|
# Endpoint for reporting per-message status.
|
||||||
|
message_send_checkpoint_endpoint: null
|
||||||
|
# Whether asynchronous uploads via MSC2246 should be enabled for media.
|
||||||
|
# Requires a media repo that supports MSC2246.
|
||||||
|
async_media: false
|
||||||
|
|
||||||
# Application service host/registration related details
|
# Application service host/registration related details
|
||||||
# Changing these values requires regeneration of the registration.
|
# Changing these values requires regeneration of the registration.
|
||||||
|
@ -25,13 +36,15 @@ appservice:
|
||||||
# Usually 1 is enough, but on high-traffic bridges you might need to increase this to avoid 413s
|
# Usually 1 is enough, but on high-traffic bridges you might need to increase this to avoid 413s
|
||||||
max_body_size: 1
|
max_body_size: 1
|
||||||
|
|
||||||
# The full URI to the database. SQLite and Postgres are fully supported.
|
# The full URI to the database. SQLite and Postgres are supported.
|
||||||
# Other DBMSes supported by SQLAlchemy may or may not work.
|
|
||||||
# Format examples:
|
# Format examples:
|
||||||
# SQLite: sqlite:///filename.db
|
# SQLite: sqlite:///filename.db
|
||||||
# Postgres: postgres://username:password@hostname/dbname
|
# Postgres: postgres://username:password@hostname/dbname
|
||||||
database: postgres://__MAUTRIX_BRIDGE_USER__:__MAUTRIX_BRIDGE_DB_PWD__@localhost:5432/__MAUTRIX_BRIDGE_DB_NAME__
|
database: postgres://__MAUTRIX_BRIDGE_USER__:__MAUTRIX_BRIDGE_DB_PWD__@localhost:5432/__MAUTRIX_BRIDGE_DB_NAME__
|
||||||
# Optional extra arguments for SQLAlchemy's create_engine
|
# Additional arguments for asyncpg.create_pool() or sqlite3.connect()
|
||||||
|
# https://magicstack.github.io/asyncpg/current/api/index.html#asyncpg.pool.create_pool
|
||||||
|
# https://docs.python.org/3/library/sqlite3.html#sqlite3.connect
|
||||||
|
# For sqlite, min_size is used as the connection thread pool size and max_size is ignored.
|
||||||
database_opts: {}
|
database_opts: {}
|
||||||
|
|
||||||
# Public part of web server for out-of-Matrix interaction with the bridge.
|
# Public part of web server for out-of-Matrix interaction with the bridge.
|
||||||
|
@ -47,12 +60,12 @@ appservice:
|
||||||
external: https://example.com/public
|
external: https://example.com/public
|
||||||
|
|
||||||
# Provisioning API part of the web server for automated portal creation and fetching information.
|
# Provisioning API part of the web server for automated portal creation and fetching information.
|
||||||
# Used by things like mautrix-manager (https://github.com/mautrix/manager).
|
# Used by things like mautrix-manager (https://github.com/tulir/mautrix-manager).
|
||||||
provisioning:
|
provisioning:
|
||||||
# Whether or not the provisioning API should be enabled.
|
# Whether or not the provisioning API should be enabled.
|
||||||
enabled: false
|
enabled: false
|
||||||
# The prefix to use in the provisioning API endpoints.
|
# The prefix to use in the provisioning API endpoints.
|
||||||
prefix: /_matrix/provision/v1
|
prefix: /_matrix/provision
|
||||||
# The shared secret to authorize users of the API.
|
# The shared secret to authorize users of the API.
|
||||||
# Set to "generate" to generate and save a new token.
|
# Set to "generate" to generate and save a new token.
|
||||||
shared_secret: generate
|
shared_secret: generate
|
||||||
|
@ -66,12 +79,6 @@ appservice:
|
||||||
bot_displayname: Telegram bridge bot
|
bot_displayname: Telegram bridge bot
|
||||||
bot_avatar: mxc://maunium.net/tJCRmUyJDsgRNgqhOgoiHWbX
|
bot_avatar: mxc://maunium.net/tJCRmUyJDsgRNgqhOgoiHWbX
|
||||||
|
|
||||||
# Community ID for bridged users (changes registration file) and rooms.
|
|
||||||
# Must be created manually.
|
|
||||||
#
|
|
||||||
# Example: "+telegram:example.com". Set to false to disable.
|
|
||||||
community_id: +telegram:__SERVER_NAME__
|
|
||||||
|
|
||||||
# Whether or not to receive ephemeral events via appservice transactions.
|
# Whether or not to receive ephemeral events via appservice transactions.
|
||||||
# Requires MSC2409 support (i.e. Synapse 1.22+).
|
# Requires MSC2409 support (i.e. Synapse 1.22+).
|
||||||
# You should disable bridge -> sync_with_custom_puppets when this is enabled.
|
# You should disable bridge -> sync_with_custom_puppets when this is enabled.
|
||||||
|
@ -95,7 +102,7 @@ manhole:
|
||||||
# The list of UIDs who can be added to the whitelist.
|
# The list of UIDs who can be added to the whitelist.
|
||||||
# If empty, any UIDs can be specified in the open-manhole command.
|
# If empty, any UIDs can be specified in the open-manhole command.
|
||||||
whitelist:
|
whitelist:
|
||||||
- 0
|
- 0
|
||||||
|
|
||||||
# Bridge config
|
# Bridge config
|
||||||
bridge:
|
bridge:
|
||||||
|
@ -124,9 +131,9 @@ bridge:
|
||||||
# "username"
|
# "username"
|
||||||
# "phone number"
|
# "phone number"
|
||||||
displayname_preference:
|
displayname_preference:
|
||||||
- full name
|
- full name
|
||||||
- username
|
- username
|
||||||
- phone number
|
- phone number
|
||||||
# Maximum length of displayname
|
# Maximum length of displayname
|
||||||
displayname_max_length: 100
|
displayname_max_length: 100
|
||||||
# Remove avatars from Telegram ghost users when removed on Telegram. This is disabled by default
|
# Remove avatars from Telegram ghost users when removed on Telegram. This is disabled by default
|
||||||
|
@ -202,11 +209,12 @@ bridge:
|
||||||
inline_images: false
|
inline_images: false
|
||||||
# Maximum size of image in megabytes before sending to Telegram as a document.
|
# Maximum size of image in megabytes before sending to Telegram as a document.
|
||||||
image_as_file_size: 10
|
image_as_file_size: 10
|
||||||
# Maximum size of Telegram documents in megabytes to bridge.
|
# Maximum number of pixels in an image before sending to Telegram as a document. Defaults to 1280x1280 = 1638400.
|
||||||
max_document_size: 100
|
image_as_file_pixels: 1638400
|
||||||
# Enable experimental parallel file transfer, which makes uploads/downloads much faster by
|
# Enable experimental parallel file transfer, which makes uploads/downloads much faster by
|
||||||
# streaming from/to Matrix and using many connections for Telegram.
|
# streaming from/to Matrix and using many connections for Telegram.
|
||||||
# Note that generating HQ thumbnails for videos is not possible with streamed transfers.
|
# Note that generating HQ thumbnails for videos is not possible with streamed transfers.
|
||||||
|
# This option uses internal Telethon implementation details and may break with minor updates.
|
||||||
parallel_file_transfer: false
|
parallel_file_transfer: false
|
||||||
# Whether or not created rooms should have federation enabled.
|
# Whether or not created rooms should have federation enabled.
|
||||||
# If false, created portal rooms will never be federated.
|
# If false, created portal rooms will never be federated.
|
||||||
|
@ -216,35 +224,24 @@ bridge:
|
||||||
# Format to which animated stickers should be converted.
|
# Format to which animated stickers should be converted.
|
||||||
# disable - No conversion, send as-is (gzipped lottie)
|
# disable - No conversion, send as-is (gzipped lottie)
|
||||||
# png - converts to non-animated png (fastest),
|
# png - converts to non-animated png (fastest),
|
||||||
# gif - converts to animated gif, but loses transparency
|
# gif - converts to animated gif
|
||||||
# webm - converts to webm video, requires ffmpeg executable with vp9 codec and webm container support
|
# webm - converts to webm video, requires ffmpeg executable with vp9 codec and webm container support
|
||||||
target: gif
|
target: gif
|
||||||
# Arguments for converter. All converters take width and height.
|
# Arguments for converter. All converters take width and height.
|
||||||
# GIF converter takes background as a hex color.
|
|
||||||
args:
|
args:
|
||||||
width: 256
|
width: 256
|
||||||
height: 256
|
height: 256
|
||||||
background: "020202" # only for gif
|
fps: 25 # only for webm and gif (2, 5, 10, 20 or 25 recommended)
|
||||||
fps: 30 # only for webm
|
# End-to-bridge encryption support options.
|
||||||
# End-to-bridge encryption support options. These require matrix-nio to be installed with pip
|
|
||||||
# and login_shared_secret to be configured in order to get a device for the bridge bot.
|
|
||||||
#
|
#
|
||||||
# Additionally, https://github.com/matrix-org/synapse/pull/5758 is required if using a normal
|
# See https://docs.mau.fi/bridges/general/end-to-bridge-encryption.html for more info.
|
||||||
# application service.
|
|
||||||
encryption:
|
encryption:
|
||||||
# Allow encryption, work in group chat rooms with e2ee enabled
|
# Allow encryption, work in group chat rooms with e2ee enabled
|
||||||
allow: false
|
allow: __IS_ENCRYPTION_ENABLED__
|
||||||
# Default to encryption, force-enable encryption in all portals the bridge creates
|
# Default to encryption, force-enable encryption in all portals the bridge creates
|
||||||
# This will cause the bridge bot to be in private chats for the encryption to work properly.
|
# This will cause the bridge bot to be in private chats for the encryption to work properly.
|
||||||
default: false
|
default: __IS_ENCRYPTION_ENABLED__
|
||||||
# Database for the encryption data. Currently only supports Postgres and an in-memory
|
# Database for the encryption data. If set to `default`, will use the appservice database.
|
||||||
# store that's persisted as a pickle.
|
|
||||||
# If set to `default`, will use the appservice postgres database
|
|
||||||
# or a pickle file if the appservice database is sqlite.
|
|
||||||
#
|
|
||||||
# Format examples:
|
|
||||||
# Pickle: pickle:///filename.pickle
|
|
||||||
# Postgres: postgres://username:password@hostname/dbname
|
|
||||||
database: default
|
database: default
|
||||||
# Options for automatic key sharing.
|
# Options for automatic key sharing.
|
||||||
key_sharing:
|
key_sharing:
|
||||||
|
@ -270,6 +267,21 @@ bridge:
|
||||||
# This field will automatically be changed back to false after it,
|
# This field will automatically be changed back to false after it,
|
||||||
# except if the config file is not writable.
|
# except if the config file is not writable.
|
||||||
resend_bridge_info: false
|
resend_bridge_info: false
|
||||||
|
# When using double puppeting, should muted chats be muted in Matrix?
|
||||||
|
mute_bridging: false
|
||||||
|
# When using double puppeting, should pinned chats be moved to a specific tag in Matrix?
|
||||||
|
# The favorites tag is `m.favourite`.
|
||||||
|
pinned_tag: null
|
||||||
|
# Same as above for archived chats, the low priority tag is `m.lowpriority`.
|
||||||
|
archive_tag: null
|
||||||
|
# Whether or not mute status and tags should only be bridged when the portal room is created.
|
||||||
|
tag_only_on_create: true
|
||||||
|
# Should leaving the room on Matrix make the user leave on Telegram?
|
||||||
|
bridge_matrix_leave: true
|
||||||
|
# Should the user be kicked out of all portals when logging out of the bridge?
|
||||||
|
kick_on_logout: true
|
||||||
|
# Should the "* user joined Telegram" notice always be marked as read automatically?
|
||||||
|
always_read_joined_telegram_notice: true
|
||||||
# Settings for backfilling messages from Telegram.
|
# Settings for backfilling messages from Telegram.
|
||||||
backfill:
|
backfill:
|
||||||
# Whether or not the Telegram ghosts of logged in Matrix users should be
|
# Whether or not the Telegram ghosts of logged in Matrix users should be
|
||||||
|
@ -316,16 +328,10 @@ bridge:
|
||||||
exceptions:
|
exceptions:
|
||||||
- "@importantbot:example.com"
|
- "@importantbot:example.com"
|
||||||
|
|
||||||
# Some config options related to Telegram message deduplication.
|
# An array of possible values for the $distinguisher variable in message formats.
|
||||||
# The default values are usually fine, but some debug messages/warnings might recommend you
|
# Each user gets one of the values here, based on a hash of their user ID.
|
||||||
# change these.
|
# If the array is empty, the $distinguisher variable will also be empty.
|
||||||
deduplication:
|
relay_user_distinguishers: ["🟦", "🟣", "🟩", "⭕️", "🔶", "⬛️", "🔵", "🟢"]
|
||||||
# Whether or not to check the database if the message about to be sent is a duplicate.
|
|
||||||
pre_db_check: false
|
|
||||||
# The number of latest events to keep when checking for duplicates.
|
|
||||||
# You might need to increase this on high-traffic bridge instances.
|
|
||||||
cache_queue_length: 20
|
|
||||||
|
|
||||||
# The formats to use when sending messages to Telegram via the relay bot.
|
# The formats to use when sending messages to Telegram via the relay bot.
|
||||||
# Text msgtypes (m.text, m.notice and m.emote) support HTML, media msgtypes don't.
|
# Text msgtypes (m.text, m.notice and m.emote) support HTML, media msgtypes don't.
|
||||||
#
|
#
|
||||||
|
@ -333,16 +339,17 @@ bridge:
|
||||||
# $sender_displayname - The display name of the sender (e.g. Example User)
|
# $sender_displayname - The display name of the sender (e.g. Example User)
|
||||||
# $sender_username - The username (Matrix ID localpart) of the sender (e.g. exampleuser)
|
# $sender_username - The username (Matrix ID localpart) of the sender (e.g. exampleuser)
|
||||||
# $sender_mxid - The Matrix ID of the sender (e.g. @exampleuser:example.com)
|
# $sender_mxid - The Matrix ID of the sender (e.g. @exampleuser:example.com)
|
||||||
|
# $distinguisher - A random string from the options in the relay_user_distinguishers array.
|
||||||
# $message - The message content
|
# $message - The message content
|
||||||
message_formats:
|
message_formats:
|
||||||
m.text: "<b>$sender_displayname</b>: $message"
|
m.text: "$distinguisher <b>$sender_displayname</b>: $message"
|
||||||
m.notice: "<b>$sender_displayname</b>: $message"
|
m.notice: "$distinguisher <b>$sender_displayname</b>: $message"
|
||||||
m.emote: "* <b>$sender_displayname</b> $message"
|
m.emote: "* $distinguisher <b>$sender_displayname</b> $message"
|
||||||
m.file: "<b>$sender_displayname</b> sent a file: $message"
|
m.file: "$distinguisher <b>$sender_displayname</b> sent a file: $message"
|
||||||
m.image: "<b>$sender_displayname</b> sent an image: $message"
|
m.image: "$distinguisher <b>$sender_displayname</b> sent an image: $message"
|
||||||
m.audio: "<b>$sender_displayname</b> sent an audio file: $message"
|
m.audio: "$distinguisher <b>$sender_displayname</b> sent an audio file: $message"
|
||||||
m.video: "<b>$sender_displayname</b> sent a video: $message"
|
m.video: "$distinguisher <b>$sender_displayname</b> sent a video: $message"
|
||||||
m.location: "<b>$sender_displayname</b> sent a location: $message"
|
m.location: "$distinguisher <b>$sender_displayname</b> sent a location: $message"
|
||||||
# Telegram doesn't have built-in emotes, this field specifies how m.emote's from authenticated
|
# Telegram doesn't have built-in emotes, this field specifies how m.emote's from authenticated
|
||||||
# users are sent to telegram. All fields in message_formats are supported. Additionally, the
|
# users are sent to telegram. All fields in message_formats are supported. Additionally, the
|
||||||
# Telegram user info is available in the following variables:
|
# Telegram user info is available in the following variables:
|
||||||
|
@ -358,9 +365,9 @@ bridge:
|
||||||
#
|
#
|
||||||
# Set format to an empty string to disable the messages for that event.
|
# Set format to an empty string to disable the messages for that event.
|
||||||
state_event_formats:
|
state_event_formats:
|
||||||
join: "<b>$displayname</b> joined the room."
|
join: "$distinguisher <b>$displayname</b> joined the room."
|
||||||
leave: "<b>$displayname</b> left the room."
|
leave: "$distinguisher <b>$displayname</b> left the room."
|
||||||
name_change: "<b>$prev_displayname</b> changed their name to <b>$displayname</b>"
|
name_change: "$distinguisher <b>$prev_displayname</b> changed their name to $distinguisher <b>$displayname</b>"
|
||||||
|
|
||||||
# Filter rooms that can/can't be bridged. Can also be managed using the `filter` and
|
# Filter rooms that can/can't be bridged. Can also be managed using the `filter` and
|
||||||
# `filter-mode` management commands.
|
# `filter-mode` management commands.
|
||||||
|
@ -378,6 +385,21 @@ bridge:
|
||||||
# The prefix for commands. Only required in non-management rooms.
|
# The prefix for commands. Only required in non-management rooms.
|
||||||
command_prefix: "!tg"
|
command_prefix: "!tg"
|
||||||
|
|
||||||
|
# Messages sent upon joining a management room.
|
||||||
|
# Markdown is supported. The defaults are listed below.
|
||||||
|
management_room_text:
|
||||||
|
# Sent when joining a room.
|
||||||
|
welcome: "Hello, I'm a Telegram bridge bot."
|
||||||
|
# Sent when joining a management room and the user is already logged in.
|
||||||
|
welcome_connected: "Use `help` for help."
|
||||||
|
# Sent when joining a management room and the user is not logged in.
|
||||||
|
welcome_unconnected: "Use `help` for help or `login` to log in."
|
||||||
|
# Optional extra text sent when joining a management room.
|
||||||
|
additional_help: ""
|
||||||
|
|
||||||
|
# Send each message separately (for readability in some clients)
|
||||||
|
management_room_multiple_messages: false
|
||||||
|
|
||||||
# Permissions for using the bridge.
|
# Permissions for using the bridge.
|
||||||
# Permitted values:
|
# Permitted values:
|
||||||
# relaybot - Only use the bridge via the relaybot, no access to commands.
|
# relaybot - Only use the bridge via the relaybot, no access to commands.
|
||||||
|
|
|
@ -6,7 +6,7 @@
|
||||||
"en": "Telegram puppeting bridge for Matrix/Synapse",
|
"en": "Telegram puppeting bridge for Matrix/Synapse",
|
||||||
"fr": "Passerelle Telegram pour Matrix/Synapse"
|
"fr": "Passerelle Telegram pour Matrix/Synapse"
|
||||||
},
|
},
|
||||||
"version": "0.10.2~ynh4",
|
"version": "0.11.3~ynh2",
|
||||||
"url": "https://docs.mau.fi/bridges/python/telegram/index.html",
|
"url": "https://docs.mau.fi/bridges/python/telegram/index.html",
|
||||||
"upstream": {
|
"upstream": {
|
||||||
"license": "AGPL-3.0-or-later",
|
"license": "AGPL-3.0-or-later",
|
||||||
|
@ -21,7 +21,7 @@
|
||||||
"email": ""
|
"email": ""
|
||||||
},
|
},
|
||||||
"requirements": {
|
"requirements": {
|
||||||
"yunohost": ">= 4.3.0"
|
"yunohost": ">= 11.0.0"
|
||||||
},
|
},
|
||||||
"multi_instance": true,
|
"multi_instance": true,
|
||||||
"services": [
|
"services": [
|
||||||
|
@ -64,8 +64,8 @@
|
||||||
"fr": "Activer le chiffrement entre Synapse et le bridge ?"
|
"fr": "Activer le chiffrement entre Synapse et le bridge ?"
|
||||||
},
|
},
|
||||||
"help": {
|
"help": {
|
||||||
"en": "Only activate if you know the prerequisites and constraints related to e2b.",
|
"en": "Only activate if you know the prerequisites and constraints related to e2b. See more: https://docs.mau.fi/bridges/general/end-to-bridge-encryption.html",
|
||||||
"fr": "N'activer que si vous connaissez les prérequis et constraintes liées à e2b."
|
"fr": "N'activer que si vous connaissez les prérequis et constraintes liées à e2b. Voir aussi : https://docs.mau.fi/bridges/general/end-to-bridge-encryption.html"
|
||||||
},
|
},
|
||||||
"default": false
|
"default": false
|
||||||
},
|
},
|
||||||
|
|
|
@ -7,6 +7,7 @@
|
||||||
# dependencies used by the app
|
# dependencies used by the app
|
||||||
# HACK zlib1g-dev libjpeg-dev (libwebp-dev optional but necessary for stickers) are necessary to compile / install pillow
|
# HACK zlib1g-dev libjpeg-dev (libwebp-dev optional but necessary for stickers) are necessary to compile / install pillow
|
||||||
pkg_dependencies="postgresql python3 zlib1g-dev libjpeg-dev libwebp-dev python3-venv libpq-dev libffi-dev"
|
pkg_dependencies="postgresql python3 zlib1g-dev libjpeg-dev libwebp-dev python3-venv libpq-dev libffi-dev"
|
||||||
|
pkg_dependencies_e2be="libolm-dev"
|
||||||
|
|
||||||
#=================================================
|
#=================================================
|
||||||
# PERSONAL HELPERS
|
# PERSONAL HELPERS
|
||||||
|
|
|
@ -107,6 +107,11 @@ ynh_app_setting_set --app=$app --key=port --value=$port
|
||||||
#=================================================
|
#=================================================
|
||||||
ynh_script_progression --message="Installing dependencies..." --weight=97
|
ynh_script_progression --message="Installing dependencies..." --weight=97
|
||||||
|
|
||||||
|
if [ $encryption -eq 1 ]; then
|
||||||
|
# Install libolm-dev to be able to use encryption
|
||||||
|
ynh_install_extra_app_dependencies $pkg_dependencies_e2be
|
||||||
|
fi
|
||||||
|
|
||||||
ynh_exec_warn_less ynh_install_app_dependencies $pkg_dependencies
|
ynh_exec_warn_less ynh_install_app_dependencies $pkg_dependencies
|
||||||
|
|
||||||
#=================================================
|
#=================================================
|
||||||
|
@ -159,6 +164,12 @@ ynh_script_progression --message="Configuring Mautrix-Bridge..." --weight=2
|
||||||
mautrix_config_path="$final_path/config.yaml"
|
mautrix_config_path="$final_path/config.yaml"
|
||||||
as_token="\"This value is generated when generating the registration\""
|
as_token="\"This value is generated when generating the registration\""
|
||||||
hs_token="\"This value is generated when generating the registration\""
|
hs_token="\"This value is generated when generating the registration\""
|
||||||
|
is_encryption_enabled=$encryption
|
||||||
|
|
||||||
|
if [ $encryption -eq 1 ]; then
|
||||||
|
is_encryption_enabled=true
|
||||||
|
fi
|
||||||
|
|
||||||
write_bridge_config
|
write_bridge_config
|
||||||
|
|
||||||
#=================================================
|
#=================================================
|
||||||
|
@ -170,14 +181,14 @@ mkdir -p /var/log/$app
|
||||||
python3 -m venv $final_path
|
python3 -m venv $final_path
|
||||||
export HOME=$final_path # HACK see https://github.com/mautrix/telegram/issues/661
|
export HOME=$final_path # HACK see https://github.com/mautrix/telegram/issues/661
|
||||||
$final_path/bin/pip3 install --upgrade pip setuptools wheel
|
$final_path/bin/pip3 install --upgrade pip setuptools wheel
|
||||||
$final_path/bin/pip3 install --upgrade $final_path/src/mautrix-telegram.tar.gz[postgres,speedups,qr_login] # metrics,hq_thumbnails,e2be
|
$final_path/bin/pip3 install --upgrade $final_path/src/mautrix-telegram.tar.gz[speedups,qr_login] # metrics,e2be,hq_thumbnails,sqlite,formattednumbers
|
||||||
|
|
||||||
|
if [ $encryption -eq 1 ]; then
|
||||||
|
$final_path/bin/pip3 install --upgrade $final_path/src/mautrix-telegram.tar.gz[e2be]
|
||||||
|
fi
|
||||||
|
|
||||||
# -r optional-requirements.txt
|
# -r optional-requirements.txt
|
||||||
$final_path/bin/python3 -m mautrix_telegram -g -c "$mautrix_config_path" -r "$app_service_registration_path/$app.yaml"
|
$final_path/bin/python3 -m mautrix_telegram -g -c "$mautrix_config_path" -r "$app_service_registration_path/$app.yaml"
|
||||||
# initialize the database
|
|
||||||
# HACK alembic won't find its script dir using a relative path unless when started from $final_path
|
|
||||||
# therefore we replace the script_location
|
|
||||||
ynh_replace_string --match_string="script_location = alembic" --replace_string="script_location = $final_path/alembic" --target_file="$final_path/alembic.ini"
|
|
||||||
ynh_exec_warn_less $final_path/bin/alembic -c "$final_path/alembic.ini" -x config="$mautrix_config_path" upgrade head
|
|
||||||
|
|
||||||
# Handled by synapse: synapse_ynh adds all registration files added in $app_service_registration_path to the app_service_config_files list
|
# Handled by synapse: synapse_ynh adds all registration files added in $app_service_registration_path to the app_service_config_files list
|
||||||
/opt/yunohost/matrix-$synapse_instance/update_synapse_for_appservice.sh || ynh_die --message="Synapse can't restart with the appservice configuration"
|
/opt/yunohost/matrix-$synapse_instance/update_synapse_for_appservice.sh || ynh_die --message="Synapse can't restart with the appservice configuration"
|
||||||
|
@ -189,7 +200,6 @@ ynh_exec_warn_less $final_path/bin/alembic -c "$final_path/alembic.ini" -x conf
|
||||||
# Calculate and store the config file checksum into the app settings
|
# Calculate and store the config file checksum into the app settings
|
||||||
ynh_store_file_checksum --file="$mautrix_config_path"
|
ynh_store_file_checksum --file="$mautrix_config_path"
|
||||||
ynh_store_file_checksum --file="$app_service_registration_path/$app.yaml"
|
ynh_store_file_checksum --file="$app_service_registration_path/$app.yaml"
|
||||||
ynh_store_file_checksum --file="$final_path/alembic.ini"
|
|
||||||
|
|
||||||
#=================================================
|
#=================================================
|
||||||
# SETUP SYSTEMD
|
# SETUP SYSTEMD
|
||||||
|
|
|
@ -97,6 +97,11 @@ fi
|
||||||
#=================================================
|
#=================================================
|
||||||
ynh_script_progression --message="Upgrading dependencies..." --weight=1
|
ynh_script_progression --message="Upgrading dependencies..." --weight=1
|
||||||
|
|
||||||
|
if [ $encryption -eq 1 ]; then
|
||||||
|
# Install libolm-dev to be able to use encryption
|
||||||
|
ynh_install_extra_app_dependencies $pkg_dependencies_e2be
|
||||||
|
fi
|
||||||
|
|
||||||
ynh_exec_warn_less ynh_install_app_dependencies $pkg_dependencies
|
ynh_exec_warn_less ynh_install_app_dependencies $pkg_dependencies
|
||||||
|
|
||||||
#=================================================
|
#=================================================
|
||||||
|
@ -110,7 +115,11 @@ if [ "$upgrade_type" == "UPGRADE_APP" ]; then
|
||||||
python3 -m venv $final_path
|
python3 -m venv $final_path
|
||||||
export HOME=$final_path
|
export HOME=$final_path
|
||||||
$final_path/bin/pip3 install --upgrade pip setuptools wheel
|
$final_path/bin/pip3 install --upgrade pip setuptools wheel
|
||||||
$final_path/bin/pip3 install --upgrade $final_path/src/mautrix-telegram.tar.gz[postgres,speedups,qr_login] #,hq_thumbnails
|
$final_path/bin/pip3 install --upgrade $final_path/src/mautrix-telegram.tar.gz[speedups,qr_login] # metrics,e2be,hq_thumbnails,sqlite,formattednumbers
|
||||||
|
|
||||||
|
if [ $encryption -eq 1 ]; then
|
||||||
|
$final_path/bin/pip3 install --upgrade $final_path/src/mautrix-telegram.tar.gz[e2be]
|
||||||
|
fi
|
||||||
fi
|
fi
|
||||||
|
|
||||||
#=================================================
|
#=================================================
|
||||||
|
@ -126,22 +135,21 @@ as_token=$(grep "as_token:" "$mautrix_config_path" | sed -r "s/ *as_token: *//")
|
||||||
hs_token=$(grep "hs_token:" "$mautrix_config_path" | sed -r "s/ *hs_token: *//")
|
hs_token=$(grep "hs_token:" "$mautrix_config_path" | sed -r "s/ *hs_token: *//")
|
||||||
# ynh_replace_string --match_string=__AS_TOKEN__ --replace_string="$as_token" --target_file="$mautrix_config_path"
|
# ynh_replace_string --match_string=__AS_TOKEN__ --replace_string="$as_token" --target_file="$mautrix_config_path"
|
||||||
# ynh_replace_string --match_string=__HS_TOKEN__ --replace_string="$hs_token" --target_file="$mautrix_config_path"
|
# ynh_replace_string --match_string=__HS_TOKEN__ --replace_string="$hs_token" --target_file="$mautrix_config_path"
|
||||||
|
is_encryption_enabled=$encryption
|
||||||
|
|
||||||
|
if [ $encryption -eq 1 ]; then
|
||||||
|
is_encryption_enabled=true
|
||||||
|
fi
|
||||||
|
|
||||||
write_bridge_config
|
write_bridge_config
|
||||||
|
|
||||||
# upgrade the app-service-registration
|
# upgrade the app-service-registration
|
||||||
ynh_backup_if_checksum_is_different --file="$app_service_registration_path/$app.yaml"
|
ynh_backup_if_checksum_is_different --file="$app_service_registration_path/$app.yaml"
|
||||||
$final_path/bin/python3 -m mautrix_telegram -g -c "$mautrix_config_path" -r "$app_service_registration_path/$app.yaml"
|
$final_path/bin/python3 -m mautrix_telegram -g -c "$mautrix_config_path" -r "$app_service_registration_path/$app.yaml"
|
||||||
|
|
||||||
# upgrade the alembic database
|
|
||||||
# TODO remove on next upgrade
|
|
||||||
# ynh_backup_if_checksum_is_different --file="$final_path/alembic.ini"
|
|
||||||
ynh_replace_string --match_string="script_location = alembic" --replace_string="script_location = $final_path/alembic" --target_file="$final_path/alembic.ini"
|
|
||||||
ynh_exec_warn_less $final_path/bin/alembic -c "$final_path/alembic.ini" -x config="$mautrix_config_path" upgrade head
|
|
||||||
|
|
||||||
# Recalculate and store the checksum of the file for the next upgrade.
|
# Recalculate and store the checksum of the file for the next upgrade.
|
||||||
ynh_store_file_checksum --file="$mautrix_config_path"
|
ynh_store_file_checksum --file="$mautrix_config_path"
|
||||||
ynh_store_file_checksum --file="$app_service_registration_path/$app.yaml"
|
ynh_store_file_checksum --file="$app_service_registration_path/$app.yaml"
|
||||||
ynh_store_file_checksum --file="$final_path/alembic.ini"
|
|
||||||
|
|
||||||
#=================================================
|
#=================================================
|
||||||
# SETUP SYSTEMD
|
# SETUP SYSTEMD
|
||||||
|
|
Loading…
Reference in a new issue