Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
R
rss-email
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Analytics
Analytics
CI / CD
Repository
Value Stream
Wiki
Wiki
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
Murukesh Mohanan
rss-email
Commits
ed952c6f
Commit
ed952c6f
authored
Aug 05, 2015
by
Murukesh Mohanan
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
bug fixes
parent
98ea20ab
Changes
2
Show whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
17 additions
and
15 deletions
+17
-15
rss-email.py
rss-email.py
+16
-14
rssemailconfig.example.py
rssemailconfig.example.py
+1
-1
No files found.
rss-email.py
View file @
ed952c6f
...
@@ -13,7 +13,7 @@ from bs4 import BeautifulSoup
...
@@ -13,7 +13,7 @@ from bs4 import BeautifulSoup
import
rssemailconfig
import
rssemailconfig
feed
=
{
'file'
:
'feed.pickle'
}
feed
=
{
'file'
:
'feed.pickle'
}
mail
=
{
'from'
:
'Murukesh Mohanan <murukesh@cse.iitb.ac.in>'
}
mail
=
{
'from'
:
'Murukesh Mohanan <murukesh@cse.iitb.ac.in>'
,
'title'
:
''
}
smtp
=
{}
smtp
=
{}
old_entries
=
set
()
old_entries
=
set
()
...
@@ -27,8 +27,9 @@ def get_new_posts ():
...
@@ -27,8 +27,9 @@ def get_new_posts ():
post_ids
=
[
post
.
id
for
post
in
current_entries
]
post_ids
=
[
post
.
id
for
post
in
current_entries
]
try
:
try
:
old_entries
=
pickle
.
load
(
open
(
feed
[
'file'
],
'
br
'
))
old_entries
=
pickle
.
load
(
open
(
feed
[
'file'
],
'
rb
'
))
except
(
EOFError
,
FileNotFoundError
):
except
(
EOFError
,
FileNotFoundError
):
print
(
"No old posts.
\n
"
)
old_entries
=
set
()
old_entries
=
set
()
new_post_ids
=
set
(
id
for
id
in
post_ids
if
id
not
in
old_entries
)
new_post_ids
=
set
(
id
for
id
in
post_ids
if
id
not
in
old_entries
)
...
@@ -37,33 +38,34 @@ def get_new_posts ():
...
@@ -37,33 +38,34 @@ def get_new_posts ():
def
convert_post_to_email
(
post
):
def
convert_post_to_email
(
post
):
msg
=
MIMEMultipart
(
'alternative'
)
msg
=
MIMEMultipart
(
'alternative'
)
msg
[
'Subject'
]
=
mail
[
'prefix'
]
+
post
.
title
msg
[
'Subject'
]
=
': '
.
join
([
mail
[
'prefix'
],
post
.
title
])
msg
[
'From'
]
=
mail
[
'from'
]
msg
[
'From'
]
=
mail
[
'from'
]
msg
[
'To'
]
=
mail
[
'to'
]
msg
[
'To'
]
=
mail
[
'to'
]
part1
=
MIMEText
(
BeautifulSoup
(
post
[
'summary'
])
.
get_text
(),
'plain'
)
part1
=
MIMEText
(
BeautifulSoup
(
post
[
'summary'
])
.
get_text
(),
'plain'
)
html_email
=
post
[
'summary'
]
+
'<br><hr><a target="_blank" href="'
+
post
[
'id'
]
+
'">'
+
post
[
'id'
]
+
'</a>'
html_email
=
'{:s}<br><hr><a,target="_blank",href="{:s}">{:s}</a>'
.
format
(
post
[
'summary'
],
post
[
'id'
],
post
[
'id'
])
part2
=
MIMEText
(
html_email
,
'html'
)
part2
=
MIMEText
(
html_email
,
'html'
)
msg
.
attach
(
part1
)
msg
.
attach
(
part1
)
msg
.
attach
(
part2
)
msg
.
attach
(
part2
)
return
msg
return
msg
def
mail_
feed
(
feed
):
def
mail_
posts
(
posts
):
smtp
=
SMTP
(
smtp_url
)
smtp
_server
=
SMTP
(
smtp
[
'url'
]
)
smtp
.
starttls
()
smtp
_server
.
starttls
()
smtp
.
login
(
*
smtp_creds
)
smtp
_server
.
login
(
*
smtp
[
'creds'
]
)
bad_posts
=
set
()
bad_posts
=
set
()
for
post
in
feed
:
for
post
in
posts
:
msg
=
convert_post_to_email
(
post
)
msg
=
convert_post_to_email
(
post
)
try
:
try
:
smtp
.
send_message
(
msg
)
smtp
_server
.
send_message
(
msg
)
except
:
except
:
bad_posts
.
add
(
post
.
id
)
bad_posts
.
add
(
post
.
id
)
return
bad_posts
return
bad_posts
def
save_sent_posts
(
feed
,
bad_posts
):
def
save_sent_posts
(
new_posts
,
bad_posts
):
old_entries
.
update
(
post
.
id
for
post
in
feed
if
post
.
id
not
in
bad_posts
)
old_entries
.
update
(
post
.
id
for
post
in
new_posts
if
post
.
id
not
in
bad_posts
)
with
open
(
feed
_file
,
'bw
'
)
as
f
:
with
open
(
feed
[
'file'
],
'wb
'
)
as
f
:
pickle
.
dump
(
old_entries
,
f
)
pickle
.
dump
(
old_entries
,
f
)
print
(
old_entries
)
return
return
if
__name__
==
"__main__"
:
if
__name__
==
"__main__"
:
...
@@ -71,5 +73,5 @@ if __name__ == "__main__":
...
@@ -71,5 +73,5 @@ if __name__ == "__main__":
if
len
(
new_posts
)
==
0
:
if
len
(
new_posts
)
==
0
:
print
(
"No new posts."
)
print
(
"No new posts."
)
sys
.
exit
(
0
)
sys
.
exit
(
0
)
bad_posts
=
mail_
feed
(
new_posts
)
bad_posts
=
mail_
posts
(
new_posts
)
save_sent_posts
(
new_posts
,
bad_posts
)
save_sent_posts
(
new_posts
,
bad_posts
)
rssemailconfig.example.py
View file @
ed952c6f
...
@@ -14,4 +14,4 @@ smtp['url'] = 'smtp-auth.iitb.ac.in'
...
@@ -14,4 +14,4 @@ smtp['url'] = 'smtp-auth.iitb.ac.in'
smtp
[
'creds'
]
=
[
'murukesh'
,
'password'
]
smtp
[
'creds'
]
=
[
'murukesh'
,
'password'
]
mail
[
'to'
]
=
'murukesh.mohanan@gmail.com'
mail
[
'to'
]
=
'murukesh.mohanan@gmail.com'
mail
[
'prefix'
]
=
'IITB Placement Blog'
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment