Created
October 10, 2018 18:42
-
-
Save NSExceptional/a74fd3d073c1e7106c64db2a37ff46c0 to your computer and use it in GitHub Desktop.
Tweak to prevent i.imgur.com redirecting to m.imgur.com
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// | |
// 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