def main(self): if not database_exists(self.CONFIG["database_url"]): self.logger.info("Creating new database") Database.init_db(self.CONFIG["database_url"]) self.logger.info("Connecting to the database") db = Database.from_url(self.CONFIG["database_url"]) users = self.update_users_preferences(db) venues = db.get_distinctive_items("venue") artists = db.get_distinctive_items("artist") promoters = db.get_distinctive_items("promoter") # go through venues new_events = [] for venue in venues: self.logger.info(f"Checking {venue['name']} venue...") venue["type"] = "venue" venue_events = self.get_events( venue, self.CONFIG["venue_url_prefix"] + venue["tag"] ) new_venue_events = self.add_to_database(db, venue_events) new_events.extend(new_venue_events) for artist in artists: self.logger.info(f"Checking {artist['name']} artist...") artist["type"] = "artist" artist_events = self.get_events( artist, self.CONFIG["artist_url_prefix"] + artist["tag"] ) new_artist_events = self.add_to_database(db, artist_events) new_events.extend(new_artist_events) for promoter in promoters: self.logger.info(f"Checking {promoter['name']} promoter...") promoter["type"] = "promoter" promoter_events = self.get_events( promoter, self.CONFIG["promoter_url_prefix"] + promoter["tag"] ) new_promoter_events = self.add_to_database(db, promoter_events) new_events.extend(new_promoter_events) db.commit() for new_event in new_events: self.add_event_notifications(new_event, users) self.send_emails(users)