]> git.mxchange.org Git - friendica.git/commitdiff
There is now a "content-warning" field
authorMichael <heluecht@pirati.ca>
Wed, 14 Mar 2018 22:28:35 +0000 (22:28 +0000)
committerMichael <heluecht@pirati.ca>
Wed, 14 Mar 2018 22:28:35 +0000 (22:28 +0000)
boot.php
database.sql
include/conversation.php
include/text.php
src/Database/DBStructure.php
src/Protocol/OStatus.php

index b8b9b0ec288de70711f7cbec8e6d4fd0da7ea743..caf645c0486c80521d7c31964d2d5f7a4b2acf25 100644 (file)
--- a/boot.php
+++ b/boot.php
@@ -39,7 +39,7 @@ define('FRIENDICA_PLATFORM',     'Friendica');
 define('FRIENDICA_CODENAME',     'Asparagus');
 define('FRIENDICA_VERSION',      '3.6-rc');
 define('DFRN_PROTOCOL_VERSION',  '2.23');
-define('DB_UPDATE_VERSION',      1255);
+define('DB_UPDATE_VERSION',      1256);
 define('NEW_UPDATE_ROUTINE_VERSION', 1170);
 
 /**
index 4275c38315ccf26cd82c81b1df9dbcd3c93614de..181e9e804a00d73f01014629d24b95b59442d06f 100644 (file)
@@ -1,6 +1,6 @@
 -- ------------------------------------------
--- Friendica 3.6-dev (Asparagus)
--- DB_UPDATE_VERSION 1255
+-- Friendica 3.6-rc (Asparagus)
+-- DB_UPDATE_VERSION 1256
 -- ------------------------------------------
 
 
@@ -466,6 +466,7 @@ CREATE TABLE IF NOT EXISTS `item` (
        `author-link` varchar(255) NOT NULL DEFAULT '' COMMENT '',
        `author-avatar` varchar(255) NOT NULL DEFAULT '' COMMENT '',
        `title` varchar(255) NOT NULL DEFAULT '' COMMENT '',
+       `content-warning` varchar(255) NOT NULL DEFAULT '' COMMENT '',
        `body` mediumtext COMMENT '',
        `app` varchar(255) NOT NULL DEFAULT '' COMMENT '',
        `verb` varchar(100) NOT NULL DEFAULT '' COMMENT '',
index dc99a831968dfb214c3b0ffdefde45416232460d..0fc43fb090abca4173e1cad9d232097b0dabf354 100644 (file)
@@ -445,7 +445,7 @@ These Fields are not added below (yet). They are here to for bug search.
        return "`item`.`author-id`, `item`.`author-link`, `item`.`author-name`, `item`.`author-avatar`,
                `item`.`owner-id`, `item`.`owner-link`, `item`.`owner-name`, `item`.`owner-avatar`,
                `item`.`contact-id`, `item`.`uid`, `item`.`id`, `item`.`parent`,
-               `item`.`uri`, `item`.`thr-parent`, `item`.`parent-uri`,
+               `item`.`uri`, `item`.`thr-parent`, `item`.`parent-uri`, `item`.`content-warning`,
                `item`.`commented`, `item`.`created`, `item`.`edited`, `item`.`received`,
                `item`.`verb`, `item`.`object-type`, `item`.`postopts`, `item`.`plink`,
                `item`.`guid`, `item`.`wall`, `item`.`private`, `item`.`starred`,
index 1474b8bf09a230f439cd920552818c505e0b57f2..0aeaa7203be2a384f0a06d525dfc79bad5490b60 100644 (file)
@@ -1182,6 +1182,11 @@ function put_item_in_cache(&$item, $update = false)
                // I'm not sure if we should store it permanently, so we save the old value.
                $body = $item["body"];
 
+               // Add the content warning
+               if (!empty($item['content-warning'])) {
+                       $item["body"] = $item['content-warning'] . '[spoiler]' . $item["body"] . '[/spoiler]';
+               }
+
                $a = get_app();
                redir_private_images($a, $item);
 
index f4a88871d7a0c8032b5f874232c51f3ba28e637f..a1ef3374f9d6833ae41c103c61d99047522a307c 100644 (file)
@@ -1143,6 +1143,7 @@ class DBStructure
                                                "author-link" => ["type" => "varchar(255)", "not null" => "1", "default" => "", "comment" => ""],
                                                "author-avatar" => ["type" => "varchar(255)", "not null" => "1", "default" => "", "comment" => ""],
                                                "title" => ["type" => "varchar(255)", "not null" => "1", "default" => "", "comment" => ""],
+                                               "content-warning" => ["type" => "varchar(255)", "not null" => "1", "default" => "", "comment" => ""],
                                                "body" => ["type" => "mediumtext", "comment" => ""],
                                                "app" => ["type" => "varchar(255)", "not null" => "1", "default" => "", "comment" => ""],
                                                "verb" => ["type" => "varchar(100)", "not null" => "1", "default" => "", "comment" => ""],
index 452da7d2d80f1bac1aaca451ab02d08759e68276..eb8474ba2bdcf42db4a64d34d610a2cd906544cd 100644 (file)
@@ -604,6 +604,21 @@ class OStatus
                        $item["coord"] = $georsspoint->item(0)->nodeValue;
                }
 
+               $categories = $xpath->query('atom:category', $entry);
+               if ($categories) {
+                       foreach ($categories as $category) {
+                               foreach ($category->attributes as $attributes) {
+                                       if ($attributes->name == "term") {
+                                               $term = $attributes->textContent;
+                                               if (strlen($item["tag"])) {
+                                                       $item["tag"] .= ',';
+                                               }
+                                               $item["tag"] .= "#[url=".System::baseUrl()."/search?tag=".$term."]".$term."[/url]";
+                                       }
+                               }
+                       }
+               }
+
                $self = '';
                $add_body = '';
 
@@ -643,12 +658,11 @@ class OStatus
                }
 
                // Mastodon Content Warning
-               $content_warning = false;
                if (($item["verb"] == ACTIVITY_POST) && $xpath->evaluate('boolean(atom:summary)', $entry)) {
                        $clear_text = $xpath->query('atom:summary/text()', $entry)->item(0)->nodeValue;
                        if (!empty($clear_text)) {
-                               $item["body"] = html2bbcode($clear_text) . '[spoiler]' . $item["body"] . '[/spoiler]';
-                               $content_warning = true;
+                               $item['content-warning'] = html2bbcode($clear_text);
+                               //$item["body"] = html2bbcode($clear_text) . '[spoiler]' . $item["body"] . '[/spoiler]';
                        }
                }
 
@@ -673,26 +687,6 @@ class OStatus
                        $item["parent-uri"] = $item["uri"];
                }
 
-               $categories = $xpath->query('atom:category', $entry);
-               if ($categories) {
-                       foreach ($categories as $category) {
-                               foreach ($category->attributes as $attributes) {
-                                       if ($attributes->name == "term") {
-                                               $term = $attributes->textContent;
-                                               // don't add nsfw with content warning if enabled.
-                                               // Background: "nsfw" is set automatically by Mastodon
-                                               if (!Config::get('system', 'remove_nsfw_with_cw', false) ||
-                                                       !$content_warning || ($term != 'nsfw')) {
-                                                       if (strlen($item["tag"])) {
-                                                               $item["tag"] .= ',';
-                                                       }
-                                                       $item["tag"] .= "#[url=".System::baseUrl()."/search?tag=".$term."]".$term."[/url]";
-                                               }
-                                       }
-                               }
-                       }
-               }
-
                if (($item['author-link'] != '') && !empty($item['protocol'])) {
                        $item = Conversation::insert($item);
                }