Я использую PRAW с Python, и я хочу иметь возможность:
- Просматривайте "новые" сообщения в сабреддите.
- Определить, есть ли ссылка на сабреддит в самотексте сообщений
- Если есть связанный субреддит, получите этот субреддит как объект PRAW, который будет использоваться позже.
Я могу выполнить шаг 1, но найти, есть ли связанный субреддит, а затем получить этот субреддит, является для меня сложной задачей. Вот что у меня есть на данный момент:
#! python3
# Reply with subreddit info from subreddit in text body
import praw, time
# Bot login details
USERNAME = "AutoMobBot";
PASSWORD = "<redacted>";
UA = "[Subreddit Info Provider (Update 0) by /u/MatthewMob]";
r = praw.Reddit(UA);
r.login(USERNAME, PASSWORD, disable_warning=True);
submissions = r.get_subreddit("matthewmob_csstesting").get_new(limit=10);
for submission in submissions:
for word in submission.selftext.lower().split():
if word.startswith("/r/"):
print("Found subreddit in:", submission.title);
print(submission.selftext_html);
print("Done...");
input();
Это просто получит материалы, разделит слова в собственном тексте и что-то распечатает, если одно из разделенных слов начинается с /r/
, очевидно, что это не будет работать все время, если пользователь, например, только связал сабреддит как r/askreddit
или www.reddit.com/r/askreddit
. И даже тогда, если бы они связали /r/askreddit/top
(с чем-то в конце), как я смогу получить этот субреддит как объект PRAW? Я пытался найти какой-то код регулярного выражения, чтобы помочь мне в этом, но не нашел.
Мой главный вопрос: как лучше всего получить субреддит по ссылке в пользовательском самотексте и как мне это сделать?
Если вам нужны дополнительные разъяснения, я буду рад предоставить дополнительную информацию.