def add_conversation(user_id): """Page to add a conversation. """ # if this user id combo exists conversation = Conversation.query.filter( Conversation.user1_id == user_id, Conversation.user2_id == g.user.id).all() conversation2 = Conversation.query.filter( Conversation.user2_id == user_id, Conversation.user1_id == g.user.id).all() if conversation: return redirect(f"/conversations/{conversation[0].id}") if conversation2: return redirect(f"/conversations/{conversation2[0].id}") # else: if (user_id < g.user.id): new_conversation = Conversation(user1_id=user_id, user2_id=g.user.id) else: new_conversation = Conversation(user1_id=g.user.id, user2_id=user_id) db.session.add(new_conversation) db.session.commit() return redirect(f"/conversations/{new_conversation.id}")
def post(self, request, *args, **kwargs): """ Handles POST requests to 'conversations/start/' route. """ form = StartConversationForm(request.POST) if form.is_valid(): # first create and save a new conversation instance: conversation = Conversation( subject=form.cleaned_data.get("subject"), initiator=request.user) conversation.save() # add the current user as a member of the coversation: conversation.members.add(request.user) # create and save the new message instance: message = Message(content=form.cleaned_data.get("message"), user=request.user, conversation=conversation) message.save() # send the slack message notification: slack_name = form.cleaned_data.get("invite") join_link = get_slack_join_link(request, conversation, slack_name) notify_on_slack(message, slack_name, join_link) # redirect to the conversation view: return redirect( reverse('messenger:conversation', kwargs={'pk': conversation.pk})) else: messages.add_message(request, messages.ERROR, "Please fill in the fields correctly.") context = {'form': form} template = 'messenger/conversation_start.html' return render(request, template, context)
def create_conversation(self, status=ConversationStatus.open): conversation = Conversation(status=status) self.session.add(conversation) self.session.commit() return conversation
def ajax_send_words(request): user_id = request.user_id be_interested_uuid = request.POST.get('be_interested_uuid') words = request.POST.get('words', '') profile = user_tools.get_user_profile_by_user_id(user_id, need_default=False) data = "" if be_interested_uuid and words: be_interesteds = BeInterested.objects.filter( uuid=be_interested_uuid)[:1] if be_interesteds: conversation = Conversation(be_interested_id=be_interesteds[0].id, user_id=user_id, words=words) conversation.save() openid = None if be_interesteds[0].qlm_user_id != user_id: openid = user_tools.get_openid(be_interesteds[0].qlm_user_id) else: job_details = Job.objects.filter( id=be_interesteds[0].job_id).only('user_id') if job_details: openid = user_tools.get_openid(job_details[0].user_id) send_notice_tool.send_notice(openid) merge_msg = MergeMsg.objects.filter( be_interested_id=be_interesteds[0].id)[0] # 既然都可以发送了,肯定有这条记录了 merge_msg.last_words = words if be_interesteds[0].qlm_user_id == user_id: # 说明发送的这个人是千里马 merge_msg.qlm_have_read = True merge_msg.zg_have_read = False merge_msg.update_time = datetime.datetime.now() else: merge_msg.qlm_have_read = False merge_msg.zg_have_read = True merge_msg.update_time = datetime.datetime.now() merge_msg.save() data = { 'user_portrait': profile.portrait, 'user_nick': user_tools.get_user_name(profile), 'words': conversation.words, 'user_uuid': profile.uuid, 'vip_display': "block" if profile.vip else "none", 'create_time': conversation.create_time.strftime('%Y-%m-%d %H:%M') } else: log.error( "uid(%s) try to get not exsit be_interested_uuid(%s), maybe attack" % (user_id, be_interested_uuid)) return HttpResponse(json.dumps(data), content_type='application/json')
def post(self): args = post_conversation_parser.parse_args() convo = Conversation(group_id=args["group_id"], tutor_id=args["tutor_id"], student_id=args["student_id"]) if convo == None: return 401 db.session.add(convo) db.session.commit() return 201
def new_conversation_view(request): if request.method == "POST": new_conversation = Conversation() new_conversation.title = request.POST.get("title", "title not found") if request.POST.get("category", "") != "": new_conversation.category = Category.objects.get( pk=int(request.POST.get("category"))) new_conversation.save() categories = Category.objects.all() context = RequestContext(request, {"categories": categories}) return render_to_response("dialog/form_conversation.html", context)
def conversation(sender_id, receiver_id): form = ConversationForm() sender = User.query.filter_by(id=sender_id).first() receiver = User.query.filter_by(id=receiver_id).first() if not sender or not receiver: return no_perms("One of the users provided does not exist!") if sender.id != g.user.id: receiver = sender conv = Conversation.query.filter_by(sender_id=sender_id).filter_by( receiver_id=receiver_id).first() or Conversation.query.filter_by( sender_id=receiver_id).filter_by(receiver_id=sender_id).first() if request.method == "POST": if not conv: if form.content.data and form.subject.data: conv = Conversation(sender_id=sender_id, receiver_id=receiver_id, subject=form.subject.data) db.session.add(conv) db.session.commit() msg = Message(conversation_id=conv.id, sender=g.user.id, content=form.content.data) db.session.add(msg) db.session.commit() else: return no_perms("You didn't input a subject/message!") elif form.content.data: msg = Message(conversation_id=conv.id, sender=g.user.id, content=form.content.data) db.session.add(msg) db.session.commit() else: return no_perms("You didn't input a message!") if conv: for msg in conv.messages: msg.sent_at = msg.sent_at.strftime("%b %d, %Y") conv.messages = Message.query.filter_by(conversation_id=conv.id).all() return render_template("conversation.html", form=form, conversation=conv, receiver=receiver)
def get_conversations(self) -> List[ElementConversation]: return [ ElementConversation( element=item, conversation=Conversation( sender=item.find_by_css_selector( 'span.senders.ellipsis > span')[0].text, subject=item.find_by_css_selector( 'div.subject > h4 > span.subject-text.ellipsis') [0].text)) for item in self._browser.find_by_css_selector( '#conversation-list-rows > section > div.conversation', True) ]
def run_task(data_dir, task_name = 'Conversation'): data_loader = CornellLoader(data_dir, length = 5000) sources = data_loader.sources targets = data_loader.targets con_config = config(data_loader, sources, targets) with tf.Session() as sess: model = Conversation(con_config, sess, sources, targets) if len(argvs) < 2: model.build_model(False) model.run(task_name) elif argvs[1] == 'demo': model.build_model(True) model.demo()
def put(self): args = put_contact_req_parser.parse_args() if args['id'] is not None: req = ContactRequest.query.filter_by(id=args['id']).first() if req is None: return 401 accepted = False if args['accepted'].lower() == "true": accepted = True if args["group_id"] is not None: group = Group.query.filter_by(id=args["group_id"]).first() user = User.query.filter_by( id=args["requestor_id"]).first() if group is None or user is None or convo is None: return 404 group.members.append(user) convo.participants.append(user) elif args["tutor_id"] is not None: temp_convo = Conversation(None, args["student_id"], args["tutor_id"]) if tmp_convo is None: return 404 db.session.add(tmp_convo) db.session.commit() req.accepted = accepted req.message = args['message'] req.requestor_id = args['requestor_id'] req.student_id = args['student_id'] req.tutor_id = args['tutor_id'] req.group_id = args['group_id'] db.session.add(req) db.session.commit() return 205
def ajax(): '''Handler for ajax call that accepts a pcap file upload and returns JSON data with all conversations and packets in pcap file. ''' # handle file upload file = request.files['file'] ipfs_res = None if file: # add timestamp to escaped file name pcap_file = str(int(time.time())) + secure_filename(file.filename) file.save(os.path.join(app.config['UPLOAD_FOLDER'], pcap_file)) ipfs_res = client.add(pcap_file) ipfs_res = ipfs_res.as_json() print(ipfs_res) else: abort(500) # process file with tshark command and parse output into a list of packets tshark_output = subprocess.getoutput( 'tshark -o gui.column.format:"AbsTime","%Yt","Source IP Address","%us","Source Port","%uS","Destination IP Address","%ud","Destination Port","%uD" -r {}' .format(pcap_file)) tshark_lines = [l.strip() for l in tshark_output.split('\n')] Packet.protocols = {} packets = [] # import pdb; pdb.set_trace() for line in tshark_lines: p = line.split() try: dt = datetime.strptime(p[0] + p[1], '%Y-%m-%d%H:%M:%S') except (ValueError) as e: try: dt = datetime.strptime(p[0] + p[1], '%Y-%m-%d%H:%M:%S.%f') except (ValueError, IndexError) as e: try: seconds, microseconds = p[1].split('.') if len( microseconds ) > 6: # more precise than %f can handle, so round up new_microseconds = microseconds[:6] p[1] = f'{seconds}.{new_microseconds}' dt = datetime.strptime(p[0] + p[1], '%Y-%m-%d%H:%M:%S.%f') else: continue except Exception as e: continue del p[:2] p.append(dt) # if we get a packet line with an odd amount of data, ignore it # this takes care of packets with no source or destination port (e.g. ARP) if len(p) != 5: continue packets.append(Packet(*p)) # get a list of conversations conversations = [] packets.sort(key=lambda x: x.time) for p in packets: # going through time c = get_conversation(p, conversations) if not c: c = Conversation(src_ip=p.src_ip, dst_ip=p.dst_ip, proto=p.proto) conversations.append(c) c.packets.append(p) # prepare data for processing in d3 data_list = [] conv_dict = {} conv_ctr = len(conversations) for c in conversations: c.conv_id = str(conv_ctr) conv_ctr -= 1 for p in c.packets: data_list.append((str(p.time), c.conv_id)) conv_dict.update({ c.conv_id: { 'src_ip': c.src_ip, 'dst_ip': c.dst_ip, 'proto': c.proto, 'first_point': (str(c.packets[0].time), c.conv_id), 'last_point': (str(c.packets[-1].time), c.conv_id) } }) return json.dumps([conv_dict, data_list, ipfs_res])
def interest_job(request): user_id = request.user_id # 1.从vip职位列表那里直接点击感兴趣进来传进来-------job_uuid->job # 2.通过别人分享链接(分享的职位详情)进来------------share_uuid获取job_id->job # 3.通过别人分享链接(分享的带推荐录音的职位详情)进来 share_uuid获取recommend_id->job recommend_uuid = request.GET.get('recommend_uuid', '') last_share_uuid = request.GET.get('last_share_uuid', '') job_uuid = request.GET.get('job_uuid', '') job_details = [] if last_share_uuid: # 通过别人的分享链接进来的1.职位详情2.带录音的职位详情,只要有share_uuid就可以拿到job if recommend_uuid: # 传recommend_uuid,为带录音的职位详情 recommends = MyRecommend.objects.filter(uuid=recommend_uuid)[:1] if not recommends: return HttpResponse("十分抱歉,获取推荐信息失败,请重试。重试失败请联系客服人员") job_details = Job.objects.filter(id=recommends[0].job_id)[:1] elif job_uuid: job_details = Job.objects.filter(uuid=job_uuid)[:1] if not job_details: log.error("uid(%s) try to get not exsit job, maybe attack" % user_id) return HttpResponse("十分抱歉,获取职位信息失败,请重试。重试失败请联系客服人员") elif job_uuid: # 说明直接点我感兴趣进来的,没有通过分享 job_details = Job.objects.filter(uuid=job_uuid)[:1] last_share_uuid = "00000000000000000000000000000000" if not job_details: log.error("uid(%s) try to get not exsit job(%s), maybe attack" % (user_id, job_uuid)) return HttpResponse("十分抱歉,获取职位信息失败,请重试。重试失败请联系客服人员") be_interested = BeInterested.objects.filter(job_id=job_details[0].id, qlm_user_id=user_id)[:1] if not be_interested: # 当前user以前没有对这个职位点击过我感兴趣,则插入数据 be_interested = BeInterested(last_share_uuid=last_share_uuid, job_id=job_details[0].id, qlm_user_id=user_id, uuid=str_tools.gen_uuid()) be_interested.save() conversation = Conversation( be_interested_id=be_interested.id, user_id=user_id, words="主公,我揭了您的“招贤令”!<span style='color:#8e8e8e;'>(系统代发消息)</span>") conversation.save() conversation = Conversation( create_time=datetime.datetime.fromtimestamp(time.time() + 2), be_interested_id=be_interested.id, user_id=job_details[0].user_id, words= "管家!快给英雄赐座。容我先批完折子。<span style='color:#8e8e8e;'>(系统代发消息)</span>") conversation.save() merge_msg = MergeMsg( update_time=datetime.datetime.now(), uuid=str_tools.gen_uuid(), zg_user_id=job_details[0].user_id, be_interested_id=be_interested.id, qlm_user_id=user_id, last_words= "管家!快给英雄赐座。容我先批完折子。<span style='color:#8e8e8e;'>(系统代发消息)</span>", qlm_have_read=True, zg_have_read=False) merge_msg.save() # 更新my_interview表 my_interview = MyInterview(user_id=user_id, job_id=job_details[0].id, last_share_uuid=last_share_uuid) my_interview.save() else: be_interested = be_interested[0] be_interested_uuid = be_interested.uuid return HttpResponseRedirect("/chat/chat_detail?be_interested_uuid=" + str(be_interested_uuid))
from response.models import Conversation from response.models import Response from sharedresponses.models import SharedResponses #auth user table? T = Researcher(user='******') T.save() T = Researcher(user='******') T.save() T = Researcher(user='******', authLevel='0') T.save() T = Researcher(user='******') T.save() testDate = "2014-10-01 14:33" T = Conversation(templateID=1,researcherID=1, studentName = 'Billy', studentEmail = '*****@*****.**', dateTime = datetime.datetime.strptime(testDate, "%Y-%m-%d %H:%M")) T.save() testDate = "2013-9-03 9:12" T = Conversation(templateID=1,researcherID=1, studentName = 'Bob', studentEmail = '', dateTime = datetime.datetime.strptime(testDate, "%Y-%m-%d %H:%M")) T.save() testDate = "2014-11-02 11:00" T = Conversation(templateID=2,researcherID=2, studentName = 'Billy', studentEmail = '*****@*****.**', dateTime = datetime.datetime.strptime(testDate, "%Y-%m-%d %H:%M")) T.save() testDate = "2013-6-04 2:10" <<<<<<< HEAD T = Conversation(templateID=3,researcherID=2, studentName = 'Ron', studentEmail = '*****@*****.**', dateTime = datetime.datetime.strptime(testDate, "%Y-%m-%d %H:%M")) testDate = "2014-10-01 14:33" T = Conversation(researcherID='Researcher1', studentName = 'Billy', studentEmail = '*****@*****.**', dateTime = datetime.datetime.strptime(testDate, "%Y-%m-%d %H:%M")) T.save() testDate = "2013-9-01 9:12"
def append(self, message, **kwargs): conversation = Conversation(sender=self.sender_id, message=message, **kwargs) db_session.session.add(conversation) db_session.session.commit()
def get_conversations(auth_username, last_conversations_retrieved_id=None): """ This function get list of conversation between two users converting lists of dictionaries into lists of Conversation model, it calls function from query factory that returns lists of dictionaries fit Conversation model with the given pagination. *Parameter:* - *auth_username*: user who is logging in. - *last_conversations_retrieved_id*: id of last message retrieved *Returns:* - *models.Conversation object* """ if last_conversations_retrieved_id is not None: try: last_conversations_retrieved_id = int( last_conversations_retrieved_id) except ValueError: raise if actions.is_user(auth_username) is False: raise Exception('Username who sent this message does not exist.') conversations = query_factory.get_conversations(auth_username) try: conversations = actions.paginate( dictionaries_list=conversations, required_size=20, start_after_key='id', start_after_value=last_conversations_retrieved_id) except TypeError: raise if conversations is None: return None conversation_list = [] if len(conversations) == 0: return conversation_list for conversation in conversations: to_username = conversation['to_username'] from_username = conversation['from_username'] dictionary = {'id': conversation['id']} temp = {'from_username': from_username} dictionary.update(temp) temp = {'to_username': to_username} dictionary.update(temp) new_format = change_time(conversation['created_at']) temp = {'created_at': new_format} dictionary.update(temp) temp = {'text': conversation['text']} dictionary.update(temp) temp = {'media_url': conversation['media_url']} dictionary.update(temp) direct_message = DirectMessage(dictionary) dic = {'last_message': direct_message} if to_username == auth_username: username = from_username else: username = to_username dictionary = {'username': username} temp = {'screen_name': conversation['screen_name']} dictionary.update(temp) temp = {'profile_image_url': conversation['profile_image_url']} dictionary.update(temp) flag = check_follow(auth_username, username) temp = {'following': flag} dictionary.update(temp) flag = check_follow(username, auth_username) temp = {'follows_you': flag} dictionary.update(temp) flag = check_block(auth_username, username) temp = {'blocked': flag} dictionary.update(temp) flag = check_mute(auth_username, username) temp = {'muted': flag} dictionary.update(temp) user = User(dictionary) dic2 = {'user': user} dic2.update(dic) conversation_list.append(Conversation(dic2).to_json()) return conversation_list
def test_init(self): convModel = Conversation()
def test_request(self): convModel = Conversation() response, context, classes, topic, conf = convModel.request( 'Hello my name is Jay') if 'Hello {name}' not in response and classes is not 'greetings': self.fail('didnt expect that output')
def test_encode(self): convModel = Conversation() encoded_statement = convModel.encode('My parents is a test') if 7 not in encoded_statement: self.fail('encoded statement is unexpected')
def make_request(stuff_id=None): form = RequestForm() message = None return_url = request.form['return_url'] if form.validate_on_submit(): message = form.message.data stuff_id = form.stuff_id.data duration = int(form.duration.data) unit = int(form.unit.data) address = Address.query.filter(Address.user_id == current_user.id).first() if address: if stuff_id is None or not (stuff_id > ''): flash(u'İstek gönderilemedi.') return redirect(return_url) stuff = Stuff.query.filter(Stuff.id == stuff_id).first() if stuff.is_wanted == True: user = stuff.owner from_user = current_user else: user = current_user from_user = stuff.owner new_request = Request( stuff_id=stuff_id, user_id=user.id, from_user_id=from_user.id, duration=(duration * unit) ) db.session.add(new_request) new_conversation = Conversation( title='%s' % stuff.title, users=[current_user, stuff.owner], request=new_request ) db.session.add(new_conversation) new_message = Message( from_user=current_user, to_user=stuff.owner, conversation=new_conversation, txt=message ) db.session.add(new_message) db.session.commit() msg_body = render_template('email/request.txt', to_user=user, from_user=from_user, stuff=stuff, conversation_url=new_conversation.url) html_msg = render_template('email/request.html', to_user=user, from_user=from_user, stuff=stuff, conversation_url=new_conversation.url) if stuff.is_wanted: msg_subject = u"%s sana %s ödünç vermek istiyor" % (from_user.name, stuff.title) else: msg_subject = u"%s için bir talip var!" % stuff.title msg = MailMessage( body=msg_body, html=html_msg, subject=msg_subject, sender=(u"Eşya Kütüphanesi", "*****@*****.**"), recipients=[stuff.owner.email] ) mail.send(msg) return redirect(url_for('my_messages')) else: flash(u'Ödünç istemek için adres girmelisin.') return redirect(url_for('new_address')) else: flash(u'İstek gönderilemedi. Kaç gün için ödünç istediğini girmelisin.') return redirect(return_url)
def sendPush(): #message = request.get_json() sender_id = request.json.get('sender_id') recipient_id = request.json.get('recipient_id') message = request.json.get('message') time_sent = request.json.get('time_sent') payload = {} payload['sender_id'] = sender_id payload['recipient_id'] = recipient_id payload['message'] = message payload['time_sent'] = time_sent #Recipient recipient = session.query(User).filter_by(id=recipient_id).first() recipient_first_name = recipient.first_name recipient_last_name = recipient.last_name payload['recipient_first_name'] = recipient_first_name payload['recipient_last_name'] = recipient_last_name topic = "user" + str(recipient_id) #Sender user = session.query(User).filter_by(id=sender_id).first() payload['sender_first_name'] = user.first_name payload['sender_last_name'] = user.last_name payload['sender_picture'] = user.picture #if session.query(Conversation).filter_by(email = email).first() is not None if session.query(Conversation).\ filter(Conversation.user_one_id.in_([sender_id, recipient_id])).\ filter(Conversation.user_two_id.in_([sender_id, recipient_id])).first() is None: new_conversation = Conversation(user_one_id=sender_id, user_two_id=recipient_id) session.add(new_conversation) session.commit() conversation_id = new_conversation.id newMessage = Message(sender_id=sender_id, recipient_id=recipient_id, message=message, time_sent=time_sent, conversation_id=conversation_id, sender_picture=user.picture, sender_first_name=user.first_name, sender_last_name=user.last_name, recipient_first_name=recipient_first_name, recipient_last_name=recipient_last_name, sent_status=MESSAGE_SENT) session.add(newMessage) session.commit() payload['id'] = newMessage.id payload['conversation_id'] = conversation_id payload['sent_status'] = MESSAGE_SENT #data = json.dumps(payload) raw = {"data": payload} data = json.dumps(raw) result = push_service.notify_topic_subscribers(topic_name=topic, data_message=payload) pprint(result) return data old_conversation = session.query(Conversation).\ filter(Conversation.user_one_id.in_([sender_id, recipient_id])).\ filter(Conversation.user_two_id.in_([sender_id, recipient_id])).first() old_conversation_id = old_conversation.id newMessage = Message(sender_id=sender_id, recipient_id=recipient_id, message=message, time_sent=time_sent, conversation_id=old_conversation_id, sender_picture=user.picture, sender_first_name=user.first_name, sender_last_name=user.last_name, recipient_first_name=recipient_first_name, recipient_last_name=recipient_last_name, sent_status=MESSAGE_SENT) session.add(newMessage) session.commit() payload['id'] = newMessage.id payload['conversation_id'] = old_conversation_id payload['sent_status'] = MESSAGE_SENT #j_data = json.dumps(payload) raw = {"data": payload} data = json.dumps(raw) #result = push_service.notify_single_device(registration_id = reg_id, data_message= payload) result = push_service.notify_topic_subscribers(topic_name=topic, data_message=payload) pprint(result) return data
def initdb_command(): """Reinitializes the database""" db.drop_all() db.create_all() db.session.commit() users = [] users.append(User('Bob', 'Smith', '*****@*****.**', '1111111111', '123')) #1 users.append(User('Carol', 'Stevens', '*****@*****.**', '1111111111', '123')) #2 users.append(User('Anna', 'Martin', '*****@*****.**', '1111111111', '123')) #3 users.append(User('Daniel', 'Rutgers', '*****@*****.**', '1111111111', '123')) #4 users.append(User('Frank', 'Lorris', '*****@*****.**', '1111111111', '123')) #5 users.append(User('John', 'McNault', '*****@*****.**', '1111111111', '123')) #6 users.append(User('Peter', 'Johnson', '*****@*****.**', '1111111111', '123')) #7 users.append(User('Laura', 'Smith', '*****@*****.**', '1111111111', '123')) #8 users.append(User('Jennifer', 'Raj', '*****@*****.**', '1111111111', '123')) #9 users.append(User('Quan', 'Billson', '*****@*****.**', '1111111111', '123')) #10 users.append(User('Jamil', 'Reckta', '*****@*****.**', '1111111111', '123')) #11 users.append(User('Victor', 'Rapedip', '*****@*****.**', '1111111111', '123')) #12 users.append(User('Mark', 'Zuck', '*****@*****.**', '1111111111', '123')) #13 users.append(User('Laura', 'shpeng', '*****@*****.**', '1111111111', '123')) #14 for x in users: db.session.add(x) db.session.commit() groups = [] groups.append( Group('CS1530 Guys', 'A bunch of dudes studying software engineering', 1)) #group 1 groups.append(Group('CS1530 Girls', 'Ladies is pimps too', 1)) #group 2 groups.append(Group('Go Eagles', 'Phily > PIttsburgh', users[3].id)) #group 3 for x in groups: db.session.add(x) db.session.commit() users[0].groups.append(groups[0]) users[3].groups.append(groups[0]) users[4].groups.append(groups[0]) users[1].groups.append(groups[1]) users[2].groups.append(groups[1]) users[5].groups.append(groups[0]) users[6].groups.append(groups[1]) users[7].groups.append(groups[1]) users[8].groups.append(groups[0]) users[9].groups.append(groups[2]) users[10].groups.append(groups[2]) users[11].groups.append(groups[2]) users[12].groups.append(groups[2]) users[13].groups.append(groups[1]) db.session.commit() courses = [] courses.append( Course('Software Engineering', 'Formal methods of software engineering', 'CS', 1530)) #0 courses.append( Course('Database Management Systems', 'Database Management Systems', 'CS', 1555)) #1 courses.append(Course('Web Applications', 'Web Applications', 'CS', 1520)) #2 courses.append(Course('Operating Systems', 'Operating Systems', 'CS', 1550)) #3 courses.append( Course('Interface Design Methodology', 'Interface design for mobile applications', 'CS', 1635)) #4 courses.append( Course('High performance computing', 'Introduction to high performance computing', 'CS', 1645)) #5 courses.append( Course('Intro to Data Science', 'Intro to Data Science', 'CS', 1656)) #6 courses.append( Course('Intmdt Prog Using Java', 'Intermediate programming with java', 'CS', 401)) #7 courses.append( Course('Data Structures', 'Intro to data structures', 'CS', 445)) #8 courses.append( Course('Intro to System Software', 'Introduction to system software', 'CS', 449)) #9 for x in courses: db.session.add(x) db.session.commit() for i, x in enumerate(users): if i < 5: x.current_courses.append(courses[0]) x.current_courses.append(courses[1]) x.current_courses.append(courses[2]) x.current_courses.append(courses[3]) x.current_courses.append(courses[4]) else: x.current_courses.append(courses[5]) x.current_courses.append(courses[6]) x.current_courses.append(courses[7]) x.current_courses.append(courses[8]) x.current_courses.append(courses[9]) users.append(User('John', 'Doe', '*****@*****.**', '1111111111', '123')) for i, x in enumerate(users): if i < 7: x.past_courses.append(courses[5]) x.past_courses.append(courses[6]) x.past_courses.append(courses[7]) x.past_courses.append(courses[8]) x.past_courses.append(courses[9]) else: x.past_courses.append(courses[0]) x.past_courses.append(courses[1]) x.past_courses.append(courses[2]) x.past_courses.append(courses[3]) x.past_courses.append(courses[4]) db.session.commit() groups[0].group_courses.append(courses[0]) groups[1].group_courses.append(courses[0]) groups[2].group_courses.append(courses[3]) db.session.commit() convos = [] # group_id, tutor_id, student_id convos.append(Conversation(None, users[2].id, users[3].id)) #1 convos.append(Conversation(groups[0].id, None, users[3].id)) #2 convos.append(Conversation(groups[1].id, None, users[1].id)) #3 convos.append(Conversation(None, users[1].id, users[0].id)) #4 convos.append(Conversation(groups[2].id, None, users[4].id)) #5 convos.append(Conversation(None, users[6].id, users[7].id)) #6 convos.append(Conversation(None, users[9].id, users[8].id)) #7 convos.append(Conversation(None, users[10].id, users[12].id)) #8 for x in convos: db.session.add(x) db.session.commit() messages = [] messages.append( Message(users[2].id, datetime.datetime.now(), "What time would be good to meet?", convos[0].id)) messages.append( Message(users[3].id, datetime.datetime.now(), "Never dumbass LOL", convos[0].id)) messages.append( Message(users[2].id, datetime.datetime.now(), "Why can't you help me?", convos[0].id)) messages.append( Message(users[3].id, datetime.datetime.now(), "Was just joking, send me a meeting request", convos[0].id)) messages.append( Message(users[1].id, datetime.datetime.now(), "Shalom, looks like a prety cool group", convos[1].id)) messages.append( Message(groups[0].id, datetime.datetime.now(), "Yeah I know were pretty sick", convos[1].id)) messages.append( Message(groups[0].id, datetime.datetime.now(), "I don't know how to do problem number 3 from quiz 1", convos[1].id)) messages.append( Message(groups[0].id, datetime.datetime.now(), "Can anyone help me?", convos[1].id)) messages.append( Message(users[1].id, datetime.datetime.now(), "What is this group for?", convos[2].id)) messages.append( Message(users[1].id, datetime.datetime.now(), "Read the BIO!", convos[2].id)) messages.append( Message(users[1].id, datetime.datetime.now(), "What grade did you get in data structures?", convos[3].id)) messages.append( Message(users[0].id, datetime.datetime.now(), "An A-", convos[3].id)) messages.append( Message(users[1].id, datetime.datetime.now(), "Great! Let's schedule a tutoring session", convos[3].id)) messages.append( Message( users[4].id, datetime.datetime.now(), "If anyone needs assistance with their homework 3, shoot me a message", convos[4].id)) #5 messages.append( Message(groups[2].id, datetime.datetime.now(), "I think we all do, can we set up a group tutoring session", convos[4].id)) messages.append( Message( users[6].id, datetime.datetime.now(), "Struggling alot in 445, I saw you recently took that class. Can we set up a tutoring sesson?", convos[5].id)) messages.append( Message(users[7].id, datetime.datetime.now(), "Yes absolutely", convos[5].id)) messages.append( Message(users[6].id, datetime.datetime.now(), "Great! Let's schedule a tutoring session", convos[5].id)) messages.append( Message( users[9].id, datetime.datetime.now(), "Struggling alot in 1501, I saw you recently took that class. Can we set up a tutoring sesson?", convos[6].id)) messages.append( Message(users[8].id, datetime.datetime.now(), "Yes absolutely", convos[6].id)) messages.append( Message(users[9].id, datetime.datetime.now(), "Great! Let's schedule a tutoring session", convos[6].id)) messages.append( Message( users[10].id, datetime.datetime.now(), "Struggling alot in system architecture, I saw you recently took that class. Can we set up a tutoring sesson?", convos[7].id)) messages.append( Message(users[12].id, datetime.datetime.now(), "Yes absolutely", convos[7].id)) messages.append( Message(users[10].id, datetime.datetime.now(), "Great! Let's schedule a tutoring session", convos[7].id)) for x in messages: db.session.add(x) db.session.commit() meeting_reqs = [] meeting_reqs.append( Meeting(str(datetime.datetime.now().strftime("%Y-%m-%d %H:%M")), "Cathy", courses[2].id, convos[1].id, users[3].id, None)) meeting_reqs.append( Meeting(str(datetime.datetime.now().strftime("%Y-%m-%d %H:%M")), "Benny", courses[2].id, convos[1].id, None, groups[0].id)) meeting_reqs.append( Meeting(str(datetime.datetime.now().strftime("%Y-%m-%d %H:%M")), "Hillman", courses[0].id, convos[0].id, users[1].id, None)) meeting_reqs.append( Meeting(str(datetime.datetime.now().strftime("%Y-%m-%d %H:%M")), "Market", courses[1].id, convos[2].id, users[1].id, None)) for x in meeting_reqs: db.session.add(x) db.session.commit() contact_req = [] contact_req.append( ContactRequest("Yo yo yo, add me dawg", users[0].id, users[0].id, None, groups[1].id)) contact_req.append( ContactRequest("Hiyah I need a tutor", users[2].id, users[2].id, users[3].id, None)) for x in contact_req: db.session.add(x) db.session.commit()
import json from PIL import Image from models import Conversation, ImageTextDraw with open('data.json') as f: conversation = Conversation(json.load(f)) # TODO: FIND A WAY TO MAKE THIS INFINITE AND NOT LIMITED BY "10" screen = Image.new('RGBA', (conversation.size[0], conversation.size[1] * 10), (0, 0, 0, 0)) wallpaper = conversation.generate_wallpaper() s_width, s_height = screen.size screen.alpha_composite(wallpaper, (0, conversation.size[1] * 9)) # messages y = s_height - 120 previous_author = None for msg in conversation.messages: image = msg.generate_image() m_width, m_height = image.size if previous_author == msg.author.me: y -= m_height else: y -= 10 + m_height if y < 0: break
def chat(id, *args, **kwargs): currentUser = User.get().filter_by(name=kwargs['token']['name']).first() if request.method == 'GET': messages = Conversation.get().filter_by(conversation_id=id).order_by( asc(Conversation.id)).all() messages_json = [] last_date = None for index, m in enumerate(messages, start=0): if m.author.id == currentUser.id: mine = True else: mine = False if last_date is None: last_date = messages[index].created_on else: last_date = messages[index - 1].created_on if (m.created_on - last_date).days >= 1: new_day_from_last = True else: new_day_from_last = False if m.created_on.date() == last_date.date(): new_day = False else: new_day = True messages_json.append({ 'text': m.message, 'on': m.date_sent(), 'at': m.when_sent(), 'datetime': m.created_on, 'author': { 'name': m.author.name, 'realname': m.author.info.getFullName(), 'avatar': m.author.info.avatar_img }, 'mine': mine, 'new_day_from_last': new_day_from_last, 'new_day': new_day }) return make_response(jsonify(messages_json), 200) if request.method == 'POST': data = request.json if not data: return make_response( jsonify({ 'operation': 'error', 'error': 'Missing data' }), 401) new_message = Conversation(message=data['text'], user_id=currentUser.id, conversation_id=id) new_message.add() return make_response(jsonify({'operation': 'success'}), 200)
def test_init_with_intents(self): convModel = Conversation('interface/chat/corpus/output.json')