Exemplo n.º 1
0
from flask import Flask
from config import ConfigFactory
from core.routes import register_routes
from core.docs import register_swagger_routes
from storage import register_storage

app = Flask(__name__)

# load configuration
configuration = ConfigFactory().get(app.config['ENV'])
app.config.from_object(configuration)

# define data source and create API endpoints
register_storage(app)
register_routes(app)

if app.config['ENV'] != 'testing':
    register_swagger_routes(app)

if __name__ == '__main__':
    app.run()
Exemplo n.º 2
0
from apscheduler.schedulers.blocking import BlockingScheduler
import logging
import os

from bot import SynthweetixBot
from config import ConfigType, ConfigFactory

if __name__ == '__main__':
    # Configuration
    app_settings = os.getenv('CONFIGURATION', default='development')
    type_ = ConfigType.reverse_lookup(app_settings)
    cfactory = ConfigFactory()
    config = cfactory.get(type_)

    # Logging
    logging.basicConfig(format='[%(asctime)s] [%(levelname)s] %(message)s',
                        level=config.LOG_LEVEL)

    logging.info(f'Initializing Synthweetix in {app_settings} environment')
    bot = SynthweetixBot(
        config.TWITTER_CONSUMER_KEY, config.TWITTER_CONSUMER_SECRET,
        config.TWITTER_ACCESS_TOKEN, config.TWITTER_ACCESS_SECRET,
        config.ETHERSCAN_API_KEY, config.TRADE_VALUE_THRESHOLD,
        config.EYE_CATCHER_THRESHOLD)

    # Run once on startup
    bot.execute()

    # Run the bot periodically
    if config.TRIGGER is not None:  # In case the bot is deployed as a Heroku or Docker cron job.
        scheduler = BlockingScheduler()