62 lines
1.8 KiB
Python

from dotenv import load_dotenv
import os
import time
load_dotenv()
def ensure_folder_exists(folder_path):
os.makedirs(folder_path, exist_ok=True)
ADR = os.getenv("SERVER_ADDRESS", "http://localhost")
FinalFolder = os.getenv("TICKER_FOLDER", "./TickerFiles/")
XmlRoute = ADR + os.getenv("XML_ROUTE", "./xml/rss/input.xml")
SLEEP_SECONDS = int(os.getenv("SLEEP_SECONDS", "30"))
ensure_folder_exists(FinalFolder)
def get_posts_details(rss=None):
if rss is not None:
import feedparser
blog_feed = feedparser.parse(rss)
posts = blog_feed.entries
post_list = []
for post in posts:
temp = {}
temp["title"] = getattr(post, "title", "")
post_list.append(temp)
return post_list
else:
return None
while True:
posts_details = get_posts_details(rss=XmlRoute)
try:
for i in os.listdir(FinalFolder):
try:
os.remove(os.path.join(FinalFolder, i))
except Exception as e:
print(f"No file to delete: {e}")
except Exception as e:
print(f"Error listing directory: {e}")
x = 0
print("---------------------------------------------------------------------")
incEr = 0
if posts_details:
for i, post in enumerate(posts_details):
title = post.get('title', '')
x += 1
print(f"{x-incEr}) {title}")
if not title:
incEr += 1
continue
filename = f"{i+1-incEr:02}.txt"
try:
with open(os.path.join(FinalFolder, filename), "w", encoding='utf-8') as o:
o.write(title)
except Exception as e:
print(f"Error writing file {filename}: {e}")
print("number of files: ", x - incEr)
time.sleep(SLEEP_SECONDS)