· 4 years ago · May 19, 2021, 06:30 AM
1import yagmail
2import pandas
3from news import NewsFeed
4import datetime
5import time
6
7
8def send_email():
9 today = datetime.datetime.now().strftime('%Y-%m-%d')
10 yesterday = (datetime.datetime.now() - datetime.timedelta(days=1)).strftime('%Y-%m-%d')
11 news_feed = NewsFeed(interest=row['interest'],
12 from_date=yesterday,
13 to_date=today)
14 email = yagmail.SMTP(user="YOUR GMAIL ADDRESS", password="PASSWORD OF YOUR GMAIL ADDRESS")
15 email.send(to=row['email'],
16 subject=f"Your {row['interest']} news for today!",
17 contents=f"Hi {row['name']}\n See what's on about {row['interest']} today. \n{news_feed.get()}\nArdit")
18
19
20while True:
21 if datetime.datetime.now().hour == 13 and datetime.datetime.now().minute == 28:
22 df = pandas.read_excel('people.xlsx')
23
24 for index, row in df.iterrows():
25 send_email()
26
27 time.sleep(60)
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42//////////////////////
43
44
45
46
47
48
49import requests
50
51
52class NewsFeed:
53 """Representing multiple news titles and links as a single string
54 """
55 base_url = "http://newsapi.org/v2/everything?"
56 api_key = "INSERT YOUR API KEY HERE"
57
58 def __init__(self, interest, from_date, to_date, language='en'):
59 self.interest = interest
60 self.from_date = from_date
61 self.to_date = to_date
62 self.language = language
63
64 def get(self):
65 url = self._build_url()
66
67 articles = self._get_articles(url)
68
69 email_body = ''
70 for article in articles:
71 email_body = email_body + article['title'] + "\n" + article['url'] + "\n\n"
72
73 return email_body
74
75 def _get_articles(self, url):
76 response = requests.get(url)
77 content = response.json()
78 articles = content['articles']
79 return articles
80
81 def _build_url(self):
82 url = f"{self.base_url}" \
83 f"qInTitle={self.interest}&" \
84 f"from={self.from_date}&" \
85 f"to={self.to_date}&" \
86 f"language={self.language}&" \
87 f"apiKey={self.api_key}"
88 return url
89
90
91if __name__ == "__main__":
92 news_feed = NewsFeed(interest='nasa', from_date='2020-11-12', to_date='2020-11-13', language='en')
93 print(news_feed.get())
94
95
96/
97//////////////////
98
99cachetools==4.2.0
100certifi==2020.12.5
101chardet==4.0.0
102cssselect==1.1.0
103cssutils==1.0.2
104et-xmlfile==1.0.1
105idna==2.10
106jdcal==1.4.1
107lxml==4.6.2
108numpy==1.19.4
109openpyxl==3.0.5
110pandas==1.2.0
111premailer==3.7.0
112python-dateutil==2.8.1
113pytz==2020.5
114requests==2.25.1
115six==1.15.0
116urllib3==1.26.2
117yagmail==0.14.245