def data_loading(): app.app_context().push() # Load company (quote) details and announcement details print("Starting data loading job...") Company.company_scrape() announcements = Announcement.announcement_scrape() db.session.commit() if not Announcement.query.filter_by( announced_date=datetime.date.today()).first(): print("No operation today, no announcement/stock update required") return # Send out announcements based on announcements loading for announcement in announcements: recipients = announcement.subscriber() chats = [] for recipient in recipients: chats.append(recipient.chat_id) chats.append(os.environ.get('TARGET_CHANNEL')) response = announcement.announcement_message() if response: for chat in chats: time.sleep(0.1) telegram_bot.send_message(chat_id=chat, text=response, parse_mode='HTML') # Query all companies and run price check and price alert for each subs = Subscribe.query.all() for sub in subs: time.sleep(0.1) sub.company.price_change() sub.company.price_alert() db.session.commit() print("Data loading job completed...")