Exemplo n.º 1
0
def divine_intervention(bot, job):
    logger.info('Divine intervention!')

    for uid in usermanager.get_telegram_users():
        global msg, image, buttons
        msg = ''
        image = None
        buttons = None

        def rep(txt, btns=None, photo=None):
            global msg, image, buttons

            if len(msg) + len(txt) + 2 >= 4096:
                reply(uid, bot, msg, buttons, image)

                msg = ''
                image = None
                buttons = None

            msg += '\n\n'
            msg += txt

            if btns:
                buttons = btns
            if photo:
                image = photo

        usermanager.divine_intervention(uid, rep)

        if len(msg) > 0 or image:
            reply(uid, bot, msg, buttons, image)
Exemplo n.º 2
0
def action(user, reply, text):
	question = user.get_room_temp('question', def_val='first')

	if question == 'first':
		user.set_room_temp('goal_name', text)
		user.set_room_temp('question', 'second')
		reply('Теперь напечатай текст послания.')
	else:
		name = user.get_room_temp('goal_name', def_val='____')
		found_uid = 0
		found_usr = None

		for uid in usermanager.get_telegram_users():
			usr = usermanager.get_user(uid)
			if usr.name == name:
				found_uid = uid
				found_usr = usr
				break

		if found_usr is None:
			reply('Вашего адресата мы не нашли, но нашли кое-кого другого')
			found_usr = usermanager.random_user()

		reply('Отлично! Доставим в кратчайшие сроки.')

		if found_uid == user.uid:
			user.add_item('good', 'stone', {'message': text})
		else:
			found_usr.add_item('good', 'stone', {'message': text})
			usermanager.save_user(found_usr)

		user.leave(reply)
Exemplo n.º 3
0
def divine_intervention(bot, job):
	logger.info('Divine intervention!')

	for uid in usermanager.get_telegram_users():
		global msg, image, buttons
		msg = ''
		image = None
		buttons = None

		def rep(txt, btns=None, photo=None):
			global msg, image, buttons

			if len(msg) + len(txt) + 2 >= 4096:
				reply(uid, bot, msg, buttons, image)

				msg = ''
				image = None
				buttons = None


			msg += '\n\n'
			msg += txt

			if btns:
				buttons = btns
			if photo:
				image = photo
				
		usermanager.divine_intervention(uid, rep)

		if len(msg) > 0 or image:
			reply(uid, bot, msg, buttons, image)
Exemplo n.º 4
0
def action(user, reply, text):
    if text == 'Посмотреть в шар':
        users = list(usermanager.get_telegram_users())
        random.shuffle(users)

        user_id = None
        found_user = None

        for usr_id in users:
            usr = usermanager.get_user(usr_id)
            if not usr.dead and usr.get_time_from_last_message(
            ) < 5 * 60 and usr.uid != user.uid:
                user_id = usr_id
                found_user = usr
                break

        if found_user is None:
            reply('Ничего не видно..')
        else:
            name = found_user.name
            if found_user.pet:
                pet = found_user.get_pet()
                name += ' и {0} {1}'.format(pet.name, pet.real_name)

            res = 'Вижу.. Вижу.. {0}... Ничего не видно..'

            if found_user.dead:
                res = '{0} валяется мертвым на краю мира..'
            elif found_user.state == 'corridor':
                res = '{0} пялится на коридор.'
            elif found_user.state == 'pray':
                res = '{0} молится Богам.'
            elif found_user.state == 'shop':
                res = '{0} затаривается вещичками.'
            elif found_user.state == 'inventory':
                res = '{0} копается в инвентаре.'
            elif found_user.state == 'room':
                res = ('{0} находится в комнате..\n\n' 'И видит..\n')

                room = roomloader.load_room(found_user.room[1],
                                            found_user.room[0], found_user)
                room_name = room.name

                res += room_name
            elif found_user.state == 'dice':
                res = ('{0} находится в комнате..\n\n' 'И бросает кости в..\n')

                room = roomloader.load_room(found_user.room[1],
                                            found_user.room[0], found_user)
                room_name = room.name

                res += room_name
            elif found_user.state == 'reborned':
                res = '{0} понимает, что «' + str(
                    found_user.reborn_answer) + '»'

            reply(res.format(name))
    else:
        user.leave(reply)
Exemplo n.º 5
0
def notify(bot, update):
    if str(update.message.chat_id) in config.ADMINS_IDS:
        msg = update.message.text[len('/notify'):]

        logger.info(msg)

        for user_id in usermanager.get_telegram_users():
            try:
                reply(user_id, bot, msg)
            except:
                logger.info('Couldn\'t send message to {0}'.format(user_id))
    else:
        bot.sendMessage(update.message.chat_id, text='NO.')
Exemplo n.º 6
0
def notify(bot, update):
	if str(update.message.chat_id) in config.ADMINS_IDS:
		msg = update.message.text[len('/notify'):]

		logger.info(msg)

		for user_id in usermanager.get_telegram_users():
			try:
				bot.sendMessage(user_id, text=msg)
			except:
				logger.info('Couldn\'t send message to {0}'.format(user_id))
	else:
		bot.sendMessage(update.message.chat_id, text='NO.')
Exemplo n.º 7
0
def notify(bot, update):
    if update.message.chat_id == config.MODERS_CHAT:
        msg = update.message.text[len('/notify@ideasrogbot'):]

        logger.info(msg)

        for user_id in usermanager.get_telegram_users():
            try:
                reply(user_id, bot, msg)
            except:
                logger.info('Couldn\'t send message to {0}'.format(user_id))
    else:
        bot.sendMessage(update.message.chat_id, text='Много хочешь')
Exemplo n.º 8
0
def enter(user, reply):
	users = list(usermanager.get_telegram_users())
	random.shuffle(users)

	user_id = None
	found_user = None

	for usr_id in users:
		usr = usermanager.get_user(usr_id)
		if usr.dead:
			user_id = usr_id
			found_user = usr
			break

	if found_user is not None:
		reply('Здесь лежат останки игрока {0}'.format(found_user.name), photo='BQADAgADFwkAAmrZzgf5q0m1CmsDggI')
		user.set_room_temp('items', found_user.items)
	else:
		reply('Здесь лежат останки лягушки. Воняет. Ты уходишь отсюда побыстрее.', photo='BQADAgADFwkAAmrZzgf5q0m1CmsDggI')
		user.leave(reply)
Exemplo n.º 9
0
def enter(user, reply):
	users = list(usermanager.get_telegram_users())
	random.shuffle(users)

	user_id = None
	found_user = None

	for usr_id in users:
		usr = usermanager.get_user(usr_id)
		if usr.dead:
			user_id = usr_id
			found_user = usr
			break

	if found_user is not None:
		reply('Здесь лежат останки игрока {0}'.format(found_user.name))
		user.set_room_temp('items', found_user.items)
	else:
		reply('Здесь лежат останки лягушки. Воняет. Ты уходишь отсюда побыстрее')
		user.leave(reply)
Exemplo n.º 10
0
def enter(user, reply):
	users = list(usermanager.get_telegram_users())
	random.shuffle(users)

	user_id = None
	found_user = None

	for usr_id in users:
		usr = usermanager.get_user(usr_id)
		if not usr.dead and usr.get_time_from_last_message() < 5 * 60 and usr.uid != user.uid:
			user_id = usr_id
			found_user = usr
			break

	if found_user is not None:
		reply('Гоп стоп! Да это же {0}!'.format(found_user.name))
		user.set_room_temp('uid', found_user.uid)
		user.set_room_temp('steal_tries', 0)
	else:
		reply('Убежал куда-то..')
		user.leave(reply)
Exemplo n.º 11
0
def enter(user, reply):
    users = list(usermanager.get_telegram_users())
    random.shuffle(users)

    user_id = None
    found_user = None

    for usr_id in users:
        usr = usermanager.get_user(usr_id)
        if not usr.dead and usr.get_time_from_last_message(
        ) < 5 * 60 and usr.uid != user.uid:
            user_id = usr_id
            found_user = usr
            break

    if found_user is not None:
        reply('Гоп стоп! Да это же {0}!'.format(found_user.name))
        user.set_room_temp('uid', found_user.uid)
        user.set_room_temp('steal_tries', 0)
    else:
        reply('Убежал куда-то..')
        user.leave(reply)
Exemplo n.º 12
0
def enter(user, reply):
    users = list(usermanager.get_telegram_users())
    random.shuffle(users)

    user_id = None
    found_user = None

    for usr_id in users:
        usr = usermanager.get_user(usr_id)
        if usr.dead:
            user_id = usr_id
            found_user = usr
            break

    if found_user is not None:
        reply('Здесь лежат останки игрока {0}'.format(found_user.name),
              photo='BQADAgADFwkAAmrZzgf5q0m1CmsDggI')
        user.set_room_temp('items', found_user.items)
    else:
        reply(
            'Здесь лежат останки лягушки. Воняет как от старого пенсионера. Ты уходишь отсюда побыстрее.'
        )
        user.leave(reply)
Exemplo n.º 13
0
def action(user, reply, text):
	if text == 'Посмотреть в шар':
		users = list(usermanager.get_telegram_users())
		random.shuffle(users)

		user_id = None
		found_user = None

		for usr_id in users:
			usr = usermanager.get_user(usr_id)
			if not usr.dead and usr.get_time_from_last_message() < 5 * 60 and usr.uid != user.uid:
				user_id = usr_id
				found_user = usr
				break

		if found_user is None:
			reply('Ничего не видно..')
		else:
			name = found_user.name
			if found_user.pet:
				pet = found_user.get_pet()
				name += ' и {0} {1}'.format(pet.name, pet.real_name)

			res = 'Вижу.. Вижу.. {0}... Ничего не видно..'

			if found_user.dead:
				res = '{0} валяется мертвым на краю мира..'
			elif found_user.state == 'corridor':
				res = '{0} пялится на коридор.'
			elif found_user.state == 'pray':
				res = '{0} молится Богам.'
			elif found_user.state == 'shop':
				res = '{0} затаривается вещичками.'
			elif found_user.state == 'inventory':
				res = '{0} копается в инвентаре.'
			elif found_user.state == 'room':
				res = (
					'{0} находится в комнате..\n\n'
					'И видит..\n'
				)

				room = roomloader.load_room(found_user.room[1], found_user.room[0], found_user)
				room_name = room.name

				res += room_name
			elif found_user.state == 'dice':
				res = (
					'{0} находится в комнате..\n\n'
					'И бросает кости в..\n'
				)

				room = roomloader.load_room(found_user.room[1], found_user.room[0], found_user)
				room_name = room.name

				res += room_name
			elif found_user.state == 'reborned':
				res = '{0} понимает, что «' + str(found_user.reborn_answer) + '»'

			reply(res.format(name))
	else:
		user.leave(reply)