Beispiel #1
0
	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
Beispiel #2
0
	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)
Beispiel #3
0
	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)
Beispiel #4
0
	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()