Example #1
0
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...")