Skip to content
Permalink

Comparing changes

Choose two branches to see what’s changed or to start a new pull request. If you need to, you can also or learn more about diff comparisons.

Open a pull request

Create a new pull request by comparing changes across two branches. If you need to, you can also . Learn more about diff comparisons here.
base repository: mautrix/telegram
Failed to load repositories. Confirm that selected base ref is valid, then try again.
Loading
base: v0.9.0
Choose a base ref
...
head repository: mautrix/telegram
Failed to load repositories. Confirm that selected head ref is valid, then try again.
Loading
compare: master
Choose a head ref
Loading
Showing with 16,465 additions and 9,411 deletions.
  1. +0 −8 .codeclimate.yml
  2. +4 −1 .editorconfig
  3. +7 −0 .github/ISSUE_TEMPLATE/bug.md
  4. +7 −0 .github/ISSUE_TEMPLATE/config.yml
  5. +6 −0 .github/ISSUE_TEMPLATE/enhancement.md
  6. +26 −0 .github/workflows/python-lint.yml
  7. +13 −3 .gitignore
  8. +3 −48 .gitlab-ci.yml
  9. +0 −16 .isort.cfg
  10. +20 −0 .pre-commit-config.yaml
  11. +1,023 −0 CHANGELOG.md
  12. +23 −37 Dockerfile
  13. +1 −0 MANIFEST.in
  14. +16 −14 README.md
  15. +8 −5 ROADMAP.md
  16. +0 −71 alembic.ini
  17. +0 −1 alembic/README
  18. +0 −90 alembic/env.py
  19. +0 −24 alembic/script.py.mako
  20. +0 −27 alembic/versions/17574c57f3f8_add_disable_updates_field_for_puppets.py
  21. +0 −28 alembic/versions/1b241f7e8530_add_telegramfile_table.py
  22. +0 −26 alembic/versions/1fa46383a9d3_add_is_bot_field_to_puppets.py
  23. +0 −41 alembic/versions/2228d49c383f_add_cascade_rules_to_userportal.py
  24. +0 −27 alembic/versions/24f31fc8a72b_add_encrypted_field_for_portals.py
  25. +0 −25 alembic/versions/30eca60587f1_add_megagroup_field_to_portals.py
  26. +0 −32 alembic/versions/3e3745baa458_store_matrix_avatar_url_in_database.py
  27. +0 −26 alembic/versions/4f7d7ed5792a_switch_mx_user_profile_to_native_enum.py
  28. +0 −111 alembic/versions/501dad2868bc_move_sessions_to_main_database.py
  29. +0 −136 alembic/versions/6ca3d74d51e4_move_state_store_to_main_database.py
  30. +0 −26 alembic/versions/7d47d84380b6_add_timestamp_to_telegramfile.py
  31. +0 −30 alembic/versions/888275d58e57_add_double_puppet_base_url_to_puppet_.py
  32. +0 −80 alembic/versions/97d2a942bcf8_initial_revision.py
  33. +0 −48 alembic/versions/9e9c89b0b877_add_edit_index_to_messages.py
  34. +0 −38 alembic/versions/a328bf4f0932_store_encryption_state_event_in_db.py
  35. +0 −26 alembic/versions/a7c04a56041b_store_custom_puppet_next_batch_in_.py
  36. +0 −25 alembic/versions/a9119be92164_add_phone_number_field_to_users.py
  37. +0 −25 alembic/versions/b54929c22c86_add_portal_specific_config.py
  38. +0 −24 alembic/versions/bcfefa1f1299_add_displayname_source_fields_for_.py
  39. +0 −43 alembic/versions/bdadd173ee02_update_telethon_update_state_table.py
  40. +0 −71 alembic/versions/ccbaff858240_switch_to_mautrix_python_crypto.py
  41. +0 −35 alembic/versions/cfc972368e50_add_metadata_to_telegramfile.py
  42. +0 −26 alembic/versions/d3c922a6acd2_add_decryption_info_field_for_.py
  43. +0 −26 alembic/versions/d5f7b8b4b456_add_access_token_and_custom_mxid_fields_.py
  44. +0 −71 alembic/versions/dff56c93da8d_add_matrix_nio_state_store_to_main_db.py
  45. +0 −34 alembic/versions/eeaf0dae87ce_add_telethon_update_state_table.py
  46. +3 −0 dev-requirements.txt
  47. +23 −13 docker-run.sh
  48. +0 −2 helm/mautrix-telegram/.editorconfig
  49. +0 −1 helm/mautrix-telegram/.gitignore
  50. +0 −22 helm/mautrix-telegram/.helmignore
  51. +0 −14 helm/mautrix-telegram/Chart.yaml
  52. +0 −6 helm/mautrix-telegram/requirements.lock
  53. +0 −5 helm/mautrix-telegram/requirements.yaml
  54. +0 −21 helm/mautrix-telegram/templates/NOTES.txt
  55. +0 −55 helm/mautrix-telegram/templates/_helpers.tpl
  56. +0 −57 helm/mautrix-telegram/templates/configmap.yaml
  57. +0 −69 helm/mautrix-telegram/templates/deployment.yaml
  58. +0 −16 helm/mautrix-telegram/templates/service.yaml
  59. +0 −8 helm/mautrix-telegram/templates/serviceaccount.yaml
  60. +0 −141 helm/mautrix-telegram/values.yaml
  61. +1 −1 mautrix_telegram/__init__.py
  62. +76 −64 mautrix_telegram/__main__.py
  63. +494 −180 mautrix_telegram/abstract_user.py
  64. +277 −131 mautrix_telegram/bot.py
  65. +25 −7 mautrix_telegram/commands/__init__.py
  66. +123 −50 mautrix_telegram/commands/handler.py
  67. +0 −128 mautrix_telegram/commands/manhole.py
  68. +31 −59 mautrix_telegram/commands/matrix_auth.py
  69. +25 −24 mautrix_telegram/commands/portal/admin.py
  70. +145 −77 mautrix_telegram/commands/portal/bridge.py
  71. +39 −28 mautrix_telegram/commands/portal/config.py
  72. +28 −13 mautrix_telegram/commands/portal/create_chat.py
  73. +28 −18 mautrix_telegram/commands/portal/filter.py
  74. +228 −35 mautrix_telegram/commands/portal/misc.py
  75. +56 −38 mautrix_telegram/commands/portal/unbridge.py
  76. +24 −14 mautrix_telegram/commands/portal/util.py
  77. +86 −38 mautrix_telegram/commands/telegram/account.py
  78. +179 −146 mautrix_telegram/commands/telegram/auth.py
  79. +257 −102 mautrix_telegram/commands/telegram/misc.py
  80. +122 −52 mautrix_telegram/config.py
  81. +0 −57 mautrix_telegram/context.py
  82. +38 −9 mautrix_telegram/db/__init__.py
  83. +235 −0 mautrix_telegram/db/backfill_queue.py
  84. +30 −13 mautrix_telegram/db/bot_chat.py
  85. +78 −0 mautrix_telegram/db/disappearing_message.py
  86. +186 −54 mautrix_telegram/db/message.py
  87. +155 −29 mautrix_telegram/db/portal.py
  88. +113 −30 mautrix_telegram/db/puppet.py
  89. +100 −0 mautrix_telegram/db/reaction.py
  90. +82 −50 mautrix_telegram/db/telegram_file.py
  91. +266 −0 mautrix_telegram/db/telethon_session.py
  92. +24 −0 mautrix_telegram/db/upgrade/__init__.py
  93. +242 −0 mautrix_telegram/db/upgrade/v00_latest_revision.py
  94. +181 −0 mautrix_telegram/db/upgrade/v01_initial_revision.py
  95. +25 −0 mautrix_telegram/db/upgrade/v02_sponsored_events.py
  96. +39 −0 mautrix_telegram/db/upgrade/v03_reactions.py
  97. +14 −17 mautrix_telegram/{util/format_duration.py → db/upgrade/v04_disappearing_messages.py}
  98. +25 −0 mautrix_telegram/db/upgrade/v05_channel_ghosts.py
  99. +31 −0 mautrix_telegram/db/upgrade/v06_puppet_avatar_url.py
  100. +23 −0 mautrix_telegram/db/upgrade/v07_puppet_phone_number.py
  101. +24 −0 mautrix_telegram/db/upgrade/v08_portal_first_event.py
  102. +23 −0 mautrix_telegram/db/upgrade/v09_puppet_username_index.py
  103. +23 −0 mautrix_telegram/db/upgrade/v10_more_backfill_fields.py
  104. +45 −0 mautrix_telegram/db/upgrade/v11_backfill_queue.py
  105. +24 −0 mautrix_telegram/db/upgrade/v12_message_sender.py
  106. +54 −0 mautrix_telegram/db/upgrade/v13_multiple_reactions.py
  107. +23 −0 mautrix_telegram/db/upgrade/v14_puppet_custom_mxid_index.py
  108. +23 −0 mautrix_telegram/db/upgrade/v15_backfill_anchor_id.py
  109. +28 −0 mautrix_telegram/db/upgrade/v16_backfill_type.py
  110. +25 −0 mautrix_telegram/db/upgrade/v17_message_find_recent.py
  111. +25 −0 mautrix_telegram/db/upgrade/v18_puppet_contact_info_set.py
  112. +125 −75 mautrix_telegram/db/user.py
  113. +272 −108 mautrix_telegram/example-config.yaml
  114. +2 −7 mautrix_telegram/formatter/__init__.py
  115. +48 −109 mautrix_telegram/formatter/from_matrix/__init__.py
  116. +47 −44 mautrix_telegram/formatter/from_matrix/parser.py
  117. +40 −17 mautrix_telegram/formatter/from_matrix/telegram_message.py
  118. +272 −152 mautrix_telegram/formatter/from_telegram.py
  119. +5 −5 mautrix_telegram/get_version.py
  120. +249 −229 mautrix_telegram/matrix.py
  121. +4,076 −0 mautrix_telegram/portal.py
  122. +0 −21 mautrix_telegram/portal/__init__.py
  123. +0 −15 mautrix_telegram/portal/__init__.pyi
  124. +0 −536 mautrix_telegram/portal/base.py
  125. +0 −133 mautrix_telegram/portal/deduplication.py
  126. +0 −583 mautrix_telegram/portal/matrix.py
  127. +0 −850 mautrix_telegram/portal/metadata.py
  128. +0 −718 mautrix_telegram/portal/telegram.py
  129. +6 −0 mautrix_telegram/portal_util/__init__.py
  130. +157 −0 mautrix_telegram/portal_util/deduplication.py
  131. +1,040 −0 mautrix_telegram/portal_util/message_convert.py
  132. +109 −0 mautrix_telegram/portal_util/participants.py
  133. +158 −0 mautrix_telegram/portal_util/power_levels.py
  134. +18 −5 mautrix_telegram/{portal → portal_util}/send_lock.py
  135. +97 −0 mautrix_telegram/portal_util/sponsored_message.py
  136. +406 −266 mautrix_telegram/puppet.py
  137. +0 −88 mautrix_telegram/scripts/dbms_migrate/__main__.py
  138. 0 mautrix_telegram/scripts/telematrix_import/__init__.py
  139. +0 −125 mautrix_telegram/scripts/telematrix_import/__main__.py
  140. +0 −44 mautrix_telegram/scripts/telematrix_import/models.py
  141. 0 mautrix_telegram/scripts/{dbms_migrate → unicodemojipack}/__init__.py
  142. +397 −0 mautrix_telegram/scripts/unicodemojipack/__main__.py
  143. +39 −17 mautrix_telegram/tgclient.py
  144. +1 −1 mautrix_telegram/types.py
  145. +1 −0 mautrix_telegram/unicodemojipack.json
  146. BIN mautrix_telegram/unicodemojipack.pickle
  147. +865 −264 mautrix_telegram/user.py
  148. +11 −4 mautrix_telegram/util/__init__.py
  149. +12 −6 mautrix_telegram/util/color_log.py
  150. +281 −134 mautrix_telegram/util/file_transfer.py
  151. +161 −81 mautrix_telegram/util/parallel_file_transfer.py
  152. +7 −5 mautrix_telegram/util/recursive_dict.py
  153. +98 −60 mautrix_telegram/util/tgs_converter.py
  154. +39 −0 mautrix_telegram/util/tl_json.py
  155. +52 −0 mautrix_telegram/util/webm_converter.py
  156. +1 −1 mautrix_telegram/version.py
  157. +282 −91 mautrix_telegram/web/common/auth_api.py
  158. +495 −177 mautrix_telegram/web/provisioning/__init__.py
  159. +818 −588 mautrix_telegram/web/provisioning/spec.yaml
  160. +106 −62 mautrix_telegram/web/public/__init__.py
  161. +13 −15 optional-requirements.txt
  162. +12 −0 pyproject.toml
  163. +6 −6 requirements.txt
  164. +0 −2 setup.cfg
  165. +10 −13 setup.py
  166. 0 tests/__init__.py
  167. 0 tests/commands/__init__.py
  168. +0 −381 tests/commands/test_handler.py
  169. +0 −3 tests/conftest.py
  170. 0 tests/utils/__init__.py
  171. +0 −27 tests/utils/fixtures.py
  172. +0 −24 tests/utils/helpers.py
8 changes: 0 additions & 8 deletions .codeclimate.yml

This file was deleted.

5 changes: 4 additions & 1 deletion .editorconfig
Original file line number Diff line number Diff line change
@@ -8,11 +8,14 @@ charset = utf-8
trim_trailing_whitespace = true
insert_final_newline = true

[*.md]
trim_trailing_whitespace = false

[*.py]
max_line_length = 99

[*.{yaml,yml,py}]
indent_style = space

[.gitlab-ci.yml]
[{.gitlab-ci.yml,.pre-commit-config.yaml,mautrix_telegram/web/provisioning/spec.yaml}]
indent_size = 2
7 changes: 7 additions & 0 deletions .github/ISSUE_TEMPLATE/bug.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
---
name: Bug report
about: If something is definitely wrong in the bridge (rather than just a setup issue),
file a bug report. Remember to include relevant logs.
labels: bug

---
7 changes: 7 additions & 0 deletions .github/ISSUE_TEMPLATE/config.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
contact_links:
- name: Troubleshooting docs & FAQ
url: https://docs.mau.fi/bridges/general/troubleshooting.html
about: Check this first if you're having problems setting up the bridge.
- name: Support room
url: https://matrix.to/#/#telegram:maunium.net
about: For setup issues not answered by the troubleshooting docs, ask in the Matrix room.
6 changes: 6 additions & 0 deletions .github/ISSUE_TEMPLATE/enhancement.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
---
name: Enhancement request
about: Submit a feature request or other suggestion
labels: enhancement

---
26 changes: 26 additions & 0 deletions .github/workflows/python-lint.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,26 @@
name: Python lint

on: [push, pull_request]

jobs:
lint:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: actions/setup-python@v5
with:
python-version: "3.12"
- uses: isort/isort-action@master
with:
sortPaths: "./mautrix_telegram"
- uses: psf/black@stable
with:
src: "./mautrix_telegram"
version: "24.1.1"
- name: pre-commit
run: |
pip install pre-commit
pre-commit run -av trailing-whitespace
pre-commit run -av end-of-file-fixer
pre-commit run -av check-yaml
pre-commit run -av check-added-large-files
16 changes: 13 additions & 3 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -10,9 +10,19 @@ __pycache__
/*.egg-info
/.eggs

/config.yaml
/registration.yaml
*.yaml
!.pre-commit-config.yaml
!example-config.yaml
!/mautrix_telegram/web/provisioning/spec.yaml
!/.github/workflows/*.yaml

/start
/mautrix
/telethon

*.log*
*.db
*.pickle
*.db-*
/*.pickle
*.bak
/*.json
51 changes: 3 additions & 48 deletions .gitlab-ci.yml
Original file line number Diff line number Diff line change
@@ -1,48 +1,3 @@
image: docker:stable

stages:
- build
- manifest

default:
before_script:
- docker login -u $CI_REGISTRY_USER -p $CI_REGISTRY_PASSWORD $CI_REGISTRY

build amd64:
stage: build
tags:
- amd64
script:
- docker pull $CI_REGISTRY_IMAGE:latest || true
- docker build --pull --cache-from $CI_REGISTRY_IMAGE:latest --build-arg TARGETARCH=amd64 --tag $CI_REGISTRY_IMAGE:$CI_COMMIT_SHA-amd64 .
- docker push $CI_REGISTRY_IMAGE:$CI_COMMIT_SHA-amd64
- docker rmi $CI_REGISTRY_IMAGE:$CI_COMMIT_SHA-amd64
after_script:
- |
if [ "$CI_COMMIT_BRANCH" = "master" ]; then
apk add --update curl
rm -rf /var/cache/apk/*
curl "$NOVA_ADMIN_API_URL" -H "Content-Type: application/json" -d '{"password":"'"$NOVA_ADMIN_NIGHTLY_PASS"'","bridge":"'$NOVA_BRIDGE_TYPE'","image":"'$CI_REGISTRY_IMAGE':'$CI_COMMIT_SHA'-amd64"}'
fi
build arm64:
stage: build
tags:
- arm64
script:
- docker pull $CI_REGISTRY_IMAGE:latest || true
- docker build --pull --cache-from $CI_REGISTRY_IMAGE:latest --build-arg TARGETARCH=arm64 --tag $CI_REGISTRY_IMAGE:$CI_COMMIT_SHA-arm64 .
- docker push $CI_REGISTRY_IMAGE:$CI_COMMIT_SHA-arm64
- docker rmi $CI_REGISTRY_IMAGE:$CI_COMMIT_SHA-arm64

manifest:
stage: manifest
before_script:
- "mkdir -p $HOME/.docker && echo '{\"experimental\": \"enabled\"}' > $HOME/.docker/config.json"
- docker login -u $CI_REGISTRY_USER -p $CI_REGISTRY_PASSWORD $CI_REGISTRY
script:
- docker pull $CI_REGISTRY_IMAGE:$CI_COMMIT_SHA-amd64
- docker pull $CI_REGISTRY_IMAGE:$CI_COMMIT_SHA-arm64
- if [ "$CI_COMMIT_BRANCH" = "master" ]; then docker manifest create $CI_REGISTRY_IMAGE:latest $CI_REGISTRY_IMAGE:$CI_COMMIT_SHA-amd64 $CI_REGISTRY_IMAGE:$CI_COMMIT_SHA-arm64 && docker manifest push $CI_REGISTRY_IMAGE:latest; fi
- if [ "$CI_COMMIT_BRANCH" != "master" ]; then docker manifest create $CI_REGISTRY_IMAGE:$CI_COMMIT_REF_NAME $CI_REGISTRY_IMAGE:$CI_COMMIT_SHA-amd64 $CI_REGISTRY_IMAGE:$CI_COMMIT_SHA-arm64 && docker manifest push $CI_REGISTRY_IMAGE:$CI_COMMIT_REF_NAME; fi
- docker rmi $CI_REGISTRY_IMAGE:$CI_COMMIT_SHA-amd64 $CI_REGISTRY_IMAGE:$CI_COMMIT_SHA-arm64
include:
- project: 'mautrix/ci'
file: '/python.yml'
16 changes: 0 additions & 16 deletions .isort.cfg

This file was deleted.

20 changes: 20 additions & 0 deletions .pre-commit-config.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
repos:
- repo: https://github.com/pre-commit/pre-commit-hooks
rev: v4.5.0
hooks:
- id: trailing-whitespace
exclude_types: [markdown]
- id: end-of-file-fixer
- id: check-yaml
- id: check-added-large-files
- repo: https://github.com/psf/black
rev: 24.1.1
hooks:
- id: black
language_version: python3
files: ^mautrix_telegram/.*\.pyi?$
- repo: https://github.com/PyCQA/isort
rev: 5.13.2
hooks:
- id: isort
files: ^mautrix_telegram/.*\.pyi?$
Loading