Skip to content

Commit

Permalink
1.1.3
Browse files Browse the repository at this point in the history
  • Loading branch information
level3tjg committed Mar 28, 2024
1 parent 7f7592e commit 6ed12fa
Show file tree
Hide file tree
Showing 2 changed files with 34 additions and 35 deletions.
67 changes: 33 additions & 34 deletions Tweak.xm
Original file line number Diff line number Diff line change
Expand Up @@ -56,41 +56,40 @@ extern "C" Class CoreClass(NSString *name) {
return cls;
}

static BOOL shouldFilterObject(id object) {
NSString *className = NSStringFromClass(object_getClass(object));
BOOL isAdPost = [className hasSuffix:@"AdPost"] ||
([object respondsToSelector:@selector(isAdPost)] && ((Post *)object).isAdPost) ||
([object respondsToSelector:@selector(isPromotedUserPostAd)] &&
[(Post *)object isPromotedUserPostAd]) ||
([object respondsToSelector:@selector(isPromotedCommunityPostAd)] &&
[(Post *)object isPromotedCommunityPostAd]);
BOOL isRecommendation = [className containsString:@"Recommend"];
BOOL isLivestream = [className containsString:@"Stream"];
BOOL isNSFW = [object respondsToSelector:@selector(isNSFW)] && ((Post *)object).isNSFW;
if ([NSUserDefaults.standardUserDefaults boolForKey:kRedditFilterPromoted] && isAdPost)
return YES;
if ([NSUserDefaults.standardUserDefaults boolForKey:kRedditFilterRecommended] && isRecommendation)
return YES;
if ([NSUserDefaults.standardUserDefaults boolForKey:kRedditFilterLivestreams] && isLivestream)
return YES;
if ([NSUserDefaults.standardUserDefaults boolForKey:kRedditFilterNSFW] && isNSFW) return YES;
return NO;
}

static NSArray *filteredObjects(NSArray *objects) {
return [objects
filteredArrayUsingPredicate:[NSPredicate predicateWithBlock:^BOOL(id object,
NSDictionary *bindings) {
NSString *className = NSStringFromClass(object_getClass(object));
BOOL isAdPost =
[className hasSuffix:@"AdPost"] ||
([object respondsToSelector:@selector(isAdPost)] && ((Post *)object).isAdPost) ||
([object respondsToSelector:@selector(isPromotedUserPostAd)] &&
[(Post *)object isPromotedUserPostAd]) ||
([object respondsToSelector:@selector(isPromotedCommunityPostAd)] &&
[(Post *)object isPromotedCommunityPostAd]);
BOOL isRecommendation = [className containsString:@"Recommend"];
BOOL isLivestream = [className containsString:@"Stream"];
BOOL isNSFW = [object respondsToSelector:@selector(isNSFW)] && ((Post *)object).isNSFW;
if ([NSUserDefaults.standardUserDefaults boolForKey:kRedditFilterPromoted] && isAdPost)
return NO;
if ([NSUserDefaults.standardUserDefaults boolForKey:kRedditFilterRecommended] &&
isRecommendation)
return NO;
if ([NSUserDefaults.standardUserDefaults boolForKey:kRedditFilterLivestreams] &&
isLivestream)
return NO;
if ([NSUserDefaults.standardUserDefaults boolForKey:kRedditFilterNSFW] && isNSFW) return NO;
return YES;
}]];
return [objects filteredArrayUsingPredicate:[NSPredicate predicateWithBlock:^BOOL(
id object, NSDictionary *bindings) {
return !shouldFilterObject(object);
}]];
}

%hook Listing
- (void)fetchNextPage:(id (^)(NSArray *, id))completion {
id (^newCompletion)(NSArray *, id) = ^id(NSArray *objects, id arg2) {
objects = filteredObjects(objects);
return completion(objects, arg2);
- (void)fetchNextPage:(id (^)(NSArray *, id))completionHandler {
id (^newCompletionHandler)(NSArray *, id) = ^(NSArray *objects, id _) {
return completionHandler(filteredObjects(objects), _);
};
%orig(newCompletion);
return %orig(newCompletionHandler);
}
%end

Expand All @@ -105,6 +104,10 @@ static NSArray *filteredObjects(NSArray *objects) {
return [NSUserDefaults.standardUserDefaults boolForKey:kRedditFilterPromoted] ? NO
: %orig;
}
- (BOOL)shouldFetchAdditionalCommentAdPosts {
return [NSUserDefaults.standardUserDefaults boolForKey:kRedditFilterPromoted] ? NO
: %orig;
}
%end

%hook StreamManager
Expand Down Expand Up @@ -142,10 +145,6 @@ static NSArray *filteredObjects(NSArray *objects) {
%end

%hook Post
+ (instancetype)alloc {
NSLog(@"post alloc");
return %orig;
}
- (NSArray *)awardingTotals {
return [NSUserDefaults.standardUserDefaults boolForKey:kRedditFilterAwards] ? nil
: %orig;
Expand Down
2 changes: 1 addition & 1 deletion control
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
Package: com.level3tjg.redditfilter
Name: RedditFilter
Version: 1.1.2
Version: 1.1.3
Architecture: iphoneos-arm
Description: Filter out unwanted content from your Reddit feed
Depiction: https://level3tjg.me/repo/depictions/?p=com.level3tjg.redditfilter
Expand Down

0 comments on commit 6ed12fa

Please sign in to comment.