WHAT IS THIS?
-------------
Unofficial Telegram Amiga: it uses the Telegram API and is part of the
Telegram ecosystem, but it is not made by Telegram.
Telegram Amiga brings real, live Telegram chat to the Amiga -- not through
a gateway, a proxy service or a web wrapper, but by speaking Telegram's
own MTProto protocol natively, from scratch, on your machine. You sign in
to your normal Telegram account, your chat list appears, and you talk to
people (and they talk back) on hardware that may well be older than they
are.
Everything is built in: RSA, Diffie-Hellman, AES, SHA and the SRP two-
factor login are implemented inside the program. Zero external
dependencies -- no MUI, no ixemul.library, no AmiSSL, no TCP helper
beyond your system's own bsdsocket stack.
One text/console client, built for the plain 68000:
TelegramAmiga-TUI - the full-screen text client. The Intuition GUI
needs a 68020 or better, so this package ships the
console face alone.
WHAT CAN I ACTUALLY DO WITH IT?
-------------------------------
This archive is the text client alone, built for a plain 68000 Amiga
(A500, A600, A1000, A2000, CDTV) with about 2 MB of free fast RAM: the
window, its renderer and the JPEG decoder are left out of the build, so
the whole program loads in about 1.5 MB.
Read and send messages in private chats, groups and channels, in a
full-screen console with colours and a word-wrapping composer of up to
three rows. Pick a chat from the list or with the F-keys, receive new
messages live, reply, edit and delete your own messages, see read
receipts, download received files (/getfile) and send files from disk
(/sendfile). The pinned Saved Messages chat doubles as a transfer drawer
between the Amiga and your phone or PC.
Limits of this build: 12 chats in the list, 8 messages per page, message
text up to 2 KB, downloads in 16 KB pieces. With a 68020 or better, take
the AmigaOS 3.x archive (TelegramAmiga.lha) instead: it has the window,
inline photos and emoji.
GETTING STARTED
---------------
1. Log in once on a FASTER Amiga (68020 or better) or in an emulator with
the normal archive: the login's key exchange is too much for a 68000.
2. Copy this drawer to a WRITABLE volume of the 68000 machine, then copy
telegram-auth.bin and the data drawer from the faster setup into it.
3. Double-click TelegramAmiga-TUI. The same account can stay logged in on
both machines.
telegram-auth.bin holds your login. Treat that file like a house key:
NEVER share it -- anyone who has it has your Telegram session. Full EN and
IT manuals are in the archive, including notes for the plain 68000.
WHAT IS NEW IN 0.0.99
---------------------
ADDED
- "Support development..." in the window's Telegram menu, after Help: it says
where to support my work on Patreon and opens the link, or copies it when no
OpenURL command is there. Voluntary, nothing changes without it, and it
never shows on its own. The text client has the same two lines at the end of
/help.
- More reactions than the ten of the grid. When a chat allows more, the grid's
last cell is an arrow that opens every reaction it allows, ten to a row: in
a chat that allows all, the 69 free reactions in Telegram's order, and a
group's own list whole instead of cut to ten. The text client's /react takes
every standard reaction by name, and /reactions lists the names.
- Hide message, after a user asked to get rid of posts that do not interest
them in groups. Telegram lets nobody delete someone else's message for
themselves in a supergroup, so in a group or a channel the right-button menu
of someone else's message offers Hide message: it leaves the transcript and
stays out on every reload, kept in data/telegram-hidden-msgs.txt (the newest
256). "Show hidden messages" in the chat's menu in the list brings them
back. In a basic group the client also asks Telegram to delete it for this
account, so it goes from one's other devices too, and that cannot be undone.
The text client has /hide, on the last message received or on an id, and
/unhide.
- /ring in the text client, for the open chat: /ring on lets a group or a
channel ring, /ring off makes it quiet again, the same choice as "Enable
ring" in the window's chat menu and kept in the same file, so it holds in
both. Since 0.0.98 groups start quiet, and the 68000 build, which has only
the text client, had no way to wake one. In a direct chat on and off unmute
and mute it, and /ring alone says what the chat does now, Telegram's own
mute and /bell included.
- /ids in the text client, after a user asked what to put where /react wants a
message id: the text client never showed one. Switched on, each message
starts with its number, like #4821, which /react, /forward and /forwardto
take; off by default, so the lines stay as they were. And /react no longer
needs the number: without one it takes the last message received from the
others, never one's own, so /react heart is enough.
- 38 more emoji on the sheet, from the same Noto Emoji set: the free reactions
that were missing, among them the exploding head, the clown, the whale, the
trophy, the ghost, the unicorn and the three monkeys. They show in messages
and reactions, join the end of the emoji panel, and read as short words in
the text client, like (unicorn) or o7.
CHANGED
- The hint a lone / shows in the text client lists every command /help does,
on four lines of at most 64 columns. It had fallen behind: /reactions, /ids,
/hide, /ring and older ones like /swap and /diff were missing, and its
second line ran past 80 columns.
- More contrast in the dark colours, same hues, after a user asked for no dark
blue on black. The selected chat takes the desktop's selection blue, and on
it the time and preview are drawn in the full text colour. Sender names in
groups take a lighter shade of their avatar colour, the incoming bubbles and
the side panel stand a little further from the window, the read ticks are
lighter on one's own bubble, and the unread badge is a brighter blue with a
white number.
FIXED
- A message's right-button menu acts on the message it was opened on. It
remembered the message by its row, and in a chat with a full transcript
every new message moves each row up by one, so a message arriving while the
menu or the reaction grid was open turned the choice to the message below: a
reaction landed there, and when that message already carried the same
reaction of yours, it was taken away instead. Reply, Edit, Delete, Download
and Copy could miss in the same way. The menu now finds its message again by
id, and closes when that message is no longer loaded.
- Reactions on a photo, a file or a message with a link preview stay shown.
The history reader stops at such a message's media, short of its reactions,
and passed that unread field on as "no reactions": each refresh of the chat
wiped the reactions just added, and reopening the chat showed none, though
Telegram and the other clients had them. The history now leaves such a
message's reactions as they are, and the periodic reactions poll asks
Telegram for them once, the user's own messages included. Opening a chat
asks at once instead of waiting for the poll's twenty seconds, and the
answer shows on the same tick.
- Smoother round shapes on true-colour screens: the reaction chips, the unread
badges, the jump button and the initials discs. Their edge was a one-pixel
ring halfway between the shape and the background, with the shape one pixel
inside it, which read as a dark rim along the straight sides. Each edge
pixel now takes the share of it the true circle covers, in quarters, and the
shape keeps its full size. Paletted screens keep the hard edge.
A COMMUNITY PROJECT
-------------------
MIT licensed, non-commercial, written for the love of the platform.
Bug reports and wishes are very welcome -- testers on real hardware
(A1200s, A4000s, Pegasos, Sam, FPGA machines) are what moves this
project forward.
Thanks to Paolo Arus (DaRkHoRaCe), without whose tenacity in testing,
round after round on an A600, the 68000 version would never have come
out.
The icon is our own design. Carlo Spadoni optimised it for each system,
put it on a standard drawer for the drawer icon, and let me ship his
versions.
Source + issues:
https://github.com/kaffeine1/telegram-amiga
Development diary:
https://androidlab.it/en/telegram-amiga-mtproto-client-development-diary/
Support my work on Patreon (voluntary; no subscription
is required to use this software):
https://www.patreon.com/c/kaffeine1
|