Skip to content

Commit

Permalink
Master Release 3 (#161)
Browse files Browse the repository at this point in the history
* removed trunk (#130)

* removed trunk also in main.yml (#134)

* removed trunk

* also changed main.yml

* Fixed .sqout and package structure (#120)

* fix for linter

* replaced ui package

Co-authored-by: Jonas Schmidt <jonas.schmidt@student-hpi.de>

* Fixed installation Instructions

* fixed linux installation instructions

* added FFI installation instruction

* detailled instruction 2, removed instruction 5

* Update Windows installation instructions

* Fixed image link

* Removed duplicate text

Co-authored-by: sspangenberg <49531479+sspangenberg@users.noreply.github.com>
Co-authored-by: Niklas Schilli <schillinik@yahoo.de>

* Refactored chatsList and added Back Button at Auth (#135)

* added tccchats

* added tccrequest

* fixed tdparams

* fixes

* Fixed UI problems

* Now properly sorting chatsList

* Started refactoring loading of Chats. This is only a Backup commit if squeak crashes!

* Now cleanly handling loading of Chats with ChatsHandler. But order not working yet

* removed accidental halt

* addChat is now part of ChatsHandler

* Added BackButton, in case that User enters wrong phone number and want to go a step back

* Merged Dev into this branch

Co-authored-by: Jonas Schmidt <jonas.schmidt@student.hpi.de>

* Revert "Refactored chatsList and added Back Button at Auth (#135)" (#136)

This reverts commit 43fc1d2.

* Refactored chatsList to follow tdLib standards (#137)

* small fixes

* removed debugging code

* added tccchats

* added tccrequest

* fixed tdparams

* fixes

* Fixed UI problems

* Now properly sorting chatsList

* Started refactoring loading of Chats. This is only a Backup commit if squeak crashes!

* Now cleanly handling loading of Chats with ChatsHandler. But order not working yet

* removed accidental halt

* addChat is now part of ChatsHandler

* Added BackButton, in case that User enters wrong phone number and want to go a step back

Co-authored-by: Jonas Schmidt <jonas.schmidt@student-hpi.de>
Co-authored-by: Jonas Schmidt <jonas.schmidt@student.hpi.de>
Co-authored-by: Jonas Schmidt <mail@schmidt-jonas.de>

* Sending of Messages added (#138)

* added tccchats

* added tccrequest

* fixed tdparams

* fixes

* Fixed UI problems

* Now properly sorting chatsList

* Started refactoring loading of Chats. This is only a Backup commit if squeak crashes!

* Now cleanly handling loading of Chats with ChatsHandler. But order not working yet

* removed accidental halt

* addChat is now part of ChatsHandler

* added send message methods in core without ui wip

* merge

* random merge

* merge fix

* Fixed identation

* Satisfiying linterTests - categorized all uncategorized

* Removed Legacy Stuff

Co-authored-by: Jonas Schmidt <jonas.schmidt@student.hpi.de>
Co-authored-by: Frederik Wollny <cfwy@gmx.de>
Co-authored-by: Jonas Schmidt <mail@schmidt-jonas.de>

* Support sending Messages via UI (#139)

* Can now selected and deselct chats - hiding and showing inputField for sending Message to this chat

* Added Welcome Message and Listeners

* Send Button and TextInput added, needs to be connected to Core now

* Connected UI to chat sending

* Linter Tests satisfied now :)

* classified class-side methods

* Custom Linting Tests and Refactoring of Testing Package (#140)

* started editing linting rules

* refactoring linter tests

* some linter fixes

* formatting linter

* no more testing for ffi methods

* wip linting

* custom linter tests yay

* better custom linter tests

* more linter tests

* class comments and scoped environment for faster testing

* some fixes

* linter fixes

* refactoring

* refactored to make all linter tests happy

* final linting changes

* removed two tests

* Added Support for Telegram TestDatabase Service (#142)

* added TCUApp newWithTCCTestApp for automatic test db login

* Refactored so that TestApp and TestAuthHandler inherits from parent. They are now located in TCT Package

* Added LoginWithTestData method for TCCApp to use our registered TestData and directly be logged In

* Satisfying Linter now :)

Co-authored-by: Frederik Wollny <cfwy@gmx.de>

* Added running command to Readme (#147)

* Added some fancy stuff in the README

* Moved logout button

Moved logout button to the top right corner

* Added a Messages-Window displaying sent messages per chat (#151)

* displaying messages and fixed logout button

* changed structure for chatlist and added better redrawing logic

* fixed linting problems

Co-authored-by: Rohan Sawahn <rohan.sawahn@student.hpi.de>

* fixed wrong links

* removed unnecessary method

Co-authored-by: Jonas Schmidt <43679965+schmidtjonas@users.noreply.github.com>
Co-authored-by: Jonas Schmidt <jonas.schmidt@student-hpi.de>
Co-authored-by: Lasklu <49564344+Lasklu@users.noreply.github.com>
Co-authored-by: sspangenberg <49531479+sspangenberg@users.noreply.github.com>
Co-authored-by: Rohan Sawahn <49531442+rohansaw@users.noreply.github.com>
Co-authored-by: Jonas Schmidt <jonas.schmidt@student.hpi.de>
Co-authored-by: Jonas Schmidt <mail@schmidt-jonas.de>
Co-authored-by: Frederik Wollny <cfwy@gmx.de>
Co-authored-by: Rohan Sawahn <rohan.sawahn@student.hpi.de>
  • Loading branch information
10 people authored Jun 18, 2020
1 parent 2704d73 commit de06b7e
Show file tree
Hide file tree
Showing 425 changed files with 1,506 additions and 946 deletions.
3 changes: 2 additions & 1 deletion .github/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,8 @@ jobs:
# Select platform(s)
os: [ ubuntu-latest, macos-latest ]
# Select compatible Smalltalk image(s)
smalltalk: [ Squeak64-trunk, Squeak64-5.3, Squeak64-5.2 ]
# currently not running on Squeak64-trunk
smalltalk: [ Squeak64-5.3, Squeak64-5.2 ]
name: ${{ matrix.smalltalk }} on ${{ matrix.os }}
steps:
- uses: actions/checkout@v2
Expand Down
3 changes: 2 additions & 1 deletion .github/workflows/main.yml
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,8 @@ jobs:
# Select platform(s)
os: [ ubuntu-latest, macos-latest ]
# Select compatible Smalltalk image(s)
smalltalk: [ Squeak64-trunk, Squeak64-5.3, Squeak64-5.2 ]
# currently not running on Squeak64-trunk
smalltalk: [ Squeak64-5.3, Squeak64-5.2 ]
name: ${{ matrix.smalltalk }} on ${{ matrix.os }}
steps:
- uses: actions/checkout@v2
Expand Down
2 changes: 1 addition & 1 deletion .squot
Original file line number Diff line number Diff line change
Expand Up @@ -2,5 +2,5 @@ OrderedDictionary {
'packages\/TelegramClient-Core.package' : #SquotCypressCodeSerializer,
'packages\/TelegramClient-Tests.package' : #SquotCypressCodeSerializer,
'packages\/BaselineOfTelegramClient.package' : #SquotCypressCodeSerializer,
'TelegramClient-UI.package' : #SquotCypressCodeSerializer
'packages\/TelegramClient-UI.package' : #SquotCypressCodeSerializer
}
39 changes: 25 additions & 14 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,28 +1,39 @@
# TelegramClient
## CI Status
Develop: ![CI](https://github.com/hpi-swa-teaching/TelegramClient/workflows/CI/badge.svg?branch=develop)
Master(Release): ![CI](https://github.com/hpi-swa-teaching/TelegramClient/workflows/CI/badge.svg?branch=master)
<p align="center"><img width=50% src="https://i.ibb.co/VHG620F/Telegram-unterschrift.png"></p>


<p align="center">
<a href="https://github.com/hpi-swa-teaching/TelegramClient/commits/" title="Last Commit"><img src="https://img.shields.io/github/last-commit/hpi-swa-teaching/TelegramClient?style=flat"></a>
<a href="https://github.com/hpi-swa-teaching/TelegramClient/issues" title="Open Issues"><img src="https://img.shields.io/github/issues/hpi-swa-teaching/TelegramClient"></a>
<a href="https://github.com/hpi-swa-teaching/TelegramClient/actions" title="Build Status"><img src="https://github.com/hpi-swa-teaching/TelegramClient/workflows/CI/badge.svg?branch=develop"></a>
<a href="https://github.com/hpi-swa-teaching/TelegramClient/stargazers" title="Stars"><img src="https://img.shields.io/github/stars/hpi-swa-teaching/TelegramClient"></a>
<a href="./LICENSE" title="License"><img src="https://img.shields.io/github/license/hpi-swa-teaching/TelegramClient"></a>
</p>

TelegramClient is a **Squeak-Client** for the widely used Telegram-Messenger. It provides features such as Authentication, Contacts, Message and Media sending and a minimal, clean UI. We also provide features such as a Zen-mode and receiving messages in the background.
## Overview
TeleSqueak is a **Squeak-Client** for the widely used Telegram-Messenger. It provides features such as Authentication, Contacts, Message and Media sending and a minimal, clean UI. We also provide features such as a Zen-mode and receiving messages in the background.

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

## CI Status
Develop: ![CI](https://github.com/hpi-swa-teaching/TelegramClient/workflows/CI/badge.svg?branch=develop)
Master(Release): ![CI](https://github.com/hpi-swa-teaching/TelegramClient/workflows/CI/badge.svg?branch=master)

## Installation
Make sure you have the current version of Squeak installed.
1. Install the Squeak Git Client
2. Install the Squeak FFI Workload
3. Download the required native Binaries for your system.
* [Windows](https://drive.google.com/open?id=14tOoIfxioIe8bn2kPxPKmCk_Eg0tSYiJ)
* [Mac](https://drive.google.com/open?id=1H2l_V6zkIx4t_SKQKL3MmdtvOV2haFjV)
* [Ubuntu 18 lts](https://drive.google.com/open?id=1CpSPcB-5MPA95fEWI-X5MxbUEZUcU3g2)
4. Place the unzipped binaries inside of your squeak image. On Windows, place them inside the Win32 folder, on Linux and Mac Os place them inside the resources folder.
* Step 1: Install the Squeak Git Client
* Step 2: Install the Squeak FFI Workload. To do so, open the Workspace in Squeak and execute the following command: `(Installer repository: 'http://source.squeak.org/FFI')
install: 'FFI-Pools';
install: 'FFI-Kernel'.`
* Step 3: Download the required native Binaries for your system. [Windows](https://drive.google.com/open?id=14tOoIfxioIe8bn2kPxPKmCk_Eg0tSYiJ), [Mac](https://drive.google.com/open?id=1H2l_V6zkIx4t_SKQKL3MmdtvOV2haFjV), [Ubuntu 18 lts](https://drive.google.com/open?id=1CpSPcB-5MPA95fEWI-X5MxbUEZUcU3g2).
* Step 4: Place the unzipped binaries inside of your squeak image. On Windows, place them inside the Win32 folder, on Linux in "Contents/Linux-x86_64/lib/squeak/\<versionnumber>/" and on Mac place them inside the resources folder.
* Step 5 (Windows only): Install Visual C++ Redistributable for Visual Studio 2015, 2017 and 2019: [32Bit](https://aka.ms/vs/16/release/vc_redist.x86.exe) or [64Bit](https://aka.ms/vs/16/release/vc_redist.x64.exe)

## Running TelegramClient
In a workspace window execute the command
In a workspace window execute the command `TCUApp newWithTCCApp`

## Building Tdlib
Tdlib build instructions are available on their Github page. They also have a wonderful build instruction generator available which was the basis for our workflow . [Check it out here.](https://tdlib.github.io/td/build.html)

# Notes on Tdlib
## Notes on Tdlib
The TelegramClient is build on the TelegramDatabseLibrary which provides access to Telegram API via a JSON-Interface.
We include Tdlib library in our project and can access the C-Library via FFI from Squeak, giving us the possibility to access the Telegram API via JSON-Interface.
4 changes: 0 additions & 4 deletions TelegramClient-UI.package/.filetree

This file was deleted.

5 changes: 0 additions & 5 deletions TelegramClient-UI.package/.squot-contents

This file was deleted.

Empty file.
8 changes: 0 additions & 8 deletions TelegramClient-UI.package/TCUApp.class/methodProperties.json

This file was deleted.

Empty file.

This file was deleted.

This file was deleted.

This file was deleted.

This file was deleted.

This file was deleted.

Empty file.

This file was deleted.

Empty file.

This file was deleted.

This file was deleted.

This file was deleted.

This file was deleted.

Empty file.

This file was deleted.

Empty file.

This file was deleted.

This file was deleted.

This file was deleted.

11 changes: 0 additions & 11 deletions TelegramClient-UI.package/TCUChatsList.class/methodProperties.json

This file was deleted.

Empty file.
Empty file.
10 changes: 0 additions & 10 deletions TelegramClient-UI.package/TCUMain.class/instance/addChatWindow.st

This file was deleted.

This file was deleted.

This file was deleted.

This file was deleted.

21 changes: 0 additions & 21 deletions TelegramClient-UI.package/TCUMain.class/methodProperties.json

This file was deleted.

1 change: 0 additions & 1 deletion TelegramClient-UI.package/monticello.meta/categories.st

This file was deleted.

Empty file.
2 changes: 0 additions & 2 deletions TelegramClient-UI.package/properties.json

This file was deleted.

Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
This abstract factory can be used to create a new TeleClient.

This file was deleted.

This file was deleted.

Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
Creation
creation
createClient: anOsName

^ self subclassResponsibility
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@
],
"classvars" : [
],
"commentStamp" : "",
"commentStamp" : "js 6/13/2020 16:24",
"instvars" : [
],
"name" : "TCCAbstractTeleClientFactory",
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
The main component for the core, that handles incoming events.
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
as yet unclassified
newTestApp

This file was deleted.

Loading

0 comments on commit de06b7e

Please sign in to comment.