ferogram 0.5.2b1__tar.gz → 0.5.3__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {ferogram-0.5.2b1 → ferogram-0.5.3}/.github/workflows/publish.yml +40 -15
- {ferogram-0.5.2b1 → ferogram-0.5.3}/CHANGELOG.md +18 -4
- {ferogram-0.5.2b1 → ferogram-0.5.3}/Cargo.lock +49 -17
- {ferogram-0.5.2b1 → ferogram-0.5.3}/Cargo.toml +9 -6
- {ferogram-0.5.2b1 → ferogram-0.5.3}/PKG-INFO +2 -2
- {ferogram-0.5.2b1 → ferogram-0.5.3}/ferogram/__init__.py +1 -1
- {ferogram-0.5.2b1 → ferogram-0.5.3}/ferogram/client.py +845 -239
- ferogram-0.5.3/ferogram/logging.py +176 -0
- {ferogram-0.5.2b1 → ferogram-0.5.3}/ferogram/raw/codegen.py +104 -48
- {ferogram-0.5.2b1 → ferogram-0.5.3}/ferogram/raw/generated/types/_base.py +13 -9
- {ferogram-0.5.2b1 → ferogram-0.5.3}/ferogram/raw/generated/types/stories.py +4 -0
- {ferogram-0.5.2b1 → ferogram-0.5.3}/ferogram/raw/proxy.py +79 -10
- {ferogram-0.5.2b1 → ferogram-0.5.3}/ferogram/raw/tl.py +163 -73
- {ferogram-0.5.2b1 → ferogram-0.5.3}/ferogram/types.py +18 -1
- {ferogram-0.5.2b1 → ferogram-0.5.3}/ferogram/updates.py +4 -2
- {ferogram-0.5.2b1 → ferogram-0.5.3}/pyproject.toml +2 -2
- ferogram-0.5.3/src/connection.rs +789 -0
- ferogram-0.5.3/src/lib.rs +118 -0
- ferogram-0.5.3/src/message_box.rs +311 -0
- {ferogram-0.5.2b1 → ferogram-0.5.3}/src/pipelined.rs +4 -1
- ferogram-0.5.2b1/ferogram/logging.py +0 -52
- ferogram-0.5.2b1/src/connection.rs +0 -400
- ferogram-0.5.2b1/src/lib.rs +0 -38
- {ferogram-0.5.2b1 → ferogram-0.5.3}/.github/workflows/compile-check.yml +0 -0
- {ferogram-0.5.2b1 → ferogram-0.5.3}/.gitignore +0 -0
- {ferogram-0.5.2b1 → ferogram-0.5.3}/.readthedocs.yaml +0 -0
- {ferogram-0.5.2b1 → ferogram-0.5.3}/FEATURES.md +0 -0
- {ferogram-0.5.2b1 → ferogram-0.5.3}/LICENSE-APACHE +0 -0
- {ferogram-0.5.2b1 → ferogram-0.5.3}/LICENSE-MIT +0 -0
- {ferogram-0.5.2b1 → ferogram-0.5.3}/Makefile +0 -0
- {ferogram-0.5.2b1 → ferogram-0.5.3}/README.md +0 -0
- {ferogram-0.5.2b1 → ferogram-0.5.3}/assets/architecture.svg +0 -0
- {ferogram-0.5.2b1 → ferogram-0.5.3}/build.rs +0 -0
- {ferogram-0.5.2b1 → ferogram-0.5.3}/examples/admin_tools.py +0 -0
- {ferogram-0.5.2b1 → ferogram-0.5.3}/examples/command_bot.py +0 -0
- {ferogram-0.5.2b1 → ferogram-0.5.3}/examples/echo_bot.py +0 -0
- {ferogram-0.5.2b1 → ferogram-0.5.3}/examples/group_management.py +0 -0
- {ferogram-0.5.2b1 → ferogram-0.5.3}/examples/media_bot.py +0 -0
- {ferogram-0.5.2b1 → ferogram-0.5.3}/examples/raw_invoke.py +0 -0
- {ferogram-0.5.2b1 → ferogram-0.5.3}/examples/rich_message.py +0 -0
- {ferogram-0.5.2b1 → ferogram-0.5.3}/examples/search_bot.py +0 -0
- {ferogram-0.5.2b1 → ferogram-0.5.3}/examples/send_hi.py +0 -0
- {ferogram-0.5.2b1 → ferogram-0.5.3}/examples/send_media.py +0 -0
- {ferogram-0.5.2b1 → ferogram-0.5.3}/examples/send_message.py +0 -0
- {ferogram-0.5.2b1 → ferogram-0.5.3}/examples/update_handlers.py +0 -0
- {ferogram-0.5.2b1 → ferogram-0.5.3}/examples/user_management.py +0 -0
- {ferogram-0.5.2b1 → ferogram-0.5.3}/examples/userbot.py +0 -0
- {ferogram-0.5.2b1 → ferogram-0.5.3}/ferogram/api.tl +0 -0
- {ferogram-0.5.2b1 → ferogram-0.5.3}/ferogram/filters.py +0 -0
- {ferogram-0.5.2b1 → ferogram-0.5.3}/ferogram/keyboards.py +0 -0
- {ferogram-0.5.2b1 → ferogram-0.5.3}/ferogram/py.typed +0 -0
- {ferogram-0.5.2b1 → ferogram-0.5.3}/ferogram/raw/__init__.py +0 -0
- {ferogram-0.5.2b1 → ferogram-0.5.3}/ferogram/raw/api/__init__.py +0 -0
- {ferogram-0.5.2b1 → ferogram-0.5.3}/ferogram/raw/api/functions.py +0 -0
- {ferogram-0.5.2b1 → ferogram-0.5.3}/ferogram/raw/api/types.py +0 -0
- {ferogram-0.5.2b1 → ferogram-0.5.3}/ferogram/raw/generated/__init__.py +0 -0
- {ferogram-0.5.2b1 → ferogram-0.5.3}/ferogram/raw/generated/_tl_schema.py +0 -0
- {ferogram-0.5.2b1 → ferogram-0.5.3}/ferogram/raw/generated/functions/__init__.py +0 -0
- {ferogram-0.5.2b1 → ferogram-0.5.3}/ferogram/raw/generated/functions/account.py +0 -0
- {ferogram-0.5.2b1 → ferogram-0.5.3}/ferogram/raw/generated/functions/aicompose.py +0 -0
- {ferogram-0.5.2b1 → ferogram-0.5.3}/ferogram/raw/generated/functions/auth.py +0 -0
- {ferogram-0.5.2b1 → ferogram-0.5.3}/ferogram/raw/generated/functions/bots.py +0 -0
- {ferogram-0.5.2b1 → ferogram-0.5.3}/ferogram/raw/generated/functions/channels.py +0 -0
- {ferogram-0.5.2b1 → ferogram-0.5.3}/ferogram/raw/generated/functions/chatlists.py +0 -0
- {ferogram-0.5.2b1 → ferogram-0.5.3}/ferogram/raw/generated/functions/communities.py +0 -0
- {ferogram-0.5.2b1 → ferogram-0.5.3}/ferogram/raw/generated/functions/contacts.py +0 -0
- {ferogram-0.5.2b1 → ferogram-0.5.3}/ferogram/raw/generated/functions/ephemeral.py +0 -0
- {ferogram-0.5.2b1 → ferogram-0.5.3}/ferogram/raw/generated/functions/folders.py +0 -0
- {ferogram-0.5.2b1 → ferogram-0.5.3}/ferogram/raw/generated/functions/fragment.py +0 -0
- {ferogram-0.5.2b1 → ferogram-0.5.3}/ferogram/raw/generated/functions/help.py +0 -0
- {ferogram-0.5.2b1 → ferogram-0.5.3}/ferogram/raw/generated/functions/langpack.py +0 -0
- {ferogram-0.5.2b1 → ferogram-0.5.3}/ferogram/raw/generated/functions/messages.py +0 -0
- {ferogram-0.5.2b1 → ferogram-0.5.3}/ferogram/raw/generated/functions/payments.py +0 -0
- {ferogram-0.5.2b1 → ferogram-0.5.3}/ferogram/raw/generated/functions/phone.py +0 -0
- {ferogram-0.5.2b1 → ferogram-0.5.3}/ferogram/raw/generated/functions/photos.py +0 -0
- {ferogram-0.5.2b1 → ferogram-0.5.3}/ferogram/raw/generated/functions/premium.py +0 -0
- {ferogram-0.5.2b1 → ferogram-0.5.3}/ferogram/raw/generated/functions/smsjobs.py +0 -0
- {ferogram-0.5.2b1 → ferogram-0.5.3}/ferogram/raw/generated/functions/stats.py +0 -0
- {ferogram-0.5.2b1 → ferogram-0.5.3}/ferogram/raw/generated/functions/stickers.py +0 -0
- {ferogram-0.5.2b1 → ferogram-0.5.3}/ferogram/raw/generated/functions/stories.py +0 -0
- {ferogram-0.5.2b1 → ferogram-0.5.3}/ferogram/raw/generated/functions/updates.py +0 -0
- {ferogram-0.5.2b1 → ferogram-0.5.3}/ferogram/raw/generated/functions/upload.py +0 -0
- {ferogram-0.5.2b1 → ferogram-0.5.3}/ferogram/raw/generated/functions/users.py +0 -0
- {ferogram-0.5.2b1 → ferogram-0.5.3}/ferogram/raw/generated/types/__init__.py +0 -0
- {ferogram-0.5.2b1 → ferogram-0.5.3}/ferogram/raw/generated/types/account.py +0 -0
- {ferogram-0.5.2b1 → ferogram-0.5.3}/ferogram/raw/generated/types/aicompose.py +0 -0
- {ferogram-0.5.2b1 → ferogram-0.5.3}/ferogram/raw/generated/types/auth.py +0 -0
- {ferogram-0.5.2b1 → ferogram-0.5.3}/ferogram/raw/generated/types/bots.py +0 -0
- {ferogram-0.5.2b1 → ferogram-0.5.3}/ferogram/raw/generated/types/channels.py +0 -0
- {ferogram-0.5.2b1 → ferogram-0.5.3}/ferogram/raw/generated/types/chatlists.py +0 -0
- {ferogram-0.5.2b1 → ferogram-0.5.3}/ferogram/raw/generated/types/communities.py +0 -0
- {ferogram-0.5.2b1 → ferogram-0.5.3}/ferogram/raw/generated/types/contacts.py +0 -0
- {ferogram-0.5.2b1 → ferogram-0.5.3}/ferogram/raw/generated/types/fragment.py +0 -0
- {ferogram-0.5.2b1 → ferogram-0.5.3}/ferogram/raw/generated/types/help.py +0 -0
- {ferogram-0.5.2b1 → ferogram-0.5.3}/ferogram/raw/generated/types/messages.py +0 -0
- {ferogram-0.5.2b1 → ferogram-0.5.3}/ferogram/raw/generated/types/payments.py +0 -0
- {ferogram-0.5.2b1 → ferogram-0.5.3}/ferogram/raw/generated/types/phone.py +0 -0
- {ferogram-0.5.2b1 → ferogram-0.5.3}/ferogram/raw/generated/types/photos.py +0 -0
- {ferogram-0.5.2b1 → ferogram-0.5.3}/ferogram/raw/generated/types/premium.py +0 -0
- {ferogram-0.5.2b1 → ferogram-0.5.3}/ferogram/raw/generated/types/smsjobs.py +0 -0
- {ferogram-0.5.2b1 → ferogram-0.5.3}/ferogram/raw/generated/types/stats.py +0 -0
- {ferogram-0.5.2b1 → ferogram-0.5.3}/ferogram/raw/generated/types/stickers.py +0 -0
- {ferogram-0.5.2b1 → ferogram-0.5.3}/ferogram/raw/generated/types/storage.py +0 -0
- {ferogram-0.5.2b1 → ferogram-0.5.3}/ferogram/raw/generated/types/updates.py +0 -0
- {ferogram-0.5.2b1 → ferogram-0.5.3}/ferogram/raw/generated/types/upload.py +0 -0
- {ferogram-0.5.2b1 → ferogram-0.5.3}/ferogram/raw/generated/types/users.py +0 -0
- {ferogram-0.5.2b1 → ferogram-0.5.3}/ferogram/rich.py +0 -0
- {ferogram-0.5.2b1 → ferogram-0.5.3}/src/raw.rs +0 -0
- {ferogram-0.5.2b1 → ferogram-0.5.3}/src/session.rs +0 -0
- {ferogram-0.5.2b1 → ferogram-0.5.3}/src/srp.rs +0 -0
- {ferogram-0.5.2b1 → ferogram-0.5.3}/tests/test_rich.py +0 -0
- {ferogram-0.5.2b1 → ferogram-0.5.3}/tests/test_tl_roundtrip.py +0 -0
|
@@ -15,7 +15,7 @@ on:
|
|
|
15
15
|
- linux
|
|
16
16
|
- macos
|
|
17
17
|
- windows
|
|
18
|
-
- android
|
|
18
|
+
- android-termux
|
|
19
19
|
- sdist
|
|
20
20
|
publish:
|
|
21
21
|
description: "Upload to PyPI after build"
|
|
@@ -102,8 +102,14 @@ jobs:
|
|
|
102
102
|
name: wheels-windows
|
|
103
103
|
path: dist
|
|
104
104
|
|
|
105
|
-
|
|
106
|
-
|
|
105
|
+
# Builds for Termux (the terminal app), not for embedding inside a
|
|
106
|
+
# general Android APK. This links against Termux's own Python package
|
|
107
|
+
# and Termux's runtime library layout - a wheel from this job is only
|
|
108
|
+
# installable via `pip install` inside Termux. It will not work with
|
|
109
|
+
# app-embedded interpreters like Chaquopy or python-for-android; those
|
|
110
|
+
# bundle their own CPython and need a separate build target entirely.
|
|
111
|
+
android-termux:
|
|
112
|
+
if: github.event_name == 'push' || inputs.job == 'all' || inputs.job == 'android-termux'
|
|
107
113
|
runs-on: ubuntu-latest
|
|
108
114
|
strategy:
|
|
109
115
|
fail-fast: false
|
|
@@ -128,7 +134,7 @@ jobs:
|
|
|
128
134
|
with:
|
|
129
135
|
python-version: "3.13"
|
|
130
136
|
|
|
131
|
-
- name: Setup Android NDK r26d
|
|
137
|
+
- name: Setup Android NDK r26d (cross-compiler for the Termux target)
|
|
132
138
|
uses: nttld/setup-ndk@v1
|
|
133
139
|
id: ndk
|
|
134
140
|
with:
|
|
@@ -190,7 +196,7 @@ jobs:
|
|
|
190
196
|
echo "TERMUX_PYVER=$PYVER" >> $GITHUB_ENV
|
|
191
197
|
echo "Linking against Termux libpython $PYVER ($SO_FILE)"
|
|
192
198
|
|
|
193
|
-
- name: Build
|
|
199
|
+
- name: Build Termux wheel
|
|
194
200
|
env:
|
|
195
201
|
ANDROID_NDK_HOME: ${{ steps.ndk.outputs.ndk-path }}
|
|
196
202
|
ANDROID_API_LEVEL: ${{ matrix.api }}
|
|
@@ -217,14 +223,13 @@ jobs:
|
|
|
217
223
|
export AR_${TARGET_LOWER}=$NDK_BIN/llvm-ar
|
|
218
224
|
export CARGO_TARGET_${TARGET_UPPER}_LINKER=$NDK_BIN/${CLANG_PREFIX}-clang
|
|
219
225
|
|
|
220
|
-
# Link against Termux's real libpython<version>.so
|
|
221
|
-
#
|
|
222
|
-
#
|
|
223
|
-
#
|
|
224
|
-
#
|
|
225
|
-
#
|
|
226
|
-
|
|
227
|
-
export RUSTFLAGS="-L native=$TERMUX_LIBDIR"
|
|
226
|
+
# Link against Termux's real libpython<version>.so, and embed the
|
|
227
|
+
# rpath Termux's own binaries carry (/data/data/com.termux/files/usr/lib)
|
|
228
|
+
# so the loader actually searches that directory at dlopen time.
|
|
229
|
+
# Without this, DT_NEEDED entries resolve to nothing even when the
|
|
230
|
+
# target file exists right there, since bionic doesn't search
|
|
231
|
+
# $PREFIX/lib by default the way it does system paths.
|
|
232
|
+
export RUSTFLAGS="-L native=$TERMUX_LIBDIR -C link-arg=-Wl,-rpath=/data/data/com.termux/files/usr/lib"
|
|
228
233
|
|
|
229
234
|
maturin build \
|
|
230
235
|
--release \
|
|
@@ -232,9 +237,29 @@ jobs:
|
|
|
232
237
|
--compatibility off \
|
|
233
238
|
--out dist
|
|
234
239
|
|
|
240
|
+
- name: Rewrite libpython dependency to be version-agnostic
|
|
241
|
+
run: |
|
|
242
|
+
which patchelf >/dev/null 2>&1 || (sudo apt-get update && sudo apt-get install -y patchelf)
|
|
243
|
+
for whl in dist/*.whl; do
|
|
244
|
+
whl_abs=$(readlink -f "$whl")
|
|
245
|
+
workdir=$(mktemp -d)
|
|
246
|
+
unzip -q "$whl_abs" -d "$workdir"
|
|
247
|
+
so_file=$(find "$workdir" -name "_ferogram*.so" | head -1)
|
|
248
|
+
if [ -z "$so_file" ]; then
|
|
249
|
+
echo "::error::No _ferogram*.so found inside $whl"
|
|
250
|
+
exit 1
|
|
251
|
+
fi
|
|
252
|
+
patchelf --replace-needed "libpython${TERMUX_PYVER}.so" "libpython3.so" "$so_file"
|
|
253
|
+
echo "Patched $so_file: DT_NEEDED libpython${TERMUX_PYVER}.so -> libpython3.so"
|
|
254
|
+
|
|
255
|
+
rm -f "$whl_abs"
|
|
256
|
+
(cd "$workdir" && zip -qr "$whl_abs" .)
|
|
257
|
+
rm -rf "$workdir"
|
|
258
|
+
done
|
|
259
|
+
|
|
235
260
|
- uses: actions/upload-artifact@v4
|
|
236
261
|
with:
|
|
237
|
-
name: wheels-android-${{ matrix.target }}
|
|
262
|
+
name: wheels-android-termux-${{ matrix.target }}
|
|
238
263
|
path: dist
|
|
239
264
|
|
|
240
265
|
sdist:
|
|
@@ -252,7 +277,7 @@ jobs:
|
|
|
252
277
|
path: dist
|
|
253
278
|
|
|
254
279
|
publish:
|
|
255
|
-
needs: [linux, macos, windows, android, sdist]
|
|
280
|
+
needs: [linux, macos, windows, android-termux, sdist]
|
|
256
281
|
if: |
|
|
257
282
|
always() &&
|
|
258
283
|
(github.event_name == 'push' || inputs.publish == true) &&
|
|
@@ -1,10 +1,24 @@
|
|
|
1
|
-
##
|
|
1
|
+
## 0.5.3 (2026-07-25)
|
|
2
|
+
|
|
3
|
+
- Added `Chat.is_community` and `Dialog.community_id`/`Dialog.is_community` for community support.
|
|
4
|
+
- `get_dialogs()` and `get_pinned_dialogs()` now handle `dialogCommunity` via `community_id` instead of assuming a `peer` field is present.
|
|
5
|
+
- Peer cache now tracks communities separately from channels instead of collapsing them together. `chatEmpty` is no longer cached as a basic chat, and a stored non-zero access hash can no longer get overwritten by a zero one.
|
|
6
|
+
- `serialize_object` now dispatches to the generated `to_bytes()` implementation before falling back to generic field serialization, about 1.7x faster. Output verified byte-identical across all 2,437 constructors in the schema.
|
|
7
|
+
- Fixed a TL codegen bug where a constructor's `flags:#` word was assumed to always be first on the wire and hoisted to the front of `from_bytes()`/`to_bytes()` unconditionally. `poll#966e2dbf`, `wallPaper#a437c3ed`, and `wallPaperNoFile#e0804116` declare `id:long` before `flags:#`, so those fields got read and written swapped, producing a garbage flags word and eventually overrunning the buffer. This was the root cause of the corruption seen in `updates.getDifference`. Codegen now tracks each flag marker's real position in the schema instead of assuming it comes first.
|
|
8
|
+
- Fixed a related codegen bug: `exportedChatlistInvite` and `stories.allStoriesNotModified` declare `flags:#` with no field gated on it. Codegen treated "no field uses this flag group" as "no flags word on the wire" and silently dropped 4 bytes, misaligning every field after it. Flag group presence is now determined from declared markers, not field usage.
|
|
9
|
+
- `ferogram/raw/tl.py`'s runtime fallback interpreter (`_read_value`/`serialize_object`) had the same "flags always first" bug. Fixed to read and write each flag group at its correct wire position.
|
|
10
|
+
- Regenerated all 1,642 generated types and 795 functions from `api.tl`. `tests/test_tl_roundtrip.py` (4,874 constructor x optional-field combinations) now passes.
|
|
11
|
+
- Fixed `join_chat()` and `join_invite_link()` assuming a bare `Updates` response, breaking on `messages.ChatInviteJoinResult`. The `Ok` variant now resolves and caches the joined peer; the `WebView` variant returns `None` since it needs an interactive bot flow that isn't supported yet.
|
|
12
|
+
- Fixed `promote_participant(rights=...)` merging requested rights into a fixed base set instead of replacing it, so limited admin permissions could never actually be granted. It now replaces the requested rights as intended.
|
|
13
|
+
- Fixed `send_message()`, `edit_message()`, and `forward_messages()` ignoring caller-supplied values for `no_webpage`, `silent`, `schedule_date`, and `send_as` in favor of hardcoded defaults. These are now respected.
|
|
14
|
+
- Fixed `send_invoice(test=...)`, `add_contact(add_phone_privacy_exception=...)`, and `get_blocked_users(my_stories_from=...)` ignoring the supplied value and always sending a hardcoded default.
|
|
15
|
+
|
|
16
|
+
## 0.5.2 (2026-07-17)
|
|
2
17
|
|
|
3
18
|
- Added `Client.get_chat_photos(peer, limit)`: photo/avatar history for groups and channels (`get_profile_photos` only ever worked for users). Current photo comes from the chat's full info, so it survives message deletion; older photos come from `messageActionChatEditPhoto` search history.
|
|
4
19
|
- Added fast re-auth support: `sign_out()` captures a `future_auth_token` when Telegram returns one and persists it via a new `DcConnection.get_future_auth_token`/`set_future_auth_token` pair (rides along in the existing session blob, no new session format code needed here). `request_login_code()` replays it automatically, so a returning session can skip code entry entirely (`auth.sentCodeSuccess`).
|
|
5
|
-
-
|
|
6
|
-
-
|
|
7
|
-
|
|
20
|
+
- MTProto handshake fix upstream (dc-tagged `p_q_inner_data` was being rejected by Telegram with RPC 444 outside DC2), pulled in transitively via `ferogram-mtsender`.
|
|
21
|
+
- Layer Upgrade to 228
|
|
8
22
|
## 0.5.1 (2026-06-29)
|
|
9
23
|
|
|
10
24
|
## What's Changed
|
|
@@ -52,6 +52,15 @@ version = "1.0.102"
|
|
|
52
52
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
53
53
|
checksum = "7f202df86484c868dbad7eaa557ef785d5c66295e41b460ef922eca0723b842c"
|
|
54
54
|
|
|
55
|
+
[[package]]
|
|
56
|
+
name = "arc-swap"
|
|
57
|
+
version = "1.9.2"
|
|
58
|
+
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
59
|
+
checksum = "c049c0be4daef0b145cb3555416b3b8ef5b7888a38aea1a3a155801fe7b0810b"
|
|
60
|
+
dependencies = [
|
|
61
|
+
"rustversion",
|
|
62
|
+
]
|
|
63
|
+
|
|
55
64
|
[[package]]
|
|
56
65
|
name = "async-stream"
|
|
57
66
|
version = "0.3.6"
|
|
@@ -392,8 +401,8 @@ checksum = "7360491ce676a36bf9bb3c56c1aa791658183a54d2744120f27285738d90465a"
|
|
|
392
401
|
|
|
393
402
|
[[package]]
|
|
394
403
|
name = "ferogram-connect"
|
|
395
|
-
version = "0.6.
|
|
396
|
-
source = "git+https://github.com/ankit-chaubey/ferogram?rev=
|
|
404
|
+
version = "0.6.4"
|
|
405
|
+
source = "git+https://github.com/ankit-chaubey/ferogram?rev=358ee50#358ee5013befb4a288d4363d81bda0e4e38ef7e1"
|
|
397
406
|
dependencies = [
|
|
398
407
|
"ferogram-crypto",
|
|
399
408
|
"ferogram-mtproto",
|
|
@@ -408,8 +417,8 @@ dependencies = [
|
|
|
408
417
|
|
|
409
418
|
[[package]]
|
|
410
419
|
name = "ferogram-crypto"
|
|
411
|
-
version = "0.6.
|
|
412
|
-
source = "git+https://github.com/ankit-chaubey/ferogram?rev=
|
|
420
|
+
version = "0.6.4"
|
|
421
|
+
source = "git+https://github.com/ankit-chaubey/ferogram?rev=358ee50#358ee5013befb4a288d4363d81bda0e4e38ef7e1"
|
|
413
422
|
dependencies = [
|
|
414
423
|
"aes",
|
|
415
424
|
"ctr",
|
|
@@ -423,10 +432,19 @@ dependencies = [
|
|
|
423
432
|
"tracing",
|
|
424
433
|
]
|
|
425
434
|
|
|
435
|
+
[[package]]
|
|
436
|
+
name = "ferogram-msgbox"
|
|
437
|
+
version = "0.6.4"
|
|
438
|
+
source = "git+https://github.com/ankit-chaubey/ferogram?rev=358ee50#358ee5013befb4a288d4363d81bda0e4e38ef7e1"
|
|
439
|
+
dependencies = [
|
|
440
|
+
"ferogram-tl-types",
|
|
441
|
+
"tracing",
|
|
442
|
+
]
|
|
443
|
+
|
|
426
444
|
[[package]]
|
|
427
445
|
name = "ferogram-mtproto"
|
|
428
|
-
version = "0.6.
|
|
429
|
-
source = "git+https://github.com/ankit-chaubey/ferogram?rev=
|
|
446
|
+
version = "0.6.4"
|
|
447
|
+
source = "git+https://github.com/ankit-chaubey/ferogram?rev=358ee50#358ee5013befb4a288d4363d81bda0e4e38ef7e1"
|
|
430
448
|
dependencies = [
|
|
431
449
|
"ferogram-crypto",
|
|
432
450
|
"ferogram-tl-types",
|
|
@@ -438,8 +456,8 @@ dependencies = [
|
|
|
438
456
|
|
|
439
457
|
[[package]]
|
|
440
458
|
name = "ferogram-mtsender"
|
|
441
|
-
version = "0.6.
|
|
442
|
-
source = "git+https://github.com/ankit-chaubey/ferogram?rev=
|
|
459
|
+
version = "0.6.4"
|
|
460
|
+
source = "git+https://github.com/ankit-chaubey/ferogram?rev=358ee50#358ee5013befb4a288d4363d81bda0e4e38ef7e1"
|
|
443
461
|
dependencies = [
|
|
444
462
|
"ferogram-connect",
|
|
445
463
|
"ferogram-crypto",
|
|
@@ -453,25 +471,28 @@ dependencies = [
|
|
|
453
471
|
|
|
454
472
|
[[package]]
|
|
455
473
|
name = "ferogram-py"
|
|
456
|
-
version = "0.5.
|
|
474
|
+
version = "0.5.3"
|
|
457
475
|
dependencies = [
|
|
458
476
|
"base64 0.22.1",
|
|
459
477
|
"ferogram-connect",
|
|
460
478
|
"ferogram-crypto",
|
|
479
|
+
"ferogram-msgbox",
|
|
461
480
|
"ferogram-mtsender",
|
|
462
481
|
"ferogram-session",
|
|
463
482
|
"ferogram-tl-types",
|
|
464
483
|
"getrandom 0.2.17",
|
|
484
|
+
"log",
|
|
465
485
|
"pyo3",
|
|
466
486
|
"pyo3-async-runtimes",
|
|
467
487
|
"pyo3-build-config",
|
|
488
|
+
"pyo3-log",
|
|
468
489
|
"tokio",
|
|
469
490
|
]
|
|
470
491
|
|
|
471
492
|
[[package]]
|
|
472
493
|
name = "ferogram-session"
|
|
473
|
-
version = "0.6.
|
|
474
|
-
source = "git+https://github.com/ankit-chaubey/ferogram?rev=
|
|
494
|
+
version = "0.6.4"
|
|
495
|
+
source = "git+https://github.com/ankit-chaubey/ferogram?rev=358ee50#358ee5013befb4a288d4363d81bda0e4e38ef7e1"
|
|
475
496
|
dependencies = [
|
|
476
497
|
"base64 0.22.1",
|
|
477
498
|
"libsql",
|
|
@@ -483,21 +504,21 @@ dependencies = [
|
|
|
483
504
|
|
|
484
505
|
[[package]]
|
|
485
506
|
name = "ferogram-tl-gen"
|
|
486
|
-
version = "0.6.
|
|
487
|
-
source = "git+https://github.com/ankit-chaubey/ferogram?rev=
|
|
507
|
+
version = "0.6.4"
|
|
508
|
+
source = "git+https://github.com/ankit-chaubey/ferogram?rev=358ee50#358ee5013befb4a288d4363d81bda0e4e38ef7e1"
|
|
488
509
|
dependencies = [
|
|
489
510
|
"ferogram-tl-parser",
|
|
490
511
|
]
|
|
491
512
|
|
|
492
513
|
[[package]]
|
|
493
514
|
name = "ferogram-tl-parser"
|
|
494
|
-
version = "0.6.
|
|
495
|
-
source = "git+https://github.com/ankit-chaubey/ferogram?rev=
|
|
515
|
+
version = "0.6.4"
|
|
516
|
+
source = "git+https://github.com/ankit-chaubey/ferogram?rev=358ee50#358ee5013befb4a288d4363d81bda0e4e38ef7e1"
|
|
496
517
|
|
|
497
518
|
[[package]]
|
|
498
519
|
name = "ferogram-tl-types"
|
|
499
|
-
version = "0.6.
|
|
500
|
-
source = "git+https://github.com/ankit-chaubey/ferogram?rev=
|
|
520
|
+
version = "0.6.4"
|
|
521
|
+
source = "git+https://github.com/ankit-chaubey/ferogram?rev=358ee50#358ee5013befb4a288d4363d81bda0e4e38ef7e1"
|
|
501
522
|
dependencies = [
|
|
502
523
|
"ferogram-tl-gen",
|
|
503
524
|
"ferogram-tl-parser",
|
|
@@ -1423,6 +1444,17 @@ dependencies = [
|
|
|
1423
1444
|
"pyo3-build-config",
|
|
1424
1445
|
]
|
|
1425
1446
|
|
|
1447
|
+
[[package]]
|
|
1448
|
+
name = "pyo3-log"
|
|
1449
|
+
version = "0.12.4"
|
|
1450
|
+
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
1451
|
+
checksum = "45192e5e4a4d2505587e27806c7b710c231c40c56f3bfc19535d0bb25df52264"
|
|
1452
|
+
dependencies = [
|
|
1453
|
+
"arc-swap",
|
|
1454
|
+
"log",
|
|
1455
|
+
"pyo3",
|
|
1456
|
+
]
|
|
1457
|
+
|
|
1426
1458
|
[[package]]
|
|
1427
1459
|
name = "pyo3-macros"
|
|
1428
1460
|
version = "0.24.2"
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
[package]
|
|
2
2
|
name = "ferogram-py"
|
|
3
|
-
version = "0.5.
|
|
3
|
+
version = "0.5.3"
|
|
4
4
|
edition = "2024"
|
|
5
5
|
description = "Python MTProto client based on ferogram (Rust MTProto)"
|
|
6
6
|
build = "build.rs"
|
|
@@ -12,16 +12,19 @@ name = "_ferogram"
|
|
|
12
12
|
crate-type = ["cdylib"]
|
|
13
13
|
|
|
14
14
|
[dependencies]
|
|
15
|
-
ferogram-mtsender = { git = "https://github.com/ankit-chaubey/ferogram", rev = "
|
|
16
|
-
ferogram-session = { git = "https://github.com/ankit-chaubey/ferogram", rev = "
|
|
17
|
-
ferogram-connect = { git = "https://github.com/ankit-chaubey/ferogram", rev = "
|
|
18
|
-
ferogram-tl-types = { git = "https://github.com/ankit-chaubey/ferogram", rev = "
|
|
19
|
-
ferogram-crypto = { git = "https://github.com/ankit-chaubey/ferogram", rev = "
|
|
15
|
+
ferogram-mtsender = { git = "https://github.com/ankit-chaubey/ferogram", rev = "358ee50" }
|
|
16
|
+
ferogram-session = { git = "https://github.com/ankit-chaubey/ferogram", rev = "358ee50", features = ["sqlite-session", "libsql-session"] }
|
|
17
|
+
ferogram-connect = { git = "https://github.com/ankit-chaubey/ferogram", rev = "358ee50" }
|
|
18
|
+
ferogram-tl-types = { git = "https://github.com/ankit-chaubey/ferogram", rev = "358ee50" }
|
|
19
|
+
ferogram-crypto = { git = "https://github.com/ankit-chaubey/ferogram", rev = "358ee50" }
|
|
20
|
+
ferogram-msgbox = { git = "https://github.com/ankit-chaubey/ferogram", rev = "358ee50" }
|
|
20
21
|
getrandom = "0.2"
|
|
21
22
|
base64 = "0.22"
|
|
22
23
|
pyo3 = { version = "0.24", features = ["extension-module", "abi3-py39"] }
|
|
23
24
|
pyo3-async-runtimes = { version = "0.24", features = ["tokio-runtime"] }
|
|
24
25
|
tokio = { version = "1", features = ["full"] }
|
|
26
|
+
pyo3-log = "0.12"
|
|
27
|
+
log = "0.4"
|
|
25
28
|
|
|
26
29
|
[profile.release]
|
|
27
30
|
strip = true
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: ferogram
|
|
3
|
-
Version: 0.5.
|
|
3
|
+
Version: 0.5.3
|
|
4
4
|
Classifier: Development Status :: 3 - Alpha
|
|
5
5
|
Classifier: Intended Audience :: Developers
|
|
6
6
|
Classifier: License :: OSI Approved :: MIT License
|
|
@@ -10,7 +10,7 @@ Classifier: Topic :: Communications :: Chat
|
|
|
10
10
|
Classifier: Topic :: Software Development :: Libraries
|
|
11
11
|
License-File: LICENSE-APACHE
|
|
12
12
|
License-File: LICENSE-MIT
|
|
13
|
-
Summary: A modern, elegant, asynchronous MTProto framework for building Telegram
|
|
13
|
+
Summary: A modern, elegant, asynchronous MTProto framework for building Telegram clients and bots in Python.
|
|
14
14
|
Keywords: telegram,mtproto,rust,client,bot,ferogram
|
|
15
15
|
Author-email: Ankit Chaubey <ankitchaubey.dev@gmail.com>
|
|
16
16
|
License: MIT OR Apache-2.0
|
|
@@ -35,7 +35,7 @@ from ._ferogram import (
|
|
|
35
35
|
SqliteSession, LibSqlSession, CustomSession,
|
|
36
36
|
)
|
|
37
37
|
|
|
38
|
-
#
|
|
38
|
+
# Types are pure Python
|
|
39
39
|
from .types import User, Message, Chat, Dialog, ChatMember, UserFull
|
|
40
40
|
from .types import Authorization, ForumTopic, BotInfo
|
|
41
41
|
from .types import InviteLinkMember, ReadParticipant, AdminLogEvent
|