aboutsummaryrefslogtreecommitdiffstats
path: root/Zotlabs/Module/React.php
diff options
context:
space:
mode:
Diffstat (limited to 'Zotlabs/Module/React.php')
-rw-r--r--Zotlabs/Module/React.php122
1 files changed, 68 insertions, 54 deletions
diff --git a/Zotlabs/Module/React.php b/Zotlabs/Module/React.php
index f80b04a3f..e04b9b257 100644
--- a/Zotlabs/Module/React.php
+++ b/Zotlabs/Module/React.php
@@ -2,82 +2,96 @@
namespace Zotlabs\Module;
+use App;
+use Zotlabs\Web\Controller;
+use Zotlabs\Lib\Activity;
+use Zotlabs\Daemon\Master;
-class React extends \Zotlabs\Web\Controller {
+class React extends Controller {
function get() {
- if(! local_channel())
+ if (!local_channel()) {
return;
+ }
$sys = get_sys_channel();
- $channel = \App::get_channel();
+ $channel = App::get_channel();
$postid = $_REQUEST['postid'];
- if(! $postid)
+ if (!$postid) {
return;
+ }
- $emoji = $_REQUEST['emoji'];
-
-
- if($_REQUEST['emoji']) {
-
- $i = q("select * from item where id = %d and uid = %d",
- intval($postid),
- intval(local_channel())
- );
-
- if(! $i) {
- $i = q("select * from item where id = %d and uid = %d",
- intval($postid),
- intval($sys['channel_id'])
- );
-
- if($i) {
- $i = [ copy_of_pubitem($channel, $i[0]['mid']) ];
- $postid = (($i) ? $i[0]['id'] : 0);
- }
- }
+ $shortname = $_REQUEST['emoji'];
- if(! $i) {
- return;
- }
+ $emojis = get_emojis();
- $uuid = item_message_id();
-
- $n = array();
- $n['aid'] = $channel['channel_account_id'];
- $n['uid'] = $channel['channel_id'];
- $n['item_origin'] = true;
- $n['item_type'] = $i[0]['item_type'];
- $n['parent'] = $postid;
- $n['parent_mid'] = $i[0]['mid'];
- $n['uuid'] = $uuid;
- $n['mid'] = z_root() . '/item/' . $uuid;
- $n['verb'] = ACTIVITY_REACT . '#' . $emoji;
- $n['body'] = "\n\n[zmg=32x32]" . z_root() . '/images/emoji/' . $emoji . '.png[/zmg]' . "\n\n";
- $n['author_xchan'] = $channel['channel_hash'];
+ if (!isset($emojis[$shortname])) {
+ return;
+ }
- $n['tgt_type'] = 'Image';
- $n['target'] = [
- 'type' => 'Image',
- 'name' => $emoji,
- 'url' => z_root() . '/images/emoji/' . $emoji . '.png'
- ];
+ $emoji = $emojis[$shortname];
+ if (!$emoji) {
+ return;
+ }
- $x = item_store($n);
+ $i = q("select * from item where id = %d and uid = %d",
+ intval($postid),
+ intval(local_channel())
+ );
- retain_item($postid);
+ if (!$i) {
+ $i = q("select * from item where id = %d and uid = %d",
+ intval($postid),
+ intval($sys['channel_id'])
+ );
- if($x['success']) {
- $nid = $x['item_id'];
- \Zotlabs\Daemon\Master::Summon(array('Notifier','like',$nid));
+ if ($i) {
+ $i = [ copy_of_pubitem($channel, $i[0]['mid']) ];
+ $postid = (($i) ? $i[0]['id'] : 0);
}
+ }
+ if (!$i) {
+ return;
}
+ $uuid = item_message_id();
+
+ $n['aid'] = $channel['channel_account_id'];
+ $n['uid'] = $channel['channel_id'];
+ $n['item_origin'] = true;
+ $n['item_type'] = $i[0]['item_type'];
+ $n['parent'] = $postid;
+ $n['parent_mid'] = $i[0]['mid'];
+ $n['uuid'] = $uuid;
+ $n['mid'] = z_root() . '/item/' . $uuid;
+ $n['verb'] = 'Create';
+ $n['body'] = $emoji['shortname']; //'[img class="emoji single-emoji"]' . z_root() . '/' . $emoji['filepath'] . '[/img]';
+ $n['author_xchan'] = $channel['channel_hash'];
+ // $n['obj'] = Activity::fetch_item(['id' => $i[0]['mid']]);
+ // $n['obj_type'] = ((array_path_exists('obj/type', $n)) ? $n['obj']['type'] : EMPTY_STR);
+
+ $n['term'][] = [
+ 'uid' => $channel['channel_id'],
+ 'ttype' => TERM_EMOJI,
+ 'otype' => TERM_OBJ_POST,
+ 'term' => $emoji['shortname'],
+ 'url' => z_root() . '/emoji/' . $shortname,
+ 'imgurl' => z_root() . '/' . $emoji['filepath']
+ ];
+
+ $x = item_store($n);
+
+ retain_item($postid);
+
+ if ($x['success']) {
+ $nid = $x['item_id'];
+ Master::Summon(['Notifier', 'like', $nid]);
+ }
}
-} \ No newline at end of file
+}