async def prelogin(request): if "sid" not in request.query: raise web.HTTPClientError() try: uid = int(request.query["sid"]) except ValueError: raise web.HTTPClientError() exp = int(app["redis"].get(f"uid:{uid}:exp")) return web.json_response({"user": {"bannerNetworkId": None, "reg": 0, "paymentGroup": "", "preloginModuleIds": "", "id": uid, "avatariaLevel": get_level(exp)}})
async def import_data(self, request): data = await request.post() if 'payload' not in data: return web.Response(status=500, text='no payload found') self.logger.debug("received import request {0}".format( data['payload'])) try: imports = json.loads(data['payload']) for line in imports: if 'pattern' in line and 'command' in line and 'enabled' in line: cron_item = CronItem(command=line['command']) cron_item.set_all(line['pattern']) cron_item.enable(line['enabled']) self.logger.debug( "received new job from import {0}, broadcasting it.". format(cron_item)) broadcast(self.udp_port, UdpSerializer.dump(cron_item, self.hash_key)) else: self.logger.error( "import element invalid: {0}".format(line)) return web.HTTPOk() except ValueError as e: self.logger.error(e) return web.HTTPClientError(text='invalid json received')
async def social(request): data = await request.post() if not data["method"]: raise web.HTTPClientError() if data["method"] == "getTestUsers": return web.json_response({"uids": [str(data["user_id"])]}) elif data["method"] in ["getFriends", "getAppFriends"]: return web.json_response([]) elif data["method"] == "getProfiles": return web.json_response([{"id": data["uids"]}])
async def mw_bot_ready(request, handler): """Wait until the bot is ready before dispatching the first request. Some of the website stuff depends on the bot's internal cache being ready""" if not request.app["bot"].is_ready(): return web.HTTPClientError( text= "Error 425 Website is still booting up\nPlease try again in about 30 seconds" ) return await handler(request)
async def Main(self): try: StopDate = datetime.now().strftime("%d.%m.%Y") StartDate = (datetime.now() + timedelta(days=-1)).strftime("%d.%m.%Y") db = self.app.get('db') auth = await CustomApi.session(**config['api']) if auth.get('error') != 0: print('dropped by authorization') else: request_api = await CustomApi.ordersbetween(StartDate, StopDate, auth['Session_id']) if request_api.get('error') != 0: print('dropped by data request') else: for client_phone in request_api['orders']: client_phone['phone'] = await CustomApi.info_client(client_phone['contr_id'], auth['Session_id']) inserter = {} inserter['contr_id'] = client_phone.get('contr_id') inserter['fone_cell'] = urllib.parse.unquote(client_phone.get('phone').get('fone_cell'))[1:] summ = 0 if 'payments' in client_phone: if client_phone.get('payments') is not None and len(client_phone.get('payments')) > 0 : inserter['date_pay'] = datetime.strptime(client_phone.get('payments')[0].get('date_pay'), '%d.%m.%Y+%H:%M:%S') for x in client_phone.get('payments'): summ += float(x.get('debet').replace(',', '.')) inserter['debet'] = str(summ) else: print('Payments exists but no first element found') else: print('No payments found') if inserter.get('debet') is not None \ and inserter.get('fone_cell') is not None\ and inserter.get('fone_cell').strip() != '': pprint(inserter) phone_exists = await get_one_row(Data.check_phone(inserter.get('fone_cell')), db) if phone_exists is not None: phone_exists = dict(phone_exists) if len(phone_exists) >0: cur_debet = float(inserter['debet']) + float(phone_exists.get('debet', 0)) updater = {} updater['debet'] = str(cur_debet) db_pdate = await get_apdate(Data.update(updater,inserter.get('fone_cell')), db) else: db_data = await get_insert_row(Data.get_insert(inserter), db) #send tags await api(db) return web.json_response({'Data': 1}) except Exception as e: logging.debug(str(e)) raise web.HTTPClientError(body=str(e))