Add docker and sockets
This commit is contained in:
+18
-16
@@ -1,23 +1,25 @@
|
||||
import json
|
||||
import socket
|
||||
import string
|
||||
from flask_socketio import SocketIO, emit, disconnect, join_room
|
||||
from flask import session, copy_current_request_context
|
||||
from api.utils import get_points_sums, sort_card_list
|
||||
from bridzik import Bridzik, BridzikException, Card, Card_colors, Card_values
|
||||
from flask import Flask
|
||||
import os
|
||||
import logging
|
||||
from logging.handlers import RotatingFileHandler
|
||||
from config import Config
|
||||
from flask import request
|
||||
|
||||
async_mode = None
|
||||
app = Flask(__name__)
|
||||
app.config.from_object(Config)
|
||||
app.debug = True
|
||||
|
||||
if not app.debug:
|
||||
if not os.path.exists('logs'):
|
||||
os.mkdir('logs')
|
||||
file_handler = RotatingFileHandler('logs/bridzik_api.log', maxBytes=10240, backupCount=10)
|
||||
file_handler.setFormatter(logging.Formatter(
|
||||
'%(asctime)s %(levelname)s: %(message)s [in %(pathname)s:%(lineno)d]'
|
||||
))
|
||||
file_handler.setLevel(logging.INFO)
|
||||
app.logger.addHandler(file_handler)
|
||||
app.config['SECRET_KEY'] = 'secret!'
|
||||
socket_ = SocketIO(app, cors_allowed_origins="*", async_mode='eventlet', logger=True, engineio_logger=True)
|
||||
|
||||
app.logger.setLevel(logging.INFO)
|
||||
app.logger.info('Bridzik_API startup')
|
||||
bridzikInstance = Bridzik()
|
||||
|
||||
from api import routes
|
||||
players = ['', '', '', '']
|
||||
|
||||
|
||||
|
||||
socket_.run(app, debug=True, host="0.0.0.0", port="5000" )
|
||||
|
||||
+11
-13
@@ -1,12 +1,10 @@
|
||||
from api import app
|
||||
from bridzik import Bridzik, Card, Card_colors, Card_values, BridzikException
|
||||
from api import app, bridzikInstance
|
||||
from bridzik import Card, Card_colors, Card_values, BridzikException
|
||||
import json
|
||||
from flask import render_template, url_for, flash, redirect
|
||||
from api.forms import GuessForm, PlayForm, AdminForm
|
||||
from api.utils import get_points_sums, sort_card_list
|
||||
|
||||
b = Bridzik()
|
||||
|
||||
players = [
|
||||
'Jakub',
|
||||
'Timo',
|
||||
@@ -16,21 +14,21 @@ players = [
|
||||
|
||||
@app.route('/bridzik_api/get_status/<id>')
|
||||
def get_status(id: int):
|
||||
return json.dumps(b.get_status(int(id)), cls=Card.JSONEncoder)
|
||||
return json.dumps(bridzikInstance.get_status(int(id)), cls=Card.JSONEncoder)
|
||||
|
||||
@app.route('/bridzik/<player>/status')
|
||||
def status(player):
|
||||
player = int(player)
|
||||
game_status = b.get_status(player)
|
||||
game_status = bridzikInstance.get_status(player)
|
||||
action = None
|
||||
form = None
|
||||
player_cards = sort_card_list(b.series[-1].get_last_round().player_cards[player])
|
||||
player_cards = sort_card_list(bridzikInstance.series[-1].get_last_round().player_cards[player])
|
||||
game_status['player_cards'] = [str(c) for c in player_cards]
|
||||
points_sums = get_points_sums(game_status['standings'])
|
||||
if b.is_completed() or b.series[-1].get_last_round().get_active_player() != player:
|
||||
if bridzikInstance.is_completed() or bridzikInstance.series[-1].get_last_round().get_active_player() != player:
|
||||
pass
|
||||
elif not b.series[-1].get_last_round().is_guessing_completed():
|
||||
form = GuessForm(max_guess= 8 - b.series[-1].get_last_round().round_number)
|
||||
elif not bridzikInstance.series[-1].get_last_round().is_guessing_completed():
|
||||
form = GuessForm(max_guess= 8 - bridzikInstance.series[-1].get_last_round().round_number)
|
||||
action = 'guess'
|
||||
else:
|
||||
form = PlayForm()
|
||||
@@ -46,7 +44,7 @@ def guess(player):
|
||||
player = int(player)
|
||||
form = GuessForm()
|
||||
try:
|
||||
b.add_player_guess(player, int(form.guess.data))
|
||||
bridzikInstance.add_player_guess(player, int(form.guess.data))
|
||||
except BridzikException:
|
||||
flash('Nie je možné zadať tip.')
|
||||
return redirect(url_for('status', player=player))
|
||||
@@ -54,7 +52,7 @@ def guess(player):
|
||||
@app.route('/bridzik/<player>/play_card', methods=['POST'])
|
||||
def play_card(player):
|
||||
player = int(player)
|
||||
player_cards = b.series[-1].get_last_round().player_cards[player]
|
||||
player_cards = bridzikInstance.series[-1].get_last_round().player_cards[player]
|
||||
form = PlayForm()
|
||||
form.card.choices = [(str(c), str(c)) for c in player_cards]
|
||||
color, value = form.card.data.split('_')
|
||||
@@ -64,7 +62,7 @@ def play_card(player):
|
||||
flash('Chyba. Opakuj pokus znovu.')
|
||||
|
||||
try:
|
||||
b.play_card(player, card)
|
||||
bridzikInstance.play_card(player, card)
|
||||
except BridzikException:
|
||||
flash('Nie je možné zahrať kartu.')
|
||||
return redirect(url_for('status', player=player))
|
||||
|
||||
Reference in New Issue
Block a user