ghost
3 years ago
16 changed files with 365 additions and 46 deletions
@ -0,0 +1,47 @@
@@ -0,0 +1,47 @@
|
||||
<?php |
||||
|
||||
$response = [ |
||||
'success' => false, |
||||
'message' => _('Internal server error') |
||||
]; |
||||
|
||||
if (isset($_SESSION['userName'])) { |
||||
|
||||
if (!isset($_POST['message']) || (isset($_POST['message']) && !Valid::userPost($_POST['message']))) { |
||||
|
||||
$response = [ |
||||
'success' => false, |
||||
'message' => _('Max 140 chars per message') |
||||
]; |
||||
|
||||
} else if (!$userPosts = $_twister->getPosts([$_SESSION['userName']], 1)) { |
||||
|
||||
$response = [ |
||||
'success' => false, |
||||
'message' => _('Could not receive user post') |
||||
]; |
||||
|
||||
} else if (isset($userPosts[0]['userpost']['k']) && $result = $_twister->newPostMessage($_SESSION['userName'], $userPosts[0]['userpost']['k'] + 1, $_POST['message'])) { |
||||
|
||||
$response = [ |
||||
'success' => true, |
||||
'message' => _('Post successfully sent') |
||||
]; |
||||
|
||||
} else { |
||||
|
||||
$response = [ |
||||
'success' => false, |
||||
'message' => _('Could not send post message') |
||||
]; |
||||
} |
||||
|
||||
} else { |
||||
$response = [ |
||||
'success' => false, |
||||
'message' => _('Session expired. Please, reload the page.') |
||||
]; |
||||
} |
||||
|
||||
header('Content-Type: application/json; charset=utf-8'); |
||||
echo json_encode($response); |
@ -0,0 +1,85 @@
@@ -0,0 +1,85 @@
|
||||
<?php |
||||
|
||||
$response = [ |
||||
'success' => false, |
||||
'message' => _('Internal server error'), |
||||
'posts' => [], |
||||
]; |
||||
|
||||
if (isset($_SESSION['userName'])) { |
||||
|
||||
if ($result = $_twister->getPosts($_twister->getFollowing($_SESSION['userName']), |
||||
APPLICATION_MAX_POST_FEED)) { |
||||
|
||||
$posts = []; |
||||
foreach ($result as $post) { |
||||
|
||||
// Split message parts |
||||
$messages = [$post['userpost']['msg']]; |
||||
|
||||
for ($i = 0; $i <= APPLICATION_MAX_POST_SPLIT; $i++) { |
||||
|
||||
$n = sprintf('msg%s', $i); |
||||
|
||||
if (isset($post['userpost'][$n])) { |
||||
$messages[] = $post['userpost'][$n]; |
||||
} |
||||
} |
||||
|
||||
// Process reTwists |
||||
$reTwist = []; |
||||
if (isset($post['userpost']['rt'])) { |
||||
|
||||
// Split reTwists parts |
||||
$reTwists = [$post['userpost']['rt']['msg']]; |
||||
|
||||
for ($i = 0; $i <= APPLICATION_MAX_POST_SPLIT; $i++) { |
||||
|
||||
$n = sprintf('msg%s', $i); |
||||
|
||||
if (isset($post['userpost']['rt'][$n])) { |
||||
$reTwists[] = $post['userpost']['rt'][$n]; |
||||
} |
||||
} |
||||
|
||||
$reTwist = [ |
||||
'message' => implode('', $reTwists), |
||||
'time' => Localization::time($post['userpost']['rt']['time']), |
||||
'userName' => $post['userpost']['rt']['n'], |
||||
'reTwist' => $reTwist, |
||||
]; |
||||
} |
||||
|
||||
$posts[] = [ |
||||
'message' => implode('', $messages), |
||||
'time' => Localization::time($post['userpost']['time']), |
||||
'userName' => $post['userpost']['n'], |
||||
'reTwist' => $reTwist, |
||||
]; |
||||
} |
||||
|
||||
$response = [ |
||||
'success' => true, |
||||
'message' => _('Posts successfully loaded'), |
||||
'posts' => $posts |
||||
]; |
||||
|
||||
} else { |
||||
|
||||
$response = [ |
||||
'success' => false, |
||||
'message' => _('Could not receive post data'), |
||||
'posts' => [], |
||||
]; |
||||
} |
||||
|
||||
} else { |
||||
$response = [ |
||||
'success' => false, |
||||
'message' => _('Session expired'), |
||||
'posts' => [], |
||||
]; |
||||
} |
||||
|
||||
header('Content-Type: application/json; charset=utf-8'); |
||||
echo json_encode($response); |
@ -1,7 +1,7 @@
@@ -1,7 +1,7 @@
|
||||
|
||||
<?php |
||||
|
||||
if (isset($_SESSION['username'])) { |
||||
if (isset($_SESSION['userName'])) { |
||||
session_destroy(); |
||||
} |
||||
|
||||
|
@ -0,0 +1,120 @@
@@ -0,0 +1,120 @@
|
||||
var Home = { |
||||
template: { |
||||
feed: { |
||||
item: { |
||||
append: function(feed, userName, time, message, reTwist) { |
||||
|
||||
if (reTwist === undefined || reTwist.length == 0) { |
||||
var rt = false; |
||||
} else { |
||||
var rt = $( |
||||
$('<div/>', { |
||||
'class': 'reTwist' |
||||
}).append( |
||||
$('<div/>', { |
||||
'class': 'info' |
||||
}).append( |
||||
reTwist.userName |
||||
).append( |
||||
$('<span/>', { |
||||
'class': 'time' |
||||
}).append( |
||||
reTwist.time |
||||
) |
||||
) |
||||
).append(reTwist.message) |
||||
); |
||||
} |
||||
|
||||
$(feed).append( |
||||
$('<div/>', { |
||||
'class': 'item' |
||||
}).append( |
||||
$('<div/>', { |
||||
'class': 'avatar' |
||||
}).append( |
||||
$('<img/>', { |
||||
'src': '/api/image?hash=' + userName, |
||||
'alt': '', |
||||
}) |
||||
) |
||||
).append( |
||||
$('<div/>', { |
||||
'class': 'message' |
||||
}).append( |
||||
$('<div/>', { |
||||
'class': 'info' |
||||
}).append( |
||||
userName |
||||
).append( |
||||
$('<span/>', { |
||||
'class': 'time' |
||||
}).append( |
||||
time |
||||
) |
||||
) |
||||
).append(rt).append(message) |
||||
) |
||||
); |
||||
} |
||||
} |
||||
} |
||||
}, |
||||
post: { |
||||
add: function(feed, input) { |
||||
$.ajax({ |
||||
url: 'api/post/add', |
||||
type: 'POST', |
||||
data: { |
||||
message: $(input).val() |
||||
}, |
||||
success: function (response) { |
||||
|
||||
if (response.success) { |
||||
|
||||
$(input).val(''); |
||||
|
||||
Home.post.get(feed, true); |
||||
|
||||
} else { |
||||
alert(response.message); |
||||
} |
||||
}, |
||||
error: function(jqXHR, textStatus, errorThrown) { |
||||
console.log(textStatus, errorThrown); |
||||
} |
||||
}); |
||||
}, |
||||
get: function(feed, reFresh) { |
||||
$.ajax({ |
||||
url: 'api/post/get', |
||||
type: 'POST', |
||||
data: {}, |
||||
success: function (response) { |
||||
if (response.success) { |
||||
|
||||
if (reFresh) { |
||||
$(feed).html(''); |
||||
} |
||||
|
||||
$(response.posts).each(function() { |
||||
Home.template.feed.item.append(feed, this.userName, this.time, this.message, this.reTwist); |
||||
}); |
||||
|
||||
} else { |
||||
|
||||
alert(response.message); |
||||
|
||||
} |
||||
}, |
||||
error: function(jqXHR, textStatus, errorThrown) { |
||||
console.log(textStatus, errorThrown); |
||||
} |
||||
}); |
||||
}, |
||||
} |
||||
} |
||||
|
||||
$(document).ready(function() { |
||||
Home.post.get('#feed', true); |
||||
}); |
Loading…
Reference in new issue