コード例 #1
0
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}")
コード例 #2
0
    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)
コード例 #3
0
    def create_conversation(self, status=ConversationStatus.open):
        conversation = Conversation(status=status)

        self.session.add(conversation)
        self.session.commit()

        return conversation
コード例 #4
0
ファイル: views.py プロジェクト: ybxgood/new-jianhu
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')
コード例 #5
0
ファイル: app.py プロジェクト: jkellyjr/School
 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
コード例 #6
0
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)
コード例 #7
0
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)
コード例 #8
0
 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)
     ]
コード例 #9
0
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()
コード例 #10
0
ファイル: app.py プロジェクト: jkellyjr/School
    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
コード例 #11
0
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])
コード例 #12
0
ファイル: views.py プロジェクト: ybxgood/new-jianhu
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))
コード例 #13
0
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"
コード例 #14
0
 def append(self, message, **kwargs):
     conversation = Conversation(sender=self.sender_id, message=message, **kwargs)
     db_session.session.add(conversation)
     db_session.session.commit()
コード例 #15
0
ファイル: actions.py プロジェクト: ajammil/kwikker-backend
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
コード例 #16
0
 def test_init(self):
     convModel = Conversation()
コード例 #17
0
 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')
コード例 #18
0
 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')
コード例 #19
0
ファイル: views.py プロジェクト: baa-archieve/esyakutuphanesi
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)
コード例 #20
0
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
コード例 #21
0
ファイル: app.py プロジェクト: jkellyjr/School
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()
コード例 #22
0
ファイル: main.py プロジェクト: fourjr/whatsapp-image-gen
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
コード例 #23
0
ファイル: direct.py プロジェクト: Danutu89/NewApp-V2
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)
コード例 #24
0
 def test_init_with_intents(self):
     convModel = Conversation('interface/chat/corpus/output.json')