from dataclasses import dataclass, replace
import praw
from praw.models import MoreComments
import re
from typing import List, Union
reddit = praw.Reddit(client_id=",
client_secret="",
password="",
user_agent='',
username="")
@dataclass
class Post:
title: str
id: str
created_utc: str
domain : str
url: str
permalink : str
num_comments: int
@dataclass
class User:
name: str
id: str
created_utc: str
karma: str
subscribed = list(reddit.user.subreddits(limit=None))
def getSubscribedUsers(raw_subreddit_results: List[praw.models.reddit.subreddit.Subreddit])-> List[str]:
subscribed_users = []
for sub in subscribed:
name = sub.display_name
if name.startswith("u_"):
subscribed_users.append(name.replace("u_",""))
return sorted(subscribed_users, key=lambda x: (x.upper(), x))
def getUserOF(username : str, nfsw_only: bool = True) -> Union[str,None]:
#old regex (onlyfans.com/[^\s]+)$
onlyfansMatch = re.compile(r"(onlyfans.com/[A-Za-z0-9_.-]+)", re.IGNORECASE)
user = reddit.redditor(username)
if nfsw_only:
if not user.subreddit["over_18"]:
return None
bio = user.subreddit.public_description
OFinBio = onlyfansMatch.findall(bio)
if OFinBio:
url = OFinBio[0][:-1] if OFinBio[0].endswith(".") else OFinBio[0]
print(f"{username} has {url}")
return url
submissions = user.submissions.hot(limit= 10)
for submission in submissions:
if not submission.stickied:
continue
pinned_post_url = submission.url
OFinURL = onlyfansMatch.findall(pinned_post_url)
if OFinURL:
url = OFinURL[0][:-1] if OFinURL[0].endswith(".") else OFinURL[0]
print(f"{username} has {url} in pinned post url")
return url
pinned_post_content = submission.selftext
OFinPinnedPost = onlyfansMatch.findall(pinned_post_content)
if OFinPinnedPost:
url = OFinPinnedPost[0][:-1] if OFinPinnedPost[0].endswith(".") else OFinPinnedPost[0]
print(f"{username} has {url} in pinned post")
return url
pinned_post_comments = submission.comments
for comment in pinned_post_comments:
if isinstance(comment, MoreComments):
continue
if comment.author != submission.author.name:
continue
OFinComment = onlyfansMatch.findall(comment.body)
if OFinComment:
url = OFinComment[0][:-1] if not OFinComment[0].endswith(".") else OFinComment[0]
print(f"{username} has {url} in pinned post comment")
return url
return None
subscribed_users = getSubscribedUsers(subscribed)
hasOF = []
hasnoOF = []
for user in subscribed_users:
OF = getUserOF(user)
if OF:
hasOF.append({'User':user, "Onlyfans":OF})
continue
hasnoOF.append(user)
print(f"user has of in bio {len(hasOF)}/{len(subscribed_users)}")
print("\nhas no OF")
for user in hasnoOF:
print(user)
Created
July 17, 2021 13:41
-
-
Save Touexe/845db0d49ae3dfd8c29a7cd46b082079 to your computer and use it in GitHub Desktop.
Get reddit followed users Onlyfans links
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment