Messages from user

This commit is contained in:
Difrex(Denis Zheleztsov) 2014-06-24 11:31:20 +04:00
parent d592353384
commit 568a2a53ff
3 changed files with 70 additions and 5 deletions

View File

@ -24,13 +24,13 @@ sub check_hash {
my ( $self, $hash, $echo ) = @_;
my $dbh = $self->{_dbh};
my $q = "select hash from echo where hash='$hash' and echo='$echo'";
my $q = "select hash from echo where hash='$hash' and echo='$echo'";
my $sth = $dbh->prepare($q);
$sth->execute();
while ( my @h = $sth->fetchrow_array() ) {
my ($base_hash) = @h;
if ($hash eq $base_hash) {
if ( $hash eq $base_hash ) {
return 1;
}
else {
@ -153,6 +153,35 @@ sub select_subg {
}
# Select user messages
sub select_user {
my ( $self, $user ) = @_;
my $dbh = $self->{_dbh};
my $q
= "select from_user, to_user, subg, time, echo, post, hash from messages where from_user='$user' order by time desc";
my $sth = $dbh->prepare($q);
$sth->execute();
my @posts;
while ( my @hash = $sth->fetchrow_array() ) {
my ( $from, $to, $subg, $time, $echo, $post, $h ) = @hash;
my $data = {
from => "$from",
to => "$to",
subg => "$subg",
time => $time,
echo => "$echo",
post => "$post",
hash => $h,
};
push( @posts, $data );
}
return @posts;
}
sub from_me {
my ( $self, $config ) = @_;
my $dbh = $self->{_dbh};

View File

@ -74,7 +74,7 @@ sub echo_mes {
$render .= $t->echo($echo);
my $count = 0;
if ($view eq 'thread') {
if ( $view eq 'thread' ) {
while ( $count < @post ) {
# Render post
@ -151,6 +151,29 @@ sub index {
return $render;
}
# Messages from user
sub user {
my ( $self, $user ) = @_;
my $db = $self->{_db};
my $t = $self->{_template};
# Render header
my $render
= $t->head("ii :: Сообщения пользователя $user");
my @post = $db->select_user($user);
my $count = 0;
while ( $count < @post ) {
# Render post
$render .= $t->post( @post[$count] );
$count++;
}
$render .= $t->foot();
}
# Render new message form
sub send_new {
my ( $self, $echo ) = @_;

View File

@ -1,3 +1,4 @@
#!/usr/bin/perl
# Copyright © 2014 Difrex <difrex.punk@gmail.com>
# This work is free. You can redistribute it and/or modify it under the
# terms of the Do What The Fuck You Want To Public License, Version 2,
@ -7,7 +8,7 @@
# the extent permitted by applicable law. You can redistribute it
# and/or modify it under the terms of the Do What The Fuck You Want
# To Public License, Version 2, as published by Sam Hocevar. See
# http://www.wtfpl.net/ for more details.
# http://www.wtfpl.net/ for more details.
use strict;
use warnings;
@ -40,7 +41,7 @@ my $echo = sub {
my $echo = $req->param('echo');
my $view = $req->param('view');
my $echo_messages = $render->echo_mes($echo, $view);
my $echo_messages = $render->echo_mes( $echo, $view );
return [ 200, [ 'Content-type' => 'text/html' ], ["$echo_messages"], ];
};
@ -154,10 +155,22 @@ my $push = sub {
return [ 302, [ 'Location' => "/e?echo=$echo" ], [], ];
};
# Messages from user
my $user = sub {
my $env = shift;
my $req = Plack::Request->new($env);
my $user = $req->param('user');
my $mes_from = $render->user($user);
return [ 200, [ 'Content-type' => 'text/html' ], [$mes_from], ];
};
builder {
mount '/' => $root;
mount '/e' => $echo;
mount '/s' => $thread;
mount '/u' => $user;
mount '/me' => $me;
mount '/tree' => $tree;
mount '/get/' => $get;