Perlify chats
FossilOrigin-Name: 3386c14b1650d67751762df511b6ed641499890a3992c8e31dbf57ba62efd102
This commit is contained in:
parent
c9ec49af9f
commit
56a4146a42
|
@ -6,7 +6,7 @@ use Exporter 'import';
|
|||
our @EXPORTS = qw( content_chats construct_chat );
|
||||
|
||||
use template_helpers 'to_template';
|
||||
use string_helpers 'format_username';
|
||||
use string_helpers qw( format_username emojify reltime_to_str );
|
||||
|
||||
sub construct_chat
|
||||
{
|
||||
|
@ -17,6 +17,9 @@ sub construct_chat
|
|||
ssn => $ssn,
|
||||
chat => $chat,
|
||||
messages => $messages,
|
||||
format_username => \&format_username,
|
||||
emojify => \&emojify,
|
||||
reltime => \&reltime_to_str,
|
||||
);
|
||||
|
||||
to_template(\%vars, \$data->{'chat.tt'});
|
||||
|
|
|
@ -185,7 +185,9 @@ void content_chats(PATH_ARGS)
|
|||
HV* session_hv = perlify_session(ssn);
|
||||
XPUSHs(newRV_noinc((SV*)session_hv));
|
||||
XPUSHs(newRV_noinc((SV*)template_files));
|
||||
XPUSHs(newRV_noinc((SV*)perlify_chats(chats, chats_len)));
|
||||
if (chats)
|
||||
XPUSHs(newRV_noinc((SV*)perlify_chats(chats, chats_len)));
|
||||
else ARG_UNDEFINED();
|
||||
// ARGS
|
||||
PUTBACK;
|
||||
call_pv("chat::content_chats", G_SCALAR);
|
||||
|
@ -235,7 +237,7 @@ void content_chat_view(PATH_ARGS)
|
|||
};
|
||||
|
||||
mastodont_get_chat_messages(api, &m_args, data[0], &args, &storage, &messages, &messages_len);
|
||||
mastodont_get_chat(api, &m_args, data[0],
|
||||
int chat_code = mastodont_get_chat(api, &m_args, data[0],
|
||||
&storage_chat, &chat);
|
||||
|
||||
perl_lock();
|
||||
|
@ -246,8 +248,12 @@ void content_chat_view(PATH_ARGS)
|
|||
HV* session_hv = perlify_session(ssn);
|
||||
XPUSHs(newRV_noinc((SV*)session_hv));
|
||||
XPUSHs(newRV_noinc((SV*)template_files));
|
||||
XPUSHs(newRV_noinc((SV*)perlify_chat(&chat)));
|
||||
XPUSHs(newRV_noinc((SV*)perlify_messages(messages, messages_len)));
|
||||
if (chat_code)
|
||||
XPUSHs(newRV_noinc((SV*)perlify_chat(&chat)));
|
||||
else ARG_UNDEFINED();
|
||||
if (messages)
|
||||
XPUSHs(newRV_noinc((SV*)perlify_messages(messages, messages_len)));
|
||||
else ARG_UNDEFINED();
|
||||
// ARGS
|
||||
PUTBACK;
|
||||
call_pv("chat::construct_chat", G_SCALAR);
|
||||
|
|
|
@ -1 +1,38 @@
|
|||
chat
|
||||
<div class="page-header">
|
||||
<a href="/chats" class="page-header-button">←</a>
|
||||
<img src="[% chat.account.avatar %]" class="page-header-image avatar">
|
||||
<a href="/@[% chat.account.acct %]" class="page-header-title">[% format_username(chat.account) %]</a>
|
||||
</div>
|
||||
<div class="chat-view">
|
||||
[% FOREACH msg IN messages %]
|
||||
<div class="message-container[% IF msg.account_id == ssn.account.id %] message-you[% END %]">
|
||||
<img src="
|
||||
[%- IF msg.account_id == ssn.account.id -%]
|
||||
[% ssn.account.avatar %]
|
||||
[%- ELSE -%]
|
||||
[% chat.account.avatar %]
|
||||
[%- END -%]
|
||||
" class="avatar">
|
||||
<div class="message-wrapper">
|
||||
<div class="message" id="[% msg.id %]">
|
||||
<span class="content">[% emojify(msg.content, msg.emojis) %]</span>
|
||||
<span class="time">[% reltime(msg.created_at) %]</span>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
[% END %]
|
||||
<div class="anchor"></div>
|
||||
</div>
|
||||
<form action="" method="post">
|
||||
<table class="chatbox ui-table">
|
||||
<tr>
|
||||
<td>
|
||||
<textarea></textarea>
|
||||
</td>
|
||||
<td>
|
||||
<input type="submit" class="chatbox-btn btn" value="Send">
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
</form>
|
||||
|
||||
|
|
Loading…
Reference in New Issue