diff --git a/c2cscrape.py b/c2cscrape.py index 22c61fd..238dc71 100644 --- a/c2cscrape.py +++ b/c2cscrape.py @@ -74,25 +74,27 @@ class C2CScrape: print('Error: Could not get episode info') return - # Check if already downloaded - date = datetime.datetime.now().strftime('%Y-%m-%d') - if date == self.last_download and url == self.last_download_link: - print('Episode already downloaded') - return - # Create downloads directory if it doesn't exist download_dir = 'downloads' os.makedirs(download_dir, exist_ok=True) - # Download the file - response = requests.get(url, headers=self.headers) - response.raise_for_status() + # Get current date + date = datetime.datetime.now().strftime('%Y-%m-%d') # Create sanitized filename filename = f'{episode_data["title"]} {date}.mp4' safe_filename = self.sanitize_filename(filename) filepath = os.path.join(download_dir, safe_filename) - + + # Check if file already exists + if os.path.exists(filepath): + print(f'File already exists: {safe_filename}') + return + + # Download the file + response = requests.get(url, headers=self.headers) + response.raise_for_status() + with open(filepath, 'wb') as f: f.write(response.content) print(f'Downloaded: {safe_filename}') @@ -106,6 +108,7 @@ class C2CScrape: except Exception as e: print(f'Error: {e}') + def process_episode(self): drive_url = self.get_drive_link(self.url) if drive_url: @@ -114,8 +117,56 @@ class C2CScrape: self.download_episode(download_url) class createRss: - pass + def __init__(self): + self.episodes = [] + self.feed = None + self.feed_title = 'Coast to Coast AM' + self.feed_link = 'https://zfirelight.blogspot.com/' + self.feed_description = 'Coast to Coast AM episodes' + + def create_feed(self): + self.feed = f'\n' + self.feed += f'\n' + self.feed += f'\n' + self.feed += f'{self.feed_title}\n' + self.feed += f'{self.feed_link}\n' + self.feed += f'{self.feed_description}\n' + for episode in self.episodes: + self.feed += f'\n' + self.feed += f'{episode["title"]}\n' + self.feed += f'{episode["url"]}\n' + self.feed += f'{episode["date"]}\n' + self.feed += f'\n' + self.feed += f'\n' + self.feed += f'\n' + + def save_feed(self): + try: + with open('feed.xml', 'w') as f: + f.write(self.feed) + print('Feed saved') + except Exception as e: + print(f'Error saving feed: {e}') + + def add_episode(self, episode): + self.episodes.append(episode) + + def process_episodes(self): + c2c = C2CScrape() + response = requests.get(c2c.url, headers=c2c.headers) + response.raise_for_status() + soup = BeautifulSoup(response.text, 'html.parser') + + posts = soup.find_all('div', class_='post hentry') + for post in posts: + episode = c2c.get_episode_info(post) + if episode: + self.add_episode(episode) + self.create_feed() + self.save_feed() if __name__ == '__main__': c2c = C2CScrape() c2c.process_episode() + rss = createRss() + rss.process_episodes()