Broke the feed methods out into a separate file. Started adding method to delete feeds.

This commit is contained in:
Dan Dembinski
2020-02-20 16:42:51 -05:00
parent 735eee6f1f
commit ce6e2546ba
2 changed files with 126 additions and 96 deletions

105
main.py
View File

@@ -1,37 +1,8 @@
import opml
# import sqlalchemy as db
import database as db
import feedparser as fp
import Feed
userID = None
def podcastImport (userID):
outline = opml.parse("podcast_republic_podcasts.opml")
#get the number of shows from the OPML file
x = len(outline)
y=0
#loops through each podcast and parses out relevant information
while y < x:
title = outline[y].title
url = outline[y].xmlUrl
artwork = outline[y].pr_artwork
desc = outline[y].pr_desc
#checks to see if the podcast URL already exists for logged in user and skips it if it has already been imported.
query = db.sql.text("""select URL from Podcasts where URL = \"%s\" and userID = %i""" % (url, userID))
exists = db.con.execute(query).fetchone()
#if the show doesn't already exist for the logged in user it gets added
if exists is None or exists[0] != url:
query = db.sql.text("""insert into Podcasts (userID, title, URL, artworkURL) values(%i, \"%s\", \"%s\", \"%s\") """ % (userID, title, url, artwork))
db.con.execute(query)
print("%s added" % title)
else:
print("%s already exists" % title)
y=y+1
def login():
username = 'Dan'
@@ -46,69 +17,6 @@ def login():
return result[0]
def updateFeeds(userID):
showCheck = []
#grabs podcast urls from logged in user
query = db.sql.text("""select URL, podcastID, title from Podcasts where userID = %i""" % userID)
shows = db.con.execute(query).fetchall()
#loops through the returned urls and parses each rss feed
y=0
for x in shows:
#Here we're grabbing all the show urls for each podcast and moving them into a separate array.
query = db.sql.text("""select link from Shows where userID = %i and podcastID = %i""" % (userID, shows[y][1]))
showGrab = db.con.execute(query).fetchall()
z=0
for each in showGrab:
showCheck.append(showGrab[z][0])
z=z+1
parsed = fp.parse(shows[y][0])
count = 0
for items in parsed['entries']:
url = parsed.entries[count].enclosures[0].get('href')
#after parsing out the show URL we check if it already exists by comparing it against the showCheck array containing all show URLs
if url not in showCheck:
query = db.sql.text("""insert into Shows (podcastID, userID, link) values (%i, %i, \"%s\")""" % (shows[y][1], userID, url))
db.con.execute(query)
else:
continue
count = count + 1
print("%s has been updated" % shows[y][2])
y=y+1
showCheck = [] #Clear out the array for the next podcast
def addFeed(userID):
newURL = input("Enter Feed URL: ")
count = 0
parsed = fp.parse(newURL)
title = parsed.feed.title
artwork = parsed.feed.image
# checks to see if the podcast URL already exists for logged in user and skips it if it has already been imported.
query = db.sql.text("""select URL from Podcasts where URL = \"%s\" and userID = %i""" % (newURL, userID))
exists = db.con.execute(query).fetchone()
# if the show doesn't already exist for the logged in user it gets added
if exists is None or exists[0] != newURL:
query = db.sql.text("""insert into Podcasts (userID, title, URL, artworkURL) values(%i, \"%s\", \"%s\", \"%s\") """ % (userID, title, newURL, artwork))
db.con.execute(query)
print("%s added" % title)
# Once the podcast is added we grab the podcastID so we can import the shows
query = db.sql.text("""select podcastID from Podcasts where userID = %i and URL = \"%s\"""" % (userID, newURL))
result = db.con.execute(query).fetchone()
podcastID = result[0]
# Import the new shows. No need to check if the show URLS already exist since it's new
for items in parsed['entries']:
itemURL = parsed.entries[count].enclosures[0].get('href')
query = db.sql.text("""insert into Shows (podcastID, userID, link) values (%i, %i, \"%s\")""" % (podcastID, userID, itemURL))
db.con.execute(query)
count = count + 1
else:
print("%s already exists" % title)
while True:
print("1. Login\n2. Upload\n3. Update feeds\n4. Add Feed\n9. Exit\n")
val = input(">>>")
@@ -118,16 +26,21 @@ while True:
if userID is None or userID == '':
print("Please login first")
else:
podcastImport(userID)
Feed.feedImport(userID)
elif val == "3":
if userID is None or userID == '':
print("Please login first")
else:
updateFeeds(userID)
Feed.updateFeeds(userID)
elif val == "4":
if userID is None or userID == '':
print("Please login first")
else:
addFeed(userID)
Feed.addFeed(userID)
elif val == "5":
if userID is None or userID == '':
print("Please login first")
else:
Feed.deleteFeed(userID)
elif val == "9":
exit()