Audio (120) Datatype (16) Demo (65) Development (264) Document (70) Driver (20) Emulation (71) Game (605) Graphics (238) Library (23) Network (74) Office (23) Utility (318) Video (20)
Total files: 1927
Full index file Recent index file
Part of Aros World Exec |
[Show comments] [Show snapshots] [Show videos] [Show content] [Replace file] WHAT IS THIS?
-------------
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 program, two faces, one engine and one saved login:
TelegramAmiga - the native Intuition/GadTools GUI: chat list with real
profile-picture avatars, message bubbles, scrollbars,
mouse wheel, context menus. This package ships its icon.
The same binary also runs a full-screen text/console client
from a Shell -- the manual gives the command line.
WHAT CAN I ACTUALLY DO WITH IT?
-------------------------------
Read and send messages in private chats, groups and channels. Download a
received file (right-click -> Download) or send one from disk, up to
250 MiB on this build, including files over 10 MiB.
Photos appear immediately as blurred previews, refine from a bounded download
and reuse decoded pixels from disk when reopened. Click one for a larger
progressive viewer, or disable inline loading on a slower machine and open
only the images you choose. Forward one message to Saved Messages in a
click, or choose another destination through chat search.
Use the pinned Saved Messages chat as a cloud transfer drawer between the
Amiga and your phone or PC. Reply to a specific message (right-click it).
Edit or delete your own messages. See
real delivery state: one tick = sent, two blue ticks = read, updating
live. See who is typing. Search for chats. Send messages from your desk
at work and find the conversation already synced when you get home to
the Amiga -- and the other way round.
Message times follow your Amiga clock. Unread badges and your chat order
survive restarts. The window remembers where you left it, and can open
on its own screen if you prefer a dedicated page for chatting.
GETTING STARTED
---------------
1. Copy this drawer to a WRITABLE volume (not from the archive directly).
2. Double-click TelegramAmiga (or TelegramAmiga-TUI on very low-end setups).
3. First run walks you through the normal Telegram login: phone number,
the code Telegram sends you, and your cloud password if you use
two-factor. That is all -- next time it goes straight to your chats.
The login is stored in telegram-auth.bin next to the program. Treat that
file like a house key: NEVER copy it around or share it -- anyone who has
it has your Telegram session. Full EN and IT manuals are in the archive,
including per-platform notes and troubleshooting.
WHAT IS NEW IN 0.0.94
---------------------
ADDED
- A sixth package: AROS on ARM64 (aarch64, ABIv1), for the Raspberry Pi 4, 400
and 5 running the native AROS image. It is built from the same commit as the
other five, on the same bench as the x86_64 lane, and it ships on GitHub and
on The AROS Archives (Aminet has no ARM64 entry to give it). The lane
started as a community port; this release is the first the client's own
build carries, after a full round on a Raspberry Pi 400: login, chats,
history, photos, documents and a download, with the chat list, the seed and
the window geometry surviving the card's FAT handler.
- Icons by Carlo Spadoni, one set per platform, plus an icon for the drawer
itself, which had none. AmigaOS 4, MorphOS and AROS get his files as he drew
them, in the format each system reads natively (an ARGB colour icon, PNG
icons with the launcher fields written into them). AmigaOS 3.x cannot read
PNG icons, so its set becomes AmigaOS 3.5 colour icons of 256 colours: the
drawer is the cabinet he drew for 3.x, the program his 64 pixel drawing
shrunk to the size of the 3.x set, which keeps its rim clean on a real
Workbench. The antialiased rim is blended over the Workbench grey and the
drawing is also carried with its alpha, which the icon.library AmiKit ships
draws over any backdrop; a planar image in the four Workbench pens covers
3.1. Every program icon keeps what the self-launch needs: a project icon
whose default tool is the binary, with a 1 MB stack (384 KB on the 68000
build). The credit is in the About box, the readme and the manuals, and the
artwork as delivered is kept in the repository.
FIXED
- A download no longer makes the window flash. Every new percentage used to
repaint the whole window, and the full paint draws the inline photos
straight onto it after copying the rest, so on a Vampire the photos in view
vanished and came back several times a second and the window was hard to use
while a file came in. The progress now repaints the status bar alone, copied
from the off-screen buffer as one strip; with a menu open it still falls
back to the full paint. It also gives a Vampire back the 260 ms each 32 KB
part spent repainting.
- AROS ARM executables load directly after make, without a manual relink. GCC
6.5 defaults to COMMON symbols for uninitialized globals, which the AROS
relocatable ELF loader rejects. The ARM build now enforces -fno-common, and
the shared emoji geometry value is explicitly initialized.
- The GUI self-tests run on AROS ARM, and the live window there starts with
the stack it was promised. On a 64-bit build the model the window paints
from is over half a megabyte, and the client kept a copy of it in the frame
of the routine that runs everything, under the live window and under every
self-test alike: with the two GUI self-tests, which held copies of their
own, that overran the 1 MB AmigaOS stack by a hundred kilobytes, and each
test went silent after its bootstrap lines, its first line of output landing
in whatever memory sat below the stack. Reproduced in the AROS ARM machine
under QEMU, with a probe that reports the task's stack bounds (a full
megabyte, so the frames were at fault, not the Shell's Stack command). The
four users of that model now share one object off the stack, and every
self-test block borrows one scratch copy per file instead of keeping its
own, so the frames fall from 584 KB to 25 KB in the runner and to under 10
KB in the tests, and the 68k package pays nothing new for it. Both GUI
self-tests now pass on AROS ARM with the same output as on the host.
- Chats open again on AROS ARM, and on any FAT volume under AROS. The chat
list is saved back whenever an unread count changes, and that save rewrote
the file in place: on the AROS FAT handler (its issue 161, the same bug that
ate the saved login in 0.0.93) a file rewritten in place reads back empty,
so from the first save on every chat you opened was "not found" in a list
you were looking at. It reached us from a Raspberry Pi 400 and was
reproduced in an AROS ARM machine under QEMU with four small probes: the C
library reads and writes correctly, appends and renames are fine, only the
in-place rewrite is broken. Every file the client replaces now goes through
one door that deletes and recreates it: the chat list, the random seed (a
Raspberry Pi 400 card came back with it at zero bytes), the avatar store,
the window geometry, the recent emoji, downloads to a name that exists, and
every temporary the client writes before a rename. The chat-list line is
also read by one hand-written reader instead of five scanf formats, so
whatever the sidebar lists, the lookup finds.
- A link Telegram already knew gets its preview on the message just sent, in
Saved Messages, groups and channels too. When the page was in Telegram's
cache the preview came back inside the answer to the send itself, and no
updateWebPage followed; the short answer of a private chat was read, but the
full Updates the other chats return kept only a pending id, so the preview
waited for the next reload of the history. Seen on AROS x86_64 during the
0.0.93 round. The TUI prints the lines under its sent marker.
- A saved login survives a restart on a FAT volume. Rewriting a file that
already exists there reported success from every call and still left zero
bytes behind, so the client wrote its session, said nothing, and asked for
the phone number again on the next run. The fault is in the system, not in
this client: AROS carries it as an open bug of its FAT handler, with a
reproducer that involves no Telegram at all. Until that is fixed, files are
deleted before they are created, which commits reliably, and a write is
flushed while the file is still open so a failure is reported where it
happens. It reached us from a Raspberry Pi, where bohunamiga tracked it down
and proposed the workaround; the same code runs everywhere, so a drawer kept
on a FAT stick or card is covered on every platform.
- Letters outside Latin-1 no longer disappear. Text is one byte per character
because that is what an Amiga font draws, and a codepoint with no Latin-1
shape rendered as nothing, so a Polish name arrived with holes where its own
letters were, reported from the field on AROS ARM. Latin Extended-A now
folds to the base letter: a reader gets "Czesc" instead of "Cze", the two
ligatures widen to two letters, and the four Romanian letters with a comma
below come along. Accents that Latin-1 already has are untouched, and the
wire is unchanged: what goes out has always been UTF-8. The fold is a
fallback and not a translation. Drawing the real letters needs a second
codepage on the systems whose font has them, which is in the roadmap.
CHANGED
- The word in front of the version comes from one place. Everything that
prints "alpha 0.0.94" reads it from the version header, the packaging and
the release check included: three components means an alpha, two mean the
beta numbering. The beta starts at 0.1 and not at 0.1.0, because an AmigaOS
version cookie is two integers and every release so far has read as plain
"0.0" to the system. This is so that the day the number loses a dot, nothing
is left saying alpha by accident.
- The debug log says which font the window drew with, next to its size. The
window takes whatever face the screen hands it, and which face that is
decides what a name written in Polish or Czech can look like at all, so it
belongs in the line rather than in a guess from a screenshot.
- The About box credits the contributor who took the build to AROS on ARM,
next to the one already there.
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.
The icons are by Carlo Spadoni, who drew them for Telegram Amiga and let
me ship them with it.
Source + issues:
https://github.com/kaffeine1/telegram-amiga
Development diary:
https://androidlab.it/en/telegram-amiga-mtproto-client-development-diary/
|