Пример #1
0
def main():
    print("WELCOME TO CAB BOOKING SYSTEM".center(100, '*'))
    print("1.Register as a new user")
    print("2.Login to an existing account")
    print("3.Admin Login")
    print("4.Exit the application")
    ch = input("Enter your choice: ")
    if ch == '1':
        res = reg()
        user_activities(res)

    elif ch == '2':
        res = log()
        if res == "Invalid":
            print("Invalid credentials\n")
            while True:
                res = log()
                if res != "Invalid":
                    clear()
                    print("Welcome " + res)
                    user_activities(res)

        else:
            clear()
            print("Welcome " + res)
            user_activities(res)

    elif ch == '3':
        name = input("Enter username: "******"Enter email: ")
        if not validate_admin(email, name):
            while True:
                name = input("Enter username: "******"Enter email: ")
                if validate_admin(email, name):
                    admin_activities()

        else:
            admin_activities()

    elif ch == '4':
        quit()

    else:
        print("Enter a valid Choice")
        main()
Пример #2
0
 def reg():
     log.destroy()
     register.reg()
Пример #3
0
def reg():
    register.reg(homeui)
Пример #4
0
                        "random_id": random.randint(1, 2147483647)
                    })

            elif len(message.split(" ")) == 2:
                messag = d.check_date(
                    messages["items"][0]["last_message"]["text"],
                    messages["items"][0]["last_message"]["from_id"])
                vk.method(
                    "messages.send", {
                        "peer_id": idd,
                        "message": messag,
                        "random_id": random.randint(1, 2147483647)
                    })

            else:
                vk.method(
                    "messages.send", {
                        "peer_id": idd,
                        "message": "Запишите трату в формате [вещь] [сумма]",
                        "random_id": random.randint(1, 2147483647)
                    })

        elif sub.check(idd) == False:
            reg.reg(idd)
            vk.method(
                "messages.send", {
                    "peer_id": idd,
                    "message": "Вы успешно зарегистрировались в программе!",
                    "random_id": random.randint(1, 2147483647)
                })
Пример #5
0
def application(env, start_response):
	env1 = Environment(loader = FileSystemLoader('temp'))
	c = http.cookies.SimpleCookie()
	if 'HTTP_COOKIE' in env:
		c = http.cookies.SimpleCookie(env['HTTP_COOKIE'])

	# журнальный инстанс
	jclient = MongoClient("mongodb://{0}:27017".format(os.environ["HS_MONGO_JOURNAL_PORT_27017_TCP_ADDR"]))

	# инстанс с данными
	client = MongoClient("mongodb://{0}:27017".format(os.environ["HS_MONGO_DATA_PORT_27017_TCP_ADDR"]))

	if 'user' not in c:
		try:
			request_body_size = int(env.get('CONTENT_LENGTH', 0))
		except (ValueError):
			request_body_size = 0
		query = dict()
		if request_body_size != 0:
			qs = urllib.parse.unquote(env['wsgi.input'].read(request_body_size).decode('ascii'))
			query = parse_qs(qs)
		if env['PATH_INFO'] == "/register/" or env['PATH_INFO'] == "/register":
			import register
			return register.reg(env, start_response, query)
		elif "login" in query:
			import auth
			return auth.auth(env, start_response, query)

		template = env1.get_template("auth.html")
		resp = template.render()
		start_response('200 OK', [('Content-Type', 'text/html')])
		return [resp.encode('utf-8')]
	else:
		db = jclient[c["user"].value]
		collection = db.task
		collection_info = db["meta"]
		info = collection_info.find_one()
		if 'meta' in db.collection_names() and hashlib.md5(info["password"].encode('utf-8')).hexdigest() == c["secret"].value:
			try:
				request_body_size = int(env.get('CONTENT_LENGTH', 0))
			except (ValueError):
				request_body_size = 0
			qs = str()
			query = dict()
			if request_body_size > 0:
				qs = urllib.parse.unquote(env['wsgi.input'].read(request_body_size).decode('ascii'))
			elif len(env['QUERY_STRING']) > 0:
				qs = env['QUERY_STRING']
			resp = ""
			if len(qs):
				query = parse_qs(qs)
			if len(qs) and "jshow" not in query:
				if 'exit' not in query:
					userlimmit = 1000000
					if query["act"][0] == "add":
						import time
						import json

						start_response('200 OK', [('Content-Type', 'application/json')])

						limmit = 5
						groups = client[c["user"].value].collection_names(False)
						if len(groups) >= limmit:
							return [json.dumps({"status": "500", "error_text": "Превышен лиммит количества групп"}).encode('utf-8')]
						if "meta" not in jclient[c["user"].value].collection_names():
							return [json.dumps({"status": "500", "error_text": "wrong user"}).encode('utf-8')]

						import vkreq

						resp_vk = vkreq.get_group(query["groupid"][0])
						if "error" in resp_vk:
							return [json.dumps({"status": "500", "error_text": "wrong gid"}).encode('utf-8')]
						elif resp_vk["response"][0]["members_count"] >= userlimmit:
							return [
								json.dumps({"status": "500", "error_text": "число пользователей должно быть меньше {0}".format(userlimmit)}).encode(
									'utf-8')]

						str_gid = str(resp_vk["response"][0]["gid"])
						if str_gid in client[c["user"].value].collection_names():
							return [json.dumps({"status": "500", "error_text": "Группа уже была добавленна раньше"}).encode('utf-8')]

						if "meta" not in jclient[str_gid].collection_names():
							jclient[str_gid]["meta"].insert_one(resp_vk["response"][0])

						import rmqsend
						rmqsend.send(json.dumps({"user": c["user"].value, "group_id": str_gid}).encode('utf-8'))

						return [json.dumps({"status": "200"}).encode('utf-8')]
					elif query["act"][0] == "update":
						import json
						last_doc_journal = jclient[c["user"].value]["journal"].find_one({"gid": query["gid"][0]}, sort = [("ts", DESCENDING)])
						import time

						# Ограничение на частоту запросов на обновление
						rest = 1800
						start_response('200 OK', [('Content-Type', 'application/json')])
						if last_doc_journal is not None and (int(time.time()) - last_doc_journal["ts"]) < rest:
							return [
								json.dumps({"status": "500", "error_test": "Превышен лиммит на количество запросов на обновление"}).encode('utf-8')]
						import vkreq

						resp_vk = vkreq.get_group(query["gid"][0])
						if resp_vk["members_count"] >= userlimmit:
							return [
								json.dumps({"status": "500", "error_text": "число пользователей должно быть меньше {0}".format(userlimmit)}).encode(
									'utf-8')]

						import rmqsend
						rmqsend.send(json.dumps({"user": c["user"].value, "group_id": query["gid"][0]}).encode('utf-8'))
						return [json.dumps({"status": "200"}).encode('utf-8')]
					else:
						collection.update_one({"_id": bson.objectid.ObjectId(query["id"][0])}, {'$set': {'act': query['act']}})
						start_response('200 OK', [('Content-Type', 'application/json')])
						import json

						return [json.dumps({"status": "200", "act": query["act"][0]}).encode('utf-8')]
				elif "exit" in query:
					c["user"]["Expires"] = "Thu, 01-Jan-1970 00:00:00 GMT"
					c["secret"]["Expires"] = "Thu, 01-Jan-1970 00:00:00 GMT"
					template = env1.get_template("auth.html")
					resp = template.render()
			else:
				usermeta = collection_info.find_one()
				groups = client[c["user"].value].collection_names(False)
				usermeta["groups"] = []
				for i in groups:
					usermeta["groups"].append(jclient[i]["meta"].find_one())
					usermeta["groups"][len(usermeta["groups"]) - 1]["journal"] = []
					for doc in jclient[c["user"].value]["journal"].find({"gid": str(i)}).sort([("ts", DESCENDING)]):
						doc["ts"] = str(doc["ts"])
						usermeta["groups"][len(usermeta["groups"]) - 1]["journal"].append(doc)
					if "jshow" in query and str(i) in query["jshow"]:
						usermeta["groups"][len(usermeta["groups"]) - 1]["jshow"] = "y"
					else:
						usermeta["groups"][len(usermeta["groups"]) - 1]["jshow"] = "n"
				template = env1.get_template("index.html")
				resp = template.render(user = usermeta)
		else:
			if 'user' not in c:
				c['user'] = dict()
			c["user"]["Expires"] = "Thu, 01-Jan-1970 00:00:00 GMT"
			if 'secret' not in c:
				c['secret'] = dict()
			c["secret"]["Expires"] = "Thu, 01-Jan-1970 00:00:00 GMT"
			template = env1.get_template("auth.html")
			resp = template.render()

		start_response('200 OK',
					   [('Content-Type', 'text/html'), ('Set-Cookie', c["user"].OutputString()), ('Set-Cookie', c["secret"].OutputString())])
		return [resp.encode('utf-8')]
Пример #6
0
import register
import login

choice = input("""
choose 1 or 2
1) register now
2) login now
""")

if choice == "1":
    register.reg()
elif choice == "2":
    login.log()
Пример #7
0
def application(env, start_response):
    env1 = Environment(loader=FileSystemLoader('temp'))
    c = http.cookies.SimpleCookie()
    if 'HTTP_COOKIE' in env:
        c = http.cookies.SimpleCookie(env['HTTP_COOKIE'])

    # журнальный инстанс
    jclient = MongoClient("mongodb://{0}:27017".format(
        os.environ["HS_MONGO_JOURNAL_PORT_27017_TCP_ADDR"]))

    # инстанс с данными
    client = MongoClient("mongodb://{0}:27017".format(
        os.environ["HS_MONGO_DATA_PORT_27017_TCP_ADDR"]))

    if 'user' not in c:
        try:
            request_body_size = int(env.get('CONTENT_LENGTH', 0))
        except (ValueError):
            request_body_size = 0
        query = dict()
        if request_body_size != 0:
            qs = urllib.parse.unquote(
                env['wsgi.input'].read(request_body_size).decode('ascii'))
            query = parse_qs(qs)
        if env['PATH_INFO'] == "/register/" or env['PATH_INFO'] == "/register":
            import register
            return register.reg(env, start_response, query)
        elif "login" in query:
            import auth
            return auth.auth(env, start_response, query)

        template = env1.get_template("auth.html")
        resp = template.render()
        start_response('200 OK', [('Content-Type', 'text/html')])
        return [resp.encode('utf-8')]
    else:
        db = jclient[c["user"].value]
        collection = db.task
        collection_info = db["meta"]
        info = collection_info.find_one()
        if 'meta' in db.collection_names() and hashlib.md5(
                info["password"].encode(
                    'utf-8')).hexdigest() == c["secret"].value:
            try:
                request_body_size = int(env.get('CONTENT_LENGTH', 0))
            except (ValueError):
                request_body_size = 0
            qs = str()
            query = dict()
            if request_body_size > 0:
                qs = urllib.parse.unquote(
                    env['wsgi.input'].read(request_body_size).decode('ascii'))
            elif len(env['QUERY_STRING']) > 0:
                qs = env['QUERY_STRING']
            resp = ""
            if len(qs):
                query = parse_qs(qs)
            if len(qs) and "jshow" not in query:
                if 'exit' not in query:
                    userlimmit = 1000000
                    if query["act"][0] == "add":
                        import time
                        import json

                        start_response('200 OK',
                                       [('Content-Type', 'application/json')])

                        limmit = 5
                        groups = client[c["user"].value].collection_names(
                            False)
                        if len(groups) >= limmit:
                            return [
                                json.dumps({
                                    "status":
                                    "500",
                                    "error_text":
                                    "Превышен лиммит количества групп"
                                }).encode('utf-8')
                            ]
                        if "meta" not in jclient[
                                c["user"].value].collection_names():
                            return [
                                json.dumps({
                                    "status": "500",
                                    "error_text": "wrong user"
                                }).encode('utf-8')
                            ]

                        import vkreq

                        resp_vk = vkreq.get_group(query["groupid"][0])
                        if "error" in resp_vk:
                            return [
                                json.dumps({
                                    "status": "500",
                                    "error_text": "wrong gid"
                                }).encode('utf-8')
                            ]
                        elif resp_vk["response"][0][
                                "members_count"] >= userlimmit:
                            return [
                                json.dumps({
                                    "status":
                                    "500",
                                    "error_text":
                                    "число пользователей должно быть меньше {0}"
                                    .format(userlimmit)
                                }).encode('utf-8')
                            ]

                        str_gid = str(resp_vk["response"][0]["gid"])
                        if str_gid in client[
                                c["user"].value].collection_names():
                            return [
                                json.dumps({
                                    "status":
                                    "500",
                                    "error_text":
                                    "Группа уже была добавленна раньше"
                                }).encode('utf-8')
                            ]

                        if "meta" not in jclient[str_gid].collection_names():
                            jclient[str_gid]["meta"].insert_one(
                                resp_vk["response"][0])

                        import rmqsend
                        rmqsend.send(
                            json.dumps({
                                "user": c["user"].value,
                                "group_id": str_gid
                            }).encode('utf-8'))

                        return [json.dumps({"status": "200"}).encode('utf-8')]
                    elif query["act"][0] == "update":
                        import json
                        last_doc_journal = jclient[
                            c["user"].value]["journal"].find_one(
                                {"gid": query["gid"][0]},
                                sort=[("ts", DESCENDING)])
                        import time

                        # Ограничение на частоту запросов на обновление
                        rest = 1800
                        start_response('200 OK',
                                       [('Content-Type', 'application/json')])
                        if last_doc_journal is not None and (int(
                                time.time()) - last_doc_journal["ts"]) < rest:
                            return [
                                json.dumps({
                                    "status":
                                    "500",
                                    "error_test":
                                    "Превышен лиммит на количество запросов на обновление"
                                }).encode('utf-8')
                            ]
                        import vkreq

                        resp_vk = vkreq.get_group(query["gid"][0])
                        if resp_vk["members_count"] >= userlimmit:
                            return [
                                json.dumps({
                                    "status":
                                    "500",
                                    "error_text":
                                    "число пользователей должно быть меньше {0}"
                                    .format(userlimmit)
                                }).encode('utf-8')
                            ]

                        import rmqsend
                        rmqsend.send(
                            json.dumps({
                                "user": c["user"].value,
                                "group_id": query["gid"][0]
                            }).encode('utf-8'))
                        return [json.dumps({"status": "200"}).encode('utf-8')]
                    else:
                        collection.update_one(
                            {"_id": bson.objectid.ObjectId(query["id"][0])},
                            {'$set': {
                                'act': query['act']
                            }})
                        start_response('200 OK',
                                       [('Content-Type', 'application/json')])
                        import json

                        return [
                            json.dumps({
                                "status": "200",
                                "act": query["act"][0]
                            }).encode('utf-8')
                        ]
                elif "exit" in query:
                    c["user"]["Expires"] = "Thu, 01-Jan-1970 00:00:00 GMT"
                    c["secret"]["Expires"] = "Thu, 01-Jan-1970 00:00:00 GMT"
                    template = env1.get_template("auth.html")
                    resp = template.render()
            else:
                usermeta = collection_info.find_one()
                groups = client[c["user"].value].collection_names(False)
                usermeta["groups"] = []
                for i in groups:
                    usermeta["groups"].append(jclient[i]["meta"].find_one())
                    usermeta["groups"][len(usermeta["groups"]) -
                                       1]["journal"] = []
                    for doc in jclient[c["user"].value]["journal"].find({
                            "gid":
                            str(i)
                    }).sort([("ts", DESCENDING)]):
                        doc["ts"] = str(doc["ts"])
                        usermeta["groups"][len(usermeta["groups"]) -
                                           1]["journal"].append(doc)
                    if "jshow" in query and str(i) in query["jshow"]:
                        usermeta["groups"][len(usermeta["groups"]) -
                                           1]["jshow"] = "y"
                    else:
                        usermeta["groups"][len(usermeta["groups"]) -
                                           1]["jshow"] = "n"
                template = env1.get_template("index.html")
                resp = template.render(user=usermeta)
        else:
            if 'user' not in c:
                c['user'] = dict()
            c["user"]["Expires"] = "Thu, 01-Jan-1970 00:00:00 GMT"
            if 'secret' not in c:
                c['secret'] = dict()
            c["secret"]["Expires"] = "Thu, 01-Jan-1970 00:00:00 GMT"
            template = env1.get_template("auth.html")
            resp = template.render()

        start_response('200 OK', [('Content-Type', 'text/html'),
                                  ('Set-Cookie', c["user"].OutputString()),
                                  ('Set-Cookie', c["secret"].OutputString())])
        return [resp.encode('utf-8')]