Remove push functions from OCTTox

This commit is contained in:
Tha_14 2024-02-29 03:16:31 +02:00
parent 42f9650515
commit 1f1963d135
2 changed files with 0 additions and 177 deletions

View File

@ -69,169 +69,6 @@
[self.dataSource.managerGetNotificationCenter postNotificationName:kOCTScheduleFileTransferCleanupNotification object:nil];
}
- (void)sendOwnPush
{
}
- (void)sendMessagePushToChat:(OCTChat *)chat
{
NSParameterAssert(chat);
NSLog(@"PUSH:sendMessagePushToChat");
__weak OCTSubmanagerChatsImpl *weakSelf = self;
dispatch_async(dispatch_get_main_queue(), ^{
__strong OCTSubmanagerChatsImpl *strongSelf = weakSelf;
OCTRealmManager *realmManager = [strongSelf.dataSource managerGetRealmManager];
OCTFriend *friend = [chat.friends firstObject];
__block NSString *friend_pushToken = friend.pushToken;
if (friend_pushToken == nil)
{
NSLog(@"sendMessagePushToChat:Friend has No Pushtoken");
}
else
{
// HINT: only select outgoing messages (senderUniqueIdentifier == NULL)
NSPredicate *predicate = [NSPredicate predicateWithFormat:@"chatUniqueIdentifier == %@ AND messageText.isDelivered == 0 AND messageText.sentPush == 0 AND senderUniqueIdentifier == nil", chat.uniqueIdentifier];
RLMResults *results = [realmManager objectsWithClass:[OCTMessageAbstract class] predicate:predicate];
OCTMessageAbstract *message_found = [results firstObject];
if (message_found) {
[realmManager updateObject:message_found withBlock:^(OCTMessageAbstract *theMessage) {
theMessage.messageText.sentPush = YES;
}];
triggerPush(friend_pushToken, message_found.messageText.msgv3HashHex, strongSelf, chat);
}
}
});
}
triggerPush(NSString *used_pushToken,
NSString *msgv3HashHex,
OCTSubmanagerChatsImpl *strongSelf,
OCTChat *chat)
{
// HINT: call push token (URL) here
// best in a background thread
//
NSLog(@"PUSH:triggerPush");
if ((used_pushToken != nil) && (used_pushToken.length > 5)) {
// check push url starts with allowed values
if (
([used_pushToken hasPrefix:@"https://tox.zoff.xyz/toxfcm/fcm.php?id="])
||
([used_pushToken hasPrefix:@"https://gotify1.unifiedpush.org/UP?token="])
||
([used_pushToken hasPrefix:@"https://ntfy.sh/"])
) {
NSString *strong_pushToken = used_pushToken;
dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{
// NSString *strong_pushToken = weak_pushToken;
int PUSH_URL_TRIGGER_AGAIN_MAX_COUNT = 8;
int PUSH_URL_TRIGGER_AGAIN_SECONDS = 21;
for (int i=0; i<(PUSH_URL_TRIGGER_AGAIN_MAX_COUNT + 1); i++)
{
if (chat == nil) {
__block UIApplicationState as = UIApplicationStateBackground;
dispatch_sync(dispatch_get_main_queue(), ^{
as =[[UIApplication sharedApplication] applicationState];
});
if (as == UIApplicationStateActive) {
NSLog(@"PUSH:fg->break:1");
break;
}
}
NSMutableURLRequest *urlRequest = [[NSMutableURLRequest alloc] initWithURL:[NSURL URLWithString:strong_pushToken]];
NSString *userUpdate = [NSString stringWithFormat:@"&text=1", nil];
[urlRequest setHTTPMethod:@"POST"];
NSData *data1 = [userUpdate dataUsingEncoding:NSUTF8StringEncoding];
[urlRequest setHTTPBody:data1];
[urlRequest setCachePolicy:NSURLRequestReloadIgnoringCacheData];
[urlRequest setTimeoutInterval:10]; // HINT: 10 seconds
NSString *userAgent = @"Mozilla/5.0 (Windows NT 6.1; rv:60.0) Gecko/20100101 Firefox/60.0";
[urlRequest setValue:userAgent forHTTPHeaderField:@"User-Agent"];
[urlRequest setValue:@"no-cache, no-store, must-revalidate" forHTTPHeaderField:@"Cache-Control"];
[urlRequest setValue:@"no-cache" forHTTPHeaderField:@"Pragma"];
[urlRequest setValue:@"0" forHTTPHeaderField:@"Expires"];
// NSLog(@"PUSH:for msgv3HashHex=%@", msgv3HashHex);
// NSLog(@"PUSH:for friend.pushToken=%@", strong_pushToken);
NSURLSession *session = [NSURLSession sharedSession];
NSURLSessionDataTask *dataTask = [session dataTaskWithRequest:urlRequest completionHandler:^(NSData *data, NSURLResponse *response, NSError *error) {
NSHTTPURLResponse *httpResponse = (NSHTTPURLResponse *)response;
if ((httpResponse.statusCode < 300) && (httpResponse.statusCode > 199)) {
NSLog(@"calling PUSH URL:CALL:SUCCESS");
}
else {
NSLog(@"calling PUSH URL:-ERROR:01-");
}
}];
NSLog(@"calling PUSH URL:CALL:start");
[dataTask resume];
if (i < PUSH_URL_TRIGGER_AGAIN_MAX_COUNT)
{
NSLog(@"calling PUSH URL:WAIT:start");
[NSThread sleepForTimeInterval:PUSH_URL_TRIGGER_AGAIN_SECONDS];
NSLog(@"calling PUSH URL:WAIT:done");
}
if (chat == nil) {
__block UIApplicationState as = UIApplicationStateBackground;
dispatch_sync(dispatch_get_main_queue(), ^{
as =[[UIApplication sharedApplication] applicationState];
});
if (as == UIApplicationStateActive) {
NSLog(@"PUSH:fg->break:2");
break;
}
}
if (msgv3HashHex != nil)
{
OCTRealmManager *realmManager = [strongSelf.dataSource managerGetRealmManager];
__block BOOL msgIsDelivered = NO;
NSLog(@"calling PUSH URL:DB check:start");
dispatch_sync(dispatch_get_main_queue(), ^{
// HINT: only select outgoing messages (senderUniqueIdentifier == NULL)
NSPredicate *predicate = [NSPredicate predicateWithFormat:@"chatUniqueIdentifier == %@ AND messageText.msgv3HashHex == %@ AND senderUniqueIdentifier == nil",
chat.uniqueIdentifier, msgv3HashHex];
RLMResults *results = [realmManager objectsWithClass:[OCTMessageAbstract class] predicate:predicate];
OCTMessageAbstract *message_found = [results firstObject];
if (message_found) {
if (message_found.messageText) {
msgIsDelivered = message_found.messageText.isDelivered;
}
}
NSLog(@"calling PUSH URL:DB check:end_real");
});
NSLog(@"calling PUSH URL:DB check:end");
if (msgIsDelivered == YES) {
// OCTLogInfo(@"PUSH:for msgv3HashHex isDelivered=YES");
NSLog(@"PUSH:for msgv3HashHex isDelivered=YES");
break;
}
}
}
});
}
else {
NSLog(@"unsafe PUSH URL not allowed:-ERROR:02-");
}
}
}
- (void)sendMessageToChat:(OCTChat *)chat
text:(NSString *)text
type:(OCTToxMessageType)type
@ -298,8 +135,6 @@ triggerPush(NSString *used_pushToken,
if ((error.code == OCTToxErrorFriendSendMessageFriendNotConnected) &&
[strongSelf.dataSource managerUseFauxOfflineMessaging]) {
NSString *friend_pushToken = friend.pushToken;
triggerPush(friend_pushToken, msgv3HashHex, strongSelf, chat);
successBlock(-1);
return;
}

View File

@ -57,18 +57,6 @@
successBlock:(void (^)(OCTMessageAbstract *message))userSuccessBlock
failureBlock:(void (^)(NSError *error))userFailureBlock;
/**
* Trigger PUSH Message to yourself
*/
- (void)sendOwnPush;
/**
* Trigger PUSH Message to Friend if the Text Message was sent in a period where the friend
* was online to us, but the friend was in fact already offline.
* so no message was sent AND not PUSH was triggered.
*/
- (void)sendMessagePushToChat:(OCTChat *)chat;
/**
* Set our typing status for a chat. You are responsible for turning it on or off.
*