コード例 #1
0
ファイル: views.py プロジェクト: Bryan-0/MultiChatrooms
def chatroom_left(data):
	leave_room(data['roomName'])
	session['user']['currentChatroom'] = "None"
	Rooms.removeUserFromRoom(data['roomName'], data['userName'], session['user']['userColor'])
	currentUsers = Rooms.readRoomInformation(data['roomName'])
	print(currentUsers)
	emit('getUsersList', {'userName': currentUsers['usersConnected']}, room = data['roomName'], broadcast = True)
コード例 #2
0
ファイル: views.py プロジェクト: Bryan-0/MultiChatrooms
def chatroom_join(data):
	join_room(data['roomName'])
	session['user']['currentChatroom'] = data['roomName']
	Rooms.addUserToRoom(data['roomName'], data['userName'], session['user']['userColor'])
	currentUsers = Rooms.readRoomInformation(data['roomName'])
	print(currentUsers)
	emit('getUsersList', {'userName': currentUsers['usersConnected']}, room = data['roomName'])
コード例 #3
0
ファイル: views.py プロジェクト: Bryan-0/Hangman-Online
def user_lost(userWhoLost):
    UsersConfig.setPlayerLostStatus(userWhoLost['userName'])
    emit('userLostResponse', userWhoLost, broadcast=True)

    if (UsersConfig.allUsersLost()):
        emit('noOneGuessedTheWord',
             UsersConfig.getPrivateWord(),
             broadcast=True)
コード例 #4
0
ファイル: views.py プロジェクト: Bryan-0/MultiChatrooms
def on_disconnect():
	if session['user']['currentChatroom'] != "None":
		Rooms.removeUserFromRoom(session['user']['currentChatroom'], session['user']['userName'], session['user']['userColor'])
		currentUsers = Rooms.readRoomInformation(session['user']['currentChatroom'])
		print(currentUsers)
		emit('getUsersList', {'userName': currentUsers['usersConnected']}, room = session['user']['currentChatroom'], broadcast = True)

	session.pop('user', None)
コード例 #5
0
ファイル: views.py プロジェクト: zip1982b/HeatingSystem
def test_connect():
    emit('Server response', {'data': 'Server is Connected!', 'count': 0})
    print("Server is connected")
    my_date = datetime.date.today()
    week_day_int = my_date.isoweekday()
    day = my_func.week_day[week_day_int]
    print day
    my_func.selectSettings(day)
コード例 #6
0
ファイル: views.py プロジェクト: Bryan-0/Hangman-Online
def prepare_user(userToPrepare):
    UsersConfig.addReadyCounter()
    UsersConfig.prepareUser(userToPrepare)
    print(UsersConfig.getUserList())
    emit('updateCounterAndUser',
         [UsersConfig.getReadyCounter(), [userToPrepare]],
         broadcast=True)
    emit('updateSelfStatus')
コード例 #7
0
ファイル: views.py プロジェクト: Bryan-0/Hangman-Online
def unprepare_user(userToUnPrepare):
    UsersConfig.minusReadyCounter()
    UsersConfig.unprepareUser(userToUnPrepare)
    emit('quitReadySymbolFromTable', userToUnPrepare, broadcast=True)
    emit('updateCounterAndUser',
         [UsersConfig.getReadyCounter(),
          UsersConfig.getUsersReady()],
         broadcast=True)
コード例 #8
0
def teacherLogOutRequest(loged_out, teacher_id):

    query.TeacherAvailability(loged_out, teacher_id)

    emit('ShowAvailability', {
        'availability': 0,
        'teacherID': teacher_id
    },
         broadcast=True)
コード例 #9
0
ファイル: beanjump.py プロジェクト: benlepsch/v-vv-vv
def find_score(message):
    sending = {'username': message, 'highscore': 0, 'rank': 0}
    scores = Score.query.order_by(Score.score.desc()).all()
    for i in range(len(scores)):
        if scores[i].username == message:
            sending['highscore'] = scores[i].score
            sending['rank'] = i + 1
            break
    emit('found score', sending)
コード例 #10
0
def test_disconnect(json):
    print(json)
    sid = request.sid
    sessions = list(active_sessions)
    for session in sessions:
        if sid != session:
            print("sended to {}".format(session))
            emit("updateHandler", {"data": json}, room=session)
        else:
            print("{} Rejected".format(sid))
コード例 #11
0
def handleAvailability(available, teacher_id):

    query.TeacherAvailability(available, teacher_id)

    # print("hello")

    emit('ShowAvailability', {
        'availability': available,
        'teacherID': teacher_id
    },
         broadcast=True)
コード例 #12
0
ファイル: views.py プロジェクト: Billbern/social-network
def handleChange(data):
    if (data['method'] == 'edit'):
        print('editing...')
    else:
        Post.query.filter_by(id=data['item']).delete()
        db.session.commit()
    emit('display_posts', [{
        'id': item.id,
        'content': item.content,
        'createdAt': item.createdAt.isoformat(),
        'updatedAt': item.updatedAt
    } for item in Post.query.all()])
コード例 #13
0
ファイル: views.py プロジェクト: Bryan-0/Hangman-Online
def game_finished():
    UsersConfig.setGameStatus(False)
    UsersConfig.clearUserStatus()
    UsersConfig.clearReadyCounter()
    UsersConfig.clearPrivateWord()
    print(UsersConfig.getUserList())

    emit('resetGame', broadcast=True)
    emit('updateCounterAndUser',
         [UsersConfig.getReadyCounter(),
          UsersConfig.getUsersReady()],
         broadcast=True)
コード例 #14
0
ファイル: beansjumproute.py プロジェクト: benlepsch/v-vv-vv
def enterQueue(message):
    global waitingIndex, waiting, debug, games, players, onGame
    debug.write('something happening')
    for i in range(waitingIndex):
        if waiting.has(i):
            debug.write('queue has someone in it already: ' + request.sid)
            opponent = waiting.get(i)
            new = BeanJump(opponent, request.sid)
            players[opponent] = onGame
            players[request.sid] = onGame

            emit('found game', {
                'p1': {
                    'left': new.player2.left,
                    'top': new.player2.top
                },
                'p2': {
                    'left': new.player1.left,
                    'top': new.player1.top
                },
                'me': opponent,
                'enemy': request.sid
            },
                 room=opponent)
            emit('found game', {
                'p1': {
                    'left': new.player1.left,
                    'top': new.player1.top
                },
                'p2': {
                    'left': new.player2.left,
                    'top': new.player2.top
                },
                'me': request.sid,
                'enemy': opponent
            },
                 room=request.sid)

            games.append(new)

            onGame += 1
            waiting.delete(i)
            return
    waiting.set(waitingIndex, request.sid)
    waitingIndex += 1
    debug.write('added request.sid ' + request.sid + ' to queue')
コード例 #15
0
def test_connect():
    # 单例模式创建线程,定时发布消息
    global thread1, thread2
    with lock:
        if thread1 is None:
            thread1 = socketio.start_background_task(target=background_task)
            thread2 = socketio.start_background_task(target=background_task2)

    # 未读信息
    if isinstance(current_user.is_anonymous, bool):
        return
    else:
        # 私信未读
        message = Message.query.filter_by(toId=current_user.id,
                                          hasRead=0).all()
        # feed
        # h = a-b if a>b else a+b
        emit('noreadmsg', {'data': '' if len(message) == 0 else len(message)})
コード例 #16
0
ファイル: views.py プロジェクト: Bryan-0/Hangman-Online
def start_game_request():
    if UsersConfig.allPlayersReady() and len(UsersConfig.getUserList()) >= 2:
        UsersConfig.setGameStatus(True)
        selectedUserName = UsersConfig.chooseRandomPlayer()
        UsersConfig.setPlayerLostStatus(selectedUserName['userName'])
        print(UsersConfig.getUserList())
        UsersConfig.setPlayerAsHost(selectedUserName['userName'])
        emit('startGameProcess', selectedUserName, broadcast=True)
        emit('chooseWord', selectedUserName, broadcast=True)
    else:
        emit('startGameError', broadcast=True)
コード例 #17
0
ファイル: views.py プロジェクト: Bryan-0/Hangman-Online
def disconnection():
    resetGame = False
    hostLeaved = False

    if (UsersConfig.isHost(session['currentUser']['userName'])
            and UsersConfig.isGameStarted()):
        UsersConfig.setGameStatus(False)
        UsersConfig.clearPrivateWord()
        UsersConfig.clearReadyCounter()
        UsersConfig.clearUserStatus()
        resetGame = True
        hostLeaved = True

    UsersConfig.removeUserFromList(session['currentUser']['userName'])

    if (len(UsersConfig.getUserList()) <= 1 and UsersConfig.isGameStarted()):
        UsersConfig.setGameStatus(False)
        UsersConfig.clearPrivateWord()
        UsersConfig.clearReadyCounter()
        UsersConfig.clearUserStatus()
        resetGame = True

    emit('updateCounterAndUser',
         [UsersConfig.getReadyCounter(),
          UsersConfig.getUsersReady()],
         broadcast=True)
    emit('removeUser', session['currentUser'], broadcast=True)

    print(UsersConfig.getUserList())

    if resetGame:
        print(UsersConfig.getUserList())
        emit('resetGame', broadcast=True)
    if hostLeaved:
        emit('hostLeaved', session['currentUser']['userName'], broadcast=True)

    session.pop('currentUser', None)
コード例 #18
0
def send_room_message(message):
    session['receive_count'] = session.get('receive_count', 0) + 1
    emit('my response',
         {'data': message['data'], 'count': session['receive_count']},
         room=message['room'])
コード例 #19
0
def close(message):
    session['receive_count'] = session.get('receive_count', 0) + 1
    emit('my response', {'data': 'Room ' + message['room'] + ' is closing.',
                         'count': session['receive_count']},
         room=message['room'])
    close_room(message['room'])
コード例 #20
0
def leave(message):
    leave_room(message['room'])
    session['receive_count'] = session.get('receive_count', 0) + 1
    emit('my response',
         {'data': 'In rooms: ' + ', '.join(rooms()),
          'count': session['receive_count']})
コード例 #21
0
def test_broadcast_message(message):
    session['receive_count'] = session.get('receive_count', 0) + 1
    emit('my response', {'data': message['data'], 'count': session['receive_count']}, broadcast=True)
コード例 #22
0
ファイル: views.py プロジェクト: Bryan-0/Hangman-Online
def connection():
    emit('getUserList', UsersConfig.getUserList())
    emit('updateCounterAndUser',
         [UsersConfig.getReadyCounter(),
          UsersConfig.getUsersReady()])
コード例 #23
0
ファイル: views.py プロジェクト: Rynant/rps-duel
def play_connect():
    session['id'] = str(uuid4())
    logger.debug('Connected ID: ' + session['id'])
    emit('connected', {'id': session['id']})
コード例 #24
0
ファイル: views.py プロジェクト: Bryan-0/Hangman-Online
def user_command(userInformation):
    if userInformation['isHost']:
        emit('userUsedCommand', userInformation, broadcast=True)
    else:
        emit('notEnoughAuthority')
コード例 #25
0
ファイル: beanjump.py プロジェクト: benlepsch/v-vv-vv
def get_scores(message):
    sending = []
    for score in Score.query.order_by(Score.score.desc()).all():
        sending.append([score.username, score.score])

    emit('update', sending)
コード例 #26
0
ファイル: views.py プロジェクト: Bryan-0/Hangman-Online
def user_fail(userWhoFail):
    emit('removeAttempt', userWhoFail)
コード例 #27
0
ファイル: views.py プロジェクト: Bryan-0/Hangman-Online
def user_attempt(userAttempt):
    emit('showUserAttempt', userAttempt, broadcast=True)
コード例 #28
0
ファイル: views.py プロジェクト: Bryan-0/Hangman-Online
def start_game_officially(wordToGuess):
    codedWord = len(wordToGuess) * " _"
    UsersConfig.setPrivateWord(wordToGuess)
    emit('startGameForAll', [wordToGuess, codedWord[1:]], broadcast=True)
コード例 #29
0
def disconnect_request():
    session['receive_count'] = session.get('receive_count', 0) + 1
    emit('my response',
         {'data': 'Disconnected!', 'count': session['receive_count']})
    disconnect()
コード例 #30
0
ファイル: views.py プロジェクト: Bryan-0/MultiChatrooms
def get_command(command):
	cmds = ["/createchatroom", "/deletechatroom", "/help"]

	splitCommand = str(command['userCommand']).split(" ")

	if len(splitCommand) >= 2:
		if splitCommand[0] in cmds:
			if splitCommand[0] == "/createchatroom":
				splitCommand.remove("/createchatroom")
				roomName = "".join([text + " " for text in splitCommand])[:-1]
				Rooms.createRoom(roomName)
				emit('commandResponse', {'response': f'Chatroom created: {roomName}. (click reload chatrooms button on chatrooms page to see it)'})
			elif splitCommand[0] == "/deletechatroom":
				splitCommand.remove("/deletechatroom")
				roomName = "".join([text + " " for text in splitCommand])[:-1]
				Rooms.deleteRoom(roomName)
				emit('commandResponse', {'response': f'Chatroom deleted: {roomName}. (click reload chatrooms button on chatrooms page to see it)'})

		else:
			emit('commandResponse', {'response': f'Command {splitCommand[0]} not found. Try /help'})
	else:
		if splitCommand[0] == "/createchatroom":
			emit('commandResponse', {'response': f'Command Usage {splitCommand[0]} <roomname>'})
		elif splitCommand[0] == "/deletechatroom":
			emit('commandResponse', {'response': f'Command Usage {splitCommand[0]} <roomname>'})
		elif splitCommand[0] == "/help":
			emit('commandResponse', {'response': f'Existing commands: /createchatroom <roomname>, /deletechatroom <roomname>'})
		else:
			emit('commandResponse', {'response': f'Command {splitCommand[0]} not found. Try /help'})
コード例 #31
0
def test_connect():
    emit('my response', {'data': 'Connected', 'count': 0})
コード例 #32
0
ファイル: views.py プロジェクト: Bryan-0/Hangman-Online
def add_user(user):
    UsersConfig.addUserToList(session['currentUser'])
    print(UsersConfig.getUserList())
    emit('updateUserList', user, broadcast=True, include_self=False)