Skip to content

Commit

Permalink
Merge pull request #534 from hpi-swa-teaching/develop
Browse files Browse the repository at this point in the history
Merge the work from Group 11 of the 2022 SWT I module into main
  • Loading branch information
LucasDerReisende committed Aug 5, 2022
2 parents 67d2b0f + 8bfb440 commit 99e889e
Show file tree
Hide file tree
Showing 497 changed files with 2,888 additions and 506 deletions.
10 changes: 10 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -71,6 +71,14 @@ TelegramClient is a **Squeak-Client** for the widely used Telegram-Messenger. It
<td>ℹ</td>
<td>Show group description and members</td>
</tr>
<tr>
<td>↩</td>
<td>Reference an old message</td>
</tr>
<tr>
<td>🖼</td>
<td>Show profile pictures</td>
</tr>
</tbody>
</table>

Expand Down Expand Up @@ -115,6 +123,8 @@ Pre-Releases are created automatically whenever a commit is added to the develop

## Our Group

Group 11 of the 2022 SWT I module included [Richard Wohlbold](https://github.com/rgwohlbold), [Til Bergmann](https://github.com/Till-B), [Antony Kamp](https://github.com/antonykamp), [Lucas Reisener](https://github.com/LucasDerReisende), [Erik Kohlros](https://github.com/kohlros), and [Jacob Schäfer](https://github.com/jacob271).

Group 2 of the 2021 SWT I module included [Romeo Sommerfeld](https://github.com/rsommerfeld), [Raphael Kunert](https://github.com/Storyxx), [Jannis Berndt](https://github.com/jb3rndt), [Philipp Keese](https://github.com/phkeese), [Tom Richter](https://github.com/tom-richter), and [Paul Ermler](https://github.com/permler).

Group 13 of the 2020 SWT I module included [Rohan Sawahn](https://github.com/rohansaw), [Jonas Schmidt](https://github.com/schmidtjonas), [Frederik Wollny](https://github.com/Freddy200), [Stefan Spangenberg](https://github.com/sspangenberg), [Lukas Laskowski](https://github.com/lasklu), and [Niklas Schilli](https://github.com/Mrnikbobjeff). Feel free to add your names to the list.
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
Represents a message where members are added to a group.
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
instance creation
newFrom: aJsonObject

^ self new
members: (aJsonObject at: 'member_user_ids');
yourself
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
accessing
asSnippet

^ self asText
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
accessing
asText

| names |
names := self members collect: [:aUserId | (self core userStore getUserFor: aUserId) fullName].
^ 'Added: ' , (names joinSeparatedBy: ', ')
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
accessing
members: aList

members := aList
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
accessing
members

^ members
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
{
"class" : {
"newFrom:" : "LR 7/23/2022 10:06" },
"instance" : {
"asSnippet" : "rgw 7/21/2022 14:15",
"asText" : "LR 7/23/2022 10:59",
"members" : "rgw 7/21/2022 13:33",
"members:" : "rgw 7/21/2022 13:33" } }
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
{
"category" : "TelegramClient-Core",
"classinstvars" : [
],
"classvars" : [
],
"commentStamp" : "ek 8/4/2022 10:39",
"instvars" : [
"members" ],
"name" : "TCCAddMembersMessage",
"pools" : [
],
"super" : "TCCMessage",
"type" : "normal" }
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
library calls
checkAuthenticationPassword: aString

self core send: (TCCRequest newCheckAuthenticationPassword: aString).
Original file line number Diff line number Diff line change
Expand Up @@ -8,4 +8,5 @@ handleEvent: anEvent
self isAwaitingDbEncryptionKey ifTrue: [self setDbEncryptionKey: ''].
self isAwaitingPhoneNumber ifTrue: [^ #awaitPhoneNumber].
self isAwaitingAuthCode ifTrue: [^ #awaitAuthCode].
self isAwaitingAuthPassword ifTrue: [^ #awaitAuthPassword].
self isAuthorizationStateReady ifTrue: [^ self core authSucceeded].
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
accessing
isAwaitingAuthPassword

^ self authState = 'authorizationStateWaitPassword'
Original file line number Diff line number Diff line change
Expand Up @@ -6,13 +6,15 @@
"authState" : "R.S 5/18/2020 17:54",
"authState:" : "R.S 5/18/2020 17:54",
"checkAuthenticationCode:" : "RS 6/23/2021 16:35",
"checkAuthenticationPassword:" : "ek 8/4/2022 11:15",
"core" : "per 5/21/2021 16:57",
"core:" : "per 5/21/2021 16:57",
"handleEvent:" : "JB 6/7/2021 11:15",
"handleEvent:" : "ek 8/4/2022 11:15",
"initialize" : "RS 4/28/2021 18:04",
"isAuthStateClosed" : "r.s 7/15/2020 12:17",
"isAuthorizationStateReady" : "r.s 7/15/2020 12:17",
"isAwaitingAuthCode" : "r.s 7/15/2020 12:17",
"isAwaitingAuthPassword" : "aka 5/21/2022 10:10",
"isAwaitingDbEncryptionKey" : "8/5/2021 21:14:18",
"isAwaitingPhoneNumber" : "r.s 7/15/2020 12:17",
"isAwaitingTdlibParams" : "8/5/2021 21:14:18",
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
default values
defaultLastMessageDate

^ DateAndTime fromUnixTime: 0
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
default values
defaultLastMessageSenderId

^ 0
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
default values
defaultSelectedReplyToMessageId

^ 0
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
adding
addMessage: aMessage

self messageDictionary at: aMessage id ifAbsent: [
self messageDictionary at: aMessage id put: Promise new
].
(self messageDictionary at: aMessage id) resolveWith: aMessage.
Original file line number Diff line number Diff line change
@@ -1,5 +1,14 @@
adding
addNewestMessage: aMessage

self messages addFirst: aMessage.
| newDate oldDate |
newDate := aMessage date asDate.
oldDate := self lastMessageDate asDate.
(newDate > oldDate) ifTrue: [
aMessage isFirstMessageOfDay: true.
self lastMessage isLastMessageOfDay: true.
].
self messageIds ifEmpty: [aMessage isFirstMessageOfDay: false].
self messageIds addFirst: aMessage id.
self addMessage: aMessage.
self triggerEvent: #newMessage with: aMessage.
Original file line number Diff line number Diff line change
@@ -1,5 +1,12 @@
adding
addOldestMessage: aMessage

self messages add: aMessage.
| newDate oldDate |
newDate := aMessage date asDate.
oldDate := self oldestLoadedMessageDate asDate.
(newDate < oldDate) ifTrue: [
self oldestLoadedMessage isFirstMessageOfDay: true.
aMessage isLastMessageOfDay: true].
self messageIds add: aMessage id.
self addMessage: aMessage.
self triggerEvent: #loadedMessage with: aMessage.
Original file line number Diff line number Diff line change
Expand Up @@ -2,9 +2,12 @@ loading
chatHistoryReceived: anEvent

(anEvent at: 'messages') do:
[:message | self addOldestMessage: (TCCMessage newFromMessageEvent: message in: self with: self core)].
[:message | self addOldestMessage: (TCCMessage newFromMessageEvent: message in: self with: self core).
self fulfillMessageRequest: (message at: 'id').
].

(self requestedMessages isEmpty) ifFalse: [self increaseNumberOfRequestedMessages.].

self waitingForUpdate: false.

self stillRequestedMessages > 0
ifTrue: [self loadChatHistory.].
self stillRequestedMessages > 0 ifTrue: [self loadChatHistory.].
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
loading
fulfillMessageRequest: aMessageId

| fulfilledMessageRequests |

fulfilledMessageRequests := self requestedMessages select: [:req | req messageId = aMessageId].
fulfilledMessageRequests do: [:messageRequest | messageRequest completeRequest.].

self requestedMessages removeAll: fulfilledMessageRequests.
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
accessing
getMessageById: aNumber

^ (self messageDictionary at: aNumber ifAbsent: [
self messageDictionary at: aNumber put: Promise new.
self requestMessage: aNumber.
self messageDictionary at: aNumber.
])
wait;
value
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
controlling
handleMessageRequest: aMessageRequest

(self hasMessage: (aMessageRequest messageId)) ifTrue:
[aMessageRequest completeRequest.]
ifFalse:
[self requestedMessages add: aMessageRequest.
self loadChatHistory.].
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
controlling
hasMessage: aMessageId

^ (self messageIds occurrencesOf: aMessageId) ~= 0
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
accessing
hasPhoto

^ self photoId isNil not
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
loading
increaseNumberOfRequestedMessages

self numberOfRequestedMessages: self numberOfRequestedMessages + self class defaultMessageLimit.
Original file line number Diff line number Diff line change
Expand Up @@ -3,9 +3,13 @@ initialize

self
title: '';
messages: (OrderedCollection new);
messageIds: OrderedCollection new;
messageDictionary: Dictionary new;
waitingForUpdate: false;
infoLoaded: false;
isChannel: false;
position: self class defaultUnknownPosition;
numberOfRequestedMessages: self class defaultNumberOfRequestedMessages.
numberOfRequestedMessages: self class defaultNumberOfRequestedMessages;
selectedReplyToMessageId: self class defaultSelectedReplyToMessageId;
requestedMessages: OrderedCollection new;
isPinned: false.
Original file line number Diff line number Diff line change
Expand Up @@ -6,4 +6,11 @@ initializeFromChatEvent: anEvent
id: (anEvent at: 'id');
canSendMessages: ((anEvent at: 'permissions') at: 'can_send_messages');
muted: ((anEvent at: 'notification_settings') at: 'mute_for') > 0;
lastMessage: ''
lastMessageText: '';
lastMessageSenderName: '';
lastMessageSenderId: TCCChat defaultLastMessageSenderId;
isPinned: false.

(anEvent at: 'photo') ifNotNil: [
self photoId: (((anEvent at: 'photo') at: 'small') at: 'id').
].
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
accessing
isPinned: aBoolean

isPinned := aBoolean
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
accessing
isPinned

^ isPinned

This file was deleted.

Original file line number Diff line number Diff line change
@@ -1,4 +1,7 @@
accessing
lastMessage

^ lastMessage
^ self messages
ifEmpty: [ TCCNotLoadedMessage new
date: self class defaultLastMessageDate]
ifNotEmpty: [ self messages first ]
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
accessing
lastMessageDate

"Date of the latest received message."

^ self lastMessage date
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
accessing
lastMessageSenderId: aNumber

lastMessageSenderId := aNumber
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
accessing
lastMessageSenderId

^ lastMessageSenderId
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
accessing
lastMessageSenderName: aString

lastMessageSenderName := aString.
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
accessing
lastMessageSenderName

^ lastMessageSenderName
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
accessing
lastMessageText: aString

lastMessageText := aString.
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
accessing
lastMessageText

^ lastMessageText
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
accessing
messageDictionary: aDictionary

messageDictionary := aDictionary
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
accessing
messageDictionary

^ messageDictionary
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
accessing
messageIds: aCollection

messageIds := aCollection
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
accessing
messageIds

^ messageIds

This file was deleted.

Original file line number Diff line number Diff line change
@@ -1,4 +1,8 @@
accessing
messages

^ messages
^ self messageIds collect: [:aNumber |
(self messageDictionary at: aNumber)
wait;
value
]
Loading

0 comments on commit 99e889e

Please sign in to comment.