コード例 #1
0
def create_message(request, s_id):
    if request.method == 'POST':
        service_obj = get_object_or_404(service, service_id=s_id)
        message_text = request.POST.get('msg')
        response_data = {}

        message = Message(content=message_text,
                          user=request.user,
                          service=service_obj)

        message.save()

        print(message)

        response_data['result'] = 'Create post successful!'
        response_data['pk'] = message.pk
        response_data['content'] = message.content
        response_data['timestamp'] = timezone.localtime(
            timezone.now()).strftime('%B %d, %Y %I:%M %p')
        response_data['user'] = message.user.username

        return HttpResponse(json.dumps(response_data),
                            content_type="application/json")
    else:
        return HttpResponse(json.dumps(
            {"nothing to see": "this isn't happening"}),
                            content_type="application/json")
コード例 #2
0
ファイル: views.py プロジェクト: Lootgvfr/lotr
def form(request):
    """Page with feedback form."""
    grp = get_info(request)
    error = ''
    name = ''
    email = ''
    message = ''
    ans = 'no'
    answers = []
    if request.user.is_authenticated():
        name = request.user.first_name
        email = request.user.email
        msgs = Message.objects.filter(name=request.user.first_name)
        for msg in msgs:
            if msg.answer != '':
                answers.append({'message': msg.text, 'answer': msg.answer})
        if len(answers) > 0:
            ans = 'yes'
    if request.method == "POST":
        try:
            name = request.POST['Name']
            email = request.POST['Email']
            message = request.POST['Message']
            em = re.compile(
                r'^[a-zA-Z0-9._%-]+@[a-zA-Z0-9._%-]+\.[a-zA-Z]{2,6}$')
            if name == '' or email == '' or message == '' or name == 'Name' or message == 'Your message':
                raise Exception('Some of the fields are empty.')
            elif len(name) > 29:
                raise Exception('Name is too long.')
            elif not em.match(email):
                raise Exception('Email is not valid.')
            elif len(message) < 6:
                raise Exception('Your message is too short.')
        except Exception as ex:
            error = ex
        else:
            submit_date = datetime.now()
            user_ip = get_ip(request)
            if request.user.is_authenticated():
                usr = User.objects.get(username=request.user.username)
                usr.first_name = name
                usr.save()
            sub = Message(name=name,
                          email=email,
                          text=message,
                          ip_address=str(user_ip),
                          add_date=submit_date)
            sub.save()
            return HttpResponseRedirect(reverse('thx', args=(name, )))
    return render(
        request, 'main/form.html', {
            'error_message': error,
            'name': name,
            'email': email,
            'message': message,
            'ans': ans,
            'answers': answers,
            'group': grp
        })
コード例 #3
0
ファイル: views.py プロジェクト: Abi1ity/Django-forum
def forum(request):
    if request.method == 'POST':
        text = request.POST.get('input_message', '')
        if text:
            new_message = Message()
            new_message.text = text
            new_message.save()
    messages = Message.objects.all()
    return render(request, 'forum.html', {'messages': messages})
コード例 #4
0
ファイル: methods.py プロジェクト: mkapiczy/ZPR
def createNewProjectTeamMessage(project_team):
    title = 'Zaproszenie do grupa projektowa'
    text = 'Czy chcesz zaakceptować zaproszenie do grupy projektu: ' + project_team.project.name + '\n'
    text += "Członkowie grupy: \n"
    for student in project_team.studentuser_set.all():
        text += student.profile.first_name + ' ' + student.profile.last_name + '\n'
    message = Message(title=title, text=text)
    message.save()
    return message
コード例 #5
0
def forum(request):
    if request.method == 'POST':
        message = Message(
                text=request.POST['message'],
                author=request.user,
                date=timezone.now())
        message.save()
        return HttpResponseRedirect("/forum") # Helps refreshing
    messages = Message.objects.all()
    return render(request, 'main/forum.html', {'messages': messages})
コード例 #6
0
ファイル: views.py プロジェクト: Lootgvfr/lotr
def form(request):
    """Page with feedback form."""
    grp = get_info(request)
    error = ''
    name = ''
    email = ''
    message = ''
    ans = 'no'
    answers = []
    if request.user.is_authenticated():
        name = request.user.first_name
        email = request.user.email
        msgs = Message.objects.filter(name=request.user.first_name)
        for msg in msgs:
            if msg.answer != '':
                answers.append({'message':msg.text, 'answer':msg.answer})
        if len(answers) > 0:
            ans = 'yes'
    if request.method == "POST":
        try:
            name = request.POST['Name']
            email = request.POST['Email']
            message = request.POST['Message']
            em = re.compile(r'^[a-zA-Z0-9._%-]+@[a-zA-Z0-9._%-]+\.[a-zA-Z]{2,6}$')
            if name == '' or email == '' or message == '' or name == 'Name' or message == 'Your message':
                raise Exception('Some of the fields are empty.')
            elif len(name) > 29:
                raise Exception('Name is too long.')
            elif not em.match(email):
                raise Exception('Email is not valid.')
            elif len(message) < 6:
                raise Exception('Your message is too short.')       
        except Exception as ex:
            error = ex
        else:
            submit_date = datetime.now()
            user_ip = get_ip(request)
            if request.user.is_authenticated():
                usr = User.objects.get(username = request.user.username)
                usr.first_name = name
                usr.save()
            sub = Message(name = name, email = email, text = message, ip_address = str(user_ip), add_date=submit_date)
            sub.save()
            return HttpResponseRedirect(reverse('thx', args=(name,)))
    return render(request, 'main/form.html', {
        'error_message':error,
        'name':name,
        'email':email,
        'message':message,
        'ans':ans,
        'answers':answers,
        'group':grp
    })
コード例 #7
0
    def on_data(self, data):
        message = json.loads(data)
        print message
        if 'text' in message:
            tweet = re.search("(#\S+)", str(message['text']))
            hashtag = tweet.group(1)
            print hashtag
            print self.pubnub.publish({
                'channel': hashtag,
                'message': {
                    'message': str(message['text'])
                }
            })

            wall = Wall.objects.filter(hashtag__iexact=hashtag)
            if len(wall) > 0:
                message2 = Message()
                message2.message = str(message['text'])
                message2.hashtag = hashtag
                message2.twitter_account = str(message['user']['screen_name'])
                message2.wall = wall[0]
                print "Saving message"
                message2.save()

        else:
            print message
        return True
コード例 #8
0
ファイル: middleware.py プロジェクト: joelbrady/unswfingr
def send_message(message_to, message_from, message_text, type_of_message):
    """
    This function allows you to send a notification to a particular user. Must specify a FingrUser to, from, as well as the message itself.

    In the future we will probably need to add a type of message such as alert, or something like that
    """
    user_to = message_to
    message = Message(text=message_text, sentFrom=message_from, type=type_of_message, sentTo=user_to)
    message.save()
    user_to.save()
    user_to.messages.add(message)

    message_from.save()
    message_from.messages.add(message)
コード例 #9
0
 def handle(self, *args, **options):
     if options['dry_run']:
         self.stdout.write("%d messages would have been sent." %
                           Message.objects.unsent().count())
         return
     sent_count = Message.send_unsent()
     self.stdout.write("%d messages were sent." % sent_count)
コード例 #10
0
    def on_data(self, data):
        message = json.loads(data)
        print message
        if 'text' in message:
            tweet = re.search("(#\S+)", str(message['text']))
            hashtag = tweet.group(1)
            print hashtag
            print self.pubnub.publish({
                'channel': hashtag,
                'message': {
                    'message': str(message['text'])
                }
            })


            wall = Wall.objects.filter(hashtag__iexact=hashtag)
            if len(wall) > 0:
                message2 = Message()
                message2.message = str(message['text'])
                message2.hashtag = hashtag
                message2.twitter_account = str(message['user']['screen_name'])
                message2.wall = wall[0]
                print "Saving message"
                message2.save()

        else:
            print message
        return True
コード例 #11
0
def do_echo(update: Update, context: CallbackContext):
    chat_id = update.message.chat_id
    text = update.message.text

    p, _ = Profile.objects.get_or_create(external_id=chat_id,
                                         defaults={
                                             'name':
                                             update.message.from_user.username,
                                         })

    m = Message(
        profile=p,
        text=text,
    )
    m.save()

    reply_text = f"Your ID:  {chat_id}\nMessage ID:  {m.pk}\n{text}"
    update.message.reply_text(text=reply_text, )
コード例 #12
0
 def post(self, request):
     if self.request.user.is_staff:
         team = Team.objects.get(pk=int(self.request.GET['team']))
         message = Message(team=team, text=request.POST["msg"], judges=True)
         message.save()
     else:
         team = get_team(self.request.user)
         if team is not None:
             message = Message(team=team,
                               text=request.POST["msg"],
                               judges=False)
             message.save()
     return self.get(request)
コード例 #13
0
ファイル: message.py プロジェクト: alexdiao/3805
def do_send_message(receiver_ids, sender_id, content, item_id=None):
    """
    Send message to one or more followers.
    """
    if len(receiver_ids) == 0:
        return "收件人为空,或没有关注你!"
    if not content.strip() and not item_id:
        return "发送内容不能为空!"
    if len(content) > 500:
        return "回复内容不能超过500个字符。"
    for receiver_id in receiver_ids:
        receiver_id = long(receiver_id)
        try:
            receiver = Profile.objects.get(pk=receiver_id)
            if receiver_id != sender_id:
                User_User.objects.get(follower=receiver_id, followed=sender_id)
            message = Message(content=content, date=datetime.datetime.now())
            message.receiver_id = receiver_id
            message.sender_id = sender_id
            if item_id:
                message.item_id = item_id
            message.save()
            receiver.message_count += 1
            receiver.save()
        except Profile.DoesNotExist:
            return "收件人不存在!"
        except User_User.DoesNotExist:
            return "收件人" + receiver.name + "没有关注你,不能发站内信哦!"

    return "success"
コード例 #14
0
def answer_message(request, id):
    # id_ = request.session['child_id']
    message = Message.objects.get(id=id)
    id_from = message.message_from_id
    id_ = message.child_id
    print('______________________child  form', id_, id_from)

    if request.method == 'POST':
        Message(content=request.POST['content'],
                child_id=id_,
                message_from_id=request.session['id_parent_parent'],
                message_to_id=id_from).save()

    return render(request, 'msg.html')
コード例 #15
0
ファイル: __init__.py プロジェクト: Bjwebb/CUCaTS-Puzzlehunt
 def post(self, request):
     if self.request.user.is_staff:
         team = Team.objects.get(pk=int(self.request.GET['team']))
         message = Message(team=team, text=request.POST["msg"], judges=True) 
         message.save()
     else:
         team = get_team(self.request.user)
         if team is not None:
             message = Message(team=team,
                 text=request.POST["msg"],
                 judges=False) 
             message.save()
     return self.get(request) 
コード例 #16
0
ファイル: views.py プロジェクト: petrosdbz20/pp
def newMessage(request, user_id="0"):
    if request.method == 'POST':
        f = forms.MessageForm(request.POST)
        if f.is_valid():
            message = Message()
            message.subject = f.cleaned_data['subject']
            message.content = f.cleaned_data['content']
            message.date_created = datetime.now()
            message.user_to = User.objects.get(login=f.cleaned_data['user_to'])
            try:
                message.user_from = User.objects.get(login=request.session['login'])
            except:
                return redirect('/')
            message.save()
        return redirect('/')
    else:
        f = forms.MessageForm
        userID = int(user_id)
        if userID > 0:
            user = User.objects.get(id=userID)
            f = forms.MessageForm(initial={'user_to' : user.login})
        return render_to_response('new_message.html', RequestContext(request, {'formset': f}))
コード例 #17
0
def message():
    form = MessageForm()
    if form.validate_on_submit():
        title = form.title.data
        body = form.body.data
        message = Message(title=title, body=body, user_id=current_user.id)
        db.session.add(message)
        db.session.commit()
        flash('已成功发送', 'info')
        return redirect(url_for('message'))
    page = request.args.get('page', 1, type=int)
    per_page = app.config['MESSAGE_PER_PAGE']
    pagination = Message.query.order_by(Message.timestamp.desc()).paginate(
        page, per_page=per_page)
    messages = pagination.items
    return render_template('message.html',
                           pagination=pagination,
                           messages=messages,
                           bs=bs,
                           form=form)
コード例 #18
0
ファイル: socket.py プロジェクト: fancofang/GuessIDraw
def send_message(message):
    room = message['room']
    db_room = Room.query.filter_by(name=room).first()
    save_message = Message(body=message['data'],
                           user=current_user,
                           room=db_room)
    db.session.add(save_message)
    db.session.commit()
    emit('new_message', {
        'type':
        'message',
        'message_html':
        render_template('chat/_new_message.html', message=save_message),
        'message_body':
        message['data'],
        'gravatar':
        current_user.gravatar,
        'nickname':
        current_user.nickname,
        'user_id':
        current_user.id
    },
         room=message['room'])
コード例 #19
0
ファイル: message.py プロジェクト: alexdiao/3805
def do_reply(receiver_id, reply_to_id, sender_id, content):
    """Reply a message"""
    if not content.strip():
        return "回复内容不能为空!"
    if len(content) > 500:
        return "回复内容不能超过500个字符。"  # The best way is check in browser using js
    try:
        receiver = Profile.objects.get(pk=receiver_id)
        main_msg = Message.objects.get(pk=reply_to_id)
        if main_msg.sender_id != sender_id and main_msg.receiver_id != sender_id:
            return "回复失败"
        new_message = Message(content=content, date=datetime.datetime.now())
        new_message.receiver_id = receiver_id
        new_message.sender_id = sender_id
        new_message.reply_to_id = reply_to_id
        new_message.save()

        if main_msg.deleted_by_receiver:
            count = Message.objects.filter(receiver=receiver_id, unread=True, reply_to=Message(reply_to_id)).count()
            if main_msg.unread:
                count += 1
            receiver.message_count += count
            receiver.save()
            main_msg.deleted_by_receiver = False
        elif main_msg.deleted_by_sender:
            count = Message.objects.filter(receiver=receiver_id, unread=True, reply_to=Message(reply_to_id)).count()
            receiver.message_count += count
            receiver.save()
            main_msg.deleted_by_sender = False
        else:
            receiver.message_count += 1
            receiver.save()
        main_msg.save()
        Message.objects.filter(reply_to=Message(reply_to_id)).update(deleted_by_receiver=False, deleted_by_sender=False)
        return "success"
    except Profile.DoesNotExist:
        return "收件人不存在!"
    except Message.DoesNotExist:
        return "回复的信件不存在!"
コード例 #20
0
    def forge(message):
        """Generate fake data."""
        import random, json
        from sqlalchemy.exc import IntegrityError

        from faker import Faker

        fake = Faker(locale='en_GB')

        click.echo('Initializing the database...')
        db.drop_all()
        db.create_all()

        click.echo('Forging the data...')
        admin = User(nickname='Fanco', email='*****@*****.**')
        admin.set_password('123456')
        db.session.add(admin)
        db.session.commit()
        
        click.echo('Generating users...')
        for i in range(30):
            user = User(
                nickname=fake.name(),
                email=fake.email())
            db.session.add(user)
        db.session.commit()

        click.echo('Generating rooms...')
        for i in range(7):
            leader = User.query.get(random.randint(1, User.query.count()))
            room = Room(
                name=fake.word(),
                leader=leader.nickname
            )
            room.users.append(leader)
            print(room.name, room.leader)
            users_list = [User.query.get(random.randint(1, User.query.count())) for i in range(1,random.randrange(4,6))]
            for user in users_list:
                room.users.append(user)
            print("room:",room, ";members:",room.users)
            db.session.add(room)
        db.session.commit()

        # click.echo('Generating users...')
        # for i in range(30):
        #     user = User(
        #         nickname=fake.name(),
        #         email=fake.email(),
        #         room=Room.query.get(random.randint(1, Room.query.count())),
        #                 )
        #     db.session.add(user)
        #     try:
        #         db.session.commit()
        #     except IntegrityError:
        #         db.session.rollback()

        click.echo('Generating messages...')
        for i in range(message):
            set_room = Room.query.get(random.randint(1, Room.query.count()))
            set_user = random.choice(set_room.users)
            message = Message(
                user=set_user,
                body=fake.sentence(),
                timestamp=fake.date_time_between('-30d', '-2d'),
                room=set_room
            )
            db.session.add(message)

        db.session.commit()

        click.echo('Generating words...')
        file = os.path.join(os.path.split(os.path.dirname(__file__))[0], 'topic.json')
        with open(file, 'r') as f:
            questions = json.load(f)
        print(questions)
        print(type(questions))
        for category in questions:
            for word in questions[category]:
                new_instance = Word(name=word, category=category)
                db.session.add(new_instance)
                print(word)
        try:
            db.session.commit()

        except IntegrityError:
            db.session.rollback()

        click.echo('Done.')
コード例 #21
0
ファイル: views.py プロジェクト: Revoltt/Django-outdated
def forum(request):
    if request.method == 'POST':
        message = Message(text = request.POST.get('messagetext', ''))
        message.save()
    messages = Message.objects.all()
    return render(request, 'forum.html', {'messages': messages})
コード例 #22
0
ファイル: views.py プロジェクト: 8r3y/spymarket
def contact1(request):
    p = Message(subject='Test_subj', message='Test_message', email='*****@*****.**')
    p.save()
    return HttpResponseRedirect('/contact/')
コード例 #23
0
def forum(request):
    if request.method == 'POST':
        message = Message(text=request.POST.get('messagetext', ''))
        message.save()
    messages = Message.objects.all()
    return render(request, 'forum.html', {'messages': messages})