Fixed the timezone of Friendica logs [nupplaphil]
Fixed tag completion painfully slow [AlfredSK]
Fixed a regression in notifications [MrPetovan]
+ Fixed an issue with smilies and code blocks [MrPetovan]
General Code cleaning and restructuring [nupplaphil]
Added frio color scheme sharing [JeroenED]
Added syslog and stream Logger [nupplaphil]
use Friendica\Database\DBA;
if (!defined('DB_UPDATE_VERSION')) {
- define('DB_UPDATE_VERSION', 1305);
+ define('DB_UPDATE_VERSION', 1306);
}
return [
],
"indexes" => [
"PRIMARY" => ["tid"],
- "term_type" => ["term", "type"],
+ "term_type" => ["term(64)", "type"],
"oid_otype_type_term" => ["oid", "otype", "type", "term(32)"],
"uid_otype_type_term_global_created" => ["uid", "otype", "type", "term(32)", "global", "created"],
"uid_otype_type_url" => ["uid", "otype", "type", "url(64)"],
`global` boolean NOT NULL DEFAULT '0' COMMENT '',
`uid` mediumint unsigned NOT NULL DEFAULT 0 COMMENT 'User id',
PRIMARY KEY(`tid`),
- INDEX `term_type` (`term`, `type`),
+ INDEX `term_type` (`term`(64), `type`),
INDEX `oid_otype_type_term` (`oid`,`otype`,`type`,`term`(32)),
INDEX `uid_otype_type_term_global_created` (`uid`,`otype`,`type`,`term`(32),`global`,`created`),
INDEX `uid_otype_type_url` (`uid`,`otype`,`type`,`url`(64)),
'fetch',
'hcard',
'hostxrd',
+ 'manifest',
'nodeinfo',
'noscrape',
'p',
return $text;
}
- $text = preg_replace_callback('/<pre>(.*?)<\/pre>/ism' , 'self::encode', $text);
$text = preg_replace_callback('/<code>(.*?)<\/code>/ism', 'self::encode', $text);
if ($no_images) {
$text = preg_replace_callback('/<(3+)/', 'self::pregHeart', $text);
$text = self::strOrigReplace($smilies['texts'], $smilies['icons'], $text);
- $text = preg_replace_callback('/<pre>(.*?)<\/pre>/ism', 'self::decode', $text);
$text = preg_replace_callback('/<code>(.*?)<\/code>/ism', 'self::decode', $text);
return $text;
*/
private static function encode($m)
{
- return(str_replace($m[1], Strings::base64UrlEncode($m[1]), $m[0]));
+ return '<code>' . Strings::base64UrlEncode($m[1]) . '</code>';
}
/**
*/
private static function decode($m)
{
- return(str_replace($m[1], Strings::base64UrlDecode($m[1]), $m[0]));
+ return '<code>' . Strings::base64UrlDecode($m[1]) . '</code>';
}
--- /dev/null
+<?php\r
+/**\r
+ * Created by PhpStorm.\r
+ * User: benlo\r
+ * Date: 25/03/19\r
+ * Time: 21:36\r
+ */\r
+\r
+namespace Friendica\Test\src\Content;\r
+\r
+use Friendica\Content\Smilies;\r
+use Friendica\Test\MockedTest;\r
+use Friendica\Test\Util\AppMockTrait;\r
+use Friendica\Test\Util\L10nMockTrait;\r
+use Friendica\Test\Util\VFSTrait;\r
+\r
+class SmiliesTest extends MockedTest\r
+{\r
+ use VFSTrait;\r
+ use AppMockTrait;\r
+ use L10nMockTrait;\r
+\r
+ protected function setUp()\r
+ {\r
+ parent::setUp();\r
+ $this->setUpVfsDir();\r
+ $this->mockApp($this->root);\r
+ $this->app->videowidth = 425;\r
+ $this->app->videoheight = 350;\r
+ $this->configMock->shouldReceive('get')\r
+ ->with('system', 'no_smilies')\r
+ ->andReturn(false);\r
+ $this->configMock->shouldReceive('get')\r
+ ->with(false, 'system', 'no_smilies')\r
+ ->andReturn(false);\r
+ }\r
+\r
+ public function dataLinks()\r
+ {\r
+ return [\r
+ /** @see https://github.com/friendica/friendica/pull/6933 */\r
+ 'bug-6933-1' => [\r
+ 'data' => '<code>/</code>',\r
+ 'smilies' => ['texts' => [], 'icons' => []],\r
+ 'expected' => '<code>/</code>',\r
+ ],\r
+ 'bug-6933-2' => [\r
+ 'data' => '<code>code</code>',\r
+ 'smilies' => ['texts' => [], 'icons' => []],\r
+ 'expected' => '<code>code</code>',\r
+ ],\r
+ ];\r
+ }\r
+\r
+ /**\r
+ * Test replace smilies in different texts\r
+ * @dataProvider dataLinks\r
+ *\r
+ * @param string $text Test string\r
+ * @param array $smilies List of smilies to replace\r
+ * @param string $expected Expected result\r
+ * @throws \Friendica\Network\HTTPException\InternalServerErrorException\r
+ */\r
+ public function testReplaceFromArray($text, $smilies, $expected)\r
+ {\r
+ $output = Smilies::replaceFromArray($text, $smilies);\r
+ $this->assertEquals($expected, $output);\r
+ }\r
+}\r