Generate video thumb from file url instead of public url (#6922)

This commit is contained in:
Elias Nahum
2023-01-05 13:49:04 +02:00
committed by GitHub
parent 001a6699fb
commit ca1f6df1c6
5 changed files with 122 additions and 9 deletions

View File

@@ -27,4 +27,12 @@ import Gekidou
@objc func setPreference(_ value: Any?, forKey name: String) {
Preferences.default.set(value, forKey: name)
}
@objc func getToken(for url: String) -> String? {
if let token = try? Keychain.default.getToken(for: url) {
return token
}
return nil
}
}

View File

@@ -8,6 +8,8 @@
#import "AppDelegate.h"
#import "MattermostManaged.h"
#import "CreateThumbnail.h"
#import "Mattermost-Swift.h"
@implementation MattermostManaged
@@ -107,7 +109,6 @@ RCT_EXPORT_METHOD(renameDatabase: (NSString *)databaseName to: (NSString *) new
NSDictionary *appGroupDir = [self appGroupSharedDirectory];
NSString *databaseDir;
NSString *newDBDir;
if(databaseName){
databaseDir = [NSString stringWithFormat:@"%@/%@%@", appGroupDir[@"databasePath"], databaseName , @".db"];
@@ -200,4 +201,27 @@ RCT_EXPORT_METHOD(lockPortrait)
}
RCT_EXPORT_METHOD(createThumbnail:(NSDictionary *)config findEventsWithResolver:(RCTPromiseResolveBlock)resolve rejecter:(RCTPromiseRejectBlock)reject)
{
NSMutableDictionary *newConfig = [config mutableCopy];
NSMutableDictionary *headers = [config[@"headers"] ?: @{} mutableCopy];
NSString *url = (NSString *)[config objectForKey:@"url"] ?: @"";
NSURL *vidURL = nil;
NSString *url_ = [url lowercaseString];
if ([url_ hasPrefix:@"http://"] || [url_ hasPrefix:@"https://"] || [url_ hasPrefix:@"file://"]) {
vidURL = [NSURL URLWithString:url];
NSString *serverUrl = [NSString stringWithFormat:@"%@://%@:%@", vidURL.scheme, vidURL.host, vidURL.port];
if (vidURL != nil) {
NSString *token = [[GekidouWrapper default] getTokenFor:serverUrl];
if (token != nil) {
headers[@"Authorization"] = [NSString stringWithFormat:@"Bearer %@", token];
newConfig[@"headers"] = headers;
}
}
}
[CreateThumbnail create:newConfig findEventsWithResolver:resolve rejecter:reject];
}
@end