Автор оригинала: FreeCodeCapm Team.
Келси Ван
Разве ты не просто Любовь Автоматизированные электронные письма? Я знаю, что. Я имею в виду, кому не нравится просыпаться до 236 новых сообщений от Nike, Tickenmaster и Adobe Creative Cloud каждое утро? Какой фантастический способ начать мой день! ??
Во всяком случае, сегодня я буду показывать вам, как утопить свой почтовый ящик в большем количестве бесподомости, для того, чтобы Бог – какую причину. Мы собираемся быть Используя Python, чтобы создать пользовательскую систему уведомления электронной почты Reddit. Это означает, что мы будем писать сценарий, который ищет посты Reddit, соответствующий нескольким ключевым словам, а затем по электронной почте нам, когда появятся такие посты.
Есть несколько причин, которые вы можете сделать это. Может быть, вы действительно взволнованы какой-то темой на Reddit. Может быть, вы пытаетесь открыть новую технику кармы-фермерского хозяйства, потому что для вас важен интернет-баллы. Может быть, вы хотите отправить раздражающие электронные письма своим друзьям. Или, может быть, вы просто хотите больше электронных писем в вашем почтовом ящике, чтобы справиться со своим кривым одиночеством. Ой, извините – заходил слишком далеко. Давайте начнем.
Глядя через Reddit.
Reddit имеет Хороший API что вы можете многое сделать с. Чтобы сделать вещи еще проще, мы будем использовать Praw , обертка Python Reddit API.
Вам сначала понадобится учетная запись Reddit. Как только у вас есть один, иди здесь создать приложение. Назовите его что-нибудь, и убедитесь, что «Script» выбран. Согласно документам, вы можете просто поставить http://localhost: 8080 для вашего перенаправления URI.
Теперь вы готовы начать этот изящный скрипт! В коде ниже Я смотрю через Subreddit, выбирая посты, которые соответствуют моим потребностям.
Я считаю пост A Матч Если это уместно, и если он достаточно популярен. Более конкретно, пост достаточно актуален, когда у него есть ключевое слово_count
Это не -1 (я объясню это ниже) и достаточно популярным, когда у него есть Weeved_score
больше, чем предопределенный Min_relevant_weighted_score
Отказ Взвешенная оценка просто факторы в оценке поста и количества комментариев на посту. Во всяком случае, это то, что лучше подходит для моих потребностей, так что не стесняйтесь, чтобы лучше определить, что значит для вас совпадение.
Теперь я обещал тебе, что поговорим о ключевое слово_count
вечеринка продолжается. Спойлер: Это не очень вечеринка. Я только что разработал этот простой способ оценки релевантности: есть обязательные условия и вторичные условия. Пост актуален, если и только в том случае, если все необходимые условия находятся в заголовке, и по крайней мере x количество вторичных условий находятся в заголовке (где x – это некоторое предварительно определенное число). Опять же, эта часть может быть перенесена в бесконечно разные способы, но это именно то, что я сделал.
Теперь у нас есть все, чтобы расчесывать через наш подчиненный и дразнить хорошие вещи о заговорах или что-то еще. Прохладный. Итак, как моя семья Ариана говорит: «Спасибо, Далее».
Уведомления по электронной почте
Время начать спам. В следующем коде я использую smtplib (Клиент просмотра просмотра просмотра по почте), чтобы помочь мне отправить мои электронные письма. Затем я повторю красивую электронную почту с HTML, используя информацию от Reddit, которую мы получили выше, чтобы заполнить его. И лучший (или худший?) Часть – это, если вы хотите уведомить всех, вы знаете о последних и величайших постах Reddit, вы можете просто добавить дополнительные адреса электронной почты на email_list
Отказ
Важная сторона Примечание. Убедитесь, что электронное письмо, которое вы используете для отправки электронные письма имеют менее безопасный доступ приложения Включено, если это адрес Gmail, или это не будет работать.
Заставить его работать вечно
Если у вас нет времени постоянно просматривать Reddit, у вас нет времени, чтобы постоянно запустить этот скрипт. Я использовал планировщик Heroku, чтобы запускать этот сценарий каждые 10 минут, как предложено этим Переполнение стека отвечать. Это довольно легко следовать: добавьте в несколько дополнительных файлов и пустых веб-серверов, нажмите на Heroku, добавьте дополнение планировщика Heroku и БАМ! Вы устанавливаете, пока не закончите бесплатные Dyno-часы. ??
Это лучшее решение? Но это достаточно для моих целей? Ага. Если вы знаете одинаково тривиальный способ сделать это, пожалуйста, дайте мне знать!
В заключении
Это почти все к этому проекту. Это Github Repo Содержит весь мой код. Из-за всей работы, которая буквально все остальные уже сделали, довольно простая задача создать эту пользовательскую систему уведомлений Reddit. Должен любить ✨magic✨ разработки программного обеспечения.
Если вы сделали его вплоть до него, пожалуйста, прокомментируйте «North Dakota – лучший производитель ячменя в США» в поле ниже.
Спасибо за прочтение!