DotaNoobs main site.
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

38 lines
1.3 KiB

  1. from flask import Flask
  2. from flask.ext.sqlalchemy import SQLAlchemy
  3. from flask.ext.openid import OpenID
  4. from flask.ext.cache import Cache
  5. app = Flask(__name__)
  6. app.config.from_object('config')
  7. db = SQLAlchemy(app)
  8. oid = OpenID(app)
  9. cache = Cache(app, config={'CACHE_TYPE': app.config['CACHE_TYPE']})
  10. import ts3
  11. from apscheduler.schedulers.background import BackgroundScheduler
  12. from teamspeak import idle_mover, store_active_data, \
  13. process_ts3_events, award_idle_ts3_points
  14. def set_voice_server():
  15. ts3Server = ts3.TS3Server(app.config['TS3_HOST'], app.config['TS3_PORT'])
  16. ts3Server.login(app.config['TS3_USERNAME'], app.config['TS3_PASSWORD'])
  17. ts3Server.use(1)
  18. return ts3Server
  19. voice = set_voice_server()
  20. def refresh_voice_server():
  21. app.logger.info("Refreshing TS3 connection...")
  22. voice = set_voice_server()
  23. scheduler = BackgroundScheduler(logger=app.logger)
  24. scheduler.add_job(refresh_voice_server, 'interval', hours=6)
  25. scheduler.add_job(idle_mover, 'interval', [voice], minutes=30)
  26. scheduler.add_job(store_active_data, 'interval', [voice], minutes=30)
  27. scheduler.add_job(award_idle_ts3_points, 'interval', [voice], minutes=30)
  28. scheduler.add_job(process_ts3_events, 'interval', [voice], hours=1)
  29. scheduler.start()
  30. from app import views, models