Exemplo n.º 1
0
def login(login, pwd):

	
	if(login is None) or (pwd is None):
		return jsonify(status="error", error_type="bad parameter")
	
	if(login == "") or (pwd == ""):
		return jsonify(status="error", error_type="empty parameter")

	reqUser = User(login)
	if(not reqUser.userExists(login)):
		return jsonify(status="error", error_type="no such user")
	

	if(reqUser.isUserBanned()):
		return jsonify(status="error", error_type="user banned", ban_time=reqUser.getBanTime())

	if(not reqUser.loginUser(pwd)):
		if(reqUser.shouldBeBanned()):
			reqUser.banUser()
			return jsonify(status="error", error_type="user banned", ban_time=reqUser.getBanTime())

		return jsonify(status="error", error_type="bad password")
	
	#user is logged in at this point	
	return jsonify(status="ok", info="user logged in", token = reqUser.updateToken())
Exemplo n.º 2
0
def index():
    random_key = request.cookies.get('random_key', None)
    if User.is_authenticated(random_key):
        redirect('/home')
    random_key = User.new_user()
    resp = make_response(render_template('index.html'))
    resp.set_cookie('random_key', random_key)
    return resp
Exemplo n.º 3
0
 def get_user(self, username: str):
     try:
         user = self.collection_users.find_one({"username": username})
         if user is not None:
             u = User()
             u.load_json(user)
             return u
         else:
             return False
     except:
         return False
Exemplo n.º 4
0
def print_post(chat_id, event_id, image, date, title, description):
    user = User.get_user('chat_id', chat_id)
    events_all = Event.all_event()
    events_user = []
    cuser_events = user.get_events()
    for cuser_event in cuser_events:
        events_user.append(cuser_event._id)
    text = 'Записаться'
    if event_id in events_user:
        text = 'Отписаться'
    keyboard = telebot.types.InlineKeyboardMarkup(row_width=2)
    keyboard.add(
        telebot.types.InlineKeyboardButton(
            text, callback_data=f"change_event_status\t{event_id}"))
    # if image:
    #try:
    #    photo = open(image, 'rb')
    #except IOError as e:
    #    print(f"I/O error({e.errno}): {e.strerror}")
    #bot.send_photo(chat_id, photo, caption=f'{date} - {title}: {description}')
    bot.send_message(chat_id,
                     f"{date}\n<b>{title}</b>\n{description}",
                     parse_mode="HTML",
                     disable_web_page_preview=True,
                     reply_markup=keyboard)
Exemplo n.º 5
0
def handle_text(message):
    cuser = User.get_user('chat_id', message.from_user.id)
    # свои ли контакты переслал пользователь?
    if message.from_user.id == message.contact.user_id:
        # может мы его уже знаем?
        if cuser == None:
            return
        # ну лан так и быть зарегистрируем его
        first_name = message.from_user.first_name
        last_name = message.from_user.last_name
        phone = message.contact.phone_number
        chat_id = message.chat.id
        username = message.from_user.username
        cuser = User.registration(first_name, last_name, phone, chat_id,
                                  username)
        print_main_menu(cuser.chat_id)
Exemplo n.º 6
0
def new_user(login, content):

	
	if "pwd" not in content:
		return jsonify(status="error", error_type="bad parameter", missing="pwd")

	#user credentials check
	ulogin = login
	upwd = content["pwd"]

	reqUser = User(ulogin)
	if(reqUser.userExists(ulogin)):
		return jsonify(status="error", error_type="user exists")
	
	print("adding user")
	reqUser.createUser(ulogin, upwd)
	return jsonify(status="ok", info="user created")
Exemplo n.º 7
0
 def save_user(self, user: User):
     try:
         if (len(list(self.collection_users.find({"username": user.username})))==0):
             self.collection_users.insert_one(user.jsonify())
             return True
         return False
     except:
         return False
Exemplo n.º 8
0
def callback_inline(call):
    cuser = User.get_user('chat_id', call.message.chat.id)
    # Если сообщение из чата с ботом
    if call.message:
        print(call.data)
        action = (call.data).split()[0]
        event_id = (call.data).split()[1]
        if action == "show":
            event = Event.get_event('id', f'{event_id}')
            print_post(call.message.chat.id, event._id, event.photo,
                       event.date, event.title, event.description)
            #            events_all = Event.all_event()
            #            events_user = []
            #            cuser_events = cuser.get_events()
            #            for cuser_event in cuser_events:
            #                events_user.append(cuser_event._id)
            #            text = 'Записаться'
            #            if event_id in events_user:
            #                text = 'Отписаться'
            #            keyboard = telebot.types.InlineKeyboardMarkup(row_width=2)
            #            keyboard.add(telebot.types.InlineKeyboardButton(text, callback_data=f"change_event_status\t{event_id}"))
            bot.edit_message_text(chat_id=call.message.chat.id,
                                  message_id=call.message.message_id,
                                  text=call.message.text)
            return
        if action == "change_event_status":
            event = Event.get_event('id', f'{event_id}')
            events = Event.all_event()
            list_of_users_event = []
            cuser_events = cuser.get_events()
            for cuser_event in cuser_events:
                list_of_users_event.append(cuser_event._id)
            for event in events:
                is_delete_event = False
                if event_id == str(event._id):
                    for cuser_event in cuser_events:
                        if str(cuser_event._id) == str(event._id):
                            is_delete_event = True
                    if is_delete_event:
                        cuser.decline_event(event._id)
                        bot.edit_message_text(
                            chat_id=call.message.chat.id,
                            message_id=call.message.message_id,
                            text=call.message.text + "\nВы отписаны")
                    else:
                        cuser.accept_event(event._id)
                        bot.edit_message_text(
                            chat_id=call.message.chat.id,
                            message_id=call.message.message_id,
                            text=call.message.text + "\nВы записаны")
            #print_post(call.message.chat.id, event._id, event.photo, event.date, event.title, event.description)
            return

    # Если сообщение из инлайн-режима
    elif call.inline_message_id:
        if call.data == "test":
            bot.edit_message_text(inline_message_id=call.inline_message_id,
                                  text="Вы записаны")
Exemplo n.º 9
0
    def modify_user(self, username: str, password: str, user: User):
        modify = self.collection_users.update_one(
            {
                "username": username,
                "password": password
            }, {"$set": user.jsonify()})
        if modify:
            return True

        return False
Exemplo n.º 10
0
def polls():
	
	ulogin = request.args.get('login')
	utoken = request.args.get("token")


	if(ulogin is None) or (utoken is None):
		return jsonify(status="error", error_type="bad parameter")
	
	if ulogin == "" or utoken == "":
		return jsonify(status="error", error_type="empty parameters")
	
	reqUser = User(ulogin)
	if(not reqUser.userExists(login)):
		return jsonify(status="error", error_type="no such user")

	if(not reqUser.loginUser(token=utoken)):
		return jsonify(status="error", error_type="bad token")

	return Response(json.dumps(reqUser.getUserPolls()), mimetype='application/json')
Exemplo n.º 11
0
def pollFromId(poll_id, login, methods=['GET']):
	# similar to /poll route

	utoken = request.args.get("token")
	if utoken is None:
		return jsonify(status="error", error_type="bad parameter")

	if utoken == "":
		return jsonify(status="error", error_type="empty parameters")
	
	reqUser = User(login)
	if(not reqUser.userExists(login)):
		return jsonify(status="error", error_type="no such user")
	
	if(not reqUser.loginUser(token=utoken)):
		return jsonify(status="error", error_type="bad token")

	p = reqUser.getUserPoll(poll_id)

	return jsonify(p)
Exemplo n.º 12
0
def poll():

	ulogin = request.args.get('login')
	utoken = request.args.get("token")
	pollId = request.args.get("poll_id")

	if(ulogin is None) or (utoken is None) or (pollId is None):
		return jsonify(status="error", error_type="bad parameter")
	
	if ulogin == "" or utoken == "" or pollId == "":
		return jsonify(status="error", error_type="empty parameters")
	
	reqUser = User(ulogin)
	if(not reqUser.userExists(login)):
		return jsonify(status="error", error_type="no such user")
	

	if(not reqUser.loginUser(token=utoken)):
		return jsonify(status="error", error_type="bad token")

	p = reqUser.getUserPoll(pollId)

	return jsonify(p)
Exemplo n.º 13
0
def start_command(message):
    cuser = User.get_user('chat_id', message.from_user.id)
    if cuser == None:
        bot.send_message(message.from_user.id,
                         'Ой да бросьте, вы уже не первый раз у нас.')
        print_main_menu(message.chat.id)
    else:
        user_markup = telebot.types.ReplyKeyboardMarkup(True, False)
        button_phone = telebot.types.KeyboardButton(text="Зарегистрироваться",
                                                    request_contact=True)
        user_markup.add(button_phone)
        bot.send_message(message.from_user.id,
                         'Вас привествуют и просят представиться.',
                         reply_markup=user_markup)
Exemplo n.º 14
0
def modify_user():
    logging.warning("llega")
    session_cookie = COOKIE_MANAGER.get_authorization_token_decoded(request)
    if session_cookie:
        session = sessions_db.get(session_cookie)
        if session:
            user = users_db.get(session_cookie.get("username"))
            if user:
                user2 = User()
                request.get_json()["password"] = user.password
                user2.load_json(request.get_json())
                modify = users_db.modify(user.username, user.password, user2)
                if modify:
                    removed = Authorization.remove_session(request)
                    if removed:
                        Authorization.save_session(user2)
                    return jsonify({
                        'Authorization':
                        encode(user2.json_cookie_payload()),
                        "Message":
                        "Modified"
                    }), 200

    abort(401)
Exemplo n.º 15
0
def new_user():

	content = request.json
	params = ["login", "pwd"]
	missing = []
	for p in params:
		if p not in content:
			missing.append(p)
	
	if len(missing) != 0:
		return jsonify(status="error", error_type="bad parameter", missing=missing)


	#user credentials check
	ulogin = content["login"]
	upwd = content["pwd"]

	reqUser = User(ulogin)
	if(reqUser.userExists(ulogin)):
		return jsonify(status="error", error_type="user exists")
	
	print("adding user")
	reqUser.createUser(ulogin, upwd)
	return jsonify(status="ok", info="user created")
Exemplo n.º 16
0
def handle_text2(message):
    print(f"{message.text}")
    cuser = User.get_user('chat_id', message.from_user.id)
    if not cuser:
        start_command(message)
        return
    if str(message.text) == "Ближайшие мероприятия":
        print_event_week_list(message.chat.id)
    if str(message.text) == "Как там Белка?":
        bot.send_message(message.chat.id, f"Нормально, живая)")
    if str(message.text) == "Мои мероприятия":
        chatId = message.chat.id
        print_event_week_list_for_me(chatId)
    if str(message.text) == "FAQ":
        print("faq")
Exemplo n.º 17
0
def register():
    u = User()
    u.load_json(request.json)
    u.password = HASH.hash(u.password)
    cookie = users_db.save(u)
    if cookie:
        Authorization.save_session(u)
        return jsonify({
            'Authorization': encode(u.json_cookie_payload()),
            "Message": "Registered"
        }), 200
    abort(401)
Exemplo n.º 18
0
def print_event_week_list(chat_id):
    user = User.get_user('chat_id', chat_id)
    events = Event.all_event()
    curent_date = datetime.now()
    delta_data = timedelta(days=7)
    for event in events:
        event_date = datetime.strptime(f"{event.date} {event.time}",
                                       "%Y-%m-%d %H:%M:%S")
        if event_date > curent_date and event_date < (curent_date +
                                                      delta_data):
            keyboard = telebot.types.InlineKeyboardMarkup(row_width=2)
            keyboard.add(
                telebot.types.InlineKeyboardButton(
                    "Подробнее...", callback_data=f"show\t{event._id}"))
            bot.send_message(
                chat_id,
                f"{event.date} {event.time} - <b>{event.title}</b>\n{event.shortdescription}",
                parse_mode="HTML",
                disable_web_page_preview=True,
                reply_markup=keyboard)
Exemplo n.º 19
0
def answserPoll():
	content = request.json
	print(content)
	params = ["login", "token", "poll_id", "answer_id"]
	missing = []
	for p in params:
		if p not in content:
			missing.append(p)
	
	if len(missing) != 0:
		return jsonify(status="error", error_type="bad parameter", missing=missing)


	#user credentials check
	ulogin = content["login"]
	utoken = content["token"]
	upollId = content["poll_id"]
	answerId = content["answer_id"]

	reqUser = User(ulogin)

	if(not reqUser.userExists(ulogin)):
		return jsonify(status="error", error_type="no such user")
	
	if(not reqUser.loginUser(token=utoken)):
		return jsonify(status="error", error_type="bad token")


	#check poll integrity
	p = reqUser.getUserPoll(upollId, formated=False)
	if not p.pollExists(upollId):
		return jsonify(status="error", error_type="no such poll for user")


	if not reqUser.hasAnsweredPoll(upollId):
		return jsonify(status="error", error_type="previous user response to poll")	

	if not p.validAnswer(answerId):
		return jsonify(status="error", error_type="invalid answer ID")

	reqUser.answerUserPoll(upollId, answerId)
	return jsonify(status="ok", info="answered poll")
Exemplo n.º 20
0
import random
from logic.game import Game
from logic.user import User
from logic.ai import AI
from logic.ai_v2 import AIV2
from logic.game_essentials import LINES
from logic.ai_v2 import CPU_NAME

boardSize = 4
# bestParams = [1, 4, 20, 10**10]
# bestUserParams = [1, 4, 20, 10**10]

bestParams = [10, 31, 80, 10**10]
bestUserParams = [10, 31, 80, 10**10]

user = User()
cpu = AI(boardSize, CPU_NAME, user.getName(), bestParams, bestUserParams,
         LINES)
game = Game(user, cpu)
game.play()

# Playing the machines against each other
# while True:
# #   bar = random.randint(100, 1000000)
#   champ = AI(boardSize, 'Champ', 'Challenger', bestParams, bestUserParams, LINES)

#   challengerParams = []
#   lastNum = 1
#   first_param = random.randint(1, 10)
#   second_param = random.randint(first_param, 100)
#   third_param = random.randint(second_param, 1000)
Exemplo n.º 21
0
 def save_session(user: User):
     sessions = SessionsController()
     if user:
         sessions.save(user.json_cookie_payload())
         return True
     return False
Exemplo n.º 22
0
        if call.data == "test":
            bot.edit_message_text(inline_message_id=call.inline_message_id,
                                  text="Вы записаны")


def telegram_polling():
    try:
        bot.polling(none_stop=True,
                    timeout=60)  # constantly get messages from Telegram
    except:
        bot.stop_polling()
        time.sleep(10)
        telegram_polling()


users = User.all_user()
for user in users:
    print(user.username)
    if user.username == 'arudik':
        print_main_menu(user.chat_id)

telegram_polling()

# _______********1*888888888801****__________  _______********1*888888888801****__________
# ______*1000018111****10088888888*__________  ______*1000018111****10088888888*__________
# ______*0000118011*1***0*81*108888*_________  ______*0000118011*1***0*81*108888*_________
# ______*0811088011100888081****1188**_______  ______*0811088011100888081****1188**_______
# _______*0****0*****08888888880110811_______  _______*0****0*****08888888880110811_______
# ________*0***0***_**1118888888888880*______  ________*0***0***_**1118888888888880*______
# _________18**1*1**0*1110008888888881*______  _________18**1*1**0*1110008888888881*______
# _________**801*******0018888888888**_______  _________**801*******0018888888888**_______
Exemplo n.º 23
0
def work_schedule(message):
    cuser = User.get_user('chat_id', message.from_user.id)
    if cuser:
        start_command(message)
        return