Skip to content

Commit 99e889e

Browse files
Merge pull request #534 from hpi-swa-teaching/develop
Merge the work from Group 11 of the 2022 SWT I module into main
2 parents 67d2b0f + 8bfb440 commit 99e889e

File tree

495 files changed

+2882
-500
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

495 files changed

+2882
-500
lines changed

README.md

Lines changed: 10 additions & 0 deletions
Lines changed: 1 addition & 0 deletions
Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
instance creation
2+
newFrom: aJsonObject
3+
4+
^ self new
5+
members: (aJsonObject at: 'member_user_ids');
6+
yourself
Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
accessing
2+
asSnippet
3+
4+
^ self asText
Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
accessing
2+
asText
3+
4+
| names |
5+
names := self members collect: [:aUserId | (self core userStore getUserFor: aUserId) fullName].
6+
^ 'Added: ' , (names joinSeparatedBy: ', ')
Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
accessing
2+
members: aList
3+
4+
members := aList
Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
accessing
2+
members
3+
4+
^ members
Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
{
2+
"class" : {
3+
"newFrom:" : "LR 7/23/2022 10:06" },
4+
"instance" : {
5+
"asSnippet" : "rgw 7/21/2022 14:15",
6+
"asText" : "LR 7/23/2022 10:59",
7+
"members" : "rgw 7/21/2022 13:33",
8+
"members:" : "rgw 7/21/2022 13:33" } }
Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
{
2+
"category" : "TelegramClient-Core",
3+
"classinstvars" : [
4+
],
5+
"classvars" : [
6+
],
7+
"commentStamp" : "ek 8/4/2022 10:39",
8+
"instvars" : [
9+
"members" ],
10+
"name" : "TCCAddMembersMessage",
11+
"pools" : [
12+
],
13+
"super" : "TCCMessage",
14+
"type" : "normal" }
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
library calls
2+
checkAuthenticationPassword: aString
3+
4+
self core send: (TCCRequest newCheckAuthenticationPassword: aString).

packages/TelegramClient-Core.package/TCCAuthenticationHandler.class/instance/handleEvent..st

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,4 +8,5 @@ handleEvent: anEvent
88
self isAwaitingDbEncryptionKey ifTrue: [self setDbEncryptionKey: ''].
99
self isAwaitingPhoneNumber ifTrue: [^ #awaitPhoneNumber].
1010
self isAwaitingAuthCode ifTrue: [^ #awaitAuthCode].
11+
self isAwaitingAuthPassword ifTrue: [^ #awaitAuthPassword].
1112
self isAuthorizationStateReady ifTrue: [^ self core authSucceeded].
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
accessing
2+
isAwaitingAuthPassword
3+
4+
^ self authState = 'authorizationStateWaitPassword'

packages/TelegramClient-Core.package/TCCAuthenticationHandler.class/methodProperties.json

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,13 +6,15 @@
66
"authState" : "R.S 5/18/2020 17:54",
77
"authState:" : "R.S 5/18/2020 17:54",
88
"checkAuthenticationCode:" : "RS 6/23/2021 16:35",
9+
"checkAuthenticationPassword:" : "ek 8/4/2022 11:15",
910
"core" : "per 5/21/2021 16:57",
1011
"core:" : "per 5/21/2021 16:57",
11-
"handleEvent:" : "JB 6/7/2021 11:15",
12+
"handleEvent:" : "ek 8/4/2022 11:15",
1213
"initialize" : "RS 4/28/2021 18:04",
1314
"isAuthStateClosed" : "r.s 7/15/2020 12:17",
1415
"isAuthorizationStateReady" : "r.s 7/15/2020 12:17",
1516
"isAwaitingAuthCode" : "r.s 7/15/2020 12:17",
17+
"isAwaitingAuthPassword" : "aka 5/21/2022 10:10",
1618
"isAwaitingDbEncryptionKey" : "8/5/2021 21:14:18",
1719
"isAwaitingPhoneNumber" : "r.s 7/15/2020 12:17",
1820
"isAwaitingTdlibParams" : "8/5/2021 21:14:18",
Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
default values
2+
defaultLastMessageDate
3+
4+
^ DateAndTime fromUnixTime: 0
Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
default values
2+
defaultLastMessageSenderId
3+
4+
^ 0
Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
default values
2+
defaultSelectedReplyToMessageId
3+
4+
^ 0
Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
adding
2+
addMessage: aMessage
3+
4+
self messageDictionary at: aMessage id ifAbsent: [
5+
self messageDictionary at: aMessage id put: Promise new
6+
].
7+
(self messageDictionary at: aMessage id) resolveWith: aMessage.
Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,14 @@
11
adding
22
addNewestMessage: aMessage
33

4-
self messages addFirst: aMessage.
4+
| newDate oldDate |
5+
newDate := aMessage date asDate.
6+
oldDate := self lastMessageDate asDate.
7+
(newDate > oldDate) ifTrue: [
8+
aMessage isFirstMessageOfDay: true.
9+
self lastMessage isLastMessageOfDay: true.
10+
].
11+
self messageIds ifEmpty: [aMessage isFirstMessageOfDay: false].
12+
self messageIds addFirst: aMessage id.
13+
self addMessage: aMessage.
514
self triggerEvent: #newMessage with: aMessage.
Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,12 @@
11
adding
22
addOldestMessage: aMessage
33

4-
self messages add: aMessage.
4+
| newDate oldDate |
5+
newDate := aMessage date asDate.
6+
oldDate := self oldestLoadedMessageDate asDate.
7+
(newDate < oldDate) ifTrue: [
8+
self oldestLoadedMessage isFirstMessageOfDay: true.
9+
aMessage isLastMessageOfDay: true].
10+
self messageIds add: aMessage id.
11+
self addMessage: aMessage.
512
self triggerEvent: #loadedMessage with: aMessage.

packages/TelegramClient-Core.package/TCCChat.class/instance/chatHistoryReceived..st

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -2,9 +2,12 @@ loading
22
chatHistoryReceived: anEvent
33

44
(anEvent at: 'messages') do:
5-
[:message | self addOldestMessage: (TCCMessage newFromMessageEvent: message in: self with: self core)].
5+
[:message | self addOldestMessage: (TCCMessage newFromMessageEvent: message in: self with: self core).
6+
self fulfillMessageRequest: (message at: 'id').
7+
].
8+
9+
(self requestedMessages isEmpty) ifFalse: [self increaseNumberOfRequestedMessages.].
610

711
self waitingForUpdate: false.
812

9-
self stillRequestedMessages > 0
10-
ifTrue: [self loadChatHistory.].
13+
self stillRequestedMessages > 0 ifTrue: [self loadChatHistory.].
Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
loading
2+
fulfillMessageRequest: aMessageId
3+
4+
| fulfilledMessageRequests |
5+
6+
fulfilledMessageRequests := self requestedMessages select: [:req | req messageId = aMessageId].
7+
fulfilledMessageRequests do: [:messageRequest | messageRequest completeRequest.].
8+
9+
self requestedMessages removeAll: fulfilledMessageRequests.
Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
accessing
2+
getMessageById: aNumber
3+
4+
^ (self messageDictionary at: aNumber ifAbsent: [
5+
self messageDictionary at: aNumber put: Promise new.
6+
self requestMessage: aNumber.
7+
self messageDictionary at: aNumber.
8+
])
9+
wait;
10+
value
Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
controlling
2+
handleMessageRequest: aMessageRequest
3+
4+
(self hasMessage: (aMessageRequest messageId)) ifTrue:
5+
[aMessageRequest completeRequest.]
6+
ifFalse:
7+
[self requestedMessages add: aMessageRequest.
8+
self loadChatHistory.].
Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
controlling
2+
hasMessage: aMessageId
3+
4+
^ (self messageIds occurrencesOf: aMessageId) ~= 0
Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
accessing
2+
hasPhoto
3+
4+
^ self photoId isNil not
Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
loading
2+
increaseNumberOfRequestedMessages
3+
4+
self numberOfRequestedMessages: self numberOfRequestedMessages + self class defaultMessageLimit.

packages/TelegramClient-Core.package/TCCChat.class/instance/initialize.st

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,9 +3,13 @@ initialize
33

44
self
55
title: '';
6-
messages: (OrderedCollection new);
6+
messageIds: OrderedCollection new;
7+
messageDictionary: Dictionary new;
78
waitingForUpdate: false;
89
infoLoaded: false;
910
isChannel: false;
1011
position: self class defaultUnknownPosition;
11-
numberOfRequestedMessages: self class defaultNumberOfRequestedMessages.
12+
numberOfRequestedMessages: self class defaultNumberOfRequestedMessages;
13+
selectedReplyToMessageId: self class defaultSelectedReplyToMessageId;
14+
requestedMessages: OrderedCollection new;
15+
isPinned: false.

packages/TelegramClient-Core.package/TCCChat.class/instance/initializeFromChatEvent..st

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,4 +6,11 @@ initializeFromChatEvent: anEvent
66
id: (anEvent at: 'id');
77
canSendMessages: ((anEvent at: 'permissions') at: 'can_send_messages');
88
muted: ((anEvent at: 'notification_settings') at: 'mute_for') > 0;
9-
lastMessage: ''
9+
lastMessageText: '';
10+
lastMessageSenderName: '';
11+
lastMessageSenderId: TCCChat defaultLastMessageSenderId;
12+
isPinned: false.
13+
14+
(anEvent at: 'photo') ifNotNil: [
15+
self photoId: (((anEvent at: 'photo') at: 'small') at: 'id').
16+
].
Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
accessing
2+
isPinned: aBoolean
3+
4+
isPinned := aBoolean
Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
accessing
2+
isPinned
3+
4+
^ isPinned

packages/TelegramClient-Core.package/TCCChat.class/instance/lastMessage..st

Lines changed: 0 additions & 4 deletions
This file was deleted.
Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,7 @@
11
accessing
22
lastMessage
33

4-
^ lastMessage
4+
^ self messages
5+
ifEmpty: [ TCCNotLoadedMessage new
6+
date: self class defaultLastMessageDate]
7+
ifNotEmpty: [ self messages first ]
Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
accessing
2+
lastMessageDate
3+
4+
"Date of the latest received message."
5+
6+
^ self lastMessage date
Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
accessing
2+
lastMessageSenderId: aNumber
3+
4+
lastMessageSenderId := aNumber
Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
accessing
2+
lastMessageSenderId
3+
4+
^ lastMessageSenderId
Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
accessing
2+
lastMessageSenderName: aString
3+
4+
lastMessageSenderName := aString.
Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
accessing
2+
lastMessageSenderName
3+
4+
^ lastMessageSenderName
Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
accessing
2+
lastMessageText: aString
3+
4+
lastMessageText := aString.
Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
accessing
2+
lastMessageText
3+
4+
^ lastMessageText
Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
accessing
2+
messageDictionary: aDictionary
3+
4+
messageDictionary := aDictionary
Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
accessing
2+
messageDictionary
3+
4+
^ messageDictionary
Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
accessing
2+
messageIds: aCollection
3+
4+
messageIds := aCollection
Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
accessing
2+
messageIds
3+
4+
^ messageIds

packages/TelegramClient-Core.package/TCCChat.class/instance/messages..st

Lines changed: 0 additions & 4 deletions
This file was deleted.
Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,8 @@
11
accessing
22
messages
33

4-
^ messages
4+
^ self messageIds collect: [:aNumber |
5+
(self messageDictionary at: aNumber)
6+
wait;
7+
value
8+
]

0 commit comments

Comments
 (0)