/TelegramClient

TelegramClient is a Squeak-Client for the widely used Telegram-Messenger. It aims to provide features such as Authentication, Contacts, Message and Media sending and a minimal UI as well as as a Zen-mode and receiving messages in the background. (SWT22-11)

Primary LanguageSmalltalkMIT LicenseMIT

TelegramClient-Logo

TelegramClient

Coveralls github branch Coveralls github branch

Overview

TelegramClient is a Squeak-Client for the widely used Telegram-Messenger. It aims to provide features such as Authentication, Contacts, Message and Media sending and a minimal UI as well as as a Zen-mode and receiving messages in the background.

This Project is part of the "Softwaretechnik" Lecture 2020 at the Hasso Plattner Institute.

Features

โœจ Feature
๐Ÿ”“ Authenticate yourself in your Telegram-Account
โœ‰๏ธ Send messages to other users
๐Ÿ’ฌ Display open Chats in a List
๐Ÿ“ซ Receive messages
๐Ÿ†• Create new chats
๐Ÿ”” Receive push notifications
๐ŸŒ Start Telegram via WorldMenu
๐Ÿšถ Logout
๐Ÿ˜Ž Display Emojis
๐Ÿ–ผ Display Images
โ„น Show group description and members
โ†ฉ Reference an old message
๐Ÿ–ผ Show profile pictures

Running TelegramClient

We currently only support Squeak 5.3.

Option 1 (online installation)

Open a Workspace and evaluate the following command in it:

Metacello new
	baseline: 'TelegramClient';
	repository: 'github://hpi-swa-teaching/TelegramClient/packages';
	load.

Option 2 (offline installation)

  1. Install the following prerequisites:

    1. Last compatible FFI version. For Squeak version 5.3 use Metacello new configuration: 'FFI'; load. to install it.
    2. JSON package from SqueakSource.
    3. Animations package GitHub.
    4. MTF package from GitHub
  2. Check our release page for an online installer in the form of a SAR file. Install this SAR file in your Squeak image.

  3. Click the Telegram entry in the Apps WorldMenu or execute the command TCUTelegram newWithTCCCore. The menu is only available if you already started the app once or installed the app via a release SAR file.

For further information or manual setup take a look in our setup guide.

Development

Wiki

The wiki has a lot of useful information for continuing the development of this project. Feel free to add new information to the wiki.

Releasing

Pre-Releases are created automatically whenever a commit is added to the develop-branch. Releases should created before each client meeting and can simply be done by merging develop into master.

Our Group

Group 11 of the 2022 SWT I module included Richard Wohlbold, Til Bergmann, Antony Kamp, Lucas Reisener, Erik Kohlros, and Jacob Schรคfer.

Group 2 of the 2021 SWT I module included Romeo Sommerfeld, Raphael Kunert, Jannis Berndt, Philipp Keese, Tom Richter, and Paul Ermler.

Group 13 of the 2020 SWT I module included Rohan Sawahn, Jonas Schmidt, Frederik Wollny, Stefan Spangenberg, Lukas Laskowski, and Niklas Schilli. Feel free to add your names to the list.

Acknowledgements

This project uses assets from https://openmoji.org/ for Emoji support. These are downloaded when the client starts for the first time and not hosted in this repository. Each file is resized before being displayed and filenames are stripped of certain Unicode units after download. The contents of the files is not changed. OpenMoji is published under the Creative Commons Share Alike License 4.0 CC BY-SA 4.0. Their project is also hosted on GitHub.