def get_project_menu(request): token = str(request.GET.get('token', '')) if authenticate_token(token): user = UserManager(token) return HttpResponse(json.dumps([user.consumption_project()])) else: return HttpResponse(status=422)
def get_overview_menu(request): token = str(request.GET.get('token', '')) if authenticate_token(token): user2 = UserManager(token) return HttpResponse(json.dumps([user2.overview()])) else: return HttpResponse(status=422)
async def counter(websocket, path): # register(websocket) sends user_event() to websocket user = await action.register(websocket) UserManager.user_connected(user) try: async for message in websocket: data = json.loads(message) # 打印不是绘图的数据 if log.actionShouldLog(data["action"]): log.info(message) act = action.getMethod(data["action"]) if act != None: act_args = [] act_arg_names = act.__code__.co_varnames[:act.__code__. co_argcount] for n in act_arg_names: act_args.append(locals()[n]) await act(*act_args) else: print("unsupported event: {}", data) except websockets.exceptions.ConnectionClosedError: pass # 连接关闭无需处理,直接走finally移除该用户便是 except json.decoder.JSONDecodeError as e: print("非JSON数据") print(e) pass finally: await action.unregister(user) UserManager.user_disconnected(user) user.websocket = None
def get_variation(request): start = str(request.GET.get('month', '')) token = str(request.GET.get('token', '')) if authenticate_token(token): user = UserManager(token) return HttpResponse(json.dumps([user.variation(start)])) else: return HttpResponse(status=422)
def __init__(self, client_socket: socket.socket, semaphore: Semaphore): self.semaphore = semaphore self.client = client_socket self.connect = get_connection() self.userManager = UserManager(self.connect) self.weatherManager = WeatherManager(self.connect) self.is_login = False self.is_admin = False self.username = '******'
def _sample_game(self): self.user_manager = UserManager(User(), User()) um = self.user_manager um.user_1.update_words(WordType.ATTACK, list(get_attack())) um.user_1.update_words(WordType.DEFEND, list(get_defend())) um.user_1.update_words(WordType.RIVAL, list(get_rival())) um.switch_user() um.user_2.update_words(WordType.ATTACK, list(get_attack())) um.user_2.update_words(WordType.DEFEND, list(get_defend())) um.user_2.update_words(WordType.RIVAL, list(get_rival())) um.switch_user()
def user_create(): form = CreateUserForm() manager = UserManager('user') if form.validate_on_submit(): localtime = str(datetime.now()) manager.add_user(form.name.data, form.password.data, localtime, True, [], None) user = current_users.get_user(form.name.data) login_user(user) user.set('authenticated', True) flash('User successfully created', 'success') return redirect(url_for('wiki.index')) return render_template('createuser.html', form=form)
def __init__(self, session): self.session = session self.logged_in = False self.user = None self.is_admin = False self.cart_items = None # self.login() self.category_manager = CategoryManager(session=session) self.cart_manager = CartManager(session=session) self.product_manager = ProductManager(session=session) self.user_manager = UserManager(session=session) self.order_manager = OrderManager(session=session)
def createJob(self, username, jobSpec): jobNo = self._getJobNo() job = JobPerspective(jobNo, jobSpec) self.jobs[jobNo] = job user = yield UserManager.get(username) log.debug("Creating job %d for user %s... connecting slave servers" % (jobNo, user.userSpec.username)) # allocate a bunch of slaves here slaves = yield SlaveAllocator.allocate(jobSpec) log.debug("Using slaves: %s" % slaves) # divide the client function to spread the load over all slaves in the set clientFunctionPerSlave = "(%s)/%s" % (jobSpec.clientFunction, len(slaves)) transferLimitPerSlave = jobSpec.transferLimit / len(slaves) modifiedJobSpec = JobSpec(jobSpec.toJson()) modifiedJobSpec.clientFunction = clientFunctionPerSlave modifiedJobSpec.transferLimit = transferLimitPerSlave deferred = Deferred() slaveRequests = [] for slave in slaves: request = slave.createJob(modifiedJobSpec) request.addCallback(self._createJobSlaveCallback, slave) slaveRequests.append(request) deferredList = DeferredList(slaveRequests) deferredList.addCallback(self._createJobCallback, jobNo, user, deferred) yield deferredList returnValue(jobNo)
async def restoreUser(user, data): restoreData = json.loads(data["data"]) if "server" in restoreData: if restoreData["server"]["startTime"] == SERVER_START_TIME: if UserManager.restore_user(user, restoreData["user"]): # 把缓存的临时用户返回,通知浏览器修改当前用户的信息 await user.send(user_event(user)) # 把用户的群组返回回去,通知浏览器修改群组 await user.send(user.group().group_event())
def __init__(self, name): self.name = name self.parse_config("server.ini") self.usermgr = UserManager(name) self.friendmgr = FriendManager(name, self.usermgr) self.postmgr = PostManager(name, self.friendmgr, self.publichost) self.userdb = self.usermgr.get_conn self.frienddb = self.friendmgr.get_conn self.postdb = self.postmgr.get_conn self.util = utilities super(type(self), self).__init__(bottle.app(), self.session_opts)
def __init__(self, room_id, text, user_id=None, ts=None): # super(self.__class__, self).__init__() BaseModel.__init__(self) # Check if room exists room = RoomManager.find(room_id) if room is None: raise RoomNotFound(room_id) else: self.room = room # Check if user exists if user_id is not None: user = UserManager.find(user_id) if user is None: raise UserNotFoundError(user_id) else: self.user = user self.text = text self.ts = ts
class UserTest(unittest.TestCase): def __init__(self, *args, **kwargs): super(UserTest, self).__init__(*args, **kwargs) self.store = StoreManager() self.um = UserManager(kanojo_manager=KanojoManager(), store=self.store) self.user = { "facebook_connect": False, "money": 0, "sex": "male", "create_time": 1413019326, "likes": [], "id": 1, "description": None, "uuid": ["test_uuid1", "test_uuid1"], "stamina": 100, "kanojos": [1, 368], "email": "*****@*****.**", "twitter_connect": False, "generate_count": 0, "profile_image_url": "http://www.deviantsart.com/2oo69ib.jpg", "birthday": 1413025200, "enemies": [], "password": None, "friends": [231, 31, 149, 333, 335, 336, 337, 339, 30, 220, 361], "tickets": 20, "name": "everyone", "language": "en", "level": 1, "scan_count": 0 } self.kanojo = { "mascot_enabled": "0", "avatar_background_image_url": None, "mouth_type": 4, "skin_color": 1, "body_type": 1, "race_type": 10, "spot_type": 1, "sexual": 16, "id": 368, "recognition": 42, "clothes_type": 5, "brow_type": 4, "consumption": 14, "like_rate": 0, "eye_position": 0.8, "followers": [1], "location": "Somewhere", "accessory_type": 6, "possession": 28, "hair_type": 19, "clothes_color": 4, "ear_type": 2, "brow_position": -0.9, "barcode": "4011708223260", "eye_type": 101, "profile_image_url": "http://www.deviantsart.com/3m68o83.png", "eye_color": 3, "glasses_type": 1, "hair_color": 14, "owner_user_id": 1, "face_type": 4, "nationality": "Japan", "advertising_product_url": None, "profile_image_full_url": "http://gdrive-cdn.herokuapp.com/get/0B-nxIpt4DE2TWE1hM0g2bF9LNkU/637179.png", "love_gauge": 50, "mouth_position": 0.1, "name": "\u3042\u304a\u3075\u3043\u308b", "fringe_type": 10, "nose_type": 1, "birthday": 1415271083 } self.kanojo_friend = { "mascot_enabled": "0", "avatar_background_image_url": None, "mouth_type": 10, "nose_type": 3, "body_type": 1, "race_type": 10, "spot_type": 1, "sexual": 19, "id": 31, "recognition": 36, "clothes_type": 4, "brow_type": 2, "consumption": 18, "like_rate": 0, "eye_position": 0, "followers": [1], "location": "Somewhere", "accessory_type": 1, "possession": 27, "hair_type": 15, "clothes_color": 3, "ear_type": 1, "brow_position": 0, "barcode": "hidden", "love_gauge": 50, "profile_image_url": "http://www.deviantsart.com/u7ij6n.png", "eye_color": 6, "glasses_type": 1, "hair_color": 16, "owner_user_id": 0, "face_type": 4, "nationality": "Japan", "advertising_product_url": None, "profile_image_full_url": "http://gdrive-cdn.herokuapp.com/get/0B-nxIpt4DE2TbnZtVVB1T1RYX00/1277508.png", "eye_type": 112, "mouth_position": 0, "name": "\u30b0\u30e9\u30cb\u30fc\u30cb", "fringe_type": 3, "skin_color": 10, "birthday": 1413571308 } def test_user_action_approche(self): user = copy.deepcopy(self.user) kanojo = copy.deepcopy(self.kanojo) kanojo2 = copy.deepcopy(self.kanojo_friend) km = self.um.kanojo_manager self.um.kanojo_manager = None dt = self.um.user_action(user, kanojo) self.assertEqual(dt.get('code'), 500) self.um.kanojo_manager = km dt = self.um.user_action(user, kanojo) self.assertEqual(dt.get('code'), 500) dt = self.um.user_action(user, kanojo, action_string="10|12|21") self.assertEqual(dt.get('code'), 200) self.assertTrue(dt.has_key('love_increment')) self.assertTrue(dt.get('love_increment').has_key('increase_love')) self.assertGreater(dt.get('love_increment').get('increase_love'), 0) self.assertEqual(dt.get('love_increment').get('decrement_love'), 0) self.assertEqual(self.user.get('stamina') - 10, user.get('stamina')) #print dt dt = self.um.user_action(user, kanojo2, action_string="10|12|21|21|20|12|12|20") self.assertEqual(dt.get('code'), 200) self.assertTrue(dt.has_key('love_increment')) self.assertTrue(dt.get('love_increment').has_key('decrement_love')) self.assertGreater(dt.get('love_increment').get('decrement_love'), 0) self.assertEqual(dt.get('love_increment').get('increase_love'), 0) self.assertEqual(self.user.get('stamina') - 20, user.get('stamina')) kanojo2 = copy.deepcopy(self.kanojo_friend) kanojo2['love_gauge'] = 1 dt = self.um.user_action(user, kanojo2, action_string="10|12|21|21|20|12|12|20") self.assertEqual(dt.get('code'), 200) self.assertTrue(dt.has_key('love_increment')) self.assertEqual(self.user.get('stamina') - 30, user.get('stamina')) self.assertTrue(dt.get('info').get('change_owner')) user['stamina'] = 5 dt = self.um.user_action(user, kanojo, action_string="10|12|21") self.assertEqual(dt.get('code'), 403) def test_user_action_item(self): user = copy.deepcopy(self.user) kanojo = copy.deepcopy(self.kanojo) kanojo2 = copy.deepcopy(self.kanojo_friend) dt = self.um.user_action(user, kanojo, do_gift=110, is_extended_action=True) self.assertEqual(dt.get('code'), 200) self.assertTrue(dt.get('data')) self.assertFalse(self.um.user_items(self.user)) self.assertTrue(self.um.user_items(user)) self.assertEqual(len(self.um.user_items(user)), 1) # not extended gift dt = self.um.user_action(user, kanojo, do_gift=1, is_extended_action=False) self.assertEqual(dt.get('code'), 403) self.assertTrue(dt.has_key('love_increment')) self.assertEqual(dt.get('love_increment').get('alertShow'), 1) self.assertTrue(dt.has_key('alerts')) user['money'] = 100 dt = self.um.user_action(user, kanojo, do_gift=1, is_extended_action=False) self.assertEqual(dt.get('code'), 200) self.assertTrue(dt.has_key('love_increment')) self.assertGreater(dt.get('love_increment').get('increase_love'), 0) self.assertNotEqual(kanojo.get('love_gauge'), self.kanojo.get('love_gauge')) def test_add_store_item(self): user = copy.deepcopy(self.user) store_item = self.store.get_item(110) self.assertIsNotNone(store_item) dt = self.um.add_store_item(user, store_item) self.assertIsNotNone(dt) #self.assertEqual(dt.get('has_item_id'), store_item.get('has_item_id')) self.um.add_store_item(user, store_item) dt = self.um.add_store_item(user, store_item) self.assertEqual(dt.get('units'), 3) def test_give_present(self): user = copy.deepcopy(self.user) kanojo = copy.deepcopy(self.kanojo) kanojo2 = copy.deepcopy(self.kanojo_friend) store_item = self.store.get_item(110) self.assertIsNotNone(store_item) self.um.add_store_item(user, store_item) has_items = self.um.user_items(user) self.assertIsNotNone(has_items) self.assertGreater(len(has_items), 0) item = has_items[0] dt = self.um.give_present(user, kanojo, item.get('store_item_id'))
class UserTest(unittest.TestCase): def __init__(self, *args, **kwargs): super(UserTest, self).__init__(*args, **kwargs) self.store = StoreManager() self.um = UserManager(kanojo_manager=KanojoManager(), store=self.store) self.user = { "facebook_connect": False, "money": 0, "sex": "male", "create_time": 1413019326, "likes": [], "id": 1, "description": None, "uuid": ["test_uuid1", "test_uuid1"], "stamina": 100, "kanojos": [1, 368], "email": "*****@*****.**", "twitter_connect": False, "generate_count": 0, "profile_image_url": "http://www.deviantsart.com/2oo69ib.jpg", "birthday": 1413025200, "enemies": [], "password": None, "friends": [231, 31, 149, 333, 335, 336, 337, 339, 30, 220, 361], "tickets": 20, "name": "everyone", "language": "en", "level": 1, "scan_count": 0 } self.kanojo = { "mascot_enabled": "0", "avatar_background_image_url": None, "mouth_type": 4, "skin_color": 1, "body_type": 1, "race_type": 10, "spot_type": 1, "sexual": 16, "id": 368, "recognition": 42, "clothes_type": 5, "brow_type": 4, "consumption": 14, "like_rate": 0, "eye_position": 0.8, "followers": [1], "location": "Somewhere", "accessory_type": 6, "possession": 28, "hair_type": 19, "clothes_color": 4, "ear_type": 2, "brow_position": -0.9, "barcode": "4011708223260", "eye_type": 101, "profile_image_url": "http://www.deviantsart.com/3m68o83.png", "eye_color": 3, "glasses_type": 1, "hair_color": 14, "owner_user_id": 1, "face_type": 4, "nationality": "Japan", "advertising_product_url": None, "profile_image_full_url": "http://gdrive-cdn.herokuapp.com/get/0B-nxIpt4DE2TWE1hM0g2bF9LNkU/637179.png", "love_gauge": 50, "mouth_position": 0.1, "name": "\u3042\u304a\u3075\u3043\u308b", "fringe_type": 10, "nose_type": 1, "birthday": 1415271083 } self.kanojo_friend = {"mascot_enabled": "0", "avatar_background_image_url": None, "mouth_type": 10, "nose_type": 3, "body_type": 1, "race_type": 10, "spot_type": 1, "sexual": 19, "id": 31, "recognition": 36, "clothes_type": 4, "brow_type": 2, "consumption": 18, "like_rate": 0, "eye_position": 0, "followers": [1], "location": "Somewhere", "accessory_type": 1, "possession": 27, "hair_type": 15, "clothes_color": 3, "ear_type": 1, "brow_position": 0, "barcode": "hidden", "love_gauge": 50, "profile_image_url": "http://www.deviantsart.com/u7ij6n.png", "eye_color": 6, "glasses_type": 1, "hair_color": 16, "owner_user_id": 0, "face_type": 4, "nationality": "Japan", "advertising_product_url": None, "profile_image_full_url": "http://gdrive-cdn.herokuapp.com/get/0B-nxIpt4DE2TbnZtVVB1T1RYX00/1277508.png", "eye_type": 112, "mouth_position": 0, "name": "\u30b0\u30e9\u30cb\u30fc\u30cb", "fringe_type": 3, "skin_color": 10, "birthday": 1413571308} def test_user_action_approche(self): user = copy.deepcopy(self.user) kanojo = copy.deepcopy(self.kanojo) kanojo2 = copy.deepcopy(self.kanojo_friend) km = self.um.kanojo_manager self.um.kanojo_manager = None dt = self.um.user_action(user, kanojo) self.assertEqual(dt.get('code'), 500) self.um.kanojo_manager = km dt = self.um.user_action(user, kanojo) self.assertEqual(dt.get('code'), 500) dt = self.um.user_action(user, kanojo, action_string="10|12|21") self.assertEqual(dt.get('code'), 200) self.assertTrue(dt.has_key('love_increment')) self.assertTrue(dt.get('love_increment').has_key('increase_love')) self.assertGreater(dt.get('love_increment').get('increase_love'), 0) self.assertEqual(dt.get('love_increment').get('decrement_love'), 0) self.assertEqual(self.user.get('stamina')-10, user.get('stamina')) #print dt dt = self.um.user_action(user, kanojo2, action_string="10|12|21|21|20|12|12|20") self.assertEqual(dt.get('code'), 200) self.assertTrue(dt.has_key('love_increment')) self.assertTrue(dt.get('love_increment').has_key('decrement_love')) self.assertGreater(dt.get('love_increment').get('decrement_love'), 0) self.assertEqual(dt.get('love_increment').get('increase_love'), 0) self.assertEqual(self.user.get('stamina')-20, user.get('stamina')) kanojo2 = copy.deepcopy(self.kanojo_friend) kanojo2['love_gauge'] = 1 dt = self.um.user_action(user, kanojo2, action_string="10|12|21|21|20|12|12|20") self.assertEqual(dt.get('code'), 200) self.assertTrue(dt.has_key('love_increment')) self.assertEqual(self.user.get('stamina')-30, user.get('stamina')) self.assertTrue(dt.get('info').get('change_owner')) user['stamina'] = 5 dt = self.um.user_action(user, kanojo, action_string="10|12|21") self.assertEqual(dt.get('code'), 403) def test_user_action_item(self): user = copy.deepcopy(self.user) kanojo = copy.deepcopy(self.kanojo) kanojo2 = copy.deepcopy(self.kanojo_friend) dt = self.um.user_action(user, kanojo, do_gift=110, is_extended_action=True) self.assertEqual(dt.get('code'), 200) self.assertTrue(dt.get('data')) self.assertFalse(self.um.user_items(self.user)) self.assertTrue(self.um.user_items(user)) self.assertEqual(len(self.um.user_items(user)), 1) # not extended gift dt = self.um.user_action(user, kanojo, do_gift=1, is_extended_action=False) self.assertEqual(dt.get('code'), 403) self.assertTrue(dt.has_key('love_increment')) self.assertEqual(dt.get('love_increment').get('alertShow'), 1) self.assertTrue(dt.has_key('alerts')) user['money'] = 100 dt = self.um.user_action(user, kanojo, do_gift=1, is_extended_action=False) self.assertEqual(dt.get('code'), 200) self.assertTrue(dt.has_key('love_increment')) self.assertGreater(dt.get('love_increment').get('increase_love'), 0) self.assertNotEqual(kanojo.get('love_gauge'), self.kanojo.get('love_gauge')) def test_add_store_item(self): user = copy.deepcopy(self.user) store_item = self.store.get_item(110) self.assertIsNotNone(store_item) dt = self.um.add_store_item(user, store_item) self.assertIsNotNone(dt) #self.assertEqual(dt.get('has_item_id'), store_item.get('has_item_id')) self.um.add_store_item(user, store_item) dt = self.um.add_store_item(user, store_item) self.assertEqual(dt.get('units'), 3) def test_give_present(self): user = copy.deepcopy(self.user) kanojo = copy.deepcopy(self.kanojo) kanojo2 = copy.deepcopy(self.kanojo_friend) store_item = self.store.get_item(110) self.assertIsNotNone(store_item) self.um.add_store_item(user, store_item) has_items = self.um.user_items(user) self.assertIsNotNone(has_items) self.assertGreater(len(has_items), 0) item = has_items[0] dt = self.um.give_present(user, kanojo, item.get('store_item_id'))
class HandleClient: def __init__(self, client_socket: socket.socket, semaphore: Semaphore): self.semaphore = semaphore self.client = client_socket self.connect = get_connection() self.userManager = UserManager(self.connect) self.weatherManager = WeatherManager(self.connect) self.is_login = False self.is_admin = False self.username = '******' def start(self): try: while True: data: bytes = self.client.recv(SERVER_DATA_LENGTH) data: str = bytes_to_str(data) data: str = data.strip() # break if data.startswith('exit'): break print(data) if data.startswith('login'): self.login(data) elif data.startswith('register'): self.register(data) elif data.startswith('cities'): self.find_cities() elif data.startswith('city'): self.find_city(data) elif data.startswith('add_city'): self.add_city(data) elif data.startswith('update_weather'): self.update_weather(data) elif data.startswith('list_city'): self.list_city() else: self.client.sendall(b'Command khong hop le') except Exception as e: print(e) finally: print('client {} out'.format(self.username)) self.semaphore.release() self.client.close() self.connect.close() def login(self, data: str): items = data.split(' ') _, username, password = items if self.userManager.login(username, password): self.client.sendall(MESSAGE_SUCCESS) self.is_login = True self.username = username if username == 'admin': self.is_admin = True else: self.client.sendall(b'Username hoac mat khau bi sai') def register(seft, data: str): items = data.split(' ') _, username, password = items pattern = '[a-zA-Z0-9]{2,64}' if re.match(pattern, username) and re.match(pattern, password): if seft.userManager.register(username, password): seft.client.sendall(b'Dang ki thanh cong') else: seft.client.sendall(b'Username da ton tai') else: seft.client.sendall( b'Username va mat khau phai co 2 ki tu va nam trong [a-zA-Z0-9]' ) def find_city(self, data: str): if not self.is_login: self.client.sendall(b'Ban phai dang nhap') return items = data.split(' ') try: city_id = int(items[1]) data = self.weatherManager.get_city(city_id) data = str_to_bytes(data) self.client.sendall(data) except ValueError: self.client.sendall(b'Du lieu khong hop le') def find_cities(self): if not self.is_login: self.client.sendall(b'Ban phai dang nhap') return data = self.weatherManager.get_cities() data = str_to_bytes(data) self.client.sendall(data) def add_city(self, data: str): if not self.is_admin: self.client.sendall(b'Ban khong co quyen admin') return index = len('add_city ') city_name = data[index:] if self.weatherManager.add_city(city_name): self.client.sendall(b'Ban da them thanh cong') else: self.client.sendall(b'Ban them that bai') def update_weather(self, data: str): if not self.is_login: self.client.sendall(b'Ban phai dang nhap') return index = len('update_weather ') dict = eval(data[index:]) result = self.weatherManager.save_weather(dict['city_id'], dict['day'], dict['status'], dict['temp_min'], dict['temp_max']) if result: self.client.sendall(b'Cap nhat thanh cong') else: self.client.sendall(b'Cap nhat that bai') def list_city(self): data = self.weatherManager.list_city() data = str_to_bytes(data) self.client.sendall(data)
def __init__(self, *args, **kwargs): super(UserTest, self).__init__(*args, **kwargs) self.store = StoreManager() self.um = UserManager(kanojo_manager=KanojoManager(), store=self.store) self.user = { "facebook_connect": False, "money": 0, "sex": "male", "create_time": 1413019326, "likes": [], "id": 1, "description": None, "uuid": ["test_uuid1", "test_uuid1"], "stamina": 100, "kanojos": [1, 368], "email": "*****@*****.**", "twitter_connect": False, "generate_count": 0, "profile_image_url": "http://www.deviantsart.com/2oo69ib.jpg", "birthday": 1413025200, "enemies": [], "password": None, "friends": [231, 31, 149, 333, 335, 336, 337, 339, 30, 220, 361], "tickets": 20, "name": "everyone", "language": "en", "level": 1, "scan_count": 0 } self.kanojo = { "mascot_enabled": "0", "avatar_background_image_url": None, "mouth_type": 4, "skin_color": 1, "body_type": 1, "race_type": 10, "spot_type": 1, "sexual": 16, "id": 368, "recognition": 42, "clothes_type": 5, "brow_type": 4, "consumption": 14, "like_rate": 0, "eye_position": 0.8, "followers": [1], "location": "Somewhere", "accessory_type": 6, "possession": 28, "hair_type": 19, "clothes_color": 4, "ear_type": 2, "brow_position": -0.9, "barcode": "4011708223260", "eye_type": 101, "profile_image_url": "http://www.deviantsart.com/3m68o83.png", "eye_color": 3, "glasses_type": 1, "hair_color": 14, "owner_user_id": 1, "face_type": 4, "nationality": "Japan", "advertising_product_url": None, "profile_image_full_url": "http://gdrive-cdn.herokuapp.com/get/0B-nxIpt4DE2TWE1hM0g2bF9LNkU/637179.png", "love_gauge": 50, "mouth_position": 0.1, "name": "\u3042\u304a\u3075\u3043\u308b", "fringe_type": 10, "nose_type": 1, "birthday": 1415271083 } self.kanojo_friend = { "mascot_enabled": "0", "avatar_background_image_url": None, "mouth_type": 10, "nose_type": 3, "body_type": 1, "race_type": 10, "spot_type": 1, "sexual": 19, "id": 31, "recognition": 36, "clothes_type": 4, "brow_type": 2, "consumption": 18, "like_rate": 0, "eye_position": 0, "followers": [1], "location": "Somewhere", "accessory_type": 1, "possession": 27, "hair_type": 15, "clothes_color": 3, "ear_type": 1, "brow_position": 0, "barcode": "hidden", "love_gauge": 50, "profile_image_url": "http://www.deviantsart.com/u7ij6n.png", "eye_color": 6, "glasses_type": 1, "hair_color": 16, "owner_user_id": 0, "face_type": 4, "nationality": "Japan", "advertising_product_url": None, "profile_image_full_url": "http://gdrive-cdn.herokuapp.com/get/0B-nxIpt4DE2TbnZtVVB1T1RYX00/1277508.png", "eye_type": 112, "mouth_position": 0, "name": "\u30b0\u30e9\u30cb\u30fc\u30cb", "fringe_type": 3, "skin_color": 10, "birthday": 1413571308 }
def __init__(self): UserManager.__init__(self)
def __init__(self) -> None: self.data = Data() self.users = UserManager(self.data) self.workers = WorkerManager(self.data) self.window = WindowManager(self) self.start()
km = KanojoManager(generate_secret=config.KANOJO_SECRET) print(km.generate('123')) exit() mdb_connection_string = config.MDB_CONNECTION_STRING db_name = mdb_connection_string.split('/')[-1] db = MongoClient(mdb_connection_string)[db_name] #barcode_info = db.kanojos.find_one({ 'id': 368 }) #barcode_info.pop('_id', None) #print json.dumps(barcode_info) from user import UserManager um = UserManager(db) user = um.user(uid=1, clear=CLEAR_NONE) import config km = KanojoManager(db, generate_secret1=config.KANOJO_SECRET1, generate_secret2=config.KANOJO_SECRET2) #kanojo = km.kanojo(368, user, clear=CLEAR_NONE) kanojo = km.kanojo(31, user, clear=CLEAR_NONE) kanojo.pop('_id', None) print(json.dumps(kanojo)) #import pprint #pprint.pprint(km.user_action(kanojo, user, '10|11|12|20|21|20|12|11|10')) exit()
class Driver: def __init__(self, session): self.session = session self.logged_in = False self.user = None self.is_admin = False self.cart_items = None # self.login() self.category_manager = CategoryManager(session=session) self.cart_manager = CartManager(session=session) self.product_manager = ProductManager(session=session) self.user_manager = UserManager(session=session) self.order_manager = OrderManager(session=session) def login(self): email = input('Enter E-mail: ') pwd = input('Enter Password: '******'{user} logged in successfully') except exc.NoResultFound: raise Exception('wrong credentials. please try again.') def collect_category_details(self): category_detail = {} for key, value in CATEGORY_DETAILS.items(): category_detail[key] = input(f'Enter {value}: ') return category_detail def collect_product_details(self): product_detail = {} for key, value in PRODUCT_DETAILS.items(): product_detail[key] = input(f'Enter {value}: ') return product_detail def select_user(self): users = self.user_manager.list_users() for index, value in enumerate(users, 1): print(f'{index}. {value}') user_index = int(input('Select User: '******'Products added to the cart by user {user}') for item in cart_items: print(f'Product: {item.product}, Quantity: {item.quantity}') print() def select_category(self): categories = self.category_manager.list_categories() for index, category in enumerate(categories, 1): print(f'{index}. {category}') category_index = int(input('Select Category: ')) return categories[category_index-1] def select_product(self): products = self.product_manager.list_products() for index, product in enumerate(products, 1): print(f'{index}. {product}') product_index = int(input('Select Product: ')) return products[product_index-1] def display_cart(self, action=None): cart_items = self.user.cart_items print('User\'s Cart: ') for index, item in enumerate(cart_items, 1): print(f'{index}. Product: {item.product}, Quantity: {item.quantity}') if action == 'select': item_index = int(input('Select Product: ')) return cart_items[item_index-1] def place_order(self): items = [] self.order_manager.create_order(self.user) while True: item = self.display_cart(action='select') self.order_manager.add_item(item=item.product, quantity=item.quantity) items.append(item) self.cart_manager.remove_item(product=item, silent=True, commit=False) add_more = input('Want to add more items from cart? (y/n)') if add_more not in ['y', 'Y', 'Yes', 'YES', 'yes']: break print('Order Placed.') res = self.order_manager.is_discount() if res[1]: print('Voila.. You got 500 discount on this order') print(f'Order Amount: {res[0]}, Discount: 500, Net Payable: {res[0]-500}') else: print(f'Order Amount: {res[0]}, Net Payable: {res[0]}') self.cart_manager.commit_changes() self.order_manager.complete_order() def is_already_added_to_cart(self, product): for cart_item in self.user.cart_items: if product.id == cart_item.product_id: return cart_item else: return False def remove_item_from_cart(self): item = self.display_cart(action='select') self.cart_manager.remove_item(product=item) def add_product_to_user_cart(self): product = self.select_product() quantity = int(input('Enter Quantity: ')) cart_item = self.is_already_added_to_cart(product) if cart_item: self.cart_manager.update_item(cart_item, quantity) else: self.cart_manager.add_item(user=self.user, product=product, quantity=quantity) def view_product_details(self): product = self.select_product() details = self.product_manager.view_details(product_id=product.id) for k, v in details.items(): print(f'{k}: {v}') def list_products_by_category(self): category = self.select_category() products = self.category_manager.list_products_by_category(category_name=category.name) for index, product in enumerate(products, 1): print(f'{index}. {product}') def list_product_categories(self): categories = self.category_manager.list_categories() for index, category in enumerate(categories, 1): print(f'{index}. {category}') def create_user(self): user_detail = {} for key, value in USER_DETAILS.items(): user_detail[key] = input(f'Enter {value}: ') self.user_manager.add_user(**user_detail) def start_admin_flow(self): while True: print('Select option: ') for index, value in enumerate(ACTIONS.get('admin', []), 1): print(f'{index}. {value}') admin_choice = int(input()) if admin_choice == 1: # Add Category category_detail = self.collect_category_details() self.category_manager.add_category(**category_detail) input('Press Enter to Continue..') elif admin_choice == 2: # Add Product product_details = self.collect_product_details() self.product_manager.add_product(**product_details) input('Press Enter to Continue..') elif admin_choice == 3: # View Cart Details for_user = self.select_user() self.display_user_cart(for_user) input('Press Enter to Continue..') elif admin_choice == 4: # View Bills user = self.select_user() bill = self.user_manager.list_bills(user=user) # print('Function Under Construction') print(json.dumps(bill, indent=4, default=str)) input('Press Enter to Continue..') elif admin_choice == 5: return else: print('Enter Valid Input') input('Press Enter to Continue..') def start_user_flow(self): while True: print('Select option: ') for index, value in enumerate(ACTIONS.get('user', []), 1): print(f'{index}. {value}') user_choice = int(input()) if user_choice == 1: # List Categories self.list_product_categories() input('Press Enter to Continue..') elif user_choice == 2: # List Products by Category self.list_products_by_category() input('Press Enter to Continue..') elif user_choice == 3: # View Product Detail self.view_product_details() input('Press Enter to Continue..') elif user_choice == 4: # View Cart self.display_cart() input('Press Enter to Continue..') elif user_choice == 5: # Add Product to Cart self.add_product_to_user_cart() input('Press Enter to Continue..') elif user_choice == 6: # Remove Product from Cart self.remove_item_from_cart() input('Press Enter to Continue..') elif user_choice == 7: # Place Order self.place_order() input('Press Enter to Continue..') elif user_choice == 8: return else: print('Enter Valid Input')
def user_manager(session): return UserManager(session)
class Application(tk.Frame): def __init__(self, master=None): super().__init__(master) self.master = master self.current_user = 0 self._create_windows() self._set_defaults() self._sample_game() self._render_game() def _sample_game(self): self.user_manager = UserManager(User(), User()) um = self.user_manager um.user_1.update_words(WordType.ATTACK, list(get_attack())) um.user_1.update_words(WordType.DEFEND, list(get_defend())) um.user_1.update_words(WordType.RIVAL, list(get_rival())) um.switch_user() um.user_2.update_words(WordType.ATTACK, list(get_attack())) um.user_2.update_words(WordType.DEFEND, list(get_defend())) um.user_2.update_words(WordType.RIVAL, list(get_rival())) um.switch_user() def _set_defaults(self): self.master.title('Typefight') self.master.geometry('1000x800') self.bind("<Key>", self._key_callback) self.bind("<BackSpace>", self._back) self.bind("<space>", self._space) self.bind("<Return>", self._switch_user) self.bind("<Tab>", self._switch_typing_mode) self.focus_set() self.pack() # this method is for convience for switching between users # a user should not have this ability def _switch_user(self, event=None): if self.current_user: self.current_user = 0 else: self.current_user = 1 self.user_manager.switch_user() self._render_game() self._tag_frames() def _switch_typing_mode(self, event): self.user_manager.toggle_mode() # this is used primarily because of the need to change users def _render_game(self): current = self._get_current_user() other = self._get_rival_user() current.clear_frame() other.clear_frame() for x in self.user_manager.get_words(WordType.ATTACK).queue: current.add_attack_word(x) for x in self.user_manager.get_words(WordType.DEFEND).queue: current.add_defense_word(x) for x in self.user_manager.get_words(WordType.RIVAL).queue: other.add_defense_word(x) def _get_current_user(self): if self.current_user: return self.first_user return self.second_user def _get_rival_user(self): if self.current_user: return self.second_user return self.first_user def _tag_frames(self): if self.current_user: self.first_user['text'] = 'User' self.second_user['text'] = 'Rival' else: self.first_user['text'] = 'Rival' self.second_user['text'] = 'User' def _create_windows(self): left_pane = tk.Frame(self, width=500, height=800) right_pane = tk.Frame(self, width=500, height=800) left_pane.grid(row=0, column=0) right_pane.grid(row=0, column=1) self.first_user = UserFrame(left_pane) self.second_user = UserFrame(right_pane) self._tag_frames() def _update_current_word(self): self._get_current_user().set_message( self.user_manager.get_current_word()) def _back(self, event): self.user_manager.remove_previous() self._update_current_word() def _key_callback(self, event): if re.match("\\w", event.char): self.user_manager.type_key(event.char) self._update_current_word() def _space(self, event): if self.user_manager.publish_word(): self._render_game() self._get_current_user().set_message('') self._update_current_word()
km = KanojoManager(generate_secret=config.KANOJO_SECRET) print km.generate('123') exit() mdb_connection_string = config.MDB_CONNECTION_STRING db_name = mdb_connection_string.split('/')[-1] db = MongoClient(mdb_connection_string)[db_name] #barcode_info = db.kanojos.find_one({ 'id': 368 }) #barcode_info.pop('_id', None) #print json.dumps(barcode_info) from user import UserManager um = UserManager(db) user = um.user(uid=1, clear=CLEAR_NONE) import config km = KanojoManager(db, generate_secret1=config.KANOJO_SECRET1, generate_secret2=config.KANOJO_SECRET2) #kanojo = km.kanojo(368, user, clear=CLEAR_NONE) kanojo = km.kanojo(31, user, clear=CLEAR_NONE) kanojo.pop('_id', None) print json.dumps(kanojo) #import pprint #pprint.pprint(km.user_action(kanojo, user, '10|11|12|20|21|20|12|11|10')) exit() for i in range(1417822084, 1417822084+60*60*24*15, 60*60):
from fastapi import FastAPI from user import UserManager app = FastAPI() user_manager = UserManager() @app.get("/api/") def api(): return {"code": 0, "msg": "OK", "user": user_manager.get_user_num()}
def __init__(self, *args, **kwargs): super(UserTest, self).__init__(*args, **kwargs) self.store = StoreManager() self.um = UserManager(kanojo_manager=KanojoManager(), store=self.store) self.user = { "facebook_connect": False, "money": 0, "sex": "male", "create_time": 1413019326, "likes": [], "id": 1, "description": None, "uuid": ["test_uuid1", "test_uuid1"], "stamina": 100, "kanojos": [1, 368], "email": "*****@*****.**", "twitter_connect": False, "generate_count": 0, "profile_image_url": "http://www.deviantsart.com/2oo69ib.jpg", "birthday": 1413025200, "enemies": [], "password": None, "friends": [231, 31, 149, 333, 335, 336, 337, 339, 30, 220, 361], "tickets": 20, "name": "everyone", "language": "en", "level": 1, "scan_count": 0 } self.kanojo = { "mascot_enabled": "0", "avatar_background_image_url": None, "mouth_type": 4, "skin_color": 1, "body_type": 1, "race_type": 10, "spot_type": 1, "sexual": 16, "id": 368, "recognition": 42, "clothes_type": 5, "brow_type": 4, "consumption": 14, "like_rate": 0, "eye_position": 0.8, "followers": [1], "location": "Somewhere", "accessory_type": 6, "possession": 28, "hair_type": 19, "clothes_color": 4, "ear_type": 2, "brow_position": -0.9, "barcode": "4011708223260", "eye_type": 101, "profile_image_url": "http://www.deviantsart.com/3m68o83.png", "eye_color": 3, "glasses_type": 1, "hair_color": 14, "owner_user_id": 1, "face_type": 4, "nationality": "Japan", "advertising_product_url": None, "profile_image_full_url": "http://gdrive-cdn.herokuapp.com/get/0B-nxIpt4DE2TWE1hM0g2bF9LNkU/637179.png", "love_gauge": 50, "mouth_position": 0.1, "name": "\u3042\u304a\u3075\u3043\u308b", "fringe_type": 10, "nose_type": 1, "birthday": 1415271083 } self.kanojo_friend = {"mascot_enabled": "0", "avatar_background_image_url": None, "mouth_type": 10, "nose_type": 3, "body_type": 1, "race_type": 10, "spot_type": 1, "sexual": 19, "id": 31, "recognition": 36, "clothes_type": 4, "brow_type": 2, "consumption": 18, "like_rate": 0, "eye_position": 0, "followers": [1], "location": "Somewhere", "accessory_type": 1, "possession": 27, "hair_type": 15, "clothes_color": 3, "ear_type": 1, "brow_position": 0, "barcode": "hidden", "love_gauge": 50, "profile_image_url": "http://www.deviantsart.com/u7ij6n.png", "eye_color": 6, "glasses_type": 1, "hair_color": 16, "owner_user_id": 0, "face_type": 4, "nationality": "Japan", "advertising_product_url": None, "profile_image_full_url": "http://gdrive-cdn.herokuapp.com/get/0B-nxIpt4DE2TbnZtVVB1T1RYX00/1277508.png", "eye_type": 112, "mouth_position": 0, "name": "\u30b0\u30e9\u30cb\u30fc\u30cb", "fringe_type": 3, "skin_color": 10, "birthday": 1413571308}
def get_users(): users = getattr(g, '_users', None) if users is None: users = g._users = UserManager(current_app.config['USER_DIR']) return users
def __init__(self): self.clients = {} self.um = UserManager() self.cm = ChatManager(self)