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
38 lines
1.3 KiB
from flask import Flask
|
|
from flask.ext.sqlalchemy import SQLAlchemy
|
|
from flask.ext.openid import OpenID
|
|
from flask.ext.cache import Cache
|
|
|
|
app = Flask(__name__)
|
|
app.config.from_object('config')
|
|
|
|
db = SQLAlchemy(app)
|
|
oid = OpenID(app)
|
|
cache = Cache(app, config={'CACHE_TYPE': app.config['CACHE_TYPE']})
|
|
|
|
import ts3
|
|
from apscheduler.schedulers.background import BackgroundScheduler
|
|
from teamspeak import idle_mover, store_active_data, \
|
|
process_ts3_events, award_idle_ts3_points
|
|
|
|
def set_voice_server():
|
|
ts3Server = ts3.TS3Server(app.config['TS3_HOST'], app.config['TS3_PORT'])
|
|
ts3Server.login(app.config['TS3_USERNAME'], app.config['TS3_PASSWORD'])
|
|
ts3Server.use(1)
|
|
return ts3Server
|
|
|
|
voice = set_voice_server()
|
|
|
|
def refresh_voice_server():
|
|
app.logger.info("Refreshing TS3 connection...")
|
|
voice = set_voice_server()
|
|
|
|
scheduler = BackgroundScheduler(logger=app.logger)
|
|
scheduler.add_job(refresh_voice_server, 'interval', hours=6)
|
|
scheduler.add_job(idle_mover, 'interval', [voice], minutes=30)
|
|
scheduler.add_job(store_active_data, 'interval', [voice], minutes=30)
|
|
scheduler.add_job(award_idle_ts3_points, 'interval', [voice], minutes=30)
|
|
scheduler.add_job(process_ts3_events, 'interval', [voice], hours=1)
|
|
scheduler.start()
|
|
|
|
from app import views, models
|