def _update_room_list(self,template_values,order,contents_only): room_list=None if(order=="new" and not contents_only): room_list=Chat.get_room_list() invited=False if(order=="chat"): if(contents_only): room_list=[] else: room_list=Chat.get_room_object_list() if(self.request.get("room_key")): room_list=[] room_key=self.request.get("room_key") try: room=db.get(self.request.get("room_key")) except: room=None if(room): Chat.update_room_info(room) room_list.append(room) invited=True template_values['room_list']=room_list template_values['room_invited']=invited
def post(self): client_id = self.request.get('from') query=ChatRoom.all() query.filter("channel_client_list =",client_id) room_list=query.fetch(offset=0,limit=100) for room in room_list: Chat.remove_user(room.key(),client_id) logging.info("### disconnect user "+client_id)
def post(self): client_id = self.request.get('from') #PCではDisconnectは本当の切断時にしか来ないが、 #iOSでは時々、Disconnect->Connectで再接続が来る #そのため、クライアントIDを一度でも使ったことのあるルームを覚えておき、 #そこに再接続する必要がある #クライアントが属しているルームに接続通知を送る query=ChatRoom.all() query.filter("channel_client_list =",client_id) room_list=query.fetch(offset=0,limit=100) for room in room_list: Chat.user_update_notify(room) #再接続に対応するために属していたルームに再接続する query=ChatRoom.all() query.filter("channel_client_list_for_reconnect =",client_id) room_list=query.fetch(offset=0,limit=100) for room in room_list: if(not(client_id in room.channel_client_list)): Chat.add_user(room.key(),client_id) logging.info("### connect user "+client_id)
def delete_old_temp_image(self): temp_image_list=TempImage.all().order("-date").fetch(limit=10) for temp_image in temp_image_list: from_last_update=(Chat.get_sec(datetime.datetime.now())-Chat.get_sec(temp_image.date))/60 if(from_last_update>=60): temp_image.delete()