Skip to content

Instantly share code, notes, and snippets.

@NSExceptional
Created October 10, 2018 18:42
Show Gist options
  • Save NSExceptional/a74fd3d073c1e7106c64db2a37ff46c0 to your computer and use it in GitHub Desktop.
Save NSExceptional/a74fd3d073c1e7106c64db2a37ff46c0 to your computer and use it in GitHub Desktop.
Tweak to prevent i.imgur.com redirecting to m.imgur.com
//
// Tweak.xm
// NoImgurRedirect
//
// Created by Tanner Bennett on 2018-10-10
// Copyright © 2018 Tanner Bennett. All rights reserved.
//
static NSString * const kTargetHost = @"i.imgur.com";
static NSString * const kUserAgentField = @"User-Agent";
static NSString * const kUserAgent = @"Safari";
%hook NSURLRequest
- (id)initWithURL:(NSURL *)url {
if ([url.host hasSuffix:kTargetHost]) {
if ([self isKindOfClass:[NSMutableURLRequest class]]) {
self = %orig;
[(NSMutableURLRequest *)self setValue:kUserAgent forHTTPHeaderField:kUserAgentField];
} else {
self = [[NSMutableURLRequest alloc] initWithURL:url];
}
} else {
self = %orig;
}
return self;
}
%end
%hook NSMutableURLRequest
- (void)addValue:(NSString *)value forHTTPHeaderField:(NSString *)field {
if (![self.URL.host hasSuffix:kTargetHost] || ![field isEqualToString:kUserAgentField]) {
%orig;
}
}
- (void)setValue:(NSString *)value forHTTPHeaderField:(NSString *)field {
if (![self.URL.host hasSuffix:kTargetHost] || ![field isEqualToString:kUserAgentField]) {
%orig;
}
}
- (void)setAllHTTPHeaderFields:(NSDictionary *)headers {
%orig;
if (headers[kUserAgentField]) {
[self setValue:kUserAgent forHTTPHeaderField:kUserAgentField];
}
}
%end
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment