diff --git a/boot.php b/boot.php index 084bca112..c44599477 100644 --- a/boot.php +++ b/boot.php @@ -38,7 +38,7 @@ define ( 'FRIENDICA_PLATFORM', 'Friendica'); define ( 'FRIENDICA_CODENAME', 'Asparagus'); define ( 'FRIENDICA_VERSION', '3.5.2-dev' ); define ( 'DFRN_PROTOCOL_VERSION', '2.23' ); -define ( 'DB_UPDATE_VERSION', 1216 ); +define ( 'DB_UPDATE_VERSION', 1219 ); /** * @brief Constant with a HTML line break. @@ -382,6 +382,7 @@ define ( 'ACTIVITY_UPDATE', NAMESPACE_ACTIVITY_SCHEMA . 'update' ); define ( 'ACTIVITY_TAG', NAMESPACE_ACTIVITY_SCHEMA . 'tag' ); define ( 'ACTIVITY_FAVORITE', NAMESPACE_ACTIVITY_SCHEMA . 'favorite' ); define ( 'ACTIVITY_SHARE', NAMESPACE_ACTIVITY_SCHEMA . 'share' ); +define ( 'ACTIVITY_DELETE', NAMESPACE_ACTIVITY_SCHEMA . 'delete' ); define ( 'ACTIVITY_POKE', NAMESPACE_ZOT . '/activity/poke' ); define ( 'ACTIVITY_MOOD', NAMESPACE_ZOT . '/activity/mood' ); @@ -1366,11 +1367,15 @@ class App { $cmdline = implode($args, " "); if (get_config('system', 'proc_windows')) { - proc_close(proc_open('cmd /c start /b ' . $cmdline, array(), $foo, dirname(__FILE__))); + $resource = proc_open('cmd /c start /b ' . $cmdline, array(), $foo, dirname(__FILE__)); } else { - proc_close(proc_open($cmdline . " &", array(), $foo, dirname(__FILE__))); + $resource = proc_open($cmdline . " &", array(), $foo, dirname(__FILE__)); } - + if (!is_resource($resource)) { + logger('We got no resource for command '.$cmdline, LOGGER_DEBUG); + return; + } + proc_close($resource); } /** @@ -2472,7 +2477,7 @@ function get_temppath() { // Check if it is usable if (($temppath != "") AND App::directory_usable($temppath)) { // To avoid any interferences with other systems we create our own directory - $new_temppath .= "/".$a->get_hostname(); + $new_temppath = $temppath."/".$a->get_hostname(); if (!is_dir($new_temppath)) { /// @TODO There is a mkdir()+chmod() upwards, maybe generalize this (+ configurable) into a function/method? mkdir($new_temppath); diff --git a/composer.json b/composer.json index f2aeaa8eb..8b4a630d3 100644 --- a/composer.json +++ b/composer.json @@ -15,6 +15,7 @@ "require": { "ezyang/htmlpurifier": "~4.7.0", "mobiledetect/mobiledetectlib": "2.8.*", + "league/html-to-markdown": "~4.4.1", "pear-pear.php.net/Text_Highlighter": "*" }, "repositories": [ diff --git a/composer.lock b/composer.lock index b35d1ca12..b46614f6e 100644 --- a/composer.lock +++ b/composer.lock @@ -4,7 +4,7 @@ "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#composer-lock-the-lock-file", "This file is @generated automatically" ], - "content-hash": "4d3a9e742e7ad746fb7206f3b5aff5af", + "content-hash": "802372ddf124ef949e80dd8dc1d38797", "packages": [ { "name": "ezyang/htmlpurifier", @@ -50,6 +50,70 @@ ], "time": "2015-08-05T01:03:42+00:00" }, + { + "name": "league/html-to-markdown", + "version": "4.4.1", + "source": { + "type": "git", + "url": "https://github.com/thephpleague/html-to-markdown.git", + "reference": "82ea375b5b2b1da1da222644c0565c695bf88186" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/thephpleague/html-to-markdown/zipball/82ea375b5b2b1da1da222644c0565c695bf88186", + "reference": "82ea375b5b2b1da1da222644c0565c695bf88186", + "shasum": "" + }, + "require": { + "ext-dom": "*", + "ext-xml": "*", + "php": ">=5.3.3" + }, + "require-dev": { + "mikehaertl/php-shellcommand": "~1.1.0", + "phpunit/phpunit": "4.*", + "scrutinizer/ocular": "~1.1" + }, + "bin": [ + "bin/html-to-markdown" + ], + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "4.5-dev" + } + }, + "autoload": { + "psr-4": { + "League\\HTMLToMarkdown\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Colin O'Dell", + "email": "colinodell@gmail.com", + "homepage": "http://www.colinodell.com", + "role": "Lead Developer" + }, + { + "name": "Nick Cernis", + "email": "nick@cern.is", + "homepage": "http://modernnerd.net", + "role": "Original Author" + } + ], + "description": "An HTML-to-markdown conversion helper for PHP", + "homepage": "https://github.com/thephpleague/html-to-markdown", + "keywords": [ + "html", + "markdown" + ], + "time": "2017-03-16T00:45:59+00:00" + }, { "name": "mobiledetect/mobiledetectlib", "version": "2.8.25", diff --git a/database.sql b/database.sql index 7ed19f439..69da511b0 100644 --- a/database.sql +++ b/database.sql @@ -1,6 +1,6 @@ -- ------------------------------------------ -- Friendica 3.5.2-dev (Asparagus) --- DB_UPDATE_VERSION 1215 +-- DB_UPDATE_VERSION 1219 -- ------------------------------------------ @@ -17,7 +17,7 @@ CREATE TABLE IF NOT EXISTS `addon` ( `plugin_admin` tinyint(1) NOT NULL DEFAULT 0, PRIMARY KEY(`id`), UNIQUE INDEX `name` (`name`) -) DEFAULT CHARSET=utf8mb4; +) DEFAULT COLLATE utf8mb4_general_ci; -- -- TABLE attach @@ -37,7 +37,7 @@ CREATE TABLE IF NOT EXISTS `attach` ( `deny_cid` mediumtext, `deny_gid` mediumtext, PRIMARY KEY(`id`) -) DEFAULT CHARSET=utf8mb4; +) DEFAULT COLLATE utf8mb4_general_ci; -- -- TABLE auth_codes @@ -49,7 +49,7 @@ CREATE TABLE IF NOT EXISTS `auth_codes` ( `expires` int(11) NOT NULL DEFAULT 0, `scope` varchar(250) NOT NULL DEFAULT '', PRIMARY KEY(`id`) -) DEFAULT CHARSET=utf8mb4; +) DEFAULT COLLATE utf8mb4_general_ci; -- -- TABLE cache @@ -61,7 +61,7 @@ CREATE TABLE IF NOT EXISTS `cache` ( `updated` datetime NOT NULL DEFAULT '0001-01-01 00:00:00', PRIMARY KEY(`k`), INDEX `expire_mode_updated` (`expire_mode`,`updated`) -) DEFAULT CHARSET=utf8mb4; +) DEFAULT COLLATE utf8mb4_general_ci; -- -- TABLE challenge @@ -74,7 +74,7 @@ CREATE TABLE IF NOT EXISTS `challenge` ( `type` varchar(255) NOT NULL DEFAULT '', `last_update` varchar(255) NOT NULL DEFAULT '', PRIMARY KEY(`id`) -) DEFAULT CHARSET=utf8mb4; +) DEFAULT COLLATE utf8mb4_general_ci; -- -- TABLE clients @@ -87,7 +87,7 @@ CREATE TABLE IF NOT EXISTS `clients` ( `icon` text, `uid` int(11) NOT NULL DEFAULT 0, PRIMARY KEY(`client_id`) -) DEFAULT CHARSET=utf8mb4; +) DEFAULT COLLATE utf8mb4_general_ci; -- -- TABLE config @@ -99,7 +99,7 @@ CREATE TABLE IF NOT EXISTS `config` ( `v` mediumtext, PRIMARY KEY(`id`), UNIQUE INDEX `cat_k` (`cat`,`k`) -) DEFAULT CHARSET=utf8mb4; +) DEFAULT COLLATE utf8mb4_general_ci; -- -- TABLE contact @@ -159,7 +159,7 @@ CREATE TABLE IF NOT EXISTS `contact` ( `writable` tinyint(1) NOT NULL DEFAULT 0, `forum` tinyint(1) NOT NULL DEFAULT 0, `prv` tinyint(1) NOT NULL DEFAULT 0, - `contact-type` int(11) unsigned NOT NULL DEFAULT 0, + `contact-type` int(11) NOT NULL DEFAULT 0, `hidden` tinyint(1) NOT NULL DEFAULT 0, `archive` tinyint(1) NOT NULL DEFAULT 0, `pending` tinyint(1) NOT NULL DEFAULT 1, @@ -169,7 +169,7 @@ CREATE TABLE IF NOT EXISTS `contact` ( `info` mediumtext, `profile-id` int(11) NOT NULL DEFAULT 0, `bdyear` varchar(4) NOT NULL DEFAULT '', - `bd` date NOT NULL DEFAULT '0000-00-00', + `bd` date NOT NULL DEFAULT '0001-01-01', `notify_new_posts` tinyint(1) NOT NULL DEFAULT 0, `fetch_further_information` tinyint(1) NOT NULL DEFAULT 0, `ffi_keyword_blacklist` text, @@ -186,7 +186,7 @@ CREATE TABLE IF NOT EXISTS `contact` ( INDEX `nick_uid` (`nick`(32),`uid`), INDEX `dfrn-id` (`dfrn-id`), INDEX `issued-id` (`issued-id`) -) DEFAULT CHARSET=utf8mb4; +) DEFAULT COLLATE utf8mb4_general_ci; -- -- TABLE conv @@ -202,7 +202,7 @@ CREATE TABLE IF NOT EXISTS `conv` ( `subject` text, PRIMARY KEY(`id`), INDEX `uid` (`uid`) -) DEFAULT CHARSET=utf8mb4; +) DEFAULT COLLATE utf8mb4_general_ci; -- -- TABLE event @@ -230,7 +230,7 @@ CREATE TABLE IF NOT EXISTS `event` ( `deny_gid` mediumtext, PRIMARY KEY(`id`), INDEX `uid_start` (`uid`,`start`) -) DEFAULT CHARSET=utf8mb4; +) DEFAULT COLLATE utf8mb4_general_ci; -- -- TABLE fcontact @@ -256,7 +256,7 @@ CREATE TABLE IF NOT EXISTS `fcontact` ( PRIMARY KEY(`id`), INDEX `addr` (`addr`(32)), INDEX `url` (`url`) -) DEFAULT CHARSET=utf8mb4; +) DEFAULT COLLATE utf8mb4_general_ci; -- -- TABLE ffinder @@ -267,7 +267,7 @@ CREATE TABLE IF NOT EXISTS `ffinder` ( `cid` int(10) unsigned NOT NULL DEFAULT 0, `fid` int(10) unsigned NOT NULL DEFAULT 0, PRIMARY KEY(`id`) -) DEFAULT CHARSET=utf8mb4; +) DEFAULT COLLATE utf8mb4_general_ci; -- -- TABLE fserver @@ -279,7 +279,7 @@ CREATE TABLE IF NOT EXISTS `fserver` ( `key` text, PRIMARY KEY(`id`), INDEX `server` (`server`(32)) -) DEFAULT CHARSET=utf8mb4; +) DEFAULT COLLATE utf8mb4_general_ci; -- -- TABLE fsuggest @@ -295,7 +295,7 @@ CREATE TABLE IF NOT EXISTS `fsuggest` ( `note` text, `created` datetime NOT NULL DEFAULT '0001-01-01 00:00:00', PRIMARY KEY(`id`) -) DEFAULT CHARSET=utf8mb4; +) DEFAULT COLLATE utf8mb4_general_ci; -- -- TABLE gcign @@ -307,7 +307,7 @@ CREATE TABLE IF NOT EXISTS `gcign` ( PRIMARY KEY(`id`), INDEX `uid` (`uid`), INDEX `gcid` (`gcid`) -) DEFAULT CHARSET=utf8mb4; +) DEFAULT COLLATE utf8mb4_general_ci; -- -- TABLE gcontact @@ -328,7 +328,7 @@ CREATE TABLE IF NOT EXISTS `gcontact` ( `about` text, `keywords` text, `gender` varchar(32) NOT NULL DEFAULT '', - `birthday` varchar(32) NOT NULL DEFAULT '0000-00-00', + `birthday` varchar(32) NOT NULL DEFAULT '0001-01-01', `community` tinyint(1) NOT NULL DEFAULT 0, `contact-type` tinyint(1) NOT NULL DEFAULT -1, `hide` tinyint(1) NOT NULL DEFAULT 0, @@ -346,7 +346,7 @@ CREATE TABLE IF NOT EXISTS `gcontact` ( INDEX `addr` (`addr`(64)), INDEX `hide_network_updated` (`hide`,`network`,`updated`), INDEX `updated` (`updated`) -) DEFAULT CHARSET=utf8mb4; +) DEFAULT COLLATE utf8mb4_general_ci; -- -- TABLE glink @@ -361,7 +361,7 @@ CREATE TABLE IF NOT EXISTS `glink` ( PRIMARY KEY(`id`), UNIQUE INDEX `cid_uid_gcid_zcid` (`cid`,`uid`,`gcid`,`zcid`), INDEX `gcid` (`gcid`) -) DEFAULT CHARSET=utf8mb4; +) DEFAULT COLLATE utf8mb4_general_ci; -- -- TABLE group @@ -374,7 +374,7 @@ CREATE TABLE IF NOT EXISTS `group` ( `name` varchar(255) NOT NULL DEFAULT '', PRIMARY KEY(`id`), INDEX `uid` (`uid`) -) DEFAULT CHARSET=utf8mb4; +) DEFAULT COLLATE utf8mb4_general_ci; -- -- TABLE group_member @@ -388,7 +388,7 @@ CREATE TABLE IF NOT EXISTS `group_member` ( INDEX `contactid` (`contact-id`), INDEX `gid_contactid` (`gid`,`contact-id`), UNIQUE INDEX `uid_gid_contactid` (`uid`,`gid`,`contact-id`) -) DEFAULT CHARSET=utf8mb4; +) DEFAULT COLLATE utf8mb4_general_ci; -- -- TABLE gserver @@ -411,7 +411,7 @@ CREATE TABLE IF NOT EXISTS `gserver` ( `last_failure` datetime DEFAULT '0001-01-01 00:00:00', PRIMARY KEY(`id`), INDEX `nurl` (`nurl`(32)) -) DEFAULT CHARSET=utf8mb4; +) DEFAULT COLLATE utf8mb4_general_ci; -- -- TABLE hook @@ -424,7 +424,7 @@ CREATE TABLE IF NOT EXISTS `hook` ( `priority` int(11) unsigned NOT NULL DEFAULT 0, PRIMARY KEY(`id`), UNIQUE INDEX `hook_file_function` (`hook`(50),`file`(80),`function`(60)) -) DEFAULT CHARSET=utf8mb4; +) DEFAULT COLLATE utf8mb4_general_ci; -- -- TABLE intro @@ -442,7 +442,7 @@ CREATE TABLE IF NOT EXISTS `intro` ( `blocked` tinyint(1) NOT NULL DEFAULT 1, `ignore` tinyint(1) NOT NULL DEFAULT 0, PRIMARY KEY(`id`) -) DEFAULT CHARSET=utf8mb4; +) DEFAULT COLLATE utf8mb4_general_ci; -- -- TABLE item @@ -539,7 +539,7 @@ CREATE TABLE IF NOT EXISTS `item` ( INDEX `uid_eventid` (`uid`,`event-id`), INDEX `uid_authorlink` (`uid`,`author-link`), INDEX `uid_ownerlink` (`uid`,`owner-link`) -) DEFAULT CHARSET=utf8mb4; +) DEFAULT COLLATE utf8mb4_general_ci; -- -- TABLE item_id @@ -555,7 +555,7 @@ CREATE TABLE IF NOT EXISTS `item_id` ( INDEX `sid` (`sid`), INDEX `service` (`service`(32)), INDEX `iid` (`iid`) -) DEFAULT CHARSET=utf8mb4; +) DEFAULT COLLATE utf8mb4_general_ci; -- -- TABLE locks @@ -566,7 +566,7 @@ CREATE TABLE IF NOT EXISTS `locks` ( `locked` tinyint(1) NOT NULL DEFAULT 0, `created` datetime DEFAULT '0001-01-01 00:00:00', PRIMARY KEY(`id`) -) DEFAULT CHARSET=utf8mb4; +) DEFAULT COLLATE utf8mb4_general_ci; -- -- TABLE mail @@ -594,7 +594,7 @@ CREATE TABLE IF NOT EXISTS `mail` ( INDEX `convid` (`convid`), INDEX `uri` (`uri`(64)), INDEX `parent-uri` (`parent-uri`(64)) -) DEFAULT CHARSET=utf8mb4; +) DEFAULT COLLATE utf8mb4_general_ci; -- -- TABLE mailacct @@ -614,7 +614,7 @@ CREATE TABLE IF NOT EXISTS `mailacct` ( `pubmail` tinyint(1) NOT NULL DEFAULT 0, `last_check` datetime NOT NULL DEFAULT '0001-01-01 00:00:00', PRIMARY KEY(`id`) -) DEFAULT CHARSET=utf8mb4; +) DEFAULT COLLATE utf8mb4_general_ci; -- -- TABLE manage @@ -625,7 +625,7 @@ CREATE TABLE IF NOT EXISTS `manage` ( `mid` int(11) NOT NULL DEFAULT 0, PRIMARY KEY(`id`), UNIQUE INDEX `uid_mid` (`uid`,`mid`) -) DEFAULT CHARSET=utf8mb4; +) DEFAULT COLLATE utf8mb4_general_ci; -- -- TABLE notify @@ -653,7 +653,7 @@ CREATE TABLE IF NOT EXISTS `notify` ( INDEX `seen_uid_date` (`seen`,`uid`,`date`), INDEX `uid_date` (`uid`,`date`), INDEX `uid_type_link` (`uid`,`type`,`link`) -) DEFAULT CHARSET=utf8mb4; +) DEFAULT COLLATE utf8mb4_general_ci; -- -- TABLE notify-threads @@ -665,7 +665,7 @@ CREATE TABLE IF NOT EXISTS `notify-threads` ( `parent-item` int(10) unsigned NOT NULL DEFAULT 0, `receiver-uid` int(11) NOT NULL DEFAULT 0, PRIMARY KEY(`id`) -) DEFAULT CHARSET=utf8mb4; +) DEFAULT COLLATE utf8mb4_general_ci; -- -- TABLE oembed @@ -676,7 +676,7 @@ CREATE TABLE IF NOT EXISTS `oembed` ( `created` datetime NOT NULL DEFAULT '0001-01-01 00:00:00', PRIMARY KEY(`url`), INDEX `created` (`created`) -) DEFAULT CHARSET=utf8mb4; +) DEFAULT COLLATE utf8mb4_general_ci; -- -- TABLE parsed_url @@ -689,7 +689,7 @@ CREATE TABLE IF NOT EXISTS `parsed_url` ( `created` datetime NOT NULL DEFAULT '0001-01-01 00:00:00', PRIMARY KEY(`url`,`guessing`,`oembed`), INDEX `created` (`created`) -) DEFAULT CHARSET=utf8mb4; +) DEFAULT COLLATE utf8mb4_general_ci; -- -- TABLE pconfig @@ -702,7 +702,7 @@ CREATE TABLE IF NOT EXISTS `pconfig` ( `v` mediumtext, PRIMARY KEY(`id`), UNIQUE INDEX `uid_cat_k` (`uid`,`cat`,`k`) -) DEFAULT CHARSET=utf8mb4; +) DEFAULT COLLATE utf8mb4_general_ci; -- -- TABLE photo @@ -736,7 +736,7 @@ CREATE TABLE IF NOT EXISTS `photo` ( INDEX `uid_album_scale_created` (`uid`,`album`(32),`scale`,`created`), INDEX `uid_album_resource-id_created` (`uid`,`album`(32),`resource-id`(64),`created`), INDEX `resource-id` (`resource-id`(64)) -) DEFAULT CHARSET=utf8mb4; +) DEFAULT COLLATE utf8mb4_general_ci; -- -- TABLE poll @@ -756,7 +756,7 @@ CREATE TABLE IF NOT EXISTS `poll` ( `q9` text, PRIMARY KEY(`id`), INDEX `uid` (`uid`) -) DEFAULT CHARSET=utf8mb4; +) DEFAULT COLLATE utf8mb4_general_ci; -- -- TABLE poll_result @@ -768,7 +768,7 @@ CREATE TABLE IF NOT EXISTS `poll_result` ( PRIMARY KEY(`id`), INDEX `poll_id` (`poll_id`), INDEX `choice` (`choice`) -) DEFAULT CHARSET=utf8mb4; +) DEFAULT COLLATE utf8mb4_general_ci; -- -- TABLE process @@ -779,7 +779,7 @@ CREATE TABLE IF NOT EXISTS `process` ( `created` datetime NOT NULL DEFAULT '0001-01-01 00:00:00', PRIMARY KEY(`pid`), INDEX `command` (`command`) -) DEFAULT CHARSET=utf8mb4; +) DEFAULT COLLATE utf8mb4_general_ci; -- -- TABLE profile @@ -792,7 +792,7 @@ CREATE TABLE IF NOT EXISTS `profile` ( `hide-friends` tinyint(1) NOT NULL DEFAULT 0, `name` varchar(255) NOT NULL DEFAULT '', `pdesc` varchar(255) NOT NULL DEFAULT '', - `dob` varchar(32) NOT NULL DEFAULT '0000-00-00', + `dob` varchar(32) NOT NULL DEFAULT '0001-01-01', `address` varchar(255) NOT NULL DEFAULT '', `locality` varchar(255) NOT NULL DEFAULT '', `region` varchar(255) NOT NULL DEFAULT '', @@ -829,7 +829,7 @@ CREATE TABLE IF NOT EXISTS `profile` ( `net-publish` tinyint(1) NOT NULL DEFAULT 0, PRIMARY KEY(`id`), INDEX `uid_is-default` (`uid`,`is-default`) -) DEFAULT CHARSET=utf8mb4; +) DEFAULT COLLATE utf8mb4_general_ci; -- -- TABLE profile_check @@ -842,7 +842,7 @@ CREATE TABLE IF NOT EXISTS `profile_check` ( `sec` varchar(255) NOT NULL DEFAULT '', `expire` int(11) NOT NULL DEFAULT 0, PRIMARY KEY(`id`) -) DEFAULT CHARSET=utf8mb4; +) DEFAULT COLLATE utf8mb4_general_ci; -- -- TABLE push_subscriber @@ -857,7 +857,7 @@ CREATE TABLE IF NOT EXISTS `push_subscriber` ( `last_update` datetime NOT NULL DEFAULT '0001-01-01 00:00:00', `secret` varchar(255) NOT NULL DEFAULT '', PRIMARY KEY(`id`) -) DEFAULT CHARSET=utf8mb4; +) DEFAULT COLLATE utf8mb4_general_ci; -- -- TABLE queue @@ -876,7 +876,7 @@ CREATE TABLE IF NOT EXISTS `queue` ( INDEX `last` (`last`), INDEX `network` (`network`), INDEX `batch` (`batch`) -) DEFAULT CHARSET=utf8mb4; +) DEFAULT COLLATE utf8mb4_general_ci; -- -- TABLE register @@ -890,7 +890,7 @@ CREATE TABLE IF NOT EXISTS `register` ( `language` varchar(16) NOT NULL DEFAULT '', `note` text, PRIMARY KEY(`id`) -) DEFAULT CHARSET=utf8mb4; +) DEFAULT COLLATE utf8mb4_general_ci; -- -- TABLE search @@ -901,7 +901,7 @@ CREATE TABLE IF NOT EXISTS `search` ( `term` varchar(255) NOT NULL DEFAULT '', PRIMARY KEY(`id`), INDEX `uid` (`uid`) -) DEFAULT CHARSET=utf8mb4; +) DEFAULT COLLATE utf8mb4_general_ci; -- -- TABLE session @@ -914,7 +914,7 @@ CREATE TABLE IF NOT EXISTS `session` ( PRIMARY KEY(`id`), INDEX `sid` (`sid`(64)), INDEX `expire` (`expire`) -) DEFAULT CHARSET=utf8mb4; +) DEFAULT COLLATE utf8mb4_general_ci; -- -- TABLE sign @@ -927,7 +927,7 @@ CREATE TABLE IF NOT EXISTS `sign` ( `signer` varchar(255) NOT NULL DEFAULT '', PRIMARY KEY(`id`), INDEX `iid` (`iid`) -) DEFAULT CHARSET=utf8mb4; +) DEFAULT COLLATE utf8mb4_general_ci; -- -- TABLE spam @@ -944,7 +944,7 @@ CREATE TABLE IF NOT EXISTS `spam` ( INDEX `spam` (`spam`), INDEX `ham` (`ham`), INDEX `term` (`term`) -) DEFAULT CHARSET=utf8mb4; +) DEFAULT COLLATE utf8mb4_general_ci; -- -- TABLE term @@ -967,7 +967,7 @@ CREATE TABLE IF NOT EXISTS `term` ( INDEX `uid_otype_type_term_global_created` (`uid`,`otype`,`type`,`term`(32),`global`,`created`), INDEX `uid_otype_type_url` (`uid`,`otype`,`type`,`url`(64)), INDEX `guid` (`guid`(64)) -) DEFAULT CHARSET=utf8mb4; +) DEFAULT COLLATE utf8mb4_general_ci; -- -- TABLE thread @@ -1007,7 +1007,7 @@ CREATE TABLE IF NOT EXISTS `thread` ( INDEX `uid_created` (`uid`,`created`), INDEX `uid_commented` (`uid`,`commented`), INDEX `uid_wall_created` (`uid`,`wall`,`created`) -) DEFAULT CHARSET=utf8mb4; +) DEFAULT COLLATE utf8mb4_general_ci; -- -- TABLE tokens @@ -1020,7 +1020,7 @@ CREATE TABLE IF NOT EXISTS `tokens` ( `scope` varchar(200) NOT NULL DEFAULT '', `uid` int(11) NOT NULL DEFAULT 0, PRIMARY KEY(`id`) -) DEFAULT CHARSET=utf8mb4; +) DEFAULT COLLATE utf8mb4_general_ci; -- -- TABLE user @@ -1071,7 +1071,7 @@ CREATE TABLE IF NOT EXISTS `user` ( `openidserver` text, PRIMARY KEY(`uid`), INDEX `nickname` (`nickname`(32)) -) DEFAULT CHARSET=utf8mb4; +) DEFAULT COLLATE utf8mb4_general_ci; -- -- TABLE userd @@ -1081,7 +1081,7 @@ CREATE TABLE IF NOT EXISTS `userd` ( `username` varchar(255) NOT NULL, PRIMARY KEY(`id`), INDEX `username` (`username`(32)) -) DEFAULT CHARSET=utf8mb4; +) DEFAULT COLLATE utf8mb4_general_ci; -- -- TABLE workerqueue @@ -1094,5 +1094,5 @@ CREATE TABLE IF NOT EXISTS `workerqueue` ( `pid` int(11) NOT NULL DEFAULT 0, `executed` datetime NOT NULL DEFAULT '0001-01-01 00:00:00', PRIMARY KEY(`id`) -) DEFAULT CHARSET=utf8mb4; +) DEFAULT COLLATE utf8mb4_general_ci; diff --git a/doc/KeyboardShortcuts.md b/doc/KeyboardShortcuts.md new file mode 100644 index 000000000..cf783b0da --- /dev/null +++ b/doc/KeyboardShortcuts.md @@ -0,0 +1,10 @@ +Keyboard shortcuts in Friendica +======================= + +* [Home](help) + +General +------- + +* j: Scroll to next thread +* k: Scroll to previous thread diff --git a/doc/Settings.md b/doc/Settings.md index 5055ed7d2..13424a5a4 100644 --- a/doc/Settings.md +++ b/doc/Settings.md @@ -6,12 +6,10 @@ If you are the admin of a Friendica node, you have access to the so called **Adm On the front page of the admin panel you will see a summary of information about your node. These information include the amount of messages currently being processed in the queues. -The first number is the number of messages being actively sent. -This number should decrease quickly. -The second is the messages which could for various reasons not being delivered. +The first number is the number of messages which could not been delivered for various reasons. They will be resend later. You can have a quick glance into that second queus in the "Inspect Queue" section of the admin panel. -If you have activated the background workers, there is a third number representing the count of jobs queued for the workers. +The second number represents the current number of jobs for the background workers. These worker tasks are prioritised and are done accordingly. Then you get an overview of the accounts on your node, which can be moderated in the "Users" section of the panel. @@ -135,6 +133,9 @@ By default, any (valid) email address is allowed in registrations. If you enable the `Allow Users to set remote_self` users can select Atom feeds from their contact list being their *remote self* in die advanced contact settings. Which means that postings by the remote self are automatically reposted by Friendica in their names. +This feature can be used to let the user mirror e.g. blog postings into their Friendica postings. +It is disabled by default, as it causes additional load on the server and may be misused to distribute SPAM. + As admin of the node you can also set this flag directly in the database. Before doing so, you should be sure you know what you do and have a backup of the database. @@ -169,6 +170,19 @@ This will mean you cannot connect (at all) to self-signed SSL sites. ### Worker +This section allows you to configure the background process that is triggered by the `cron` job that was created during the installation. +The process does check the available system resources before creating a new worker for a task. +Because of this, it may happen that the maximum number of worker processes you allow will not be reached. + +If your server setup does not allow you to use the `proc_open` function of PHP, please disable it in this section. + +The tasks for the background process have priorities. +To guarantee that important tasks are executed even though the system has a lot of work to do, it is useful to enable the *fastlane*. + +Should you not be able to run a cron job on your server, you can also activate the *frontend* worker. +If you have done so, you can call `example.com/worker` (replace example.com with your actual domain name) on a regular basis from an external servie. +This will then trigger the execution of the background process. + ### Relocate ## Users diff --git a/doc/database.md b/doc/database.md index f48404c17..4c6150520 100644 --- a/doc/database.md +++ b/doc/database.md @@ -14,7 +14,6 @@ Database Tables | [config](help/database/db_config) | main configuration storage | | [contact](help/database/db_contact) | contact table | | [conv](help/database/db_conv) | private messages | -| [deliverq](help/database/db_deliverq) | | | [event](help/database/db_event) | Events | | [fcontact](help/database/db_fcontact) | friend suggestion stuff | | [ffinder](help/database/db_ffinder) | friend suggestion stuff | diff --git a/doc/database/db_attach.md b/doc/database/db_attach.md index f47380cd9..7dde8f860 100644 --- a/doc/database/db_attach.md +++ b/doc/database/db_attach.md @@ -10,8 +10,8 @@ Table attach | filetype | mimetype | varchar(64) | NO | | | | | filesize | size in bytes | int(11) | NO | | 0 | | | data | file data | longblob | NO | | NULL | | -| created | creation time | datetime | NO | | 0000-00-00 00:00:00 | | -| edited | last edit time | datetime | NO | | 0000-00-00 00:00:00 | | +| created | creation time | datetime | NO | | 0001-01-01 00:00:00 | | +| edited | last edit time | datetime | NO | | 0001-01-01 00:00:00 | | | allow_cid | Access Control - list of allowed contact.id '<19><78> | mediumtext | NO | | NULL | | | allow_gid | Access Control - list of allowed groups | mediumtext | NO | | NULL | | | deny_cid | Access Control - list of denied contact.id | mediumtext | NO | | NULL | | diff --git a/doc/database/db_cache.md b/doc/database/db_cache.md index 333adaa2c..3675474a5 100644 --- a/doc/database/db_cache.md +++ b/doc/database/db_cache.md @@ -5,7 +5,7 @@ Table cache | ------------ | ---------------------------------- | ------------ | ---- | --- | ------------------- | ----- | | k | horizontal width + url or resource | varchar(255) | NO | PRI | NULL | | | v | OEmbed response from site | text | NO | | NULL | | -| updated | datetime of cache insertion | datetime | NO | MUL | 0000-00-00 00:00:00 | | +| updated | datetime of cache insertion | datetime | NO | MUL | 0001-01-01 00:00:00 | | | expire_mode | | int(11) | NO | | 0 | | Return to [database documentation](help/database) diff --git a/doc/database/db_contact.md b/doc/database/db_contact.md index 2e3ebc313..eb5c505d1 100644 --- a/doc/database/db_contact.md +++ b/doc/database/db_contact.md @@ -5,7 +5,7 @@ Table contact |---------------------------|-----------------------------------------------------------|--------------|------|-----|---------------------|----------------| | id | sequential ID | int(11) | NO | PRI | NULL | auto_increment | | uid | user.id of the owner of this data | int(11) | NO | MUL | 0 | | -| created | | datetime | NO | | 0000-00-00 00:00:00 | | +| created | | datetime | NO | | 0001-01-01 00:00:00 | | | self | 1 if the contact is the user him/her self | tinyint(1) | NO | | 0 | | | remote_self | | tinyint(1) | NO | | 0 | | | rel | The kind of the relation between the user and the contact | tinyint(1) | NO | | 0 | | @@ -41,14 +41,14 @@ Table contact | usehub | | tinyint(1) | NO | | 0 | | | subhub | | tinyint(1) | NO | | 0 | | | hub-verify | | varchar(255) | NO | | | | -| last-update | Date of the last try to update the contact info | datetime | NO | | 0000-00-00 00:00:00 | | -| success_update | Date of the last successful contact update | datetime | NO | | 0000-00-00 00:00:00 | | -| failure_update | Date of the last failed update | datetime | NO | | 0000-00-00 00:00:00 | | -| name-date | | datetime | NO | | 0000-00-00 00:00:00 | | -| uri-date | | datetime | NO | | 0000-00-00 00:00:00 | | -| avatar-date | | datetime | NO | | 0000-00-00 00:00:00 | | -| term-date | | datetime | NO | | 0000-00-00 00:00:00 | | -| last-item | date of the last post | datetime | NO | | 0000-00-00 00:00:00 | | +| last-update | Date of the last try to update the contact info | datetime | NO | | 0001-01-01 00:00:00 | | +| success_update | Date of the last successful contact update | datetime | NO | | 0001-01-01 00:00:00 | | +| failure_update | Date of the last failed update | datetime | NO | | 0001-01-01 00:00:00 | | +| name-date | | datetime | NO | | 0001-01-01 00:00:00 | | +| uri-date | | datetime | NO | | 0001-01-01 00:00:00 | | +| avatar-date | | datetime | NO | | 0001-01-01 00:00:00 | | +| term-date | | datetime | NO | | 0001-01-01 00:00:00 | | +| last-item | date of the last post | datetime | NO | | 0001-01-01 00:00:00 | | | priority | | tinyint(3) | NO | | 0 | | | blocked | | tinyint(1) | NO | | 1 | | | readonly | posts of the contact are readonly | tinyint(1) | NO | | 0 | | @@ -64,7 +64,7 @@ Table contact | info | | mediumtext | NO | | NULL | | | profile-id | | int(11) | NO | | 0 | | | bdyear | | varchar(4) | NO | | | | -| bd | | date | NO | | 0000-00-00 | | +| bd | | date | NO | | 0001-01-01 | | | notify_new_posts | | tinyint(1) | NO | | 0 | | | fetch_further_information | | tinyint(1) | NO | | 0 | | | ffi_keyword_blacklist | | mediumtext | NO | | NULL | | diff --git a/doc/database/db_conv.md b/doc/database/db_conv.md index f20074d61..f70191b88 100644 --- a/doc/database/db_conv.md +++ b/doc/database/db_conv.md @@ -8,8 +8,8 @@ Table conv | recips | sender_handle;recipient_handle | mediumtext | NO | | NULL | | | uid | user_id of the owner of this data | int(11) | NO | MUL | 0 | | | creator | handle of creator | varchar(255) | NO | | | | -| created | creation timestamp | datetime | NO | | 0000-00-00 00:00:00 | | -| updated | edited timestamp | datetime | NO | | 0000-00-00 00:00:00 | | +| created | creation timestamp | datetime | NO | | 0001-01-01 00:00:00 | | +| updated | edited timestamp | datetime | NO | | 0001-01-01 00:00:00 | | | subject | subject of initial message | mediumtext | NO | | NULL | | Return to [database documentation](help/database) diff --git a/doc/database/db_deliverq.md b/doc/database/db_deliverq.md deleted file mode 100644 index 533589957..000000000 --- a/doc/database/db_deliverq.md +++ /dev/null @@ -1,12 +0,0 @@ -Table deliverq -============== - -| Field | Description | Type | Null | Key | Default | Extra | -|---------|------------------|------------------|------|-----|---------|----------------| -| id | sequential ID | int(10) unsigned | NO | PRI | NULL | auto_increment | -| cmd | | varchar(32) | NO | | | | -| item | | int(11) | NO | | 0 | | -| contact | | int(11) | NO | | 0 | | - - -Return to [database documentation](help/database) diff --git a/doc/database/db_event.md b/doc/database/db_event.md index d45ddd206..2c0650a8d 100644 --- a/doc/database/db_event.md +++ b/doc/database/db_event.md @@ -7,10 +7,10 @@ Table event | uid | user_id of the owner of this data | int(11) | NO | MUL | 0 | | | cid | contact_id (ID of the contact in contact table) | int(11) | NO | | 0 | | | uri | | varchar(255) | NO | | | | -| created | creation time | datetime | NO | | 0000-00-00 00:00:00 | | -| edited | last edit time | datetime | NO | | 0000-00-00 00:00:00 | | -| start | event start time | datetime | NO | | 0000-00-00 00:00:00 | | -| finish | event end time | datetime | NO | | 0000-00-00 00:00:00 | | +| created | creation time | datetime | NO | | 0001-01-01 00:00:00 | | +| edited | last edit time | datetime | NO | | 0001-01-01 00:00:00 | | +| start | event start time | datetime | NO | | 0001-01-01 00:00:00 | | +| finish | event end time | datetime | NO | | 0001-01-01 00:00:00 | | | summary | short description or title of the event | text | NO | | NULL | | | desc | event description | text | NO | | NULL | | | location | event location | text | NO | | NULL | | diff --git a/doc/database/db_fcontact.md b/doc/database/db_fcontact.md index 280160522..d9a786acc 100644 --- a/doc/database/db_fcontact.md +++ b/doc/database/db_fcontact.md @@ -19,6 +19,6 @@ Table fcontact | network | | varchar(32) | NO | | | | | alias | | varchar(255) | NO | | | | | pubkey | | text | NO | | NULL | | -| updated | | datetime | NO | | 0000-00-00 00:00:00 | | +| updated | | datetime | NO | | 0001-01-01 00:00:00 | | Return to [database documentation](help/database) diff --git a/doc/database/db_fsuggest.md b/doc/database/db_fsuggest.md index b8751a478..e461895c8 100644 --- a/doc/database/db_fsuggest.md +++ b/doc/database/db_fsuggest.md @@ -11,6 +11,6 @@ Table fsuggest | request | | varchar(255) | NO | | | | | photo | | varchar(255) | NO | | | | | note | | text | NO | | NULL | | -| created | | datetime | NO | | 0000-00-00 00:00:00 | | +| created | | datetime | NO | | 0001-01-01 00:00:00 | | Return to [database documentation](help/database) diff --git a/doc/database/db_gcontact.md b/doc/database/db_gcontact.md index c47e72622..3c0118a33 100644 --- a/doc/database/db_gcontact.md +++ b/doc/database/db_gcontact.md @@ -10,15 +10,15 @@ Table gcontact | nurl | | varchar(255) | NO | MUL | | | | photo | Link to the profile photo | varchar(255) | NO | | | | | connect | | varchar(255) | NO | | | | -| created | | datetime | NO | | 0000-00-00 00:00:00 | | -| updated | | datetime | YES | MUL | 0000-00-00 00:00:00 | | -| last_contact | | datetime | YES | | 0000-00-00 00:00:00 | | -| last_failure | | datetime | YES | | 0000-00-00 00:00:00 | | +| created | | datetime | NO | | 0001-01-01 00:00:00 | | +| updated | | datetime | YES | MUL | 0001-01-01 00:00:00 | | +| last_contact | | datetime | YES | | 0001-01-01 00:00:00 | | +| last_failure | | datetime | YES | | 0001-01-01 00:00:00 | | | location | | varchar(255) | NO | | | | | about | | text | NO | | NULL | | | keywords | puplic keywords (interests) | text | NO | | NULL | | | gender | | varchar(32) | NO | | | | -| birthday | | varchar(32) | NO | | 0000-00-00 | | +| birthday | | varchar(32) | NO | | 0001-01-01 | | | community | 1 if contact is forum account | tinyint(1) | NO | | 0 | | | hide | 1 = should be hidden from search | tinyint(1) | NO | | 0 | | | nsfw | 1 = contact posts nsfw content | tinyint(1) | NO | | 0 | | diff --git a/doc/database/db_glink.md b/doc/database/db_glink.md index eb2f10bc6..734eb04b9 100644 --- a/doc/database/db_glink.md +++ b/doc/database/db_glink.md @@ -8,6 +8,6 @@ Table glink | uid | | int(11) | NO | | 0 | | | gcid | | int(11) | NO | MUL | 0 | | | zcid | | int(11) | NO | MUL | 0 | | -| updated | | datetime | NO | | 0000-00-00 00:00:00 | | +| updated | | datetime | NO | | 0001-01-01 00:00:00 | | Return to [database documentation](help/database) diff --git a/doc/database/db_gserver.md b/doc/database/db_gserver.md index b62b80272..4b2107fc5 100644 --- a/doc/database/db_gserver.md +++ b/doc/database/db_gserver.md @@ -14,10 +14,10 @@ Table gserver | noscrape | | varchar(255) | NO | | | | | network | | varchar(32) | NO | | | | | platform | | varchar(255) | NO | | | | -| created | | datetime | NO | | 0000-00-00 00:00:00 | | -| last_poco_query | | datetime | YES | | 0000-00-00 00:00:00 | | -| last_contact | | datetime | YES | | 0000-00-00 00:00:00 | | -| last_failure | | datetime | YES | | 0000-00-00 00:00:00 | | +| created | | datetime | NO | | 0001-01-01 00:00:00 | | +| last_poco_query | | datetime | YES | | 0001-01-01 00:00:00 | | +| last_contact | | datetime | YES | | 0001-01-01 00:00:00 | | +| last_failure | | datetime | YES | | 0001-01-01 00:00:00 | | Return to [database documentation](help/database) diff --git a/doc/database/db_intro.md b/doc/database/db_intro.md index 9eb68532c..a71154a4f 100644 --- a/doc/database/db_intro.md +++ b/doc/database/db_intro.md @@ -11,7 +11,7 @@ Table intro | duplex | | tinyint(1) | NO | | 0 | | | note | | text | NO | | NULL | | | hash | | varchar(255) | NO | | | | -| datetime | | datetime | NO | | 0000-00-00 00:00:00 | | +| datetime | | datetime | NO | | 0001-01-01 00:00:00 | | | blocked | | tinyint(1) | NO | | 1 | | | ignore | | tinyint(1) | NO | | 0 | | diff --git a/doc/database/db_item.md b/doc/database/db_item.md index 7981d2995..d24d92bad 100644 --- a/doc/database/db_item.md +++ b/doc/database/db_item.md @@ -16,11 +16,11 @@ Table item | parent-uri | uri of the parent to this item | varchar(255) | NO | MUL | | | | extid | | varchar(255 | NO | MUL | | | | thr-parent | If the parent of this item is not the top-level item in the conversation, the uri of the immediate parent; otherwise set to parent-uri | varchar(255) | NO | | | | -| created | Creation timestamp. | datetime | NO | | 0000-00-00 00:00:00 | | -| edited | Date of last edit (default is created) | datetime | NO | | 0000-00-00 00:00:00 | | -| commented | Date of last comment/reply to this item | datetime | NO | | 0000-00-00 00:00:00 | | -| received | datetime | datetime | NO | | 0000-00-00 00:00:00 | | -| changed | Date that something in the conversation changed, indicating clients should fetch the conversation again | datetime | NO | | 0000-00-00 00:00:00 | | +| created | Creation timestamp. | datetime | NO | | 0001-01-01 00:00:00 | | +| edited | Date of last edit (default is created) | datetime | NO | | 0001-01-01 00:00:00 | | +| commented | Date of last comment/reply to this item | datetime | NO | | 0001-01-01 00:00:00 | | +| received | datetime | datetime | NO | | 0001-01-01 00:00:00 | | +| changed | Date that something in the conversation changed, indicating clients should fetch the conversation again | datetime | NO | | 0001-01-01 00:00:00 | | | owner-name | Name of the owner of this item | varchar(255) | NO | | | | | owner-link | Link to the profile page of the owner of this item | varchar(255) | NO | | | | | owner-avatar | Link to the avatar picture of the owner of this item | varchar(255) | NO | | | | diff --git a/doc/database/db_locks.md b/doc/database/db_locks.md index f9b93ff66..00556dd95 100644 --- a/doc/database/db_locks.md +++ b/doc/database/db_locks.md @@ -6,6 +6,6 @@ Table locks | id | sequential ID | int(11) | NO | PRI | NULL | auto_increment | | name | | varchar(128) | NO | | | | | locked | | tinyint(1) | NO | | 0 | | -| created | | datetime | YES | | 0000-00-00 00:00:00 | | +| created | | datetime | YES | | 0001-01-01 00:00:00 | | Return to [database documentation](help/database) diff --git a/doc/database/db_mail.md b/doc/database/db_mail.md index 7047da96a..623b8c9c8 100644 --- a/doc/database/db_mail.md +++ b/doc/database/db_mail.md @@ -19,6 +19,6 @@ Table mail | unknown | if sender not in the contact table this is 1 | varchar(255) | NO | | 0 | | | uri | | varchar(255) | NO | MUL | | | | parent-uri | | varchar(255) | NO | MUL | | | -| created | creation time of the private message | datetime | NO | | 0000-00-00 00:00:00 | | +| created | creation time of the private message | datetime | NO | | 0001-01-01 00:00:00 | | Return to [database documentation](help/database) diff --git a/doc/database/db_mailacct.md b/doc/database/db_mailacct.md index 1c2deb815..9f6484f81 100644 --- a/doc/database/db_mailacct.md +++ b/doc/database/db_mailacct.md @@ -15,6 +15,6 @@ Table mailacct | action | | int(11) | NO | | 0 | | | movetofolder | | varchar(255) | NO | | | | | pubmail | | tinyint(1) | NO | | 0 | | -| last_check | | datetime | NO | | 0000-00-00 00:00:00 | | +| last_check | | datetime | NO | | 0001-01-01 00:00:00 | | Return to [database documentation](help/database) diff --git a/doc/database/db_notify.md b/doc/database/db_notify.md index b2bae6471..fbf0db770 100644 --- a/doc/database/db_notify.md +++ b/doc/database/db_notify.md @@ -9,7 +9,7 @@ Table notify | name | | varchar(255) | NO | | | | | url | | varchar(255) | NO | | | | | photo | | varchar(255) | NO | | | | -| date | | datetime | NO | | 0000-00-00 00:00:00 | | +| date | | datetime | NO | | 0001-01-01 00:00:00 | | | msg | | mediumtext | YES | | NULL | | | uid | user.id of the owner of this data | int(11) | NO | MUL | 0 | | | link | | varchar(255) | NO | | | | diff --git a/doc/database/db_oembed.md b/doc/database/db_oembed.md index 5e994eca3..080c9824c 100644 --- a/doc/database/db_oembed.md +++ b/doc/database/db_oembed.md @@ -5,6 +5,6 @@ Table oembed | ------------ | ---------------------------------- | ------------ | ---- | --- | ------------------- | ----- | | url | page url | varchar(255) | NO | PRI | NULL | | | content | OEmbed data of the page | text | NO | | NULL | | -| created | datetime of creation | datetime | NO | MUL | 0000-00-00 00:00:00 | | +| created | datetime of creation | datetime | NO | MUL | 0001-01-01 00:00:00 | | Return to [database documentation](help/database) diff --git a/doc/database/db_parsed_url.md b/doc/database/db_parsed_url.md index ada42c2ea..343e5a8be 100644 --- a/doc/database/db_parsed_url.md +++ b/doc/database/db_parsed_url.md @@ -7,6 +7,6 @@ Table parsed_url | guessing | is the "guessing" mode active? | tinyint(1) | NO | PRI | 0 | | | oembed | is the data the result of oembed? | tinyint(1) | NO | PRI | 0 | | | content | page data | text | NO | | NULL | | -| created | datetime of creation | datetime | NO | MUL | 0000-00-00 00:00:00 | | +| created | datetime of creation | datetime | NO | MUL | 0001-01-01 00:00:00 | | Return to [database documentation](help/database) diff --git a/doc/database/db_photo.md b/doc/database/db_photo.md index 2d5bf0938..2bb7473e2 100644 --- a/doc/database/db_photo.md +++ b/doc/database/db_photo.md @@ -8,8 +8,8 @@ Table photo | contact-id | contact.id | int(10) unsigned | NO | | 0 | | | guid | A unique identifier for this photo | varchar(64) | NO | MUL | | | | resource-id | | varchar(255) | NO | MUL | | | -| created | creation date | datetime | NO | | 0000-00-00 00:00:00 | | -| edited | last edited date | datetime | NO | | 0000-00-00 00:00:00 | | +| created | creation date | datetime | NO | | 0001-01-01 00:00:00 | | +| edited | last edited date | datetime | NO | | 0001-01-01 00:00:00 | | | title | | varchar(255) | NO | | | | | desc | | text | NO | | NULL | | | album | The name of the album to which the photo belongs | varchar(255) | NO | | | | diff --git a/doc/database/db_profile.md b/doc/database/db_profile.md index fba351a2d..265eb1c58 100644 --- a/doc/database/db_profile.md +++ b/doc/database/db_profile.md @@ -10,7 +10,7 @@ Table profile | hide-friends | Hide friend list from viewers of this profile | tinyint(1) | NO | | 0 | | | name | | varchar(255) | NO | | | | | pdesc | Title or description | varchar(255) | NO | | | | -| dob | Day of birth | varchar(32) | NO | | 0000-00-00 | | +| dob | Day of birth | varchar(32) | NO | | 0001-01-01 | | | address | | varchar(255) | NO | | | | | locality | | varchar(255) | NO | | | | | region | | varchar(255) | NO | | | | @@ -20,7 +20,7 @@ Table profile | gender | | varchar(32) | NO | | | | | marital | | varchar(255) | NO | | | | | with | | text | NO | | NULL | | -| howlong | | datetime | NO | | 0000-00-00 00:00:00 | | +| howlong | | datetime | NO | | 0001-01-01 00:00:00 | | | sexual | | varchar(255) | NO | | | | | politic | | varchar(255) | NO | | | | | religion | | varchar(255) | NO | | | | diff --git a/doc/database/db_queue.md b/doc/database/db_queue.md index 44bb69c2e..6b19f02f2 100644 --- a/doc/database/db_queue.md +++ b/doc/database/db_queue.md @@ -6,8 +6,8 @@ Table queue | id | sequential ID | int(11) | NO | PRI | NULL | auto_increment | | cid | | int(11) | NO | MUL | 0 | | | network | | varchar(32) | NO | MUL | | | -| created | | datetime | NO | MUL | 0000-00-00 00:00:00 | | -| last | | datetime | NO | MUL | 0000-00-00 00:00:00 | | +| created | | datetime | NO | MUL | 0001-01-01 00:00:00 | | +| last | | datetime | NO | MUL | 0001-01-01 00:00:00 | | | content | | mediumtext | NO | | NULL | | | batch | | tinyint(1) | NO | MUL | 0 | | diff --git a/doc/database/db_register.md b/doc/database/db_register.md index ac2769b90..974a2dc67 100644 --- a/doc/database/db_register.md +++ b/doc/database/db_register.md @@ -5,7 +5,7 @@ Table register | -------- | ------------- | ---------------- | ---- | --- | ------------------- | --------------- | | id | sequential ID | int(11) unsigned | NO | PRI | NULL | auto_increment | | hash | | varchar(255) | NO | | | | -| created | | datetime | NO | | 0000-00-00 00:00:00 | | +| created | | datetime | NO | | 0001-01-01 00:00:00 | | | uid | user.id | int(11) unsigned | NO | | | | | password | | varchar(255) | NO | | | | | language | | varchar(16) | NO | | | | diff --git a/doc/database/db_spam.md b/doc/database/db_spam.md index f1428a682..dc27e1b47 100644 --- a/doc/database/db_spam.md +++ b/doc/database/db_spam.md @@ -8,6 +8,6 @@ Table spam | spam | | int(11) | NO | MUL | 0 | | | ham | | int(11) | NO | MUL | 0 | | | term | | varchar(255) | NO | MUL | | | -| date | | datetime | NO | | 0000-00-00 00:00:00 | | +| date | | datetime | NO | | 0001-01-01 00:00:00 | | Return to [database documentation](help/database) diff --git a/doc/database/db_term.md b/doc/database/db_term.md index 0240685a0..d18bf1c3b 100644 --- a/doc/database/db_term.md +++ b/doc/database/db_term.md @@ -12,8 +12,8 @@ Table term | aid | | int(10) unsigned | NO | | 0 | | | uid | | int(10) unsigned | NO | MUL | 0 | | | guid | | varchar(255) | NO | MUL | | | -| created | | datetime | NO | | 0000-00-00 00:00:00 | | -| received | | datetime | NO | | 0000-00-00 00:00:00 | | +| created | | datetime | NO | | 0001-01-01 00:00:00 | | +| received | | datetime | NO | | 0001-01-01 00:00:00 | | | global | | tinyint(1) | NO | | 0 | | Return to [database documentation](help/database) diff --git a/doc/database/db_thread.md b/doc/database/db_thread.md index d6484b760..13b70b451 100644 --- a/doc/database/db_thread.md +++ b/doc/database/db_thread.md @@ -9,11 +9,11 @@ Table thread | gcontact-id | Global Contact | int(11) unsigned | NO | | 0 | | | owner-id | Item owner | int(11) unsigned | NO | MUL | 0 | | | author-id | Item author | int(11) unsigned | NO | MUL | 0 | | -| created | | datetime | NO | MUL | 0000-00-00 00:00:00 | | -| edited | | datetime | NO | | 0000-00-00 00:00:00 | | -| commented | | datetime | NO | MUL | 0000-00-00 00:00:00 | | -| received | | datetime | NO | | 0000-00-00 00:00:00 | | -| changed | | datetime | NO | | 0000-00-00 00:00:00 | | +| created | | datetime | NO | MUL | 0001-01-01 00:00:00 | | +| edited | | datetime | NO | | 0001-01-01 00:00:00 | | +| commented | | datetime | NO | MUL | 0001-01-01 00:00:00 | | +| received | | datetime | NO | | 0001-01-01 00:00:00 | | +| changed | | datetime | NO | | 0001-01-01 00:00:00 | | | wall | | tinyint(1) | NO | MUL | 0 | | | private | | tinyint(1) | NO | | 0 | | | pubmail | | tinyint(1) | NO | | 0 | | diff --git a/doc/database/db_user.md b/doc/database/db_user.md index 21ca211d7..e9306f8c5 100644 --- a/doc/database/db_user.md +++ b/doc/database/db_user.md @@ -12,8 +12,8 @@ Table user | openid | | varchar(255) | NO | | | | | timezone | PHP-legal timezone | varchar(128) | NO | | | | | language | default language | varchar(32) | NO | | en | | -| register_date | timestamp of registration | datetime | NO | | 0000-00-00 00:00:00 | | -| login_date | timestamp of last login | datetime | NO | | 0000-00-00 00:00:00 | | +| register_date | timestamp of registration | datetime | NO | | 0001-01-01 00:00:00 | | +| login_date | timestamp of last login | datetime | NO | | 0001-01-01 00:00:00 | | | default-location | Default for item.location | varchar(255) | NO | | | | | allow_location | 1 allows to display the location | tinyint(1) | NO | | 0 | | | theme | user theme preference | varchar(255) | NO | | | | @@ -36,8 +36,8 @@ Table user | expire | | int(11) unsigned | NO | | 0 | | | account_removed | if 1 the account is removed | tinyint(1) | NO | | 0 | | | account_expired | | tinyint(1) | NO | | 0 | | -| account_expires_on | timestamp when account expires and will be deleted | datetime | NO | | 0000-00-00 00:00:00 | | -| expire_notification_sent | timestamp of last warning of account expiration | datetime | NO | | 0000-00-00 00:00:00 | | +| account_expires_on | timestamp when account expires and will be deleted | datetime | NO | | 0001-01-01 00:00:00 | | +| expire_notification_sent | timestamp of last warning of account expiration | datetime | NO | | 0001-01-01 00:00:00 | | | service_class | service class for this account, determines what if any limits/restrictions are in place | varchar(32) | NO | | | | | def_gid | | int(11) | NO | | 0 | | | allow_cid | default permission for this user | mediumtext | NO | | NULL | | diff --git a/doc/database/db_workerqueue.md b/doc/database/db_workerqueue.md index b1f5245ae..8ab68466b 100644 --- a/doc/database/db_workerqueue.md +++ b/doc/database/db_workerqueue.md @@ -6,8 +6,8 @@ Table workerqueue | id | sequential ID | int(11) | NO | PRI | NULL | auto_increment | | parameter | | text | NO | | NULL | | | priority | | tinyint(3) unsigned | NO | | 0 | | -| created | | datetime | NO | MUL | 0000-00-00 00:00:00 | | +| created | | datetime | NO | MUL | 0001-01-01 00:00:00 | | | pid | | int(11) | NO | | 0 | | -| executed | | datetime | NO | | 0000-00-00 00:00:00 | | +| executed | | datetime | NO | | 0001-01-01 00:00:00 | | Return to [database documentation](help/database) diff --git a/doc/de/Settings.md b/doc/de/Settings.md index 2b7e89a52..a63905055 100644 --- a/doc/de/Settings.md +++ b/doc/de/Settings.md @@ -5,17 +5,14 @@ Wenn du der Administrator einer Friendica Instanz bist, hast du Zugriff auf das so genannte **Admin Panel** in dem du die Friendica Instanz konfigurieren kannst, Auf der Startseite des Admin Panels werden die Informationen zu der Instanz zusammengefasst. -Diese Informationen beinhalten die Anzahl der Nachrichten, die sich aktuell in den Warteschlangen befinden. -Hierbei ist die erste Zahl die Zahl der Nachrichten die gerade aktiv verteilt werden. -Diese Zahl sollte sich relativ schnell sinken. -Die zweite Zahl gibt die Anzahl von Nachrichten an, die nicht zugestellt werden konnten. +Die erste Zahl gibt die Anzahl von Nachrichten an, die nicht zugestellt werden konnten. Die Zustellung wird zu einem späteren Zeitpunkt noch einmal versucht. Unter dem Punkt "Warteschlange Inspizieren" kannst du einen schnellen Blick auf die zweite Warteschlange werfen. -Solltest du für die Hintergrundprozesse die Worker aktiviert haben, wird eine dritte Zahl angezeigt. -Diese repräsentiert die Anzahl der Aufgaben, die die Worker noch vor sich haben. +Die zweite Zahl steht für die Anzahl der Aufgaben, die die Worker noch vor sich haben. +Die Worker arbeiten Hintergrundprozesse ab. Die Aufgaben der Worker sind priorisiert und werden anhand dieser Prioritäten abgearbeitet. -Des weiteren findest du eine Übersicht über die Accounts auf dem Friendica Knoten, die unter dem Punkt "Nutzer" moderiert werden können. +Desweiteren findest du eine Übersicht über die Accounts auf dem Friendica Knoten, die unter dem Punkt "Nutzer" moderiert werden können. Sowie eine Liste der derzeit aktivierten Addons. Diese Liste ist verlinkt, so dass du schnellen Zugriff auf die Informationsseiten der einzelnen Addons hast. Abschließend findest du auf der Startseite des Admin Panels die installierte Version von Friendica. @@ -129,6 +126,10 @@ Wildcards werden akzeptiert (Wildcard-Unterstützung unter Windows benötigt PHP Webb du die Option `Nutzern erlauben das remote_self Flag zu setzen` aktivierst, können alle Nutzer Atom Feeds in den erweiterten Einstellungen des Kontakts als "Entferntes Konto" markieren. Dadurch werden automatisch alle Beiträge dieser Feeds für diesen Nutzer gespiegelt und an die Kontakte bei Friendica verteilt. +Dieses Feature kann z.B. dafür genutzt werden Blogbeiträge zu spiegeln. +In der Grundeinstellung ist es nicht aktiviert, da es zusätzliche Last auf dem Server verursachen kann. +Außerdem könnte es durch Nutzer als Spam Verteiler missbraucht werden. + Als Administrator der Friendica Instanz kannst du diese Einstellungen ansonsten nur direkt in der Datenbank vornehmen. Bevor du das tust solltest du sicherstellen, dass du ein Backup der Datenbank hast und genau weißt was die Änderungen an der Datenbank bewirken, die du vornehmen willst. @@ -165,6 +166,19 @@ Das führt dazu, dass du keinerlei Verbindung zu einer selbst unterzeichneten SS ### Worker +In diesem Abschnitt kann der Hintergrund-Prozess konfiguriert werden. +Bevor ein neuer *Worker* Prozess gestartet wird, überprüft das System, dass die vorhandenen Resourchen ausrechend sind, +Aus diesem Grund kann es sein, dass die maximale Zahl der Hintergrungprozesse nicht erreicht wird. + +Sollte die PHP Funktion `proc_open` auf dem Server nicht verfügbar sein, kann die Verwendung durch Friendica hier unterbunden werden. + +Die Aufgaben die im Hintergrund erledigt werden, haben Prioritäten zugeteilt. +Um garantieren zu können, das wichtige Prozesse schnellst möglich abgearbeitet werden können, selbst wenn das System gerade stark belastet ist, sollte die *fastlane* aktiviert sein. + +Wenn es auf deinem Server nicht möglich ist, einen cron Job zu starten, kannst du den *frontend* Worker einschalten. +Nachdem dies geschehen ist, kannst du `example.com/worker` (tausche example.com mit dem echten Domainnamen aus) aufrufen werden. +Dadurch werden dann die Aufgaben aktiviert, die der cron Job sonst aktivieren würde. + ### Umsiedeln ## Nutzer diff --git a/friendica_test_data.sql b/friendica_test_data.sql index 45080e44d..8ee0ff770 100644 --- a/friendica_test_data.sql +++ b/friendica_test_data.sql @@ -7,7 +7,7 @@ /*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */; /*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */; /*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */; -/*!40101 SET NAMES utf8 */; +/*!40101 SET NAMES utf8mb4 */; /*!40103 SET @OLD_TIME_ZONE=@@TIME_ZONE */; /*!40103 SET TIME_ZONE='+00:00' */; /*!40014 SET @OLD_UNIQUE_CHECKS=@@UNIQUE_CHECKS, UNIQUE_CHECKS=0 */; @@ -19,7 +19,7 @@ -- Current Database: `friendica` -- -CREATE DATABASE /*!32312 IF NOT EXISTS*/ `friendica` /*!40100 DEFAULT CHARACTER SET latin1 */; +CREATE DATABASE /*!32312 IF NOT EXISTS*/ `friendica` /*!40100 DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci */; USE `friendica`; @@ -29,7 +29,7 @@ USE `friendica`; DROP TABLE IF EXISTS `addon`; /*!40101 SET @saved_cs_client = @@character_set_client */; -/*!40101 SET character_set_client = utf8 */; +/*!40101 SET character_set_client = utf8mb4 */; CREATE TABLE `addon` ( `id` int(11) NOT NULL AUTO_INCREMENT, `name` varchar(255) NOT NULL DEFAULT '', @@ -39,7 +39,7 @@ CREATE TABLE `addon` ( `timestamp` bigint(20) NOT NULL DEFAULT '0', `plugin_admin` tinyint(1) NOT NULL DEFAULT '0', PRIMARY KEY (`id`) -) ENGINE=InnoDB DEFAULT CHARSET=utf8; +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; /*!40101 SET character_set_client = @saved_cs_client */; -- @@ -57,7 +57,7 @@ UNLOCK TABLES; DROP TABLE IF EXISTS `attach`; /*!40101 SET @saved_cs_client = @@character_set_client */; -/*!40101 SET character_set_client = utf8 */; +/*!40101 SET character_set_client = utf8mb4 */; CREATE TABLE `attach` ( `id` int(11) NOT NULL AUTO_INCREMENT, `uid` int(11) NOT NULL DEFAULT '0', @@ -66,14 +66,14 @@ CREATE TABLE `attach` ( `filetype` varchar(64) NOT NULL DEFAULT '', `filesize` int(11) NOT NULL DEFAULT '0', `data` longblob NOT NULL, - `created` datetime NOT NULL DEFAULT '0000-00-00 00:00:00', - `edited` datetime NOT NULL DEFAULT '0000-00-00 00:00:00', + `created` datetime NOT NULL DEFAULT '0001-01-01 00:00:00', + `edited` datetime NOT NULL DEFAULT '0001-01-01 00:00:00', `allow_cid` mediumtext NOT NULL, `allow_gid` mediumtext NOT NULL, `deny_cid` mediumtext NOT NULL, `deny_gid` mediumtext NOT NULL, PRIMARY KEY (`id`) -) ENGINE=InnoDB DEFAULT CHARSET=utf8; +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; /*!40101 SET character_set_client = @saved_cs_client */; -- @@ -91,7 +91,7 @@ UNLOCK TABLES; DROP TABLE IF EXISTS `auth_codes`; /*!40101 SET @saved_cs_client = @@character_set_client */; -/*!40101 SET character_set_client = utf8 */; +/*!40101 SET character_set_client = utf8mb4 */; CREATE TABLE `auth_codes` ( `id` varchar(40) NOT NULL, `client_id` varchar(20) NOT NULL DEFAULT '', @@ -99,7 +99,7 @@ CREATE TABLE `auth_codes` ( `expires` int(11) NOT NULL DEFAULT '0', `scope` varchar(250) NOT NULL DEFAULT '', PRIMARY KEY (`id`) -) ENGINE=InnoDB DEFAULT CHARSET=utf8; +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; /*!40101 SET character_set_client = @saved_cs_client */; -- @@ -117,14 +117,14 @@ UNLOCK TABLES; DROP TABLE IF EXISTS `cache`; /*!40101 SET @saved_cs_client = @@character_set_client */; -/*!40101 SET character_set_client = utf8 */; +/*!40101 SET character_set_client = utf8mb4 */; CREATE TABLE `cache` ( `k` varchar(255) NOT NULL, `v` text NOT NULL, - `updated` datetime NOT NULL DEFAULT '0000-00-00 00:00:00', + `updated` datetime NOT NULL DEFAULT '0001-01-01 00:00:00', PRIMARY KEY (`k`), KEY `updated` (`updated`) -) ENGINE=InnoDB DEFAULT CHARSET=utf8; +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; /*!40101 SET character_set_client = @saved_cs_client */; -- @@ -143,7 +143,7 @@ UNLOCK TABLES; DROP TABLE IF EXISTS `challenge`; /*!40101 SET @saved_cs_client = @@character_set_client */; -/*!40101 SET character_set_client = utf8 */; +/*!40101 SET character_set_client = utf8mb4 */; CREATE TABLE `challenge` ( `id` int(10) unsigned NOT NULL AUTO_INCREMENT, `challenge` varchar(255) NOT NULL DEFAULT '', @@ -152,7 +152,7 @@ CREATE TABLE `challenge` ( `type` varchar(255) NOT NULL DEFAULT '', `last_update` varchar(255) NOT NULL DEFAULT '', PRIMARY KEY (`id`) -) ENGINE=InnoDB AUTO_INCREMENT=13 DEFAULT CHARSET=utf8; +) ENGINE=InnoDB AUTO_INCREMENT=13 DEFAULT CHARSET=utf8mb4; /*!40101 SET character_set_client = @saved_cs_client */; -- @@ -170,7 +170,7 @@ UNLOCK TABLES; DROP TABLE IF EXISTS `clients`; /*!40101 SET @saved_cs_client = @@character_set_client */; -/*!40101 SET character_set_client = utf8 */; +/*!40101 SET character_set_client = utf8mb4 */; CREATE TABLE `clients` ( `client_id` varchar(20) NOT NULL, `pw` varchar(20) NOT NULL DEFAULT '', @@ -179,7 +179,7 @@ CREATE TABLE `clients` ( `icon` text, `uid` int(11) NOT NULL DEFAULT '0', PRIMARY KEY (`client_id`) -) ENGINE=InnoDB DEFAULT CHARSET=utf8; +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; /*!40101 SET character_set_client = @saved_cs_client */; -- @@ -197,7 +197,7 @@ UNLOCK TABLES; DROP TABLE IF EXISTS `config`; /*!40101 SET @saved_cs_client = @@character_set_client */; -/*!40101 SET character_set_client = utf8 */; +/*!40101 SET character_set_client = utf8mb4 */; CREATE TABLE `config` ( `id` int(10) unsigned NOT NULL AUTO_INCREMENT, `cat` varchar(255) NOT NULL DEFAULT '', @@ -205,7 +205,7 @@ CREATE TABLE `config` ( `v` text NOT NULL, PRIMARY KEY (`id`), KEY `cat_k` (`cat`(30),`k`(30)) -) ENGINE=InnoDB AUTO_INCREMENT=11 DEFAULT CHARSET=utf8; +) ENGINE=InnoDB AUTO_INCREMENT=11 DEFAULT CHARSET=utf8mb4; /*!40101 SET character_set_client = @saved_cs_client */; -- @@ -224,11 +224,11 @@ UNLOCK TABLES; DROP TABLE IF EXISTS `contact`; /*!40101 SET @saved_cs_client = @@character_set_client */; -/*!40101 SET character_set_client = utf8 */; +/*!40101 SET character_set_client = utf8mb4 */; CREATE TABLE `contact` ( `id` int(11) NOT NULL AUTO_INCREMENT, `uid` int(11) NOT NULL DEFAULT '0', - `created` datetime NOT NULL DEFAULT '0000-00-00 00:00:00', + `created` datetime NOT NULL DEFAULT '0001-01-01 00:00:00', `self` tinyint(1) NOT NULL DEFAULT '0', `remote_self` tinyint(1) NOT NULL DEFAULT '0', `rel` tinyint(1) NOT NULL DEFAULT '0', @@ -264,12 +264,12 @@ CREATE TABLE `contact` ( `usehub` tinyint(1) NOT NULL DEFAULT '0', `subhub` tinyint(1) NOT NULL DEFAULT '0', `hub-verify` varchar(255) NOT NULL DEFAULT '', - `last-update` datetime NOT NULL DEFAULT '0000-00-00 00:00:00', - `success_update` datetime NOT NULL DEFAULT '0000-00-00 00:00:00', - `name-date` datetime NOT NULL DEFAULT '0000-00-00 00:00:00', - `uri-date` datetime NOT NULL DEFAULT '0000-00-00 00:00:00', - `avatar-date` datetime NOT NULL DEFAULT '0000-00-00 00:00:00', - `term-date` datetime NOT NULL DEFAULT '0000-00-00 00:00:00', + `last-update` datetime NOT NULL DEFAULT '0001-01-01 00:00:00', + `success_update` datetime NOT NULL DEFAULT '0001-01-01 00:00:00', + `name-date` datetime NOT NULL DEFAULT '0001-01-01 00:00:00', + `uri-date` datetime NOT NULL DEFAULT '0001-01-01 00:00:00', + `avatar-date` datetime NOT NULL DEFAULT '0001-01-01 00:00:00', + `term-date` datetime NOT NULL DEFAULT '0001-01-01 00:00:00', `priority` tinyint(3) NOT NULL DEFAULT '0', `blocked` tinyint(1) NOT NULL DEFAULT '1', `readonly` tinyint(1) NOT NULL DEFAULT '0', @@ -285,13 +285,13 @@ CREATE TABLE `contact` ( `info` mediumtext NOT NULL, `profile-id` int(11) NOT NULL DEFAULT '0', `bdyear` varchar(4) NOT NULL DEFAULT '', - `bd` date NOT NULL DEFAULT '0000-00-00', + `bd` date NOT NULL DEFAULT '0001-01-01', `notify_new_posts` tinyint(1) NOT NULL DEFAULT '0', `fetch_further_information` tinyint(1) NOT NULL DEFAULT '0', `ffi_keyword_blacklist` mediumtext NOT NULL, PRIMARY KEY (`id`), KEY `uid` (`uid`) -) ENGINE=InnoDB AUTO_INCREMENT=19 DEFAULT CHARSET=utf8; +) ENGINE=InnoDB AUTO_INCREMENT=19 DEFAULT CHARSET=utf8mb4; /*!40101 SET character_set_client = @saved_cs_client */; -- @@ -300,7 +300,7 @@ CREATE TABLE `contact` ( LOCK TABLES `contact` WRITE; /*!40000 ALTER TABLE `contact` DISABLE KEYS */; -INSERT INTO `contact` VALUES (1,1,'2015-02-02 11:24:17',1,0,0,0,'','admin','admin','','','','','','http://192.168.22.10/photo/profile/1.jpg','http://192.168.22.10/photo/avatar/1.jpg','http://192.168.22.10/photo/micro/1.jpg','','','','http://192.168.22.10/profile/admin','http://192.168.22.10/profile/admin','','','','','','http://192.168.22.10/dfrn_request/admin','http://192.168.22.10/dfrn_notify/admin','http://192.168.22.10/dfrn_poll/admin','http://192.168.22.10/dfrn_confirm/admin','http://192.168.22.10/poco/admin',0,0,0,0,'','0000-00-00 00:00:00','0000-00-00 00:00:00','2015-02-02 11:24:17','2015-02-02 11:24:17','2015-02-02 11:24:17','0000-00-00 00:00:00',0,0,0,0,0,0,0,0,0,0,'',0,'',0,'','0000-00-00',0,0,''),(2,2,'2015-02-02 12:02:11',1,0,0,0,'','friendica1','friendica1','','','','','','http://192.168.22.10/photo/profile/2.jpg','http://192.168.22.10/photo/avatar/2.jpg','http://192.168.22.10/photo/micro/2.jpg','','','','http://192.168.22.10/profile/friendica1','http://192.168.22.10/profile/friendica1','','','','','','http://192.168.22.10/dfrn_request/friendica1','http://192.168.22.10/dfrn_notify/friendica1','http://192.168.22.10/dfrn_poll/friendica1','http://192.168.22.10/dfrn_confirm/friendica1','http://192.168.22.10/poco/friendica1',0,0,0,0,'','0000-00-00 00:00:00','0000-00-00 00:00:00','2015-02-02 12:02:11','2015-02-02 12:02:11','2015-02-02 12:02:11','0000-00-00 00:00:00',0,0,0,0,0,0,0,0,0,0,'',0,'',0,'','0000-00-00',0,0,''),(3,3,'2015-02-02 12:02:40',1,0,0,0,'','friendica2','friendica2','','','','','','http://192.168.22.10/photo/profile/3.jpg','http://192.168.22.10/photo/avatar/3.jpg','http://192.168.22.10/photo/micro/3.jpg','','','','http://192.168.22.10/profile/friendica2','http://192.168.22.10/profile/friendica2','','','','','','http://192.168.22.10/dfrn_request/friendica2','http://192.168.22.10/dfrn_notify/friendica2','http://192.168.22.10/dfrn_poll/friendica2','http://192.168.22.10/dfrn_confirm/friendica2','http://192.168.22.10/poco/friendica2',0,0,0,0,'','0000-00-00 00:00:00','0000-00-00 00:00:00','2015-02-02 12:02:40','2015-02-02 12:02:40','2015-02-02 12:02:40','0000-00-00 00:00:00',0,0,0,0,0,0,0,0,0,0,'',0,'',0,'','0000-00-00',0,0,''),(4,4,'2015-02-02 12:03:07',1,0,0,0,'','friendica3','friendica3','','','','','','http://192.168.22.10/photo/profile/4.jpg','http://192.168.22.10/photo/avatar/4.jpg','http://192.168.22.10/photo/micro/4.jpg','','','','http://192.168.22.10/profile/friendica3','http://192.168.22.10/profile/friendica3','','','','','','http://192.168.22.10/dfrn_request/friendica3','http://192.168.22.10/dfrn_notify/friendica3','http://192.168.22.10/dfrn_poll/friendica3','http://192.168.22.10/dfrn_confirm/friendica3','http://192.168.22.10/poco/friendica3',0,0,0,0,'','0000-00-00 00:00:00','0000-00-00 00:00:00','2015-02-02 12:03:07','2015-02-02 12:03:07','2015-02-02 12:03:07','0000-00-00 00:00:00',0,0,0,0,0,0,0,0,0,0,'',0,'',0,'','0000-00-00',0,0,''),(5,5,'2015-02-02 12:04:06',1,0,0,0,'','friendica5','friendica5','','','','','','http://192.168.22.10/photo/profile/5.jpg','http://192.168.22.10/photo/avatar/5.jpg','http://192.168.22.10/photo/micro/5.jpg','','','','http://192.168.22.10/profile/friendica5','http://192.168.22.10/profile/friendica5','','','','','','http://192.168.22.10/dfrn_request/friendica5','http://192.168.22.10/dfrn_notify/friendica5','http://192.168.22.10/dfrn_poll/friendica5','http://192.168.22.10/dfrn_confirm/friendica5','http://192.168.22.10/poco/friendica5',0,0,0,0,'','0000-00-00 00:00:00','0000-00-00 00:00:00','2015-02-02 12:04:06','2015-02-02 12:04:06','2015-02-02 12:04:06','0000-00-00 00:00:00',0,0,0,0,0,0,0,0,0,0,'',0,'',0,'','0000-00-00',0,0,''),(6,6,'2015-02-02 12:04:29',1,0,0,0,'','friendica4','friendica4','','','','','','http://192.168.22.10/photo/profile/6.jpg','http://192.168.22.10/photo/avatar/6.jpg','http://192.168.22.10/photo/micro/6.jpg','','','','http://192.168.22.10/profile/friendica4','http://192.168.22.10/profile/friendica4','','','','','','http://192.168.22.10/dfrn_request/friendica4','http://192.168.22.10/dfrn_notify/friendica4','http://192.168.22.10/dfrn_poll/friendica4','http://192.168.22.10/dfrn_confirm/friendica4','http://192.168.22.10/poco/friendica4',0,0,0,0,'','0000-00-00 00:00:00','0000-00-00 00:00:00','2015-02-02 12:04:29','2015-02-02 12:04:29','2015-02-02 12:04:29','0000-00-00 00:00:00',0,0,0,0,0,0,0,0,0,0,'',0,'',0,'','0000-00-00',0,0,''),(7,4,'2015-02-02 18:41:17',0,0,3,1,'dfrn','friendica2','friendica2','','','','','','http://192.168.22.10/photo/343e3e9f0f5a36ea763c101490db9ca6-4.jpg','http://192.168.22.10/photo/343e3e9f0f5a36ea763c101490db9ca6-5.jpg','http://192.168.22.10/photo/343e3e9f0f5a36ea763c101490db9ca6-6.jpg','-----BEGIN PUBLIC KEY-----\nMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEA4QpA4flE9v17fh+yrMpR\nU4iKSxLOF/8ROTotrdQsk8HcHkPS7E60QUaRK45gDc9O+7FU1+90V+oo0BqdkJFL\nbFtTogP5fdNSD3ApHz7s03oBX9JenU/8JhxaH1VwEs3lLDlFrywngiYcEDZIeLGZ\nIFK1GWP79+ZwJ9WWoBhzCD4hg4excOWPwwQMjCLYAzI5INEPTw+R3CKD6EsnVLu0\nS+u3zBBsL/A+bgDDfgZoD6igJQlvenK5jStgfbiuVp1mqdXKJ8D+rYz5FQ72Yn3r\nn6AvrXcPQMbLSaUK5m1Ug7beasuhRJ5Z7TVtJ/RLNgA3mOX2A2Vy1i38VYmcTaG5\nom8AYeI/nSvMzJt7FYXOBdxKnSW0UhkXsjBQavefz7sp2Lhcw5U+7eaPi2fIkYio\nVHKU2r8uiJPFfUMAbHA2+rScBjn2lYZH0nfMKrZTzva7y6d19EOsO2aP5e4XNjU8\n0tX/C1iy6LPMCf7xG844iROXi7NPJJoTgx/Sl6+o0oqBl9J5wJDK5U33rUSqYI/p\nsPEfaStqA5CgBAvAsq0N+NQQndJzGfuYaIdfleyUSLIchHhEICE4SN62RHZ6VTlg\nIVCva4xdBrGlkGV/IgE228FwgX4GWELclfUH/KwcGHChlY8dTtVZHbTCuizvPLvl\nXuZQ9ROdQiwkYwGJA/bhM3kCAwEAAQ==\n-----END PUBLIC KEY-----\n','af2c1bff1518afaf2df6d3600a7f2f036cc758f0044c4c3c7649cf53edcb4faa','','http://192.168.22.10/profile/friendica2','http://192.168.22.10/profile/friendica2','','','','-----BEGIN PRIVATE KEY-----\n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\ndLrR3o8mxnuDuIMDIUjpEZaR+FYKCSQ=\n-----END PRIVATE KEY-----\n','','http://192.168.22.10/dfrn_request/friendica2','http://192.168.22.10/dfrn_notify/friendica2','http://192.168.22.10/dfrn_poll/friendica2','http://192.168.22.10/dfrn_confirm/friendica2','http://192.168.22.10/poco/friendica2',0,0,0,0,'','2015-02-02 18:50:08','2015-02-02 18:50:08','2015-02-02 18:50:08','2015-02-02 18:41:48','2015-02-02 18:41:48','0000-00-00 00:00:00',0,0,0,1,0,0,0,0,0,0,'',99,'',0,'','0000-00-00',0,0,''),(8,3,'2015-02-02 18:41:21',0,0,3,1,'dfrn','friendica3','friendica3','','','','','','http://192.168.22.10/photo/1f4766db71f0f2d503287947c1d67dcd-4.jpg','http://192.168.22.10/photo/1f4766db71f0f2d503287947c1d67dcd-5.jpg','http://192.168.22.10/photo/1f4766db71f0f2d503287947c1d67dcd-6.jpg','-----BEGIN PUBLIC KEY-----\nMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAliSi9id9Ll1dpzXC/lL6\n2/5FYxdn0XYb5I2JeXBNopwbXOLDsnnzXlV2NN8riZaYRQcIbS00OuAvyYj/IG3i\nDykD2zPjVnLEWADtj1YhLSgKcfQgv6Cj/7CPdb1Rg3icbvWdVY9wabcblVa9k+qr\ngK273C47lCQzXgvMtPst1DOzxtVCGmPJJHKjXZ8hDvf/IS0pVGa0zIv9kdofqQV9\nD5u5LuNzRuEGnrpAzpfzMueDppBrrrr37sKrZfCvyYHZ/ouFgZ3bY9NNVnjuFItP\nrcDlJPL8NhGmmzuYtI03MLor+1yVdBKLIJ3G2Bxzn5tynjSX9XZzOQgC3+YVH4TU\n7WDUHjTWJ9mliD2M1WXCp2Lwc/pV1Prnvv057pAqdiMhnddzucV9nLk9X9fR8xyy\nC7PRwx0hkB427EtAYaOTr3RtInP6+cm+3M7wd6ZKTqWAU+Pi20RNrQRsqfHJ7+hx\n+i5rIG6/knB/C+MAAutEH25oY8kJYtJzXid2OBSE462DTuYaee9aGHUDNy+HQau8\nBhJ4/Wsc7Nf/7GRZ38SVT/HQShl47B1AG5AyomyWgwn9J2KJ8kMuScPmBv5u7Mwq\nSjLk5pLkwyUtZwUu8UtsFKw9HLcRksGSze5s2cbw3rf/6jgKycT72Bfm1fjRnv6s\nXt1GdSzfG9zVHuEwRDgTX3UCAwEAAQ==\n-----END PUBLIC KEY-----\n','','af2c1bff1518afaf2df6d3600a7f2f036cc758f0044c4c3c7649cf53edcb4faa','http://192.168.22.10/profile/friendica3','http://192.168.22.10/profile/friendica3','','','-----BEGIN PUBLIC KEY-----\nMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAqfA8vyqdOEwRk+J9BaXL\nwtlbjl0G+tqs4pCu8ez158vzm5jNC/xMObcO9arDp2RAg8urXKMOzQDMUG6wCxf8\nSXsR8VTwU4+EWMSyDxgs8RYU1mIc1pvkeKWDrL36iSe1+kXvUHOjV2+1PQJ6x2Iy\nYBwAPTzjwxOSThPumfT9M8wqSyCYvqY5uPQiru1Vy8EEduZSpo8l6uhA42CJP1pM\n4QbIpJ2gPUYOyAzNLLKfNtIvEka9xkC8jH8kzTwiKgd5Xo2g2TacqPQBCEhrnPDt\nnovSyf3IOmlkdQ+IWcTIOC82Z3oIK4fY3WYchA/mT4Vraade/U/CocTKj4OWfhGa\n9kSB8AYkm3LsxmUNUIEG+e/4CU7CpSlhh6bXYNR/ysRxpXscpaSBeV+aUDy8QXJh\nN1bcSRCFD/Un9f9dQwawpemUNcYQYg99TBqs96SYkeZNoEAWpaj5VTgz2AZWjkz0\nuXbgm1E5/g6kfvIoACU7MP3SGtcTqEY7TAeZzcq4oyCB2YoBf9w7Z5zBKNYjSRVI\nEa/kegdbJcvFtqhY4FZZ+MmyXX/B1fFFhjUe4WaMzxupVNeQnmwHh+2RFdRVEXNE\n9ch2CQ1iF2rqJ69hvKviZAsefbTErs2+CcDo3xF4FFgKUk2stSjVyHNf8yWL+E2m\nnOlQAAH+DA7w28kTeT++o+0CAwEAAQ==\n-----END PUBLIC KEY-----\n','','','http://192.168.22.10/dfrn_request/friendica3','http://192.168.22.10/dfrn_notify/friendica3','http://192.168.22.10/dfrn_poll/friendica3','http://192.168.22.10/dfrn_confirm/friendica3','http://192.168.22.10/poco/friendica3',1,0,0,0,'','2015-02-02 18:50:03','2015-02-02 18:50:03','2015-02-02 18:50:03','2015-02-02 18:41:48','2015-02-02 18:41:48','0000-00-00 00:00:00',0,0,0,1,0,0,0,0,0,0,'',99,'',0,'','0000-00-00',0,0,''),(9,6,'2015-02-02 18:44:07',0,0,3,1,'dfrn','friendica5','friendica5','','','','','','http://192.168.22.10/photo/75b60a2a1e6b2cdf2eb3637955a7a5c2-4.jpg','http://192.168.22.10/photo/75b60a2a1e6b2cdf2eb3637955a7a5c2-5.jpg','http://192.168.22.10/photo/75b60a2a1e6b2cdf2eb3637955a7a5c2-6.jpg','-----BEGIN PUBLIC KEY-----\nMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAyvuTsaZaTgPDm69uxixR\n8qd0ylkeA/IY3KDsI4vjrLuF7WLmU07lzQXmilQJ+MlipIju+wFXx3a8ksavEYpP\n9ZU9YrpXe7zneHRLTxgMDH9IMbSCIUAkEsozpzF02Ft0+G36tzIET2oTuU6uLtx6\nI5ifmF/qFC+4avAoABQg8qfOPpuaP3AJ6FppqEifUsb0lTWqP4zg7PQXC36oKIJ0\nUDuQniVy8lTxVfkhoi/aHZw0khVXe6tDK7C0ALg5U7jLTDNdJ1R0v5iC41QK4CEt\n5x4x008mdk6xLKGZiou1UuEPv/+WSQU1Q21JFzNVGBASkRu7dUVH6k+59VQr3ONI\n5bdbAZviVY3ezFNtBeWWfDk06BWoZwX67eGG/dVsCPnEkuP9CpemcwwGZbYCIqf0\n++5h0CU41CjNShHdBD+Q+ZQmT3I4sAlPZ7x90nA9KfuKM9QyTPQ9EmK2bxq7TKvV\nzLqHptL5mC/VH4FbO1eKf7p/f7XxOaeXGANUaRSPwLSO7lk8lkl/wj7sNJYGYygC\nMLTqH8GTizpyPkSDv5xO6bYn/g3BYFuUM5x1MZVS8MdG2a3L8UzRiXUsm/AjnfSV\nImN2+8bHJI0wy9zRxfEaG8pvbupb7UU5zWr3WRkSVr84Bq1SJNxLfWZj3GHLaesr\nu3exEdYGfxLuG1zHIROVwlcCAwEAAQ==\n-----END PUBLIC KEY-----\n','','1457f73164eefae32c107b310f3720c83bb5c7f9df88de0114714f4c77055337','http://192.168.22.10/profile/friendica5','http://192.168.22.10/profile/friendica5','','','-----BEGIN PUBLIC KEY-----\nMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEA4HA9qXSYftx7tS6kTVvs\nBhVx7hPK57GIpUU6azuFGqmrAqEEsBh2+oLTDzYGvq7UW5NAbL6QdvoFkJC4tTJK\nwfMO7noAhBzzrLpGjJn6W1v7OaGX1VAQM32+dqgUP7aJF91DKx8nCcAqo8yPp4gr\nUe1Ev5Yrsa9so6XRXEI0n7PHTgRir8HIAHC4sDl1THuUdahD0q5hy+7ymyUHHEsF\nJJIC4zCuFNGdk2wqDdG534FAU5CKOL/OZW1n9vbumU8zwk3hdt5rmzxyxx6ji9KU\nJiSLSErGLo0xQklT2N+DND61SgSqKk2JDmnD6NtCb9u9Q06E+jpT4mKrTrxURqa0\nQ0So/7ZbJJWb2y7Yd7KTN8pvVzC3Set9+YXH8EVypVsAW/Io6KoUiFEuJhp1291R\nVXjt4opm3unxNVCYnl/Ui/p0mw9QjuaEx9/7Iu/RUKjXFWzqmzpXEinfVk6rscC5\nTJn7BAZFkhZD85YSmSuPkDbtiAS99uIyO2jaD1G29lkVzdG74KW54r2Np6rIOgqK\n4Gsr8H7LM/R03jBMPCjHtWT0bOyT6ySzqdq9YHsW/9Fr5uBL5EeOuL/xKuRNaaQs\nIflXwfcb35ouz5PDeP3T8m1tBhwWN2kiWVCiQuRQINhG1vFHU28Yof3XAQ3iWiV+\nfPp/WfEiQ/HnkJdmlwq82eECAwEAAQ==\n-----END PUBLIC KEY-----\n','','','http://192.168.22.10/dfrn_request/friendica5','http://192.168.22.10/dfrn_notify/friendica5','http://192.168.22.10/dfrn_poll/friendica5','http://192.168.22.10/dfrn_confirm/friendica5','http://192.168.22.10/poco/friendica5',0,1,0,0,'','2015-02-02 18:50:05','2015-02-02 18:50:05','2015-02-02 18:50:05','2015-02-02 18:45:30','2015-02-02 18:45:30','0000-00-00 00:00:00',0,0,0,1,0,0,0,0,0,0,'',99,'',0,'','0000-00-00',0,0,''),(10,5,'2015-02-02 18:45:10',0,0,3,1,'dfrn','friendica4','friendica4','','','','','','http://192.168.22.10/photo/d04134664ffd0d558b08ee01f6859f3a-4.jpg','http://192.168.22.10/photo/d04134664ffd0d558b08ee01f6859f3a-5.jpg','http://192.168.22.10/photo/d04134664ffd0d558b08ee01f6859f3a-6.jpg','-----BEGIN PUBLIC KEY-----\nMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEA3nCYawg+HTyQgV7a7Osg\nCXeACOitKLhcb2WDTN/lLOMO7n1lSm3Kdv1dbOc0/lkAPeB2XsLF/aDfoUPWWg4Q\n/oRPrXFIi2dK/cIQVvgOhebQheztAYPJyaYYMWVK7bLbPuKVTyzALqkWD8Zjjtit\n4Uvm3kjmcofKr+/Lw+VFaEBMESQDbP5eTDtQeDGGjluWQMj1/D+V/Tcm+SMrAVIv\njyklQEhBJlYGJ+LsfXv4XXbeH73dkIXkQW5JgWQyPCloJ+PxmmjjEDozsdgmFQXq\n6T9HFVHvW2O2lmDoaTrbIGrULWBpslKZJJrV+LgtkzhP4uuKfJPD2DpMJ4+ixtBE\nzM/o+EuYDTz0P3dTvwruq1t8gUYcQOVUzEp1LM0qYDMVY86XneW1W5xghztl5zqy\nGBMBvjVIFvMVL1cVeXze4zpwwKln2cArepToSpN7lmy9EgBd9mZrVLWosZShB9R0\n05kBc2Tfv7FlixwZ1P8rwJn9sEEs9oa6TnRLL+7L8eqapg6vUI1G7e0HWWEjdHsR\nrYVHYW+ogtOYjrQ1Tfh1W2PtNaez5fGYVBDjC+1vy0scJmqrgy00z7MHBT2WTOAL\noHbdedhpa3UZ0FrsCto+vqil8BcF5aBhi2Hi5YdKtbY3EBsaabcSO2joc7rlmee4\nxdKfDRYXCPysFPhZNgIW708CAwEAAQ==\n-----END PUBLIC KEY-----\n','1457f73164eefae32c107b310f3720c83bb5c7f9df88de0114714f4c77055337','','http://192.168.22.10/profile/friendica4','http://192.168.22.10/profile/friendica4','','','','-----BEGIN PRIVATE KEY-----\nMIIJRAIBADANBgkqhkiG9w0BAQEFAASCCS4wggkqAgEAAoICAQDgcD2pdJh+3Hu1\nLqRNW+wGFXHuE8rnsYilRTprO4UaqasCoQSwGHb6gtMPNga+rtRbk0BsvpB2+gWQ\nkLi1MkrB8w7uegCEHPOsukaMmfpbW/s5oZfVUBAzfb52qBQ/tokX3UMrHycJwCqj\nzI+niCtR7US/liuxr2yjpdFcQjSfs8dOBGKvwcgAcLiwOXVMe5R1qEPSrmHL7vKb\nJQccSwUkkgLjMK4U0Z2TbCoN0bnfgUBTkIo4v85lbWf29u6ZTzPCTeF23mubPHLH\nHqOL0pQmJItISsYujTFCSVPY34M0PrVKBKoqTYkOacPo20Jv271DToT6OlPiYqtO\nvFRGprRDRKj/tlsklZvbLth3spM3ym9XMLdJ6335hcfwRXKlWwBb8ijoqhSIUS4m\nGnXb3VFVeO3iimbe6fE1UJieX9SL+nSbD1CO5oTH3/si79FQqNcVbOqbOlcSKd9W\nTquxwLlMmfsEBkWSFkPzlhKZK4+QNu2IBL324jI7aNoPUbb2WRXN0bvgpbnivY2n\nqsg6Corgayvwfssz9HTeMEw8KMe1ZPRs7JPrJLOp2r1gexb/0Wvm4EvkR464v/Eq\n5E1ppCwh+VfB9xvfmi7Pk8N4/dPybW0GHBY3aSJZUKJC5FAg2EbW8UdTbxih/dcB\nDeJaJX58+n9Z8SJD8eeQl2aXCrzZ4QIDAQABAoICAQCwFwAaIvO+nQimV8jrNRLS\nlyLDU14gOMdoPA+gsJs3FyWoM2M1Moyu8dPcnFvgYdUVYEvsxfscjf+ttA5ng+Tp\nlOUDME+VWA3LWH8fs3OdGGbcia9R2rZLX/3+pNL2RiX7xkr72z5KxS3vRAD1xb2P\nUuRcmNsBVwyavO+tPfiB0JCv4nr3QMfFqKsPAJXKgy8wvOsxskXitkA8f2m7xhRr\n4+9GBxyeEvRaBURdgU4fUQ6CQeZgrgSmyZcHSihbuqt2aJpcJBgzPNMk7SIOAxLf\ndk6dUqV5QqgCRPv3LS6I4CZmw5ArDphY6Zye5uCSWMp+s21b0kWcWiPj65kHsaW9\npU/ffgJGr3YQBBJ+bca6XGuABvm4edolk4OS08CKa/Jh3YLO95Pvvn0Uj15alq2D\n7itEUv8LF6r9EA0KyulEAPYyTeiDEXcis0vxo4aimmq3SbhxxwngMIWvDmTrI5C1\nnjYsRw/4D6GWta32dLpYr5MgGMlJmw8gVa8yauDANnOoM5Qn3rKNT/meuxE1EwZU\nz7q8mfdiO6SMec9Q+X/irbJ4l+IRKW5qgqUOVFKRs5DuJI8FbpQioHs/fEDtmTUP\nvIMBXncX74vhoTUX+gZpuGMFWqCMmE11YR6wA4DnmLUCf8VSHez9noBmEiTDT8eu\nIBVR/p9qsc9JkYNo2FG9nQKCAQEA789ecTua3S5BXSA0w4bjnvLAMVG4PejLNuE6\nqRosRFx3+SgnH7/WMMLfwTRgUkWQA+ehMgr43pfI28ECuWqlqfsNJK3IRC33i777\nMefCQ3CXNpTWjLnVvv4hMjqLCKfjxzSlCt0a4gYsZRdMtqzn6XhgD/mCCV8xBq5s\nevMZGnmxeAuGSpfHcj0NzIz388r3t9T7mDP2x2SQ2NS68kbdWiddkbayUWRnvlhO\n8gxjECCqzmMnjeDH4I0H61KCBKxwTdR31u4upBktRE2zf6gLyjUMwcYVGmSt2a2o\nRgiR7lqSLweND6Wa02IvhpvlwPoWLUQu7ZXUi9AT+bhjw6yOIwKCAQEA75c0fvEp\nsUZlau1JgmHWXLyZS6HGNylBYNqKLgupIq9F1GLedGpByPgOsIINNwPP9CyxgQxQ\nRsE7Idd6tg+7FAHo6CW8YhKvMtbwQb8/HrOABv0noevDk89uPIKMlfwLgL3noFx8\ne8WpAQ2juEm+kpzfclu48u3WxnGi28SSHWrc9dbUxKPL/aMvLQ9CuZiXzSBrE6Xr\nkKJFrDSVAleUW9k9zfLW22MdFYBfMPa1FJCGVHLdzknZF1zErvHYIjTYLrAkrvmy\nV5flXjz7wpjL4g0ajCzb2YWi1CbJ5SWVRL3OaT2hL4ijSR122TxH6QKxHXDZGDQD\nBCkk9PZVwGG+KwKCAQEAraUrjrSJU8UtoWAztK1U3wCJ+GxjC7kohOmcD1ybVzjZ\nyrmvcsb3MsG5Qe5KHOiv+pPb3h+hy5R+5dkhvt8hbC8Uek236N6cFD3LKHzX5vt9\nExG9NZNO2gisQvGvQSpIvjM5mt81mxq7RMwVSWV0XFNEw+x4o46hMmRUusaSk+Aw\niGtX52V2Dxt0hXxCAu8iZqO7Np/R/tmsJMYNRGfZ2nEMyPlQr60Tjfnl2FDt3ny5\nEc8skgiE0u1sIZLSAM5YV5MU37YCYeK1K3NUGYi2WMoHHbzwBPeIB0o+wc9s0/oT\nRiiilQTmUlATd9YlDJJKQqbPkEvg5whZnoZM/yBQnwKCAQBFZt9mBiW1nFa0apfo\nlL6rjlY5elsYj3LIw4VTYT1VNsBbjWgzALSdqn1W09VQImKSsH+aih6W4FJosypw\noo3mdccpuAShxBfL+kcORH/cPNLRM3PPi6PTpTqhfI+Mwr3yRRBbe27zy4XxMCpE\nr9fsUFTJo5gnho24XiJ21rIco1/uNpTbgTcN+b8opksFyBXw7XsW7fEWrGrSP0kK\nrKPlF0C376gdVNCP8eehH1XE5ziCLePiZbHk+pJeut+IyRX2MD/wD5SBmxZt/exP\nqkMk7/bItBXbJMLOAY5qOkDK8NBh2+BdDI+AFnDe7H9IF+eGR7IbOLXG9sQl0VV1\nrNqRAoIBAQDcaPs8IbbP5SdAGRUMotS94XRdnJOTuJ6jev1zS1yvp/8ptMdkByoy\nqXw4UKUXpQOUDr82B/MPWSRAS5xjXogfbYIeBLm6CpYtjV+XhGJcGbBg/wVUMKvz\nFreSCIEICWi7OiGQG9j7E1hLWpMI59LBFHgLBX6KvNAiuQbTeEHus243FXFlD9Sl\ne+k4tw1/CNgPozRfrLJF+uxUH0P9kYXFXFxXff2PK7VLr3/2Je7uV1ckPLlAJCFI\nnEQpdPjPmRhmohiHv5NHlqLVNX8I0XincM1XPdD/qiIqP+asrc9CF4z/Od9F0XSP\nuAn81wfguN+AIeC3BnIO1RLZnpAEwUWW\n-----END PRIVATE KEY-----\n','','http://192.168.22.10/dfrn_request/friendica4','http://192.168.22.10/dfrn_notify/friendica4','http://192.168.22.10/dfrn_poll/friendica4','http://192.168.22.10/dfrn_confirm/friendica4','http://192.168.22.10/poco/friendica4',0,0,0,0,'','2015-02-02 18:50:11','2015-02-02 18:50:11','2015-02-02 18:50:11','2015-02-02 18:45:30','2015-02-02 18:45:30','0000-00-00 00:00:00',0,0,0,1,0,0,0,0,0,0,'',99,'',0,'','0000-00-00',0,0,''),(11,3,'2015-02-02 18:49:20',0,0,3,1,'dfrn','friendica1','friendica1','','','','','','http://192.168.22.10/photo/389cca68d9a2e64538a81680925703b8-4.jpg','http://192.168.22.10/photo/389cca68d9a2e64538a81680925703b8-5.jpg','http://192.168.22.10/photo/389cca68d9a2e64538a81680925703b8-6.jpg','-----BEGIN PUBLIC KEY-----\nMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEA8/tIxRBs81u0V6ug4VXh\nG8omo+8YIckQqL5m7jWJqQ3v0fCrjyO8EcrjXhKC6esafSOlVhgxzFOkqNH8rRGF\ntF00suNJXy/0fh6EFFvifX1hQw1ZCXXlHxmmM4yNkGOzbRXPeVuSxyn1OtQNGRnB\nSGeqdCZc4QMtgPbVPwTTWYB4rSbVGYbEa5vpqY0OFnlIwC+BtQrd0xFEO7+FGfmv\n2jRt7ImRiyFazef0NhZL890IFeB5+rF8fifC3o7OP0kzB75+z5LkBfnsveZCriaj\nwHjUmMOa/hTOVHw4qYIq6XY4Q2OgaGTs2xqBz4/gniKjNSBbRyYy45prFOuJTLmO\ns07078nfg3NbWq5JkszwPen+gcvc4Pv38z2DBc2RxjgU0YbY4ZV053GIzd8hutA4\nm+eD1Cl0NZcEd9OYi3dtXWACPsf2C0/FsouAj1juXWxeRZ9exHphs0tCXt/RPgyK\nOqFPaPRCBL6MUvM0N1yR2TVk3s3Uq0k/4AExcplJGuZt8bMDIGR6g3RF+bXn3eLb\n9SnpnLSIMpHS/N/JVQzMs4W8tkdwi2OiIeNWhYrFH/stfU7KPYXdwVfduDTAv9LA\nY5Yk8oMomfL5b097eKDdzXFJ3rKUXktobl74REtgAfXEA3OgqCXUGPLbS45I8gsZ\nxBFRmmPH3SuOCQSRkY0gb/UCAwEAAQ==\n-----END PUBLIC KEY-----\n','4968c78f8a9df6fc4e43949748a0e94567dc0f83166cf83cd8e0f98f406e1b3f','','http://192.168.22.10/profile/friendica1','http://192.168.22.10/profile/friendica1','','','','-----BEGIN PRIVATE KEY-----\n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\n/FhZIOns6kkCi8CcaS3V3qLfXQrQSfI=\n-----END PRIVATE KEY-----\n','','http://192.168.22.10/dfrn_request/friendica1','http://192.168.22.10/dfrn_notify/friendica1','http://192.168.22.10/dfrn_poll/friendica1','http://192.168.22.10/dfrn_confirm/friendica1','http://192.168.22.10/poco/friendica1',0,0,0,0,'','2015-02-02 19:00:09','2015-02-02 19:00:09','2015-02-02 19:00:14','2015-02-02 18:51:35','2015-02-02 18:51:35','0000-00-00 00:00:00',0,0,0,1,0,0,0,0,0,0,'',99,'',0,'','0000-00-00',0,0,''),(12,2,'2015-02-02 18:49:41',0,0,3,1,'dfrn','friendica2','friendica2','','','','','','http://192.168.22.10/photo/b18ee0c7f160fdbf8f5d91a56a07a13c-4.jpg','http://192.168.22.10/photo/b18ee0c7f160fdbf8f5d91a56a07a13c-5.jpg','http://192.168.22.10/photo/b18ee0c7f160fdbf8f5d91a56a07a13c-6.jpg','-----BEGIN PUBLIC KEY-----\nMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEA4QpA4flE9v17fh+yrMpR\nU4iKSxLOF/8ROTotrdQsk8HcHkPS7E60QUaRK45gDc9O+7FU1+90V+oo0BqdkJFL\nbFtTogP5fdNSD3ApHz7s03oBX9JenU/8JhxaH1VwEs3lLDlFrywngiYcEDZIeLGZ\nIFK1GWP79+ZwJ9WWoBhzCD4hg4excOWPwwQMjCLYAzI5INEPTw+R3CKD6EsnVLu0\nS+u3zBBsL/A+bgDDfgZoD6igJQlvenK5jStgfbiuVp1mqdXKJ8D+rYz5FQ72Yn3r\nn6AvrXcPQMbLSaUK5m1Ug7beasuhRJ5Z7TVtJ/RLNgA3mOX2A2Vy1i38VYmcTaG5\nom8AYeI/nSvMzJt7FYXOBdxKnSW0UhkXsjBQavefz7sp2Lhcw5U+7eaPi2fIkYio\nVHKU2r8uiJPFfUMAbHA2+rScBjn2lYZH0nfMKrZTzva7y6d19EOsO2aP5e4XNjU8\n0tX/C1iy6LPMCf7xG844iROXi7NPJJoTgx/Sl6+o0oqBl9J5wJDK5U33rUSqYI/p\nsPEfaStqA5CgBAvAsq0N+NQQndJzGfuYaIdfleyUSLIchHhEICE4SN62RHZ6VTlg\nIVCva4xdBrGlkGV/IgE228FwgX4GWELclfUH/KwcGHChlY8dTtVZHbTCuizvPLvl\nXuZQ9ROdQiwkYwGJA/bhM3kCAwEAAQ==\n-----END PUBLIC KEY-----\n','','4968c78f8a9df6fc4e43949748a0e94567dc0f83166cf83cd8e0f98f406e1b3f','http://192.168.22.10/profile/friendica2','http://192.168.22.10/profile/friendica2','','','-----BEGIN PUBLIC KEY-----\nMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAo2aPrPdWu1ePgAXGXf2s\nXghNafRw4ccBMA1hqAHjxc2pLD+DMq3iyVoH+dS8AM2GhKHsmL/oslBDLX5J//VS\n1rgOKkRvMikFaodvDnQz1HcLLyKO05hYJFQS98jrj7bNBHiXXZXvggTgjlYl5eS4\nFX9qT2ORCyD5jlDkHZOiF+mosVeNoLeC/FfoUFQkvm+Evi5hgU8a/HvFw02BGNZE\nEKVLV1PRtQNJHa+G8RrgNFjWN6aZWzsFdfxdWGKcLQDbJYblehUyoBIwnaEIUWih\nR9JadBzLu7OPEe1ID41ZD9XOTDgF6iaN24qjMhXLQMe/I2h4o9FTja9qi2smEz32\nNH8qQW+bin2Krr3EUDur/6GomeIz9IS7M3pAaOLD6rQ3bjFsJcxJhA6jUzHLZ9AA\n6YJ75j0+vTkkshROndncXD2z++7+YYxd1Ceop86s7sRNjcWCuVH4VMC92Acp62SE\nsDfkx3pJAAcff7asCwnds+vKHKGiYv7XNqECkhsDYJP6WuxoPc5IDHYUCgM2HJ/n\nDaTg8eiziouyC4YjRCEh1Ogp6G21KcDWaxEi9H4UsMakzFerPcwkMXbVV4Ya84Yf\nTAs9H0YvMGL1N2SGxLD9+olwMqlIUR5ty2aB+lS/6hy2SJWRihCuPHGy6Kaoj87B\njGswRAib0YN5lgu5n8xEKgECAwEAAQ==\n-----END PUBLIC KEY-----\n','','','http://192.168.22.10/dfrn_request/friendica2','http://192.168.22.10/dfrn_notify/friendica2','http://192.168.22.10/dfrn_poll/friendica2','http://192.168.22.10/dfrn_confirm/friendica2','http://192.168.22.10/poco/friendica2',1,0,0,0,'','2015-02-02 19:00:21','2015-02-02 19:00:21','2015-02-02 19:00:21','2015-02-02 18:51:34','2015-02-02 18:51:34','0000-00-00 00:00:00',0,0,0,1,0,0,0,0,0,0,'',99,'',0,'','0000-00-00',0,0,''),(13,4,'2015-02-02 18:50:05',0,0,3,1,'dfrn','friendica1','friendica1','','','','','','http://192.168.22.10/photo/ba266e976726cba185c218750c545814-4.jpg','http://192.168.22.10/photo/ba266e976726cba185c218750c545814-5.jpg','http://192.168.22.10/photo/ba266e976726cba185c218750c545814-6.jpg','-----BEGIN PUBLIC KEY-----\nMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEA8/tIxRBs81u0V6ug4VXh\nG8omo+8YIckQqL5m7jWJqQ3v0fCrjyO8EcrjXhKC6esafSOlVhgxzFOkqNH8rRGF\ntF00suNJXy/0fh6EFFvifX1hQw1ZCXXlHxmmM4yNkGOzbRXPeVuSxyn1OtQNGRnB\nSGeqdCZc4QMtgPbVPwTTWYB4rSbVGYbEa5vpqY0OFnlIwC+BtQrd0xFEO7+FGfmv\n2jRt7ImRiyFazef0NhZL890IFeB5+rF8fifC3o7OP0kzB75+z5LkBfnsveZCriaj\nwHjUmMOa/hTOVHw4qYIq6XY4Q2OgaGTs2xqBz4/gniKjNSBbRyYy45prFOuJTLmO\ns07078nfg3NbWq5JkszwPen+gcvc4Pv38z2DBc2RxjgU0YbY4ZV053GIzd8hutA4\nm+eD1Cl0NZcEd9OYi3dtXWACPsf2C0/FsouAj1juXWxeRZ9exHphs0tCXt/RPgyK\nOqFPaPRCBL6MUvM0N1yR2TVk3s3Uq0k/4AExcplJGuZt8bMDIGR6g3RF+bXn3eLb\n9SnpnLSIMpHS/N/JVQzMs4W8tkdwi2OiIeNWhYrFH/stfU7KPYXdwVfduDTAv9LA\nY5Yk8oMomfL5b097eKDdzXFJ3rKUXktobl74REtgAfXEA3OgqCXUGPLbS45I8gsZ\nxBFRmmPH3SuOCQSRkY0gb/UCAwEAAQ==\n-----END PUBLIC KEY-----\n','1993beda190780abf81b6585d66643d9c14726c3fc5876604985b687f74877f5','','http://192.168.22.10/profile/friendica1','http://192.168.22.10/profile/friendica1','','','','-----BEGIN PRIVATE KEY-----\nMIIJQQIBADANBgkqhkiG9w0BAQEFAASCCSswggknAgEAAoICAQClyqb0yY9wQ4jm\nPo9836jQWx2FxXtGZ/hPVNSG9/ig+PGdwL+kQy/95yz80A2J+Bu5zd9ePe9Xt2fL\nEw8qX1pVqxMb1WL6L6rmRIy7JGEcRbmggoN/sp+1bCstxVWKTgJYcYv6rgL7aeEP\n3RRt1LcwpqLD9oeIpkHMJ/LnCksCJTgxGwsbJcsRGFd4smgVjL+kcAfiWQjajkim\nU6FbB6K3KrxeNcM//i6vRX0fx7B1PLuEroMfE6VfX/2TW0Gcn4P6VTCJeCMDU+iq\nD4ae880zykRKZyKeFnlG4oe7yYI/n3YD6PglfNgmfH4HoK5oYK6YhZHLWUOg+pQl\nbIf69b60U5f7tnlhtz3mkF0w7HO1TS/6W0BAQABXohv/96RMeZOV1rvHR1fNiDSg\nSWjDbHDeTbaSPyR9czOg+DysfIZc4xVK8Bt10MWz/3Telij95UZS5Lw7YYHlCVVC\n8Q1aeeNM9fm0w8mFcQ0FTYBAkWxP9E9cUbKkGS17lma1uq0sePLTCvzHtrM0zScA\nmneY5ZYAHfhsXmTVuK4tKuDP4d6sfH7zTDm39zSJnI9DNTzK+D8CCPEULqJdeHKa\nuWcL3lO/mtmlL/RwaLIGuvd2OG1+6iGQ8pvxtt792FkzmHWP5HgaQ3+ikYUcTda4\nk4DPhzz9STz+dXYPzgRid0PJ+wQAUQIDAQABAoICAD/VO90J8glGZ2JG+hYZQzUd\nr8s+ks0z4L4iqkVhGkBYOScE/IRxPfwjUwXv0RarCXnLk1IExK9gNT1SFEe7ONu9\nJ3lS+m3bhpBsGkc/pYguLF9pgNnc23MNt75CuUGr8Wk+JqgY8Zr9VCM4etIi0XmQ\n3yBWPi7V3IWPaA2ev+yOigkWIXuNXJczaRJWlo6dh3f3joGOyELl/4DSuFCFKxgd\nAzO+vXNZGX5wYdGnoAAzpvtZ+bAwbz6+hbKDs0prfHQY8rwrHkf8uZsoqStwMTTc\njtiaxxBZFM6/D4W0+0olylmNDGXaoJqI2jlzm1MiznZ5Dv5dWxWTBRE3rU9p6MeE\nlIWRrZpFe/BavvRPAr3XTVHTc7JgRYCgiUA1Q/yQ27BMTzeW8gudXDWQE9/IyI1+\ncqo8Fdiz+OgNvB1q2ohS9YrDU3LQrdTbdu9ryVCgJM3Gn0qmLxtOWyTVC6KL6dS3\nGzFPT2e1V0G+TzHG+40eMy/UWZPSiksxhUMhSfqK/CVZ7oEnG90DzcKsCvgMAxch\ni12a9aCWiJEaMX2xzcblx1DFA++IY/U8uV701ANtZJZM11VPqpQEtH5nkhFNhu9J\nG6L/Z/sZ6yPXi5e6QB3oE7Yjw/5iVN+sofdi8yn2d/dVBESmd9Z3DEYdSpEz0tem\niGFywmhRi/3ZZeIHP6ABAoIBAQDWvenT4DTrl1YTzmX9Di/3vS9mppvQWDlx6Vuo\n/jKzM+1TkTiEdveUt6Gvs3XcPHxq2xpNp/SCtu4QEktR33vnbtIgbCLhz7zrcR28\njiB7npYDS5UcXTqk3iDVS/NadZVReElXAVRrKpcE3USwbzPPHu02vq9sBx3L10K0\nrJGgJngUoed222oVmV9P+b2DN2gEHyKTX0WCjxwOcKJMT+ffYpbu2//lzfdSONAw\nfdea7XUxDhHYWm+8rsvpdQWSGX2YBwZqfa9jpjOFVrIoR0NYU/yNrgw1q7kovGMG\nW/hsTUwFyKtz36nNs1O4VTWr0YNIEBK+Q5tUkZVi3ErGQCIBAoIBAQDFpR6I1GeT\nzD8IL7gdnmM21oVuWa/rzsiCdVSW14K9wfIbgUgtgB0RCzGhDJC6yBjjwjWnzzZY\n4KbJZyEB0719P+JOEIQRCGTb6ZbhkmEOK12ZtggMDBFsxRlccr/UN3FoBPN6+nZE\nqjQyALd/LFNo98Lhg/VddMsZo7QCc0pqBffHmJmZtgv/BSDfN6OyM97HIMBRqNlE\nYmAbH5gMKc23++EyFq9pHPrsb3igf8MhA44bbb8dAtTLB1CFaYTYk8XkJ2JinfYC\nqNk4AfylVFzIpJ7Mc7k6BwDwkT0Tu52FEqvwgw3vgo7Jhd0vfgmyT15vhFq5w+4B\n1Jv7YNEefT5RAoIBAAbA0DKukVt7VeSnkAOGR7HlzDDROoMx0xSm/w/wdo22K1d+\ncKWRzDVsFPSeky1K5arCmzAoAQN/VztAKAg6G/5qOMd2Px6U1t8cno/IdHMOyK7v\n2I+cyvRWW/f5PHzyx7BZNQ08aHg6TaeEgd1+kcWItnMLSh7+lkxLx7hA2Q+NRid3\n8/yD5/En8pxkQTZ4Lpg6lm7GBzyU3ZACsMfvl14qDo8Schi7AnUefkWYH4iqwQ26\n4IrKRUtMv/LmkDdI/+8hAW2l6DcdCe++iznDC/YiJgYanB2v+dGzIvYXPFfDkol4\nBxRMy11Br3dTjq2JmDRS9RPwsljVfzotrVhQugECggEAbdybvXk73ebhfp5v3F7n\nTVsvLijCZfQ6dnHbxEElFm+RMYLKaShWf9vWCWxfosOJOkkA5DeFQSAW9crSiR52\nrQFuvO/nSUR+M9ODH/3q3yJx0/hgProSkYB52W6bfM4YxrZB1TEVvpNRkh3d4d30\nu1tFQ2/DWuCJ6MWbUOVfDtIkahlEADI2NtpV7F4UKwE0K0HkRT/zDVUVkN4d+Vzf\nUg67nckIVgha3kQULDr4bwh33H1Dh0/EktqNAqulwXFaxbiyspiVX+MVY1GPayMa\ntBj1gDYvVrb/6bkB108pfwfi9T0T6PeMgS5cxYJsx2Xg22IZwDrNuMzCq5ekhise\nEQKCAQB4AUuBYKS4cAA7t5PSZG3TWrej9+8QMygzDDSpxQt/nyBM3Gzy58YOIczS\nQhgUGhwSA9HF2ghdJ5pyHpuT0OVWNtCpZr7NGlq28dYjC6vbr36b79xrW+poPFv7\nfOSSLHOxW/rqvWxconkMYfUDgSay333r+t3KNPzNwPRjawZBL91I2Dnjy2XgogT+\nXV9Xr0mQ5g8iQAV+HNYXYuQxlAkbVkpLyJAvacPjrgQ6+BrQMhzklKo6h4RW9PS9\n9PopqjwsXCKR1VnZhkhbt66xqmkEOtyl6ytYhUKDlzI3z8V1yK8V7hGhM2P17ksr\nNjUrIANF0eZWxtdfweUXB3ncY1qM\n-----END PRIVATE KEY-----\n','','http://192.168.22.10/dfrn_request/friendica1','http://192.168.22.10/dfrn_notify/friendica1','http://192.168.22.10/dfrn_poll/friendica1','http://192.168.22.10/dfrn_confirm/friendica1','http://192.168.22.10/poco/friendica1',0,0,0,0,'','2015-02-02 19:00:15','2015-02-02 19:00:15','2015-02-02 19:00:15','2015-02-02 18:52:24','2015-02-02 18:52:24','0000-00-00 00:00:00',0,0,0,1,0,0,0,0,0,0,'',99,'',0,'','0000-00-00',0,0,''),(14,2,'2015-02-02 18:50:08',0,0,3,1,'dfrn','friendica3','friendica3','','','','','','http://192.168.22.10/photo/1fc6596c195944666e18cbd313795942-4.jpg','http://192.168.22.10/photo/1fc6596c195944666e18cbd313795942-5.jpg','http://192.168.22.10/photo/1fc6596c195944666e18cbd313795942-6.jpg','-----BEGIN PUBLIC KEY-----\nMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAliSi9id9Ll1dpzXC/lL6\n2/5FYxdn0XYb5I2JeXBNopwbXOLDsnnzXlV2NN8riZaYRQcIbS00OuAvyYj/IG3i\nDykD2zPjVnLEWADtj1YhLSgKcfQgv6Cj/7CPdb1Rg3icbvWdVY9wabcblVa9k+qr\ngK273C47lCQzXgvMtPst1DOzxtVCGmPJJHKjXZ8hDvf/IS0pVGa0zIv9kdofqQV9\nD5u5LuNzRuEGnrpAzpfzMueDppBrrrr37sKrZfCvyYHZ/ouFgZ3bY9NNVnjuFItP\nrcDlJPL8NhGmmzuYtI03MLor+1yVdBKLIJ3G2Bxzn5tynjSX9XZzOQgC3+YVH4TU\n7WDUHjTWJ9mliD2M1WXCp2Lwc/pV1Prnvv057pAqdiMhnddzucV9nLk9X9fR8xyy\nC7PRwx0hkB427EtAYaOTr3RtInP6+cm+3M7wd6ZKTqWAU+Pi20RNrQRsqfHJ7+hx\n+i5rIG6/knB/C+MAAutEH25oY8kJYtJzXid2OBSE462DTuYaee9aGHUDNy+HQau8\nBhJ4/Wsc7Nf/7GRZ38SVT/HQShl47B1AG5AyomyWgwn9J2KJ8kMuScPmBv5u7Mwq\nSjLk5pLkwyUtZwUu8UtsFKw9HLcRksGSze5s2cbw3rf/6jgKycT72Bfm1fjRnv6s\nXt1GdSzfG9zVHuEwRDgTX3UCAwEAAQ==\n-----END PUBLIC KEY-----\n','','1993beda190780abf81b6585d66643d9c14726c3fc5876604985b687f74877f5','http://192.168.22.10/profile/friendica3','http://192.168.22.10/profile/friendica3','','','-----BEGIN PUBLIC KEY-----\nMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEApcqm9MmPcEOI5j6PfN+o\n0FsdhcV7Rmf4T1TUhvf4oPjxncC/pEMv/ecs/NANifgbuc3fXj3vV7dnyxMPKl9a\nVasTG9Vi+i+q5kSMuyRhHEW5oIKDf7KftWwrLcVVik4CWHGL+q4C+2nhD90UbdS3\nMKaiw/aHiKZBzCfy5wpLAiU4MRsLGyXLERhXeLJoFYy/pHAH4lkI2o5IplOhWwei\ntyq8XjXDP/4ur0V9H8ewdTy7hK6DHxOlX1/9k1tBnJ+D+lUwiXgjA1Poqg+GnvPN\nM8pESmcinhZ5RuKHu8mCP592A+j4JXzYJnx+B6CuaGCumIWRy1lDoPqUJWyH+vW+\ntFOX+7Z5Ybc95pBdMOxztU0v+ltAQEAAV6Ib//ekTHmTlda7x0dXzYg0oElow2xw\n3k22kj8kfXMzoPg8rHyGXOMVSvAbddDFs/903pYo/eVGUuS8O2GB5QlVQvENWnnj\nTPX5tMPJhXENBU2AQJFsT/RPXFGypBkte5ZmtbqtLHjy0wr8x7azNM0nAJp3mOWW\nAB34bF5k1biuLSrgz+HerHx+80w5t/c0iZyPQzU8yvg/AgjxFC6iXXhymrlnC95T\nv5rZpS/0cGiyBrr3djhtfuohkPKb8bbe/dhZM5h1j+R4GkN/opGFHE3WuJOAz4c8\n/Uk8/nV2D84EYndDyfsEAFECAwEAAQ==\n-----END PUBLIC KEY-----\n','','','http://192.168.22.10/dfrn_request/friendica3','http://192.168.22.10/dfrn_notify/friendica3','http://192.168.22.10/dfrn_poll/friendica3','http://192.168.22.10/dfrn_confirm/friendica3','http://192.168.22.10/poco/friendica3',1,0,0,0,'','2015-02-02 19:00:12','2015-02-02 19:00:12','2015-02-02 19:00:12','2015-02-02 18:52:24','2015-02-02 18:52:24','0000-00-00 00:00:00',0,0,0,1,0,0,0,0,0,0,'',99,'',0,'','0000-00-00',0,0,''),(15,5,'2015-02-02 18:50:52',0,0,3,1,'dfrn','friendica1','friendica1','','','','','','http://192.168.22.10/photo/73de577b8bcc76d9358ab8536f0a5cca-4.jpg','http://192.168.22.10/photo/73de577b8bcc76d9358ab8536f0a5cca-5.jpg','http://192.168.22.10/photo/73de577b8bcc76d9358ab8536f0a5cca-6.jpg','-----BEGIN PUBLIC KEY-----\nMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEA8/tIxRBs81u0V6ug4VXh\nG8omo+8YIckQqL5m7jWJqQ3v0fCrjyO8EcrjXhKC6esafSOlVhgxzFOkqNH8rRGF\ntF00suNJXy/0fh6EFFvifX1hQw1ZCXXlHxmmM4yNkGOzbRXPeVuSxyn1OtQNGRnB\nSGeqdCZc4QMtgPbVPwTTWYB4rSbVGYbEa5vpqY0OFnlIwC+BtQrd0xFEO7+FGfmv\n2jRt7ImRiyFazef0NhZL890IFeB5+rF8fifC3o7OP0kzB75+z5LkBfnsveZCriaj\nwHjUmMOa/hTOVHw4qYIq6XY4Q2OgaGTs2xqBz4/gniKjNSBbRyYy45prFOuJTLmO\ns07078nfg3NbWq5JkszwPen+gcvc4Pv38z2DBc2RxjgU0YbY4ZV053GIzd8hutA4\nm+eD1Cl0NZcEd9OYi3dtXWACPsf2C0/FsouAj1juXWxeRZ9exHphs0tCXt/RPgyK\nOqFPaPRCBL6MUvM0N1yR2TVk3s3Uq0k/4AExcplJGuZt8bMDIGR6g3RF+bXn3eLb\n9SnpnLSIMpHS/N/JVQzMs4W8tkdwi2OiIeNWhYrFH/stfU7KPYXdwVfduDTAv9LA\nY5Yk8oMomfL5b097eKDdzXFJ3rKUXktobl74REtgAfXEA3OgqCXUGPLbS45I8gsZ\nxBFRmmPH3SuOCQSRkY0gb/UCAwEAAQ==\n-----END PUBLIC KEY-----\n','0bc099852fd312feafb2cba2fa0019cf973e643951ddbf6ffdf6fad5aa58f25a','','http://192.168.22.10/profile/friendica1','http://192.168.22.10/profile/friendica1','','','','-----BEGIN PRIVATE KEY-----\n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\n3fhPNAoXmu3k6cGhzDjNG5bQVWIU8g==\n-----END PRIVATE KEY-----\n','','http://192.168.22.10/dfrn_request/friendica1','http://192.168.22.10/dfrn_notify/friendica1','http://192.168.22.10/dfrn_poll/friendica1','http://192.168.22.10/dfrn_confirm/friendica1','http://192.168.22.10/poco/friendica1',0,0,0,0,'','2015-02-02 19:00:06','2015-02-02 19:00:06','2015-02-02 19:00:06','2015-02-02 18:51:07','2015-02-02 18:51:07','0000-00-00 00:00:00',0,0,0,1,0,0,0,0,0,0,'',99,'',0,'','0000-00-00',0,0,''),(16,2,'2015-02-02 18:50:55',0,0,3,1,'dfrn','friendica5','friendica5','','','','','','http://192.168.22.10/photo/01072618a17425401fafdeb40fcd79ac-4.jpg','http://192.168.22.10/photo/01072618a17425401fafdeb40fcd79ac-5.jpg','http://192.168.22.10/photo/01072618a17425401fafdeb40fcd79ac-6.jpg','-----BEGIN PUBLIC KEY-----\nMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAyvuTsaZaTgPDm69uxixR\n8qd0ylkeA/IY3KDsI4vjrLuF7WLmU07lzQXmilQJ+MlipIju+wFXx3a8ksavEYpP\n9ZU9YrpXe7zneHRLTxgMDH9IMbSCIUAkEsozpzF02Ft0+G36tzIET2oTuU6uLtx6\nI5ifmF/qFC+4avAoABQg8qfOPpuaP3AJ6FppqEifUsb0lTWqP4zg7PQXC36oKIJ0\nUDuQniVy8lTxVfkhoi/aHZw0khVXe6tDK7C0ALg5U7jLTDNdJ1R0v5iC41QK4CEt\n5x4x008mdk6xLKGZiou1UuEPv/+WSQU1Q21JFzNVGBASkRu7dUVH6k+59VQr3ONI\n5bdbAZviVY3ezFNtBeWWfDk06BWoZwX67eGG/dVsCPnEkuP9CpemcwwGZbYCIqf0\n++5h0CU41CjNShHdBD+Q+ZQmT3I4sAlPZ7x90nA9KfuKM9QyTPQ9EmK2bxq7TKvV\nzLqHptL5mC/VH4FbO1eKf7p/f7XxOaeXGANUaRSPwLSO7lk8lkl/wj7sNJYGYygC\nMLTqH8GTizpyPkSDv5xO6bYn/g3BYFuUM5x1MZVS8MdG2a3L8UzRiXUsm/AjnfSV\nImN2+8bHJI0wy9zRxfEaG8pvbupb7UU5zWr3WRkSVr84Bq1SJNxLfWZj3GHLaesr\nu3exEdYGfxLuG1zHIROVwlcCAwEAAQ==\n-----END PUBLIC KEY-----\n','','0bc099852fd312feafb2cba2fa0019cf973e643951ddbf6ffdf6fad5aa58f25a','http://192.168.22.10/profile/friendica5','http://192.168.22.10/profile/friendica5','','','-----BEGIN PUBLIC KEY-----\nMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEA2wrb3Jp9USCnw1LrIns9\nGlZYpgiBJbZxIzXis/9j00WajFna5IW1jBrWLlgauhZit8lgfTJDbcigxKaOJ3Bn\nljCrT5NqMmO8Mldims0yhqX68psCqhd/2GJm4i0gFqc6QU4T9A3exIN+WMngk2ys\n2De4adlVEedo+l8YcYC24/e253e/qAbLfkzeGU2dOtcY1g3saVmIkEdXJAUvtCSs\nYfPbep96AOuAj2P3t1vLyeQSGlvz1uKxwMFlOH2uDylHHqR4p+cmAtZ+YUCwW6Tz\nkoSwXhorCdd+9G1Yv8n3WFKIcRlRZstbvOt1RdyNIkw7r0g0r3X7nf1a7SWgpxy/\nRSoYWDKVvHA08QrbTWdH7vdu3+X7S255pvyUDhkexP+iRZg5DFlAhhq+8018qpxp\nJ9zdSo5gTX0RonwNKSUKmR1mMg7F01v22qzbBspM95446NOOUS7xh3wKDGn7joPr\na54kH4u5Aya/v4qZ8QDGKYVzkX5xZY19kSz1iBzixsSlIHaa43cTqHOy+xA54sPp\nlJe/yMSpAo3itt7DIz33HcJnwwRxTKTLZwqfxOB3rdu2GVpLA6JIEvl7OOLFfOcS\nS+9QankJK/J7Xe/aldmWqQBogx9dLW7XGTPSDF/unNctazg0K84aWUbH7Nc9bC5G\nvszuTsVfiavruK0UCE0qQtkCAwEAAQ==\n-----END PUBLIC KEY-----\n','','','http://192.168.22.10/dfrn_request/friendica5','http://192.168.22.10/dfrn_notify/friendica5','http://192.168.22.10/dfrn_poll/friendica5','http://192.168.22.10/dfrn_confirm/friendica5','http://192.168.22.10/poco/friendica5',1,0,0,0,'','2015-02-02 19:00:18','2015-02-02 19:00:18','2015-02-02 19:00:18','2015-02-02 18:51:07','2015-02-02 18:51:07','0000-00-00 00:00:00',0,0,0,1,0,0,0,0,0,0,'',99,'',0,'','0000-00-00',0,0,''),(17,6,'2015-02-02 18:51:55',0,0,3,1,'dfrn','friendica1','friendica1','','','','','','http://192.168.22.10/photo/b4cbb73d1178aab3424a788419bbe016-4.jpg','http://192.168.22.10/photo/b4cbb73d1178aab3424a788419bbe016-5.jpg','http://192.168.22.10/photo/b4cbb73d1178aab3424a788419bbe016-6.jpg','-----BEGIN PUBLIC KEY-----\nMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEA8/tIxRBs81u0V6ug4VXh\nG8omo+8YIckQqL5m7jWJqQ3v0fCrjyO8EcrjXhKC6esafSOlVhgxzFOkqNH8rRGF\ntF00suNJXy/0fh6EFFvifX1hQw1ZCXXlHxmmM4yNkGOzbRXPeVuSxyn1OtQNGRnB\nSGeqdCZc4QMtgPbVPwTTWYB4rSbVGYbEa5vpqY0OFnlIwC+BtQrd0xFEO7+FGfmv\n2jRt7ImRiyFazef0NhZL890IFeB5+rF8fifC3o7OP0kzB75+z5LkBfnsveZCriaj\nwHjUmMOa/hTOVHw4qYIq6XY4Q2OgaGTs2xqBz4/gniKjNSBbRyYy45prFOuJTLmO\ns07078nfg3NbWq5JkszwPen+gcvc4Pv38z2DBc2RxjgU0YbY4ZV053GIzd8hutA4\nm+eD1Cl0NZcEd9OYi3dtXWACPsf2C0/FsouAj1juXWxeRZ9exHphs0tCXt/RPgyK\nOqFPaPRCBL6MUvM0N1yR2TVk3s3Uq0k/4AExcplJGuZt8bMDIGR6g3RF+bXn3eLb\n9SnpnLSIMpHS/N/JVQzMs4W8tkdwi2OiIeNWhYrFH/stfU7KPYXdwVfduDTAv9LA\nY5Yk8oMomfL5b097eKDdzXFJ3rKUXktobl74REtgAfXEA3OgqCXUGPLbS45I8gsZ\nxBFRmmPH3SuOCQSRkY0gb/UCAwEAAQ==\n-----END PUBLIC KEY-----\n','cd8d6796a986b38a7fb102d05cb41dabe3bdd042f05bf2e5d184a9fdae0255fc','','http://192.168.22.10/profile/friendica1','http://192.168.22.10/profile/friendica1','','','','-----BEGIN PRIVATE KEY-----\n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\nyi/YAMIgyQM3WSd9kEzLbr40D8NRK8w=\n-----END PRIVATE KEY-----\n','','http://192.168.22.10/dfrn_request/friendica1','http://192.168.22.10/dfrn_notify/friendica1','http://192.168.22.10/dfrn_poll/friendica1','http://192.168.22.10/dfrn_confirm/friendica1','http://192.168.22.10/poco/friendica1',0,0,0,0,'','2015-02-02 19:00:03','2015-02-02 19:00:03','2015-02-02 19:00:16','2015-02-02 18:53:04','2015-02-02 18:53:04','0000-00-00 00:00:00',0,0,0,1,0,0,0,0,0,0,'',99,'',0,'','0000-00-00',0,0,''),(18,2,'2015-02-02 18:52:03',0,0,3,1,'dfrn','friendica4','friendica4','','','','','','http://192.168.22.10/photo/0f1ac566d253bcd264437b7f7a347f88-4.jpg','http://192.168.22.10/photo/0f1ac566d253bcd264437b7f7a347f88-5.jpg','http://192.168.22.10/photo/0f1ac566d253bcd264437b7f7a347f88-6.jpg','-----BEGIN PUBLIC KEY-----\nMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEA3nCYawg+HTyQgV7a7Osg\nCXeACOitKLhcb2WDTN/lLOMO7n1lSm3Kdv1dbOc0/lkAPeB2XsLF/aDfoUPWWg4Q\n/oRPrXFIi2dK/cIQVvgOhebQheztAYPJyaYYMWVK7bLbPuKVTyzALqkWD8Zjjtit\n4Uvm3kjmcofKr+/Lw+VFaEBMESQDbP5eTDtQeDGGjluWQMj1/D+V/Tcm+SMrAVIv\njyklQEhBJlYGJ+LsfXv4XXbeH73dkIXkQW5JgWQyPCloJ+PxmmjjEDozsdgmFQXq\n6T9HFVHvW2O2lmDoaTrbIGrULWBpslKZJJrV+LgtkzhP4uuKfJPD2DpMJ4+ixtBE\nzM/o+EuYDTz0P3dTvwruq1t8gUYcQOVUzEp1LM0qYDMVY86XneW1W5xghztl5zqy\nGBMBvjVIFvMVL1cVeXze4zpwwKln2cArepToSpN7lmy9EgBd9mZrVLWosZShB9R0\n05kBc2Tfv7FlixwZ1P8rwJn9sEEs9oa6TnRLL+7L8eqapg6vUI1G7e0HWWEjdHsR\nrYVHYW+ogtOYjrQ1Tfh1W2PtNaez5fGYVBDjC+1vy0scJmqrgy00z7MHBT2WTOAL\noHbdedhpa3UZ0FrsCto+vqil8BcF5aBhi2Hi5YdKtbY3EBsaabcSO2joc7rlmee4\nxdKfDRYXCPysFPhZNgIW708CAwEAAQ==\n-----END PUBLIC KEY-----\n','','cd8d6796a986b38a7fb102d05cb41dabe3bdd042f05bf2e5d184a9fdae0255fc','http://192.168.22.10/profile/friendica4','http://192.168.22.10/profile/friendica4','','','-----BEGIN PUBLIC KEY-----\nMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAwsqhbQeE4G63CefbGnl6\naPz/tNaRwiCwc2CoVoazw4cyNkvgcmnhmzJvyA9hKhqzMQYibPID8z1S5BdaP1dh\n1sHpTP2nYEqE/M4oaXm3zk4zBQdxMXp4Xi6spu3W4oLdn9dQKwwhfcD5YioDrksI\nW/SUEgZIR7XwclVU5Shyj/Z5ssllXqOWSPXAifQ5TcP3PbqEl+IFuN3X9P6J51cH\nemeDLaGqSpoiOlg5Y7E73kZYiXq1xUW5l4c2/wJ2FKeGmWvJaXh+06hkN5fd80Y6\n89vSRsQoaPXnsTrdymquNZIi7yGxJU/uZz8ZD158PQwC5ucGE1ockA8PIUUi6DcJ\nZfSFQjuzrlFsqKaJS7MQc+nysLRdrbjBcQKQHEYbQA2PHRZ9rU/9flICNTSPV4f5\ni7WwicjU1BvYcD/1WEacOPYZ76NCae4VaJvaP6cQpevcd3w9IbN1iC3JVf89oKYp\nBLPpT/T3VI0d17Uugg/51Yz+4RTmYZSZ/SMgCUfG4uE19m8y/j2fSUC6RTqISBsG\nDCRbIu7rnUkS5HvcxtVKwkHT6cANVUFatFIIfy4/e0aE7RO7TvCqJ+WBuK7WA0uS\nabbFxBP6e/eDUDEQI8TIGuMn/fnHRTqchnPmuoTKAZaihh1NU2Jo8+K4s7AbPcwZ\nZpzi1oJnWhSxsGEeGilylk8CAwEAAQ==\n-----END PUBLIC KEY-----\n','','','http://192.168.22.10/dfrn_request/friendica4','http://192.168.22.10/dfrn_notify/friendica4','http://192.168.22.10/dfrn_poll/friendica4','http://192.168.22.10/dfrn_confirm/friendica4','http://192.168.22.10/poco/friendica4',1,0,0,0,'','2015-02-02 19:00:24','2015-02-02 19:00:24','2015-02-02 19:00:24','2015-02-02 18:53:03','2015-02-02 18:53:03','0000-00-00 00:00:00',0,0,0,1,0,0,0,0,0,0,'',99,'',0,'','0000-00-00',0,0,''); +INSERT INTO `contact` VALUES (1,1,'2015-02-02 11:24:17',1,0,0,0,'','admin','admin','','','','','','http://192.168.22.10/photo/profile/1.jpg','http://192.168.22.10/photo/avatar/1.jpg','http://192.168.22.10/photo/micro/1.jpg','','','','http://192.168.22.10/profile/admin','http://192.168.22.10/profile/admin','','','','','','http://192.168.22.10/dfrn_request/admin','http://192.168.22.10/dfrn_notify/admin','http://192.168.22.10/dfrn_poll/admin','http://192.168.22.10/dfrn_confirm/admin','http://192.168.22.10/poco/admin',0,0,0,0,'','0001-01-01 00:00:00','0001-01-01 00:00:00','2015-02-02 11:24:17','2015-02-02 11:24:17','2015-02-02 11:24:17','0001-01-01 00:00:00',0,0,0,0,0,0,0,0,0,0,'',0,'',0,'','0001-01-01',0,0,''),(2,2,'2015-02-02 12:02:11',1,0,0,0,'','friendica1','friendica1','','','','','','http://192.168.22.10/photo/profile/2.jpg','http://192.168.22.10/photo/avatar/2.jpg','http://192.168.22.10/photo/micro/2.jpg','','','','http://192.168.22.10/profile/friendica1','http://192.168.22.10/profile/friendica1','','','','','','http://192.168.22.10/dfrn_request/friendica1','http://192.168.22.10/dfrn_notify/friendica1','http://192.168.22.10/dfrn_poll/friendica1','http://192.168.22.10/dfrn_confirm/friendica1','http://192.168.22.10/poco/friendica1',0,0,0,0,'','0001-01-01 00:00:00','0001-01-01 00:00:00','2015-02-02 12:02:11','2015-02-02 12:02:11','2015-02-02 12:02:11','0001-01-01 00:00:00',0,0,0,0,0,0,0,0,0,0,'',0,'',0,'','0001-01-01',0,0,''),(3,3,'2015-02-02 12:02:40',1,0,0,0,'','friendica2','friendica2','','','','','','http://192.168.22.10/photo/profile/3.jpg','http://192.168.22.10/photo/avatar/3.jpg','http://192.168.22.10/photo/micro/3.jpg','','','','http://192.168.22.10/profile/friendica2','http://192.168.22.10/profile/friendica2','','','','','','http://192.168.22.10/dfrn_request/friendica2','http://192.168.22.10/dfrn_notify/friendica2','http://192.168.22.10/dfrn_poll/friendica2','http://192.168.22.10/dfrn_confirm/friendica2','http://192.168.22.10/poco/friendica2',0,0,0,0,'','0001-01-01 00:00:00','0001-01-01 00:00:00','2015-02-02 12:02:40','2015-02-02 12:02:40','2015-02-02 12:02:40','0001-01-01 00:00:00',0,0,0,0,0,0,0,0,0,0,'',0,'',0,'','0001-01-01',0,0,''),(4,4,'2015-02-02 12:03:07',1,0,0,0,'','friendica3','friendica3','','','','','','http://192.168.22.10/photo/profile/4.jpg','http://192.168.22.10/photo/avatar/4.jpg','http://192.168.22.10/photo/micro/4.jpg','','','','http://192.168.22.10/profile/friendica3','http://192.168.22.10/profile/friendica3','','','','','','http://192.168.22.10/dfrn_request/friendica3','http://192.168.22.10/dfrn_notify/friendica3','http://192.168.22.10/dfrn_poll/friendica3','http://192.168.22.10/dfrn_confirm/friendica3','http://192.168.22.10/poco/friendica3',0,0,0,0,'','0001-01-01 00:00:00','0001-01-01 00:00:00','2015-02-02 12:03:07','2015-02-02 12:03:07','2015-02-02 12:03:07','0001-01-01 00:00:00',0,0,0,0,0,0,0,0,0,0,'',0,'',0,'','0001-01-01',0,0,''),(5,5,'2015-02-02 12:04:06',1,0,0,0,'','friendica5','friendica5','','','','','','http://192.168.22.10/photo/profile/5.jpg','http://192.168.22.10/photo/avatar/5.jpg','http://192.168.22.10/photo/micro/5.jpg','','','','http://192.168.22.10/profile/friendica5','http://192.168.22.10/profile/friendica5','','','','','','http://192.168.22.10/dfrn_request/friendica5','http://192.168.22.10/dfrn_notify/friendica5','http://192.168.22.10/dfrn_poll/friendica5','http://192.168.22.10/dfrn_confirm/friendica5','http://192.168.22.10/poco/friendica5',0,0,0,0,'','0001-01-01 00:00:00','0001-01-01 00:00:00','2015-02-02 12:04:06','2015-02-02 12:04:06','2015-02-02 12:04:06','0001-01-01 00:00:00',0,0,0,0,0,0,0,0,0,0,'',0,'',0,'','0001-01-01',0,0,''),(6,6,'2015-02-02 12:04:29',1,0,0,0,'','friendica4','friendica4','','','','','','http://192.168.22.10/photo/profile/6.jpg','http://192.168.22.10/photo/avatar/6.jpg','http://192.168.22.10/photo/micro/6.jpg','','','','http://192.168.22.10/profile/friendica4','http://192.168.22.10/profile/friendica4','','','','','','http://192.168.22.10/dfrn_request/friendica4','http://192.168.22.10/dfrn_notify/friendica4','http://192.168.22.10/dfrn_poll/friendica4','http://192.168.22.10/dfrn_confirm/friendica4','http://192.168.22.10/poco/friendica4',0,0,0,0,'','0001-01-01 00:00:00','0001-01-01 00:00:00','2015-02-02 12:04:29','2015-02-02 12:04:29','2015-02-02 12:04:29','0001-01-01 00:00:00',0,0,0,0,0,0,0,0,0,0,'',0,'',0,'','0001-01-01',0,0,''),(7,4,'2015-02-02 18:41:17',0,0,3,1,'dfrn','friendica2','friendica2','','','','','','http://192.168.22.10/photo/343e3e9f0f5a36ea763c101490db9ca6-4.jpg','http://192.168.22.10/photo/343e3e9f0f5a36ea763c101490db9ca6-5.jpg','http://192.168.22.10/photo/343e3e9f0f5a36ea763c101490db9ca6-6.jpg','-----BEGIN PUBLIC KEY-----\nMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEA4QpA4flE9v17fh+yrMpR\nU4iKSxLOF/8ROTotrdQsk8HcHkPS7E60QUaRK45gDc9O+7FU1+90V+oo0BqdkJFL\nbFtTogP5fdNSD3ApHz7s03oBX9JenU/8JhxaH1VwEs3lLDlFrywngiYcEDZIeLGZ\nIFK1GWP79+ZwJ9WWoBhzCD4hg4excOWPwwQMjCLYAzI5INEPTw+R3CKD6EsnVLu0\nS+u3zBBsL/A+bgDDfgZoD6igJQlvenK5jStgfbiuVp1mqdXKJ8D+rYz5FQ72Yn3r\nn6AvrXcPQMbLSaUK5m1Ug7beasuhRJ5Z7TVtJ/RLNgA3mOX2A2Vy1i38VYmcTaG5\nom8AYeI/nSvMzJt7FYXOBdxKnSW0UhkXsjBQavefz7sp2Lhcw5U+7eaPi2fIkYio\nVHKU2r8uiJPFfUMAbHA2+rScBjn2lYZH0nfMKrZTzva7y6d19EOsO2aP5e4XNjU8\n0tX/C1iy6LPMCf7xG844iROXi7NPJJoTgx/Sl6+o0oqBl9J5wJDK5U33rUSqYI/p\nsPEfaStqA5CgBAvAsq0N+NQQndJzGfuYaIdfleyUSLIchHhEICE4SN62RHZ6VTlg\nIVCva4xdBrGlkGV/IgE228FwgX4GWELclfUH/KwcGHChlY8dTtVZHbTCuizvPLvl\nXuZQ9ROdQiwkYwGJA/bhM3kCAwEAAQ==\n-----END PUBLIC KEY-----\n','af2c1bff1518afaf2df6d3600a7f2f036cc758f0044c4c3c7649cf53edcb4faa','','http://192.168.22.10/profile/friendica2','http://192.168.22.10/profile/friendica2','','','','-----BEGIN PRIVATE KEY-----\n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\ndLrR3o8mxnuDuIMDIUjpEZaR+FYKCSQ=\n-----END PRIVATE KEY-----\n','','http://192.168.22.10/dfrn_request/friendica2','http://192.168.22.10/dfrn_notify/friendica2','http://192.168.22.10/dfrn_poll/friendica2','http://192.168.22.10/dfrn_confirm/friendica2','http://192.168.22.10/poco/friendica2',0,0,0,0,'','2015-02-02 18:50:08','2015-02-02 18:50:08','2015-02-02 18:50:08','2015-02-02 18:41:48','2015-02-02 18:41:48','0001-01-01 00:00:00',0,0,0,1,0,0,0,0,0,0,'',99,'',0,'','0001-01-01',0,0,''),(8,3,'2015-02-02 18:41:21',0,0,3,1,'dfrn','friendica3','friendica3','','','','','','http://192.168.22.10/photo/1f4766db71f0f2d503287947c1d67dcd-4.jpg','http://192.168.22.10/photo/1f4766db71f0f2d503287947c1d67dcd-5.jpg','http://192.168.22.10/photo/1f4766db71f0f2d503287947c1d67dcd-6.jpg','-----BEGIN PUBLIC KEY-----\nMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAliSi9id9Ll1dpzXC/lL6\n2/5FYxdn0XYb5I2JeXBNopwbXOLDsnnzXlV2NN8riZaYRQcIbS00OuAvyYj/IG3i\nDykD2zPjVnLEWADtj1YhLSgKcfQgv6Cj/7CPdb1Rg3icbvWdVY9wabcblVa9k+qr\ngK273C47lCQzXgvMtPst1DOzxtVCGmPJJHKjXZ8hDvf/IS0pVGa0zIv9kdofqQV9\nD5u5LuNzRuEGnrpAzpfzMueDppBrrrr37sKrZfCvyYHZ/ouFgZ3bY9NNVnjuFItP\nrcDlJPL8NhGmmzuYtI03MLor+1yVdBKLIJ3G2Bxzn5tynjSX9XZzOQgC3+YVH4TU\n7WDUHjTWJ9mliD2M1WXCp2Lwc/pV1Prnvv057pAqdiMhnddzucV9nLk9X9fR8xyy\nC7PRwx0hkB427EtAYaOTr3RtInP6+cm+3M7wd6ZKTqWAU+Pi20RNrQRsqfHJ7+hx\n+i5rIG6/knB/C+MAAutEH25oY8kJYtJzXid2OBSE462DTuYaee9aGHUDNy+HQau8\nBhJ4/Wsc7Nf/7GRZ38SVT/HQShl47B1AG5AyomyWgwn9J2KJ8kMuScPmBv5u7Mwq\nSjLk5pLkwyUtZwUu8UtsFKw9HLcRksGSze5s2cbw3rf/6jgKycT72Bfm1fjRnv6s\nXt1GdSzfG9zVHuEwRDgTX3UCAwEAAQ==\n-----END PUBLIC KEY-----\n','','af2c1bff1518afaf2df6d3600a7f2f036cc758f0044c4c3c7649cf53edcb4faa','http://192.168.22.10/profile/friendica3','http://192.168.22.10/profile/friendica3','','','-----BEGIN PUBLIC KEY-----\nMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAqfA8vyqdOEwRk+J9BaXL\nwtlbjl0G+tqs4pCu8ez158vzm5jNC/xMObcO9arDp2RAg8urXKMOzQDMUG6wCxf8\nSXsR8VTwU4+EWMSyDxgs8RYU1mIc1pvkeKWDrL36iSe1+kXvUHOjV2+1PQJ6x2Iy\nYBwAPTzjwxOSThPumfT9M8wqSyCYvqY5uPQiru1Vy8EEduZSpo8l6uhA42CJP1pM\n4QbIpJ2gPUYOyAzNLLKfNtIvEka9xkC8jH8kzTwiKgd5Xo2g2TacqPQBCEhrnPDt\nnovSyf3IOmlkdQ+IWcTIOC82Z3oIK4fY3WYchA/mT4Vraade/U/CocTKj4OWfhGa\n9kSB8AYkm3LsxmUNUIEG+e/4CU7CpSlhh6bXYNR/ysRxpXscpaSBeV+aUDy8QXJh\nN1bcSRCFD/Un9f9dQwawpemUNcYQYg99TBqs96SYkeZNoEAWpaj5VTgz2AZWjkz0\nuXbgm1E5/g6kfvIoACU7MP3SGtcTqEY7TAeZzcq4oyCB2YoBf9w7Z5zBKNYjSRVI\nEa/kegdbJcvFtqhY4FZZ+MmyXX/B1fFFhjUe4WaMzxupVNeQnmwHh+2RFdRVEXNE\n9ch2CQ1iF2rqJ69hvKviZAsefbTErs2+CcDo3xF4FFgKUk2stSjVyHNf8yWL+E2m\nnOlQAAH+DA7w28kTeT++o+0CAwEAAQ==\n-----END PUBLIC KEY-----\n','','','http://192.168.22.10/dfrn_request/friendica3','http://192.168.22.10/dfrn_notify/friendica3','http://192.168.22.10/dfrn_poll/friendica3','http://192.168.22.10/dfrn_confirm/friendica3','http://192.168.22.10/poco/friendica3',1,0,0,0,'','2015-02-02 18:50:03','2015-02-02 18:50:03','2015-02-02 18:50:03','2015-02-02 18:41:48','2015-02-02 18:41:48','0001-01-01 00:00:00',0,0,0,1,0,0,0,0,0,0,'',99,'',0,'','0001-01-01',0,0,''),(9,6,'2015-02-02 18:44:07',0,0,3,1,'dfrn','friendica5','friendica5','','','','','','http://192.168.22.10/photo/75b60a2a1e6b2cdf2eb3637955a7a5c2-4.jpg','http://192.168.22.10/photo/75b60a2a1e6b2cdf2eb3637955a7a5c2-5.jpg','http://192.168.22.10/photo/75b60a2a1e6b2cdf2eb3637955a7a5c2-6.jpg','-----BEGIN PUBLIC KEY-----\nMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAyvuTsaZaTgPDm69uxixR\n8qd0ylkeA/IY3KDsI4vjrLuF7WLmU07lzQXmilQJ+MlipIju+wFXx3a8ksavEYpP\n9ZU9YrpXe7zneHRLTxgMDH9IMbSCIUAkEsozpzF02Ft0+G36tzIET2oTuU6uLtx6\nI5ifmF/qFC+4avAoABQg8qfOPpuaP3AJ6FppqEifUsb0lTWqP4zg7PQXC36oKIJ0\nUDuQniVy8lTxVfkhoi/aHZw0khVXe6tDK7C0ALg5U7jLTDNdJ1R0v5iC41QK4CEt\n5x4x008mdk6xLKGZiou1UuEPv/+WSQU1Q21JFzNVGBASkRu7dUVH6k+59VQr3ONI\n5bdbAZviVY3ezFNtBeWWfDk06BWoZwX67eGG/dVsCPnEkuP9CpemcwwGZbYCIqf0\n++5h0CU41CjNShHdBD+Q+ZQmT3I4sAlPZ7x90nA9KfuKM9QyTPQ9EmK2bxq7TKvV\nzLqHptL5mC/VH4FbO1eKf7p/f7XxOaeXGANUaRSPwLSO7lk8lkl/wj7sNJYGYygC\nMLTqH8GTizpyPkSDv5xO6bYn/g3BYFuUM5x1MZVS8MdG2a3L8UzRiXUsm/AjnfSV\nImN2+8bHJI0wy9zRxfEaG8pvbupb7UU5zWr3WRkSVr84Bq1SJNxLfWZj3GHLaesr\nu3exEdYGfxLuG1zHIROVwlcCAwEAAQ==\n-----END PUBLIC KEY-----\n','','1457f73164eefae32c107b310f3720c83bb5c7f9df88de0114714f4c77055337','http://192.168.22.10/profile/friendica5','http://192.168.22.10/profile/friendica5','','','-----BEGIN PUBLIC KEY-----\nMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEA4HA9qXSYftx7tS6kTVvs\nBhVx7hPK57GIpUU6azuFGqmrAqEEsBh2+oLTDzYGvq7UW5NAbL6QdvoFkJC4tTJK\nwfMO7noAhBzzrLpGjJn6W1v7OaGX1VAQM32+dqgUP7aJF91DKx8nCcAqo8yPp4gr\nUe1Ev5Yrsa9so6XRXEI0n7PHTgRir8HIAHC4sDl1THuUdahD0q5hy+7ymyUHHEsF\nJJIC4zCuFNGdk2wqDdG534FAU5CKOL/OZW1n9vbumU8zwk3hdt5rmzxyxx6ji9KU\nJiSLSErGLo0xQklT2N+DND61SgSqKk2JDmnD6NtCb9u9Q06E+jpT4mKrTrxURqa0\nQ0So/7ZbJJWb2y7Yd7KTN8pvVzC3Set9+YXH8EVypVsAW/Io6KoUiFEuJhp1291R\nVXjt4opm3unxNVCYnl/Ui/p0mw9QjuaEx9/7Iu/RUKjXFWzqmzpXEinfVk6rscC5\nTJn7BAZFkhZD85YSmSuPkDbtiAS99uIyO2jaD1G29lkVzdG74KW54r2Np6rIOgqK\n4Gsr8H7LM/R03jBMPCjHtWT0bOyT6ySzqdq9YHsW/9Fr5uBL5EeOuL/xKuRNaaQs\nIflXwfcb35ouz5PDeP3T8m1tBhwWN2kiWVCiQuRQINhG1vFHU28Yof3XAQ3iWiV+\nfPp/WfEiQ/HnkJdmlwq82eECAwEAAQ==\n-----END PUBLIC KEY-----\n','','','http://192.168.22.10/dfrn_request/friendica5','http://192.168.22.10/dfrn_notify/friendica5','http://192.168.22.10/dfrn_poll/friendica5','http://192.168.22.10/dfrn_confirm/friendica5','http://192.168.22.10/poco/friendica5',0,1,0,0,'','2015-02-02 18:50:05','2015-02-02 18:50:05','2015-02-02 18:50:05','2015-02-02 18:45:30','2015-02-02 18:45:30','0001-01-01 00:00:00',0,0,0,1,0,0,0,0,0,0,'',99,'',0,'','0001-01-01',0,0,''),(10,5,'2015-02-02 18:45:10',0,0,3,1,'dfrn','friendica4','friendica4','','','','','','http://192.168.22.10/photo/d04134664ffd0d558b08ee01f6859f3a-4.jpg','http://192.168.22.10/photo/d04134664ffd0d558b08ee01f6859f3a-5.jpg','http://192.168.22.10/photo/d04134664ffd0d558b08ee01f6859f3a-6.jpg','-----BEGIN PUBLIC KEY-----\nMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEA3nCYawg+HTyQgV7a7Osg\nCXeACOitKLhcb2WDTN/lLOMO7n1lSm3Kdv1dbOc0/lkAPeB2XsLF/aDfoUPWWg4Q\n/oRPrXFIi2dK/cIQVvgOhebQheztAYPJyaYYMWVK7bLbPuKVTyzALqkWD8Zjjtit\n4Uvm3kjmcofKr+/Lw+VFaEBMESQDbP5eTDtQeDGGjluWQMj1/D+V/Tcm+SMrAVIv\njyklQEhBJlYGJ+LsfXv4XXbeH73dkIXkQW5JgWQyPCloJ+PxmmjjEDozsdgmFQXq\n6T9HFVHvW2O2lmDoaTrbIGrULWBpslKZJJrV+LgtkzhP4uuKfJPD2DpMJ4+ixtBE\nzM/o+EuYDTz0P3dTvwruq1t8gUYcQOVUzEp1LM0qYDMVY86XneW1W5xghztl5zqy\nGBMBvjVIFvMVL1cVeXze4zpwwKln2cArepToSpN7lmy9EgBd9mZrVLWosZShB9R0\n05kBc2Tfv7FlixwZ1P8rwJn9sEEs9oa6TnRLL+7L8eqapg6vUI1G7e0HWWEjdHsR\nrYVHYW+ogtOYjrQ1Tfh1W2PtNaez5fGYVBDjC+1vy0scJmqrgy00z7MHBT2WTOAL\noHbdedhpa3UZ0FrsCto+vqil8BcF5aBhi2Hi5YdKtbY3EBsaabcSO2joc7rlmee4\nxdKfDRYXCPysFPhZNgIW708CAwEAAQ==\n-----END PUBLIC KEY-----\n','1457f73164eefae32c107b310f3720c83bb5c7f9df88de0114714f4c77055337','','http://192.168.22.10/profile/friendica4','http://192.168.22.10/profile/friendica4','','','','-----BEGIN PRIVATE KEY-----\n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\nuAn81wfguN+AIeC3BnIO1RLZnpAEwUWW\n-----END PRIVATE KEY-----\n','','http://192.168.22.10/dfrn_request/friendica4','http://192.168.22.10/dfrn_notify/friendica4','http://192.168.22.10/dfrn_poll/friendica4','http://192.168.22.10/dfrn_confirm/friendica4','http://192.168.22.10/poco/friendica4',0,0,0,0,'','2015-02-02 18:50:11','2015-02-02 18:50:11','2015-02-02 18:50:11','2015-02-02 18:45:30','2015-02-02 18:45:30','0001-01-01 00:00:00',0,0,0,1,0,0,0,0,0,0,'',99,'',0,'','0001-01-01',0,0,''),(11,3,'2015-02-02 18:49:20',0,0,3,1,'dfrn','friendica1','friendica1','','','','','','http://192.168.22.10/photo/389cca68d9a2e64538a81680925703b8-4.jpg','http://192.168.22.10/photo/389cca68d9a2e64538a81680925703b8-5.jpg','http://192.168.22.10/photo/389cca68d9a2e64538a81680925703b8-6.jpg','-----BEGIN PUBLIC KEY-----\nMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEA8/tIxRBs81u0V6ug4VXh\nG8omo+8YIckQqL5m7jWJqQ3v0fCrjyO8EcrjXhKC6esafSOlVhgxzFOkqNH8rRGF\ntF00suNJXy/0fh6EFFvifX1hQw1ZCXXlHxmmM4yNkGOzbRXPeVuSxyn1OtQNGRnB\nSGeqdCZc4QMtgPbVPwTTWYB4rSbVGYbEa5vpqY0OFnlIwC+BtQrd0xFEO7+FGfmv\n2jRt7ImRiyFazef0NhZL890IFeB5+rF8fifC3o7OP0kzB75+z5LkBfnsveZCriaj\nwHjUmMOa/hTOVHw4qYIq6XY4Q2OgaGTs2xqBz4/gniKjNSBbRyYy45prFOuJTLmO\ns07078nfg3NbWq5JkszwPen+gcvc4Pv38z2DBc2RxjgU0YbY4ZV053GIzd8hutA4\nm+eD1Cl0NZcEd9OYi3dtXWACPsf2C0/FsouAj1juXWxeRZ9exHphs0tCXt/RPgyK\nOqFPaPRCBL6MUvM0N1yR2TVk3s3Uq0k/4AExcplJGuZt8bMDIGR6g3RF+bXn3eLb\n9SnpnLSIMpHS/N/JVQzMs4W8tkdwi2OiIeNWhYrFH/stfU7KPYXdwVfduDTAv9LA\nY5Yk8oMomfL5b097eKDdzXFJ3rKUXktobl74REtgAfXEA3OgqCXUGPLbS45I8gsZ\nxBFRmmPH3SuOCQSRkY0gb/UCAwEAAQ==\n-----END PUBLIC KEY-----\n','4968c78f8a9df6fc4e43949748a0e94567dc0f83166cf83cd8e0f98f406e1b3f','','http://192.168.22.10/profile/friendica1','http://192.168.22.10/profile/friendica1','','','','-----BEGIN PRIVATE KEY-----\n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\n/FhZIOns6kkCi8CcaS3V3qLfXQrQSfI=\n-----END PRIVATE KEY-----\n','','http://192.168.22.10/dfrn_request/friendica1','http://192.168.22.10/dfrn_notify/friendica1','http://192.168.22.10/dfrn_poll/friendica1','http://192.168.22.10/dfrn_confirm/friendica1','http://192.168.22.10/poco/friendica1',0,0,0,0,'','2015-02-02 19:00:09','2015-02-02 19:00:09','2015-02-02 19:00:14','2015-02-02 18:51:35','2015-02-02 18:51:35','0001-01-01 00:00:00',0,0,0,1,0,0,0,0,0,0,'',99,'',0,'','0001-01-01',0,0,''),(12,2,'2015-02-02 18:49:41',0,0,3,1,'dfrn','friendica2','friendica2','','','','','','http://192.168.22.10/photo/b18ee0c7f160fdbf8f5d91a56a07a13c-4.jpg','http://192.168.22.10/photo/b18ee0c7f160fdbf8f5d91a56a07a13c-5.jpg','http://192.168.22.10/photo/b18ee0c7f160fdbf8f5d91a56a07a13c-6.jpg','-----BEGIN PUBLIC KEY-----\nMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEA4QpA4flE9v17fh+yrMpR\nU4iKSxLOF/8ROTotrdQsk8HcHkPS7E60QUaRK45gDc9O+7FU1+90V+oo0BqdkJFL\nbFtTogP5fdNSD3ApHz7s03oBX9JenU/8JhxaH1VwEs3lLDlFrywngiYcEDZIeLGZ\nIFK1GWP79+ZwJ9WWoBhzCD4hg4excOWPwwQMjCLYAzI5INEPTw+R3CKD6EsnVLu0\nS+u3zBBsL/A+bgDDfgZoD6igJQlvenK5jStgfbiuVp1mqdXKJ8D+rYz5FQ72Yn3r\nn6AvrXcPQMbLSaUK5m1Ug7beasuhRJ5Z7TVtJ/RLNgA3mOX2A2Vy1i38VYmcTaG5\nom8AYeI/nSvMzJt7FYXOBdxKnSW0UhkXsjBQavefz7sp2Lhcw5U+7eaPi2fIkYio\nVHKU2r8uiJPFfUMAbHA2+rScBjn2lYZH0nfMKrZTzva7y6d19EOsO2aP5e4XNjU8\n0tX/C1iy6LPMCf7xG844iROXi7NPJJoTgx/Sl6+o0oqBl9J5wJDK5U33rUSqYI/p\nsPEfaStqA5CgBAvAsq0N+NQQndJzGfuYaIdfleyUSLIchHhEICE4SN62RHZ6VTlg\nIVCva4xdBrGlkGV/IgE228FwgX4GWELclfUH/KwcGHChlY8dTtVZHbTCuizvPLvl\nXuZQ9ROdQiwkYwGJA/bhM3kCAwEAAQ==\n-----END PUBLIC KEY-----\n','','4968c78f8a9df6fc4e43949748a0e94567dc0f83166cf83cd8e0f98f406e1b3f','http://192.168.22.10/profile/friendica2','http://192.168.22.10/profile/friendica2','','','-----BEGIN PUBLIC KEY-----\nMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAo2aPrPdWu1ePgAXGXf2s\nXghNafRw4ccBMA1hqAHjxc2pLD+DMq3iyVoH+dS8AM2GhKHsmL/oslBDLX5J//VS\n1rgOKkRvMikFaodvDnQz1HcLLyKO05hYJFQS98jrj7bNBHiXXZXvggTgjlYl5eS4\nFX9qT2ORCyD5jlDkHZOiF+mosVeNoLeC/FfoUFQkvm+Evi5hgU8a/HvFw02BGNZE\nEKVLV1PRtQNJHa+G8RrgNFjWN6aZWzsFdfxdWGKcLQDbJYblehUyoBIwnaEIUWih\nR9JadBzLu7OPEe1ID41ZD9XOTDgF6iaN24qjMhXLQMe/I2h4o9FTja9qi2smEz32\nNH8qQW+bin2Krr3EUDur/6GomeIz9IS7M3pAaOLD6rQ3bjFsJcxJhA6jUzHLZ9AA\n6YJ75j0+vTkkshROndncXD2z++7+YYxd1Ceop86s7sRNjcWCuVH4VMC92Acp62SE\nsDfkx3pJAAcff7asCwnds+vKHKGiYv7XNqECkhsDYJP6WuxoPc5IDHYUCgM2HJ/n\nDaTg8eiziouyC4YjRCEh1Ogp6G21KcDWaxEi9H4UsMakzFerPcwkMXbVV4Ya84Yf\nTAs9H0YvMGL1N2SGxLD9+olwMqlIUR5ty2aB+lS/6hy2SJWRihCuPHGy6Kaoj87B\njGswRAib0YN5lgu5n8xEKgECAwEAAQ==\n-----END PUBLIC KEY-----\n','','','http://192.168.22.10/dfrn_request/friendica2','http://192.168.22.10/dfrn_notify/friendica2','http://192.168.22.10/dfrn_poll/friendica2','http://192.168.22.10/dfrn_confirm/friendica2','http://192.168.22.10/poco/friendica2',1,0,0,0,'','2015-02-02 19:00:21','2015-02-02 19:00:21','2015-02-02 19:00:21','2015-02-02 18:51:34','2015-02-02 18:51:34','0001-01-01 00:00:00',0,0,0,1,0,0,0,0,0,0,'',99,'',0,'','0001-01-01',0,0,''),(13,4,'2015-02-02 18:50:05',0,0,3,1,'dfrn','friendica1','friendica1','','','','','','http://192.168.22.10/photo/ba266e976726cba185c218750c545814-4.jpg','http://192.168.22.10/photo/ba266e976726cba185c218750c545814-5.jpg','http://192.168.22.10/photo/ba266e976726cba185c218750c545814-6.jpg','-----BEGIN PUBLIC KEY-----\nMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEA8/tIxRBs81u0V6ug4VXh\nG8omo+8YIckQqL5m7jWJqQ3v0fCrjyO8EcrjXhKC6esafSOlVhgxzFOkqNH8rRGF\ntF00suNJXy/0fh6EFFvifX1hQw1ZCXXlHxmmM4yNkGOzbRXPeVuSxyn1OtQNGRnB\nSGeqdCZc4QMtgPbVPwTTWYB4rSbVGYbEa5vpqY0OFnlIwC+BtQrd0xFEO7+FGfmv\n2jRt7ImRiyFazef0NhZL890IFeB5+rF8fifC3o7OP0kzB75+z5LkBfnsveZCriaj\nwHjUmMOa/hTOVHw4qYIq6XY4Q2OgaGTs2xqBz4/gniKjNSBbRyYy45prFOuJTLmO\ns07078nfg3NbWq5JkszwPen+gcvc4Pv38z2DBc2RxjgU0YbY4ZV053GIzd8hutA4\nm+eD1Cl0NZcEd9OYi3dtXWACPsf2C0/FsouAj1juXWxeRZ9exHphs0tCXt/RPgyK\nOqFPaPRCBL6MUvM0N1yR2TVk3s3Uq0k/4AExcplJGuZt8bMDIGR6g3RF+bXn3eLb\n9SnpnLSIMpHS/N/JVQzMs4W8tkdwi2OiIeNWhYrFH/stfU7KPYXdwVfduDTAv9LA\nY5Yk8oMomfL5b097eKDdzXFJ3rKUXktobl74REtgAfXEA3OgqCXUGPLbS45I8gsZ\nxBFRmmPH3SuOCQSRkY0gb/UCAwEAAQ==\n-----END PUBLIC KEY-----\n','1993beda190780abf81b6585d66643d9c14726c3fc5876604985b687f74877f5','','http://192.168.22.10/profile/friendica1','http://192.168.22.10/profile/friendica1','','','','-----BEGIN PRIVATE KEY-----\n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\nNjUrIANF0eZWxtdfweUXB3ncY1qM\n-----END PRIVATE KEY-----\n','','http://192.168.22.10/dfrn_request/friendica1','http://192.168.22.10/dfrn_notify/friendica1','http://192.168.22.10/dfrn_poll/friendica1','http://192.168.22.10/dfrn_confirm/friendica1','http://192.168.22.10/poco/friendica1',0,0,0,0,'','2015-02-02 19:00:15','2015-02-02 19:00:15','2015-02-02 19:00:15','2015-02-02 18:52:24','2015-02-02 18:52:24','0001-01-01 00:00:00',0,0,0,1,0,0,0,0,0,0,'',99,'',0,'','0001-01-01',0,0,''),(14,2,'2015-02-02 18:50:08',0,0,3,1,'dfrn','friendica3','friendica3','','','','','','http://192.168.22.10/photo/1fc6596c195944666e18cbd313795942-4.jpg','http://192.168.22.10/photo/1fc6596c195944666e18cbd313795942-5.jpg','http://192.168.22.10/photo/1fc6596c195944666e18cbd313795942-6.jpg','-----BEGIN PUBLIC KEY-----\nMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAliSi9id9Ll1dpzXC/lL6\n2/5FYxdn0XYb5I2JeXBNopwbXOLDsnnzXlV2NN8riZaYRQcIbS00OuAvyYj/IG3i\nDykD2zPjVnLEWADtj1YhLSgKcfQgv6Cj/7CPdb1Rg3icbvWdVY9wabcblVa9k+qr\ngK273C47lCQzXgvMtPst1DOzxtVCGmPJJHKjXZ8hDvf/IS0pVGa0zIv9kdofqQV9\nD5u5LuNzRuEGnrpAzpfzMueDppBrrrr37sKrZfCvyYHZ/ouFgZ3bY9NNVnjuFItP\nrcDlJPL8NhGmmzuYtI03MLor+1yVdBKLIJ3G2Bxzn5tynjSX9XZzOQgC3+YVH4TU\n7WDUHjTWJ9mliD2M1WXCp2Lwc/pV1Prnvv057pAqdiMhnddzucV9nLk9X9fR8xyy\nC7PRwx0hkB427EtAYaOTr3RtInP6+cm+3M7wd6ZKTqWAU+Pi20RNrQRsqfHJ7+hx\n+i5rIG6/knB/C+MAAutEH25oY8kJYtJzXid2OBSE462DTuYaee9aGHUDNy+HQau8\nBhJ4/Wsc7Nf/7GRZ38SVT/HQShl47B1AG5AyomyWgwn9J2KJ8kMuScPmBv5u7Mwq\nSjLk5pLkwyUtZwUu8UtsFKw9HLcRksGSze5s2cbw3rf/6jgKycT72Bfm1fjRnv6s\nXt1GdSzfG9zVHuEwRDgTX3UCAwEAAQ==\n-----END PUBLIC KEY-----\n','','1993beda190780abf81b6585d66643d9c14726c3fc5876604985b687f74877f5','http://192.168.22.10/profile/friendica3','http://192.168.22.10/profile/friendica3','','','-----BEGIN PUBLIC KEY-----\nMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEApcqm9MmPcEOI5j6PfN+o\n0FsdhcV7Rmf4T1TUhvf4oPjxncC/pEMv/ecs/NANifgbuc3fXj3vV7dnyxMPKl9a\nVasTG9Vi+i+q5kSMuyRhHEW5oIKDf7KftWwrLcVVik4CWHGL+q4C+2nhD90UbdS3\nMKaiw/aHiKZBzCfy5wpLAiU4MRsLGyXLERhXeLJoFYy/pHAH4lkI2o5IplOhWwei\ntyq8XjXDP/4ur0V9H8ewdTy7hK6DHxOlX1/9k1tBnJ+D+lUwiXgjA1Poqg+GnvPN\nM8pESmcinhZ5RuKHu8mCP592A+j4JXzYJnx+B6CuaGCumIWRy1lDoPqUJWyH+vW+\ntFOX+7Z5Ybc95pBdMOxztU0v+ltAQEAAV6Ib//ekTHmTlda7x0dXzYg0oElow2xw\n3k22kj8kfXMzoPg8rHyGXOMVSvAbddDFs/903pYo/eVGUuS8O2GB5QlVQvENWnnj\nTPX5tMPJhXENBU2AQJFsT/RPXFGypBkte5ZmtbqtLHjy0wr8x7azNM0nAJp3mOWW\nAB34bF5k1biuLSrgz+HerHx+80w5t/c0iZyPQzU8yvg/AgjxFC6iXXhymrlnC95T\nv5rZpS/0cGiyBrr3djhtfuohkPKb8bbe/dhZM5h1j+R4GkN/opGFHE3WuJOAz4c8\n/Uk8/nV2D84EYndDyfsEAFECAwEAAQ==\n-----END PUBLIC KEY-----\n','','','http://192.168.22.10/dfrn_request/friendica3','http://192.168.22.10/dfrn_notify/friendica3','http://192.168.22.10/dfrn_poll/friendica3','http://192.168.22.10/dfrn_confirm/friendica3','http://192.168.22.10/poco/friendica3',1,0,0,0,'','2015-02-02 19:00:12','2015-02-02 19:00:12','2015-02-02 19:00:12','2015-02-02 18:52:24','2015-02-02 18:52:24','0001-01-01 00:00:00',0,0,0,1,0,0,0,0,0,0,'',99,'',0,'','0001-01-01',0,0,''),(15,5,'2015-02-02 18:50:52',0,0,3,1,'dfrn','friendica1','friendica1','','','','','','http://192.168.22.10/photo/73de577b8bcc76d9358ab8536f0a5cca-4.jpg','http://192.168.22.10/photo/73de577b8bcc76d9358ab8536f0a5cca-5.jpg','http://192.168.22.10/photo/73de577b8bcc76d9358ab8536f0a5cca-6.jpg','-----BEGIN PUBLIC KEY-----\nMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEA8/tIxRBs81u0V6ug4VXh\nG8omo+8YIckQqL5m7jWJqQ3v0fCrjyO8EcrjXhKC6esafSOlVhgxzFOkqNH8rRGF\ntF00suNJXy/0fh6EFFvifX1hQw1ZCXXlHxmmM4yNkGOzbRXPeVuSxyn1OtQNGRnB\nSGeqdCZc4QMtgPbVPwTTWYB4rSbVGYbEa5vpqY0OFnlIwC+BtQrd0xFEO7+FGfmv\n2jRt7ImRiyFazef0NhZL890IFeB5+rF8fifC3o7OP0kzB75+z5LkBfnsveZCriaj\nwHjUmMOa/hTOVHw4qYIq6XY4Q2OgaGTs2xqBz4/gniKjNSBbRyYy45prFOuJTLmO\ns07078nfg3NbWq5JkszwPen+gcvc4Pv38z2DBc2RxjgU0YbY4ZV053GIzd8hutA4\nm+eD1Cl0NZcEd9OYi3dtXWACPsf2C0/FsouAj1juXWxeRZ9exHphs0tCXt/RPgyK\nOqFPaPRCBL6MUvM0N1yR2TVk3s3Uq0k/4AExcplJGuZt8bMDIGR6g3RF+bXn3eLb\n9SnpnLSIMpHS/N/JVQzMs4W8tkdwi2OiIeNWhYrFH/stfU7KPYXdwVfduDTAv9LA\nY5Yk8oMomfL5b097eKDdzXFJ3rKUXktobl74REtgAfXEA3OgqCXUGPLbS45I8gsZ\nxBFRmmPH3SuOCQSRkY0gb/UCAwEAAQ==\n-----END PUBLIC KEY-----\n','0bc099852fd312feafb2cba2fa0019cf973e643951ddbf6ffdf6fad5aa58f25a','','http://192.168.22.10/profile/friendica1','http://192.168.22.10/profile/friendica1','','','','-----BEGIN PRIVATE KEY-----\n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\n3fhPNAoXmu3k6cGhzDjNG5bQVWIU8g==\n-----END PRIVATE KEY-----\n','','http://192.168.22.10/dfrn_request/friendica1','http://192.168.22.10/dfrn_notify/friendica1','http://192.168.22.10/dfrn_poll/friendica1','http://192.168.22.10/dfrn_confirm/friendica1','http://192.168.22.10/poco/friendica1',0,0,0,0,'','2015-02-02 19:00:06','2015-02-02 19:00:06','2015-02-02 19:00:06','2015-02-02 18:51:07','2015-02-02 18:51:07','0001-01-01 00:00:00',0,0,0,1,0,0,0,0,0,0,'',99,'',0,'','0001-01-01',0,0,''),(16,2,'2015-02-02 18:50:55',0,0,3,1,'dfrn','friendica5','friendica5','','','','','','http://192.168.22.10/photo/01072618a17425401fafdeb40fcd79ac-4.jpg','http://192.168.22.10/photo/01072618a17425401fafdeb40fcd79ac-5.jpg','http://192.168.22.10/photo/01072618a17425401fafdeb40fcd79ac-6.jpg','-----BEGIN PUBLIC KEY-----\nMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAyvuTsaZaTgPDm69uxixR\n8qd0ylkeA/IY3KDsI4vjrLuF7WLmU07lzQXmilQJ+MlipIju+wFXx3a8ksavEYpP\n9ZU9YrpXe7zneHRLTxgMDH9IMbSCIUAkEsozpzF02Ft0+G36tzIET2oTuU6uLtx6\nI5ifmF/qFC+4avAoABQg8qfOPpuaP3AJ6FppqEifUsb0lTWqP4zg7PQXC36oKIJ0\nUDuQniVy8lTxVfkhoi/aHZw0khVXe6tDK7C0ALg5U7jLTDNdJ1R0v5iC41QK4CEt\n5x4x008mdk6xLKGZiou1UuEPv/+WSQU1Q21JFzNVGBASkRu7dUVH6k+59VQr3ONI\n5bdbAZviVY3ezFNtBeWWfDk06BWoZwX67eGG/dVsCPnEkuP9CpemcwwGZbYCIqf0\n++5h0CU41CjNShHdBD+Q+ZQmT3I4sAlPZ7x90nA9KfuKM9QyTPQ9EmK2bxq7TKvV\nzLqHptL5mC/VH4FbO1eKf7p/f7XxOaeXGANUaRSPwLSO7lk8lkl/wj7sNJYGYygC\nMLTqH8GTizpyPkSDv5xO6bYn/g3BYFuUM5x1MZVS8MdG2a3L8UzRiXUsm/AjnfSV\nImN2+8bHJI0wy9zRxfEaG8pvbupb7UU5zWr3WRkSVr84Bq1SJNxLfWZj3GHLaesr\nu3exEdYGfxLuG1zHIROVwlcCAwEAAQ==\n-----END PUBLIC KEY-----\n','','0bc099852fd312feafb2cba2fa0019cf973e643951ddbf6ffdf6fad5aa58f25a','http://192.168.22.10/profile/friendica5','http://192.168.22.10/profile/friendica5','','','-----BEGIN PUBLIC KEY-----\nMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEA2wrb3Jp9USCnw1LrIns9\nGlZYpgiBJbZxIzXis/9j00WajFna5IW1jBrWLlgauhZit8lgfTJDbcigxKaOJ3Bn\nljCrT5NqMmO8Mldims0yhqX68psCqhd/2GJm4i0gFqc6QU4T9A3exIN+WMngk2ys\n2De4adlVEedo+l8YcYC24/e253e/qAbLfkzeGU2dOtcY1g3saVmIkEdXJAUvtCSs\nYfPbep96AOuAj2P3t1vLyeQSGlvz1uKxwMFlOH2uDylHHqR4p+cmAtZ+YUCwW6Tz\nkoSwXhorCdd+9G1Yv8n3WFKIcRlRZstbvOt1RdyNIkw7r0g0r3X7nf1a7SWgpxy/\nRSoYWDKVvHA08QrbTWdH7vdu3+X7S255pvyUDhkexP+iRZg5DFlAhhq+8018qpxp\nJ9zdSo5gTX0RonwNKSUKmR1mMg7F01v22qzbBspM95446NOOUS7xh3wKDGn7joPr\na54kH4u5Aya/v4qZ8QDGKYVzkX5xZY19kSz1iBzixsSlIHaa43cTqHOy+xA54sPp\nlJe/yMSpAo3itt7DIz33HcJnwwRxTKTLZwqfxOB3rdu2GVpLA6JIEvl7OOLFfOcS\nS+9QankJK/J7Xe/aldmWqQBogx9dLW7XGTPSDF/unNctazg0K84aWUbH7Nc9bC5G\nvszuTsVfiavruK0UCE0qQtkCAwEAAQ==\n-----END PUBLIC KEY-----\n','','','http://192.168.22.10/dfrn_request/friendica5','http://192.168.22.10/dfrn_notify/friendica5','http://192.168.22.10/dfrn_poll/friendica5','http://192.168.22.10/dfrn_confirm/friendica5','http://192.168.22.10/poco/friendica5',1,0,0,0,'','2015-02-02 19:00:18','2015-02-02 19:00:18','2015-02-02 19:00:18','2015-02-02 18:51:07','2015-02-02 18:51:07','0001-01-01 00:00:00',0,0,0,1,0,0,0,0,0,0,'',99,'',0,'','0001-01-01',0,0,''),(17,6,'2015-02-02 18:51:55',0,0,3,1,'dfrn','friendica1','friendica1','','','','','','http://192.168.22.10/photo/b4cbb73d1178aab3424a788419bbe016-4.jpg','http://192.168.22.10/photo/b4cbb73d1178aab3424a788419bbe016-5.jpg','http://192.168.22.10/photo/b4cbb73d1178aab3424a788419bbe016-6.jpg','-----BEGIN PUBLIC KEY-----\nMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEA8/tIxRBs81u0V6ug4VXh\nG8omo+8YIckQqL5m7jWJqQ3v0fCrjyO8EcrjXhKC6esafSOlVhgxzFOkqNH8rRGF\ntF00suNJXy/0fh6EFFvifX1hQw1ZCXXlHxmmM4yNkGOzbRXPeVuSxyn1OtQNGRnB\nSGeqdCZc4QMtgPbVPwTTWYB4rSbVGYbEa5vpqY0OFnlIwC+BtQrd0xFEO7+FGfmv\n2jRt7ImRiyFazef0NhZL890IFeB5+rF8fifC3o7OP0kzB75+z5LkBfnsveZCriaj\nwHjUmMOa/hTOVHw4qYIq6XY4Q2OgaGTs2xqBz4/gniKjNSBbRyYy45prFOuJTLmO\ns07078nfg3NbWq5JkszwPen+gcvc4Pv38z2DBc2RxjgU0YbY4ZV053GIzd8hutA4\nm+eD1Cl0NZcEd9OYi3dtXWACPsf2C0/FsouAj1juXWxeRZ9exHphs0tCXt/RPgyK\nOqFPaPRCBL6MUvM0N1yR2TVk3s3Uq0k/4AExcplJGuZt8bMDIGR6g3RF+bXn3eLb\n9SnpnLSIMpHS/N/JVQzMs4W8tkdwi2OiIeNWhYrFH/stfU7KPYXdwVfduDTAv9LA\nY5Yk8oMomfL5b097eKDdzXFJ3rKUXktobl74REtgAfXEA3OgqCXUGPLbS45I8gsZ\nxBFRmmPH3SuOCQSRkY0gb/UCAwEAAQ==\n-----END PUBLIC KEY-----\n','cd8d6796a986b38a7fb102d05cb41dabe3bdd042f05bf2e5d184a9fdae0255fc','','http://192.168.22.10/profile/friendica1','http://192.168.22.10/profile/friendica1','','','','-----BEGIN PRIVATE KEY-----\n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\nyi/YAMIgyQM3WSd9kEzLbr40D8NRK8w=\n-----END PRIVATE KEY-----\n','','http://192.168.22.10/dfrn_request/friendica1','http://192.168.22.10/dfrn_notify/friendica1','http://192.168.22.10/dfrn_poll/friendica1','http://192.168.22.10/dfrn_confirm/friendica1','http://192.168.22.10/poco/friendica1',0,0,0,0,'','2015-02-02 19:00:03','2015-02-02 19:00:03','2015-02-02 19:00:16','2015-02-02 18:53:04','2015-02-02 18:53:04','0001-01-01 00:00:00',0,0,0,1,0,0,0,0,0,0,'',99,'',0,'','0001-01-01',0,0,''),(18,2,'2015-02-02 18:52:03',0,0,3,1,'dfrn','friendica4','friendica4','','','','','','http://192.168.22.10/photo/0f1ac566d253bcd264437b7f7a347f88-4.jpg','http://192.168.22.10/photo/0f1ac566d253bcd264437b7f7a347f88-5.jpg','http://192.168.22.10/photo/0f1ac566d253bcd264437b7f7a347f88-6.jpg','-----BEGIN PUBLIC KEY-----\nMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEA3nCYawg+HTyQgV7a7Osg\nCXeACOitKLhcb2WDTN/lLOMO7n1lSm3Kdv1dbOc0/lkAPeB2XsLF/aDfoUPWWg4Q\n/oRPrXFIi2dK/cIQVvgOhebQheztAYPJyaYYMWVK7bLbPuKVTyzALqkWD8Zjjtit\n4Uvm3kjmcofKr+/Lw+VFaEBMESQDbP5eTDtQeDGGjluWQMj1/D+V/Tcm+SMrAVIv\njyklQEhBJlYGJ+LsfXv4XXbeH73dkIXkQW5JgWQyPCloJ+PxmmjjEDozsdgmFQXq\n6T9HFVHvW2O2lmDoaTrbIGrULWBpslKZJJrV+LgtkzhP4uuKfJPD2DpMJ4+ixtBE\nzM/o+EuYDTz0P3dTvwruq1t8gUYcQOVUzEp1LM0qYDMVY86XneW1W5xghztl5zqy\nGBMBvjVIFvMVL1cVeXze4zpwwKln2cArepToSpN7lmy9EgBd9mZrVLWosZShB9R0\n05kBc2Tfv7FlixwZ1P8rwJn9sEEs9oa6TnRLL+7L8eqapg6vUI1G7e0HWWEjdHsR\nrYVHYW+ogtOYjrQ1Tfh1W2PtNaez5fGYVBDjC+1vy0scJmqrgy00z7MHBT2WTOAL\noHbdedhpa3UZ0FrsCto+vqil8BcF5aBhi2Hi5YdKtbY3EBsaabcSO2joc7rlmee4\nxdKfDRYXCPysFPhZNgIW708CAwEAAQ==\n-----END PUBLIC KEY-----\n','','cd8d6796a986b38a7fb102d05cb41dabe3bdd042f05bf2e5d184a9fdae0255fc','http://192.168.22.10/profile/friendica4','http://192.168.22.10/profile/friendica4','','','-----BEGIN PUBLIC KEY-----\nMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAwsqhbQeE4G63CefbGnl6\naPz/tNaRwiCwc2CoVoazw4cyNkvgcmnhmzJvyA9hKhqzMQYibPID8z1S5BdaP1dh\n1sHpTP2nYEqE/M4oaXm3zk4zBQdxMXp4Xi6spu3W4oLdn9dQKwwhfcD5YioDrksI\nW/SUEgZIR7XwclVU5Shyj/Z5ssllXqOWSPXAifQ5TcP3PbqEl+IFuN3X9P6J51cH\nemeDLaGqSpoiOlg5Y7E73kZYiXq1xUW5l4c2/wJ2FKeGmWvJaXh+06hkN5fd80Y6\n89vSRsQoaPXnsTrdymquNZIi7yGxJU/uZz8ZD158PQwC5ucGE1ockA8PIUUi6DcJ\nZfSFQjuzrlFsqKaJS7MQc+nysLRdrbjBcQKQHEYbQA2PHRZ9rU/9flICNTSPV4f5\ni7WwicjU1BvYcD/1WEacOPYZ76NCae4VaJvaP6cQpevcd3w9IbN1iC3JVf89oKYp\nBLPpT/T3VI0d17Uugg/51Yz+4RTmYZSZ/SMgCUfG4uE19m8y/j2fSUC6RTqISBsG\nDCRbIu7rnUkS5HvcxtVKwkHT6cANVUFatFIIfy4/e0aE7RO7TvCqJ+WBuK7WA0uS\nabbFxBP6e/eDUDEQI8TIGuMn/fnHRTqchnPmuoTKAZaihh1NU2Jo8+K4s7AbPcwZ\nZpzi1oJnWhSxsGEeGilylk8CAwEAAQ==\n-----END PUBLIC KEY-----\n','','','http://192.168.22.10/dfrn_request/friendica4','http://192.168.22.10/dfrn_notify/friendica4','http://192.168.22.10/dfrn_poll/friendica4','http://192.168.22.10/dfrn_confirm/friendica4','http://192.168.22.10/poco/friendica4',1,0,0,0,'','2015-02-02 19:00:24','2015-02-02 19:00:24','2015-02-02 19:00:24','2015-02-02 18:53:03','2015-02-02 18:53:03','0001-01-01 00:00:00',0,0,0,1,0,0,0,0,0,0,'',99,'',0,'','0001-01-01',0,0,''); /*!40000 ALTER TABLE `contact` ENABLE KEYS */; UNLOCK TABLES; @@ -310,19 +310,19 @@ UNLOCK TABLES; DROP TABLE IF EXISTS `conv`; /*!40101 SET @saved_cs_client = @@character_set_client */; -/*!40101 SET character_set_client = utf8 */; +/*!40101 SET character_set_client = utf8mb4 */; CREATE TABLE `conv` ( `id` int(10) unsigned NOT NULL AUTO_INCREMENT, `guid` varchar(64) NOT NULL DEFAULT '', `recips` mediumtext NOT NULL, `uid` int(11) NOT NULL DEFAULT '0', `creator` varchar(255) NOT NULL DEFAULT '', - `created` datetime NOT NULL DEFAULT '0000-00-00 00:00:00', - `updated` datetime NOT NULL DEFAULT '0000-00-00 00:00:00', + `created` datetime NOT NULL DEFAULT '0001-01-01 00:00:00', + `updated` datetime NOT NULL DEFAULT '0001-01-01 00:00:00', `subject` mediumtext NOT NULL, PRIMARY KEY (`id`), KEY `uid` (`uid`) -) ENGINE=InnoDB DEFAULT CHARSET=utf8; +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; /*!40101 SET character_set_client = @saved_cs_client */; -- @@ -340,14 +340,14 @@ UNLOCK TABLES; DROP TABLE IF EXISTS `deliverq`; /*!40101 SET @saved_cs_client = @@character_set_client */; -/*!40101 SET character_set_client = utf8 */; +/*!40101 SET character_set_client = utf8mb4 */; CREATE TABLE `deliverq` ( `id` int(10) unsigned NOT NULL AUTO_INCREMENT, `cmd` varchar(32) NOT NULL DEFAULT '', `item` int(11) NOT NULL DEFAULT '0', `contact` int(11) NOT NULL DEFAULT '0', PRIMARY KEY (`id`) -) ENGINE=InnoDB AUTO_INCREMENT=9 DEFAULT CHARSET=utf8; +) ENGINE=InnoDB AUTO_INCREMENT=9 DEFAULT CHARSET=utf8mb4; /*!40101 SET character_set_client = @saved_cs_client */; -- @@ -365,14 +365,14 @@ UNLOCK TABLES; DROP TABLE IF EXISTS `dsprphotoq`; /*!40101 SET @saved_cs_client = @@character_set_client */; -/*!40101 SET character_set_client = utf8 */; +/*!40101 SET character_set_client = utf8mb4 */; CREATE TABLE `dsprphotoq` ( `id` int(10) unsigned NOT NULL AUTO_INCREMENT, `uid` int(11) NOT NULL DEFAULT '0', `msg` mediumtext NOT NULL, `attempt` tinyint(4) NOT NULL DEFAULT '0', PRIMARY KEY (`id`) -) ENGINE=InnoDB DEFAULT CHARSET=utf8; +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; /*!40101 SET character_set_client = @saved_cs_client */; -- @@ -390,16 +390,16 @@ UNLOCK TABLES; DROP TABLE IF EXISTS `event`; /*!40101 SET @saved_cs_client = @@character_set_client */; -/*!40101 SET character_set_client = utf8 */; +/*!40101 SET character_set_client = utf8mb4 */; CREATE TABLE `event` ( `id` int(11) NOT NULL AUTO_INCREMENT, `uid` int(11) NOT NULL DEFAULT '0', `cid` int(11) NOT NULL DEFAULT '0', `uri` varchar(255) NOT NULL DEFAULT '', - `created` datetime NOT NULL DEFAULT '0000-00-00 00:00:00', - `edited` datetime NOT NULL DEFAULT '0000-00-00 00:00:00', - `start` datetime NOT NULL DEFAULT '0000-00-00 00:00:00', - `finish` datetime NOT NULL DEFAULT '0000-00-00 00:00:00', + `created` datetime NOT NULL DEFAULT '0001-01-01 00:00:00', + `edited` datetime NOT NULL DEFAULT '0001-01-01 00:00:00', + `start` datetime NOT NULL DEFAULT '0001-01-01 00:00:00', + `finish` datetime NOT NULL DEFAULT '0001-01-01 00:00:00', `summary` text NOT NULL, `desc` text NOT NULL, `location` text NOT NULL, @@ -413,7 +413,7 @@ CREATE TABLE `event` ( `deny_gid` mediumtext NOT NULL, PRIMARY KEY (`id`), KEY `uid` (`uid`) -) ENGINE=InnoDB DEFAULT CHARSET=utf8; +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; /*!40101 SET character_set_client = @saved_cs_client */; -- @@ -431,7 +431,7 @@ UNLOCK TABLES; DROP TABLE IF EXISTS `fcontact`; /*!40101 SET @saved_cs_client = @@character_set_client */; -/*!40101 SET character_set_client = utf8 */; +/*!40101 SET character_set_client = utf8mb4 */; CREATE TABLE `fcontact` ( `id` int(10) unsigned NOT NULL AUTO_INCREMENT, `url` varchar(255) NOT NULL DEFAULT '', @@ -448,10 +448,10 @@ CREATE TABLE `fcontact` ( `network` varchar(32) NOT NULL DEFAULT '', `alias` varchar(255) NOT NULL DEFAULT '', `pubkey` text NOT NULL, - `updated` datetime NOT NULL DEFAULT '0000-00-00 00:00:00', + `updated` datetime NOT NULL DEFAULT '0001-01-01 00:00:00', PRIMARY KEY (`id`), KEY `addr` (`addr`) -) ENGINE=InnoDB DEFAULT CHARSET=utf8; +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; /*!40101 SET character_set_client = @saved_cs_client */; -- @@ -469,14 +469,14 @@ UNLOCK TABLES; DROP TABLE IF EXISTS `ffinder`; /*!40101 SET @saved_cs_client = @@character_set_client */; -/*!40101 SET character_set_client = utf8 */; +/*!40101 SET character_set_client = utf8mb4 */; CREATE TABLE `ffinder` ( `id` int(10) unsigned NOT NULL AUTO_INCREMENT, `uid` int(10) unsigned NOT NULL DEFAULT '0', `cid` int(10) unsigned NOT NULL DEFAULT '0', `fid` int(10) unsigned NOT NULL DEFAULT '0', PRIMARY KEY (`id`) -) ENGINE=InnoDB DEFAULT CHARSET=utf8; +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; /*!40101 SET character_set_client = @saved_cs_client */; -- @@ -494,7 +494,7 @@ UNLOCK TABLES; DROP TABLE IF EXISTS `fserver`; /*!40101 SET @saved_cs_client = @@character_set_client */; -/*!40101 SET character_set_client = utf8 */; +/*!40101 SET character_set_client = utf8mb4 */; CREATE TABLE `fserver` ( `id` int(11) NOT NULL AUTO_INCREMENT, `server` varchar(255) NOT NULL DEFAULT '', @@ -502,7 +502,7 @@ CREATE TABLE `fserver` ( `key` text NOT NULL, PRIMARY KEY (`id`), KEY `server` (`server`) -) ENGINE=InnoDB DEFAULT CHARSET=utf8; +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; /*!40101 SET character_set_client = @saved_cs_client */; -- @@ -520,7 +520,7 @@ UNLOCK TABLES; DROP TABLE IF EXISTS `fsuggest`; /*!40101 SET @saved_cs_client = @@character_set_client */; -/*!40101 SET character_set_client = utf8 */; +/*!40101 SET character_set_client = utf8mb4 */; CREATE TABLE `fsuggest` ( `id` int(11) NOT NULL AUTO_INCREMENT, `uid` int(11) NOT NULL DEFAULT '0', @@ -530,9 +530,9 @@ CREATE TABLE `fsuggest` ( `request` varchar(255) NOT NULL DEFAULT '', `photo` varchar(255) NOT NULL DEFAULT '', `note` text NOT NULL, - `created` datetime NOT NULL DEFAULT '0000-00-00 00:00:00', + `created` datetime NOT NULL DEFAULT '0001-01-01 00:00:00', PRIMARY KEY (`id`) -) ENGINE=InnoDB DEFAULT CHARSET=utf8; +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; /*!40101 SET character_set_client = @saved_cs_client */; -- @@ -550,7 +550,7 @@ UNLOCK TABLES; DROP TABLE IF EXISTS `gcign`; /*!40101 SET @saved_cs_client = @@character_set_client */; -/*!40101 SET character_set_client = utf8 */; +/*!40101 SET character_set_client = utf8mb4 */; CREATE TABLE `gcign` ( `id` int(11) NOT NULL AUTO_INCREMENT, `uid` int(11) NOT NULL DEFAULT '0', @@ -558,7 +558,7 @@ CREATE TABLE `gcign` ( PRIMARY KEY (`id`), KEY `uid` (`uid`), KEY `gcid` (`gcid`) -) ENGINE=InnoDB DEFAULT CHARSET=utf8; +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; /*!40101 SET character_set_client = @saved_cs_client */; -- @@ -576,7 +576,7 @@ UNLOCK TABLES; DROP TABLE IF EXISTS `gcontact`; /*!40101 SET @saved_cs_client = @@character_set_client */; -/*!40101 SET character_set_client = utf8 */; +/*!40101 SET character_set_client = utf8mb4 */; CREATE TABLE `gcontact` ( `id` int(10) unsigned NOT NULL AUTO_INCREMENT, `name` varchar(255) NOT NULL DEFAULT '', @@ -584,7 +584,7 @@ CREATE TABLE `gcontact` ( `nurl` varchar(255) NOT NULL DEFAULT '', `photo` varchar(255) NOT NULL DEFAULT '', `connect` varchar(255) NOT NULL DEFAULT '', - `updated` datetime DEFAULT '0000-00-00 00:00:00', + `updated` datetime DEFAULT '0001-01-01 00:00:00', `location` varchar(255) NOT NULL DEFAULT '', `about` text NOT NULL, `keywords` text NOT NULL, @@ -592,7 +592,7 @@ CREATE TABLE `gcontact` ( `network` varchar(255) NOT NULL DEFAULT '', PRIMARY KEY (`id`), KEY `nurl` (`nurl`) -) ENGINE=InnoDB AUTO_INCREMENT=157 DEFAULT CHARSET=utf8; +) ENGINE=InnoDB AUTO_INCREMENT=157 DEFAULT CHARSET=utf8mb4; /*!40101 SET character_set_client = @saved_cs_client */; -- @@ -601,7 +601,7 @@ CREATE TABLE `gcontact` ( LOCK TABLES `gcontact` WRITE; /*!40000 ALTER TABLE `gcontact` DISABLE KEYS */; -INSERT INTO `gcontact` VALUES (1,'Keith','https://friendika.me4.it/profile/keith','http://friendika.me4.it/profile/keith','https://friendika.me4.it/photo/custom/300/1.jpg?rev=2014-07-27+19%3A34%3A36','','0000-00-00 00:00:00','','','','','dspr'),(2,'Manuel Freiria','https://friendika.me4.it/profile/manolofreiria','http://friendika.me4.it/profile/manolofreiria','https://friendika.me4.it/photo/custom/300/254.jpg?rev=2014-09-06+23%3A58%3A50','','0000-00-00 00:00:00','','','','','dspr'),(3,'José Manuel Goig','https://friendika.me4.it/profile/jmgoig','http://friendika.me4.it/profile/jmgoig','https://friendika.me4.it/photo/custom/300/283.jpg?rev=2014-12-16+10%3A11%3A40','','0000-00-00 00:00:00','','','','','dspr'),(4,'Keith','https://friendica.eu/profile/support','http://friendica.eu/profile/support','https://friendica.eu/photo/custom/300/1.jpg?rev=2011-12-21+14%3A41%3A44','','0000-00-00 00:00:00','','','','','dspr'),(5,'Henrike Van Mortis','https://friendica.eu/profile/hvm','http://friendica.eu/profile/hvm','https://friendica.eu/photo/custom/300/250.jpg','','0000-00-00 00:00:00','','','','','dspr'),(6,'offene Ablage: nothing to hide','https://friendica.eu/profile/o2myfrdca01','http://friendica.eu/profile/o2myfrdca01','https://friendica.eu/photo/custom/300/259.jpg?rev=2012-02-16+16%3A49%3A37','','0000-00-00 00:00:00','','','','','dspr'),(7,'Friendica Theme Developers','https://friendica.eu/profile/ftdevs','http://friendica.eu/profile/ftdevs','https://friendica.eu/photo/custom/300/366.jpg?rev=2012-03-01+11%3A58%3A18','','0000-00-00 00:00:00','','','','','dspr'),(8,'Nepesh Hacker','https://friendica.eu/profile/arescorpio','http://friendica.eu/profile/arescorpio','https://friendica.eu/photo/custom/300/516.jpg?rev=2012-11-07+22%3A39%3A38','','0000-00-00 00:00:00','','','','','dspr'),(9,'Rolf Rupp','https://friendica.eu/profile/rcr','http://friendica.eu/profile/rcr','https://friendica.eu/photo/custom/300/841.jpg?rev=2014-01-09+22%3A15%3A09','','0000-00-00 00:00:00','','','','','dspr'),(10,'Daniel Steinbacher','https://friendica.eu/profile/damez','http://friendica.eu/profile/damez','https://friendica.eu/photo/custom/300/1791.jpg?rev=2015-01-15+16%3A49%3A29','','0000-00-00 00:00:00','','','','','dspr'),(11,'Pirate Times','https://friendica.eu/profile/piratetimes','http://friendica.eu/profile/piratetimes','https://friendica.eu/photo/custom/300/885.jpg?rev=2014-01-21+11%3A09%3A35','','0000-00-00 00:00:00','','','','','dspr'),(12,'Jacques','https://friendica.eu/profile/jacques','http://friendica.eu/profile/jacques','https://friendica.eu/photo/custom/300/907.jpg?rev=2015-01-15+14%3A37%3A37','','0000-00-00 00:00:00','','','','','dspr'),(13,'Montse Freire','https://friendica.eu/profile/auga09','http://friendica.eu/profile/auga09','https://friendica.eu/photo/custom/300/934.jpg?rev=2014-02-16+14%3A17%3A30','','0000-00-00 00:00:00','','','','','dspr'),(14,'oremus','https://friendica.eu/profile/oremus','http://friendica.eu/profile/oremus','https://friendica.eu/photo/custom/300/1073.jpg?rev=2014-04-29+15%3A09%3A50','','0000-00-00 00:00:00','','','','','dspr'),(15,'ppp','https://friendica.eu/profile/ppp','http://friendica.eu/profile/ppp','https://friendica.eu/photo/custom/300/1134.jpg?rev=2014-06-01+12%3A58%3A28','','0000-00-00 00:00:00','','','','','dspr'),(16,'Krin Bouch','https://friendica.eu/profile/krinbouch','http://friendica.eu/profile/krinbouch','https://friendica.eu/photo/custom/300/1471.jpg?rev=2014-09-20+14%3A18%3A24','','0000-00-00 00:00:00','','','','','dspr'),(17,'Miguel Menéndez','https://friendica.eu/profile/miguelmenendez','http://friendica.eu/profile/miguelmenendez','https://friendica.eu/photo/custom/300/1508.jpg?rev=2014-10-26+15%3A21%3A28','','0000-00-00 00:00:00','','','','','dspr'),(18,'Alexandre Pólvora','https://friendica.eu/profile/discomplex','http://friendica.eu/profile/discomplex','https://friendica.eu/photo/custom/300/1522.jpg?rev=2014-11-05+23%3A54%3A57','','0000-00-00 00:00:00','','','','','dspr'),(19,'Chak\'pur','https://friendica.eu/profile/murokka','http://friendica.eu/profile/murokka','https://friendica.eu/photo/custom/300/1535.jpg?rev=2014-11-13+09%3A13%3A55','','0000-00-00 00:00:00','','','','','dspr'),(20,'Samuel Contraste','https://friendica.eu/profile/stace-melunor','http://friendica.eu/profile/stace-melunor','https://friendica.eu/photo/custom/300/1586.jpg?rev=2014-11-28+13%3A01%3A22','','0000-00-00 00:00:00','','','','','dspr'),(21,'Martin Langlotz','https://friendica.eu/profile/numan','http://friendica.eu/profile/numan','https://friendica.eu/photo/custom/300/1621.jpg?rev=2014-12-02+10%3A37%3A34','','0000-00-00 00:00:00','','','','','dspr'),(22,'Elie Bissery','https://friendica.eu/profile/eilsib','http://friendica.eu/profile/eilsib','https://friendica.eu/photo/custom/300/1680.jpg?rev=2014-12-17+16%3A05%3A23','','0000-00-00 00:00:00','','','','','dspr'),(23,'Cécile Maitre','https://friendica.eu/profile/cecile','http://friendica.eu/profile/cecile','https://friendica.eu/photo/custom/300/1703.jpg?rev=2014-12-23+19%3A29%3A41','','0000-00-00 00:00:00','','','','','dspr'),(24,'Ralf Gerdes','https://friendica.eu/profile/ralf','http://friendica.eu/profile/ralf','https://friendica.eu/photo/custom/300/1739.jpg?rev=2014-12-30+12%3A43%3A12','','0000-00-00 00:00:00','','','','','dspr'),(25,'Loran Btn','https://friendica.eu/profile/loran_mcfly','http://friendica.eu/profile/loran_mcfly','https://friendica.eu/photo/custom/300/1781.jpg?rev=2015-01-11+09%3A10%3A33','','0000-00-00 00:00:00','','','','','dspr'),(26,'Jörn Rinne','https://friendica.eu/profile/lefou','http://friendica.eu/profile/lefou','https://friendica.eu/photo/custom/300/1782.jpg?rev=2015-01-11+15%3A39%3A33','','0000-00-00 00:00:00','','','','','dspr'),(27,'Lud Wig','https://friendica.eu/profile/ludwig','http://friendica.eu/profile/ludwig','https://friendica.eu/photo/custom/300/1810.jpg?rev=2015-01-25+04%3A41%3A20','','0000-00-00 00:00:00','','','','','dspr'),(28,'Rike','http://mist.loozah.com/profile/rike','http://mist.loozah.com/profile/rike','http://mist.loozah.com/photo/custom/300/2.jpg?rev=2012-02-03+14%3A10%3A17','','0000-00-00 00:00:00','','','','','dspr'),(29,'Torsten Peh','http://mist.loozah.com/profile/torsten_peh','http://mist.loozah.com/profile/torsten_peh','http://mist.loozah.com/photo/custom/300/13.jpg?rev=2012-05-15+12%3A58%3A18','','0000-00-00 00:00:00','','','','','dspr'),(30,'der buffer','http://mist.loozah.com/profile/derbuffer','http://mist.loozah.com/profile/derbuffer','http://mist.loozah.com/photo/custom/300/98.jpg?rev=2013-07-27+00%3A10%3A59','','0000-00-00 00:00:00','','','','','dspr'),(31,'Marcel','http://mist.loozah.com/profile/mkay','http://mist.loozah.com/profile/mkay','http://mist.loozah.com/photo/custom/300/24.jpg?rev=2012-06-14+19%3A06%3A37','','0000-00-00 00:00:00','','','','','dspr'),(32,'Gianluca Zoni','http://mist.loozah.com/profile/zoninoz','http://mist.loozah.com/profile/zoninoz','http://mist.loozah.com/photo/custom/300/56.jpg?rev=2012-09-12+15%3A38%3A42','','0000-00-00 00:00:00','','','','','dspr'),(33,'Jo A','http://mist.loozah.com/profile/joooo','http://mist.loozah.com/profile/joooo','http://mist.loozah.com/photo/custom/300/64.jpg?rev=2012-11-12+15%3A32%3A02','','0000-00-00 00:00:00','','','','','dspr'),(34,'Lass Mi Randa Den Sie Will Ja','https://friendica.styliztique.biz/profile/stb','http://friendica.styliztique.biz/profile/stb','https://friendica.styliztique.biz/photo/custom/300/20.jpg?rev=2013-09-06+16%3A04%3A10','','0000-00-00 00:00:00','','','','','dspr'),(35,'кαяισz м☠яку','https://karl.marx.pm/profile/kmarky','http://karl.marx.pm/profile/kmarky','https://karl.marx.pm/photo/custom/300/11.jpg?rev=2014-01-17+09%3A48%3A33','','0000-00-00 00:00:00','','','','','dspr'),(36,'Indignados','https://karl.marx.pm/profile/indignados','http://karl.marx.pm/profile/indignados','https://karl.marx.pm/photo/custom/300/44.jpg?rev=2012-05-27+14%3A53%3A52','','0000-00-00 00:00:00','','','','','dspr'),(37,'Anarkia','https://karl.marx.pm/profile/anarquia','http://karl.marx.pm/profile/anarquia','https://karl.marx.pm/photo/custom/300/45.jpg?rev=2012-05-29+11%3A01%3A11','','0000-00-00 00:00:00','','','','','dspr'),(38,'Planeta Pirata','https://karl.marx.pm/profile/pirata','http://karl.marx.pm/profile/pirata','https://karl.marx.pm/photo/custom/300/46.jpg?rev=2012-05-27+15%3A20%3A12','','0000-00-00 00:00:00','','','','','dspr'),(39,'Grupo GNU | Linux','https://karl.marx.pm/profile/gnu','http://karl.marx.pm/profile/gnu','https://karl.marx.pm/photo/custom/300/47.jpg?rev=2012-05-27+15%3A34%3A20','','0000-00-00 00:00:00','','','','','dspr'),(40,'Ecologia','https://karl.marx.pm/profile/eco','http://karl.marx.pm/profile/eco','https://karl.marx.pm/photo/custom/300/57.jpg?rev=2012-06-09+06%3A42%3A04','','0000-00-00 00:00:00','','','','','dspr'),(41,'Grupo antiFa Friendica','https://karl.marx.pm/profile/antifa','http://karl.marx.pm/profile/antifa','https://karl.marx.pm/photo/custom/300/60.jpg?rev=2012-06-11+08%3A46%3A48','','0000-00-00 00:00:00','','','','','dspr'),(42,'Facebook (alias Feisbuk)','https://karl.marx.pm/profile/facebook','http://karl.marx.pm/profile/facebook','https://karl.marx.pm/photo/custom/300/61.jpg?rev=2014-01-17+09%3A50%3A44','','0000-00-00 00:00:00','','','','','dspr'),(43,'Todo Cine','https://karl.marx.pm/profile/cine','http://karl.marx.pm/profile/cine','https://karl.marx.pm/photo/custom/300/65.jpg?rev=2012-06-15+07%3A20%3A01','','0000-00-00 00:00:00','','','','','dspr'),(44,'Rivera Valdez','https://karl.marx.pm/profile/riveravaldez','http://karl.marx.pm/profile/riveravaldez','https://karl.marx.pm/photo/custom/300/205.jpg?rev=2013-06-18+10%3A58%3A46','','0000-00-00 00:00:00','','','','','dspr'),(45,'Tazman Devil','https://karl.marx.pm/profile/tazman','http://karl.marx.pm/profile/tazman','https://karl.marx.pm/photo/custom/300/228.jpg?rev=2013-08-24+02%3A59%3A52','','0000-00-00 00:00:00','','','','','dspr'),(46,'Tiago Casal Ribeiro','https://karl.marx.pm/profile/tiago','http://karl.marx.pm/profile/tiago','https://karl.marx.pm/photo/custom/300/391.jpg?rev=2014-10-30+17%3A10%3A40','','0000-00-00 00:00:00','','','','','dspr'),(47,'Protestation','https://karl.marx.pm/profile/protestation_','http://karl.marx.pm/profile/protestation_','https://karl.marx.pm/photo/custom/300/414.jpg','','0000-00-00 00:00:00','','','','','dspr'),(48,'Arto','https://myfriendica.net/profile/arto','http://myfriendica.net/profile/arto','https://myfriendica.net/photo/custom/300/5.jpg?rev=2012-04-29+18%3A36%3A29','','0000-00-00 00:00:00','','','','','dspr'),(49,'Gatoso Kot','https://myfriendica.net/profile/gatoso','http://myfriendica.net/profile/gatoso','https://myfriendica.net/photo/custom/300/159.jpg?rev=2013-04-05+05%3A51%3A58','','0000-00-00 00:00:00','','','','','dspr'),(50,'Believing Prayer','https://myfriendica.net/profile/believingprayer','http://myfriendica.net/profile/believingprayer','https://myfriendica.net/photo/custom/300/11.jpg?rev=2012-03-19+13%3A12%3A07','','0000-00-00 00:00:00','','','','','dspr'),(51,'Avery Jenkins','https://myfriendica.net/profile/docaltmed','http://myfriendica.net/profile/docaltmed','https://myfriendica.net/photo/custom/300/17.jpg?rev=2012-03-27+11%3A05%3A26','','0000-00-00 00:00:00','','','','','dspr'),(52,'Vincent','https://myfriendica.net/profile/influencepc','http://myfriendica.net/profile/influencepc','https://myfriendica.net/photo/custom/300/55.jpg?rev=2012-04-26+12%3A47%3A48','','0000-00-00 00:00:00','','','','','dspr'),(53,'Berlin Group','https://myfriendica.net/profile/berlin','http://myfriendica.net/profile/berlin','https://myfriendica.net/photo/custom/300/65.jpg?rev=2012-04-28+09%3A21%3A19','','0000-00-00 00:00:00','','','','','dspr'),(54,'jcsesecuneta@myfriendica.net','https://myfriendica.net/profile/jcsesecuneta','http://myfriendica.net/profile/jcsesecuneta','https://myfriendica.net/photo/custom/300/281.jpg?rev=2013-09-06+11%3A51%3A59','','0000-00-00 00:00:00','','','','','dspr'),(55,'Sam I','https://myfriendica.net/profile/sam01','http://myfriendica.net/profile/sam01','https://myfriendica.net/photo/custom/300/183.jpg?rev=2013-06-28+15%3A34%3A46','','0000-00-00 00:00:00','','','','','dspr'),(56,'Stephen Judge','https://myfriendica.net/profile/stephen','http://myfriendica.net/profile/stephen','https://myfriendica.net/photo/custom/300/294.jpg?rev=2014-02-25+15%3A07%3A05','','0000-00-00 00:00:00','','','','','dspr'),(57,'潘隆吉 Tony Phuah','https://myfriendica.net/profile/tonyphuah','http://myfriendica.net/profile/tonyphuah','https://myfriendica.net/photo/custom/300/304.jpg?rev=2013-11-02+00%3A37%3A59','','0000-00-00 00:00:00','','','','','dspr'),(58,'Lina María Largo','https://myfriendica.net/profile/linamaria','http://myfriendica.net/profile/linamaria','https://myfriendica.net/photo/custom/300/332.jpg?rev=2013-12-18+08%3A14%3A24','','0000-00-00 00:00:00','','','','','dspr'),(59,'Petra L.','https://myfriendica.net/profile/petra-l','http://myfriendica.net/profile/petra-l','https://myfriendica.net/photo/custom/300/349.jpg?rev=2014-04-05+13%3A41%3A25','','0000-00-00 00:00:00','','','','','dspr'),(60,'Panko','https://myfriendica.net/profile/panko','http://myfriendica.net/profile/panko','https://myfriendica.net/photo/custom/300/354.jpg?rev=2014-07-30+14%3A22%3A42','','0000-00-00 00:00:00','','','','','dspr'),(61,'Jorge','https://myfriendica.net/profile/soloojos','http://myfriendica.net/profile/soloojos','https://myfriendica.net/photo/custom/300/370.jpg?rev=2014-03-02+16%3A20%3A32','','0000-00-00 00:00:00','','','','','dspr'),(62,'Sebas Pedersen','https://myfriendica.net/profile/sebasped','http://myfriendica.net/profile/sebasped','https://myfriendica.net/photo/custom/300/373.jpg?rev=2015-01-15+23%3A04%3A06','','0000-00-00 00:00:00','','','','','dspr'),(63,'ivan zlax','https://myfriendica.net/profile/zlaxyi','http://myfriendica.net/profile/zlaxyi','https://myfriendica.net/photo/custom/300/376.jpg?rev=2014-03-09+09%3A56%3A13','','0000-00-00 00:00:00','','','','','dspr'),(64,'Shimriez','https://myfriendica.net/profile/shimriez','http://myfriendica.net/profile/shimriez','https://myfriendica.net/photo/custom/300/403.jpg?rev=2014-06-21+17%3A18%3A05','','0000-00-00 00:00:00','','','','','dspr'),(65,'Sitesonix Web Solutions','https://myfriendica.net/profile/sitesonix','http://myfriendica.net/profile/sitesonix','https://myfriendica.net/photo/custom/300/445.jpg?rev=2014-06-13+17%3A25%3A54','','0000-00-00 00:00:00','','','','','dspr'),(66,'Bastian Lang','https://myfriendica.net/profile/raudy93','http://myfriendica.net/profile/raudy93','https://myfriendica.net/photo/custom/300/436.jpg?rev=2014-05-29+12%3A40%3A00','','0000-00-00 00:00:00','','','','','dspr'),(67,'Simó Albert i Beltran','https://myfriendica.net/profile/sim6','http://myfriendica.net/profile/sim6','https://myfriendica.net/photo/custom/300/419.jpg?rev=2014-05-14+16%3A14%3A04','','0000-00-00 00:00:00','','','','','dspr'),(68,'RT Griffiti','https://myfriendica.net/profile/rtgriffiti','http://myfriendica.net/profile/rtgriffiti','https://myfriendica.net/photo/custom/300/437.jpg?rev=2014-05-30+01%3A17%3A19','','0000-00-00 00:00:00','','','','','dspr'),(69,'Damian','https://myfriendica.net/profile/deb92','http://myfriendica.net/profile/deb92','https://myfriendica.net/photo/custom/300/462.jpg?rev=2014-07-29+18%3A18%3A26','','0000-00-00 00:00:00','','','','','dspr'),(70,'Ciril Earth','https://myfriendica.net/profile/cirilearth','http://myfriendica.net/profile/cirilearth','https://myfriendica.net/photo/custom/300/519.jpg?rev=2014-12-22+12%3A19%3A09','','0000-00-00 00:00:00','','','','','dspr'),(71,'The SOS Card Project','https://myfriendica.net/profile/the_sos_card_project','http://myfriendica.net/profile/the_sos_card_project','https://myfriendica.net/photo/custom/300/524.jpg?rev=2014-12-26+19%3A54%3A41','','0000-00-00 00:00:00','','','','','dspr'),(72,'Hauke Altmann','https://snarl.de/profile/tugelblend','http://snarl.de/profile/tugelblend','https://www.snarl.de/photo/profile/5.jpg','','2015-01-25 05:02:28','Berlin','Softwaredeveloper, friendica enthusiast, member of http://www.graffitiresearchlab.de/, cyclist','graffiti, friendica, graffiti, research, lab, diy, collectivism, urban, art, surfing, berlin, opensource, critical, mass, freifunk','','dfrn'),(73,'Chris Thina','https://snarl.de/profile/chillkroete','http://snarl.de/profile/chillkroete','https://snarl.de/photo/profile/69.jpg','','2014-01-11 11:59:56','','','','','dfrn'),(74,'Dirk Schlechter','https://snarl.de/profile/viewfinder','http://snarl.de/profile/viewfinder','https://snarl.de/photo/profile/106.jpg','','2014-03-24 16:20:54','','','','Männlich','dfrn'),(75,'Tauschring Prenzelberg','https://snarl.de/profile/prenzeltausch','http://snarl.de/profile/prenzeltausch','https://snarl.de/photo/profile/117.jpg','','2015-01-25 19:31:54','Berlin','Haareschneiden gegen Waschmaschinenreparatur?
Autotransport gegen Katze gießen?
Der Prenzelberger Tauschring
sucht weitere Mitglieder.
Komm doch mal vorbei:
Treffen jeden 2. & 4. Montag im Monat
im Kiezladen in der Dunckerstr. 14, 19-20 Uhr
prenzeltausch.thing.de','tauschring, zeitkonto','Intersex','dfrn'),(76,'Panko','https://snarl.de/profile/panko','http://snarl.de/profile/panko','https://snarl.de/photo/profile/141.jpg','@','2015-02-02 11:31:46','La Vila Joiosa','','debian, linux, gnu, gnu/linux, scifi, horror, xmpp, jabber, friendica, pump, freesoftware, darts, dardos, dards, punk, rock, ska, reggae, beer','Home','dfrn'),(77,'Berlin Group','https://snarl.de/profile/berlin','http://snarl.de/profile/berlin','https://snarl.de/photo/profile/0.jpg','','2012-04-28 09:21:19','Berlin','Eine Gruppe für alle Friendicianer, die an der geilsten Stadt Deutschlands interessiert sind.','berlin','','dfrn'),(78,'Daniel C. Würl','https://snarl.de/profile/decadentgray','http://snarl.de/profile/decadentgray','https://snarl.de/photo/profile/158.jpg','','2014-08-29 02:20:44','','','','','dfrn'),(79,'Michaela Gruber','https://snarl.de/profile/starling','http://snarl.de/profile/starling','https://snarl.de/photo/profile/160.jpg','','2014-09-03 18:19:10','','','','','dfrn'),(80,'Kristian R.','https://snarl.de/profile/z428','http://snarl.de/profile/z428','https://snarl.de/photo/profile/181.jpg','','2015-01-30 13:47:31','','Software engineer (#java, #javaee, #python, mainly server-sided and backend), art and imaging addict mainly using #gimp, #opensource / #softwarelibre # freesoftware software user and promoter, lover of bizarre #music (especially #netaudio stuff, #metal, #postrock, more open-minded #indie), #vegetarian, 30something and a few other things.
kr428 virtually everywhere, including twitter, identica et al.','linux, gimp, photography, music, java, opensource, gnome, philosophy, spirituality, art','Männlich','dfrn'),(81,'Georg Hofer','https://snarl.de/profile/ironhead','http://snarl.de/profile/ironhead','https://snarl.de/photo/profile/228.jpg','','2014-12-31 15:47:14','','','','','dfrn'),(82,'Nick Power','https://snarl.de/profile/veganvincent','http://snarl.de/profile/veganvincent','https://snarl.de/photo/profile/240.jpg','','2015-01-26 16:59:02','','','','','dfrn'),(83,'Yushin W','https://snarl.de/profile/opduur','http://snarl.de/profile/opduur','https://snarl.de/photo/profile/254.jpg','','2015-01-28 19:44:40','','','freesoftware, floss, foss, opensource, linux, vim, cli, command-line, creativecommons, ocw, oer, commons, sustainability, energy, lohas, mdg, sdg','','dfrn'),(84,'Oradon','https://oradon.pegasus.uberspace.de/profile/oradon','http://oradon.pegasus.uberspace.de/profile/oradon','https://oradon.pegasus.uberspace.de/photo/custom/300/1.jpg','','0000-00-00 00:00:00','','','','','dspr'),(85,'Stuttgart','https://oradon.pegasus.uberspace.de/profile/stuttgart','http://oradon.pegasus.uberspace.de/profile/stuttgart','https://oradon.pegasus.uberspace.de/photo/custom/300/12.jpg','','0000-00-00 00:00:00','','','','','dspr'),(86,'Olivier','https://friendica.free-beer.ch/profile/olivier','http://friendica.free-beer.ch/profile/olivier','https://friendica.free-beer.ch/photo/custom/300/1.jpg?rev=2012-05-02+09%3A02%3A19','','0000-00-00 00:00:00','','','','','dspr'),(87,'pogonator','https://friendica.free-beer.ch/profile/pogonator','http://friendica.free-beer.ch/profile/pogonator','https://friendica.free-beer.ch/photo/custom/300/396.jpg?rev=2013-06-22+07%3A51%3A38','','0000-00-00 00:00:00','','','','','dspr'),(88,'Claus Muehlenkamp','https://friendica.free-beer.ch/profile/clausmuehlenkamp','http://friendica.free-beer.ch/profile/clausmuehlenkamp','https://friendica.free-beer.ch/photo/custom/300/368.jpg?rev=2013-06-12+21%3A21%3A07','','0000-00-00 00:00:00','','','','','dspr'),(89,'Jörg Hartmann','https://friendica.free-beer.ch/profile/jh72de','http://friendica.free-beer.ch/profile/jh72de','https://friendica.free-beer.ch/photo/custom/300/295.jpg?rev=2013-04-09+19%3A21%3A01','','0000-00-00 00:00:00','','','','','dspr'),(90,'Carlos Solís','https://friendica.free-beer.ch/profile/csolisr','http://friendica.free-beer.ch/profile/csolisr','https://friendica.free-beer.ch/photo/custom/300/22.jpg?rev=2012-05-31+23%3A00%3A24','','0000-00-00 00:00:00','','','','','dspr'),(91,'Frederic Guilbault','https://friendica.free-beer.ch/profile/border','http://friendica.free-beer.ch/profile/border','https://friendica.free-beer.ch/photo/custom/300/23.jpg?rev=2012-06-01+02%3A24%3A09','','0000-00-00 00:00:00','','','','','dspr'),(92,'Sun Sunich','https://friendica.free-beer.ch/profile/sunsunich','http://friendica.free-beer.ch/profile/sunsunich','https://friendica.free-beer.ch/photo/custom/300/337.jpg?rev=2013-06-06+19%3A54%3A58','','0000-00-00 00:00:00','','','','','dspr'),(93,'Jaun Santiago','https://friendica.free-beer.ch/profile/juansantiago','http://friendica.free-beer.ch/profile/juansantiago','https://friendica.free-beer.ch/photo/custom/300/94.jpg?rev=2012-08-05+21%3A12%3A40','','0000-00-00 00:00:00','','','','','dspr'),(94,'Axel','https://friendica.free-beer.ch/profile/axel','http://friendica.free-beer.ch/profile/axel','https://friendica.free-beer.ch/photo/custom/300/61.jpg?rev=2014-01-08+17%3A14%3A05','','0000-00-00 00:00:00','','','','','dspr'),(95,'Alexander Jobst','https://friendica.free-beer.ch/profile/alexanderjobst','http://friendica.free-beer.ch/profile/alexanderjobst','https://friendica.free-beer.ch/photo/custom/300/77.jpg?rev=2012-07-11+08%3A19%3A36','','0000-00-00 00:00:00','','','','','dspr'),(96,'Matija Šuklje','https://friendica.free-beer.ch/profile/hook','http://friendica.free-beer.ch/profile/hook','https://friendica.free-beer.ch/photo/custom/300/336.jpg?rev=2013-06-02+20%3A40%3A51','','0000-00-00 00:00:00','','','','','dspr'),(97,'Brando','https://friendica.free-beer.ch/profile/dysfunctional','http://friendica.free-beer.ch/profile/dysfunctional','https://friendica.free-beer.ch/photo/custom/300/89.jpg?rev=2012-07-28+04%3A35%3A53','','0000-00-00 00:00:00','','','','','dspr'),(98,'Max Anton','https://friendica.free-beer.ch/profile/ntimes','http://friendica.free-beer.ch/profile/ntimes','https://friendica.free-beer.ch/photo/custom/300/98.jpg?rev=2012-08-08+21%3A32%3A00','','0000-00-00 00:00:00','','','','','dspr'),(99,'Inyan','https://friendica.free-beer.ch/profile/inyan','http://friendica.free-beer.ch/profile/inyan','https://friendica.free-beer.ch/photo/custom/300/111.jpg?rev=2012-08-18+19%3A01%3A17','','0000-00-00 00:00:00','','','','','dspr'),(100,'亗 Dr. Emporio Efikz 亗','https://friendica.free-beer.ch/profile/dr_emporio_efikz','http://friendica.free-beer.ch/profile/dr_emporio_efikz','https://friendica.free-beer.ch/photo/custom/300/108.jpg?rev=2012-08-17+01%3A48%3A09','','0000-00-00 00:00:00','','','','','dspr'),(101,'w2bh.- free-beer.ch','https://friendica.free-beer.ch/profile/w2bh','http://friendica.free-beer.ch/profile/w2bh','https://friendica.free-beer.ch/photo/custom/300/104.jpg?rev=2012-08-15+10%3A52%3A29','','0000-00-00 00:00:00','','','','','dspr'),(102,'Torsten Schilinsky','https://friendica.free-beer.ch/profile/torsten1968','http://friendica.free-beer.ch/profile/torsten1968','https://friendica.free-beer.ch/photo/custom/300/107.jpg?rev=2012-09-18+11%3A17%3A42','','0000-00-00 00:00:00','','','','','dspr'),(103,'Ecologie Libidinale','https://friendica.free-beer.ch/profile/ecologielibidinale','http://friendica.free-beer.ch/profile/ecologielibidinale','https://friendica.free-beer.ch/photo/custom/300/118.jpg?rev=2012-08-23+18%3A19%3A23','','0000-00-00 00:00:00','','','','','dspr'),(104,'Robert Bonie','https://friendica.free-beer.ch/profile/robrob','http://friendica.free-beer.ch/profile/robrob','https://friendica.free-beer.ch/photo/custom/300/138.jpg?rev=2012-09-07+17%3A57%3A21','','0000-00-00 00:00:00','','','','','dspr'),(105,'Marius Katcá','https://friendica.free-beer.ch/profile/marius_katca','http://friendica.free-beer.ch/profile/marius_katca','https://friendica.free-beer.ch/photo/custom/300/143.jpg?rev=2012-09-10+11%3A02%3A55','','0000-00-00 00:00:00','','','','','dspr'),(106,'Yossefa Mekyton','https://friendica.free-beer.ch/profile/jooxz','http://friendica.free-beer.ch/profile/jooxz','https://friendica.free-beer.ch/photo/custom/300/413.jpg?rev=2013-06-29+18%3A54%3A44','','0000-00-00 00:00:00','','','','','dspr'),(107,'Xurxo Ventos','https://friendica.free-beer.ch/profile/xurxoventos','http://friendica.free-beer.ch/profile/xurxoventos','https://friendica.free-beer.ch/photo/custom/300/412.jpg?rev=2013-06-29+10%3A07%3A23','','0000-00-00 00:00:00','','','','','dspr'),(108,'Fergus Ferrier','https://friendica.free-beer.ch/profile/rufusson','http://friendica.free-beer.ch/profile/rufusson','https://friendica.free-beer.ch/photo/custom/300/146.jpg?rev=2012-09-14+01%3A11%3A23','','0000-00-00 00:00:00','','','','','dspr'),(109,'Arescorpio Nepesh','https://friendica.free-beer.ch/profile/arescorpio','http://friendica.free-beer.ch/profile/arescorpio','https://friendica.free-beer.ch/photo/custom/300/158.jpg?rev=2012-10-05+19%3A05%3A49','','0000-00-00 00:00:00','','','','','dspr'),(110,'Shiroikuma','https://friendica.free-beer.ch/profile/shiroikuma','http://friendica.free-beer.ch/profile/shiroikuma','https://friendica.free-beer.ch/photo/custom/300/334.jpg?rev=2013-06-02+09%3A59%3A35','','0000-00-00 00:00:00','','','','','dspr'),(111,'FreeBeer Klampf','https://friendica.free-beer.ch/profile/klampfattacke','http://friendica.free-beer.ch/profile/klampfattacke','https://friendica.free-beer.ch/photo/custom/300/167.jpg?rev=2012-10-27+02%3A34%3A19','','0000-00-00 00:00:00','','','','','dspr'),(112,'Raphael Vieira','https://friendica.free-beer.ch/profile/barba_negra','http://friendica.free-beer.ch/profile/barba_negra','https://friendica.free-beer.ch/photo/custom/300/772.jpg?rev=2014-05-04+03%3A45%3A51','','0000-00-00 00:00:00','','','','','dspr'),(113,'Marina Soler','https://friendica.free-beer.ch/profile/marisoler','http://friendica.free-beer.ch/profile/marisoler','https://friendica.free-beer.ch/photo/custom/300/514.jpg?rev=2013-09-01+18%3A38%3A55','','0000-00-00 00:00:00','','','','','dspr'),(114,'Als Ob','https://friendica.free-beer.ch/profile/derhuaba','http://friendica.free-beer.ch/profile/derhuaba','https://friendica.free-beer.ch/photo/custom/300/842.jpg?rev=2014-08-06+23%3A24%3A06','','0000-00-00 00:00:00','','','','','dspr'),(115,'Colin Steele','https://friendica.free-beer.ch/profile/emberleaf','http://friendica.free-beer.ch/profile/emberleaf','https://friendica.free-beer.ch/photo/custom/300/245.jpg?rev=2013-02-23+16%3A54%3A57','','0000-00-00 00:00:00','','','','','dspr'),(116,'Max Mustermann','https://friendica.free-beer.ch/profile/jan_sofasurfer','http://friendica.free-beer.ch/profile/jan_sofasurfer','https://friendica.free-beer.ch/photo/custom/300/246.jpg?rev=2013-02-24+13%3A17%3A05','','0000-00-00 00:00:00','','','','','dspr'),(117,'Nicola Sisto Alessandro Vaccarone','https://friendica.free-beer.ch/profile/nk','http://friendica.free-beer.ch/profile/nk','https://friendica.free-beer.ch/photo/custom/300/286.jpg?rev=2014-03-05+18%3A14%3A39','','0000-00-00 00:00:00','','','','','dspr'),(118,'Pascal Daniel Angst','https://friendica.free-beer.ch/profile/pascala','http://friendica.free-beer.ch/profile/pascala','https://friendica.free-beer.ch/photo/custom/300/268.jpg?rev=2013-03-16+14%3A39%3A19','','0000-00-00 00:00:00','','','','','dspr'),(119,'Bodhi SparkleSnapdragon Goforth','https://friendica.free-beer.ch/profile/snapdragon','http://friendica.free-beer.ch/profile/snapdragon','https://friendica.free-beer.ch/photo/custom/300/494.jpg?rev=2013-08-15+14%3A51%3A39','','0000-00-00 00:00:00','','','','','dspr'),(120,'AntiChristos44 BodhiSattva','https://friendica.free-beer.ch/profile/ac44bo','http://friendica.free-beer.ch/profile/ac44bo','https://friendica.free-beer.ch/photo/custom/300/440.jpg?rev=2013-07-15+01%3A55%3A24','','0000-00-00 00:00:00','','','','','dspr'),(121,'Michael Moroni','https://friendica.free-beer.ch/profile/airon90','http://friendica.free-beer.ch/profile/airon90','https://friendica.free-beer.ch/photo/custom/300/547.jpg?rev=2013-09-27+11%3A19%3A56','','0000-00-00 00:00:00','','','','','dspr'),(122,'Martin Neujahr','https://friendica.free-beer.ch/profile/funkymartin','http://friendica.free-beer.ch/profile/funkymartin','https://friendica.free-beer.ch/photo/custom/300/557.jpg?rev=2013-10-04+06%3A33%3A29','','0000-00-00 00:00:00','','','','','dspr'),(123,'Florian Traverse','https://friendica.free-beer.ch/profile/temsa','http://friendica.free-beer.ch/profile/temsa','https://friendica.free-beer.ch/photo/custom/300/548.jpg?rev=2013-09-28+06%3A16%3A05','','0000-00-00 00:00:00','','','','','dspr'),(124,'Picaflor Azul','https://friendica.free-beer.ch/profile/picaflor','http://friendica.free-beer.ch/profile/picaflor','https://friendica.free-beer.ch/photo/custom/300/549.jpg?rev=2013-09-28+15%3A36%3A46','','0000-00-00 00:00:00','','','','','dspr'),(125,'edson duarte','https://friendica.free-beer.ch/profile/vaugs3roty','http://friendica.free-beer.ch/profile/vaugs3roty','https://friendica.free-beer.ch/photo/custom/300/570.jpg?rev=2013-10-13+18%3A01%3A06','','0000-00-00 00:00:00','','','','','dspr'),(126,'Don Viktoranghelo De Cuyo','https://friendica.free-beer.ch/profile/lechju','http://friendica.free-beer.ch/profile/lechju','https://friendica.free-beer.ch/photo/custom/300/583.jpg?rev=2013-11-02+22%3A56%3A06','','0000-00-00 00:00:00','','','','','dspr'),(127,'Liselotte Vinberg','https://friendica.free-beer.ch/profile/musikmamma','http://friendica.free-beer.ch/profile/musikmamma','https://friendica.free-beer.ch/photo/custom/300/589.jpg?rev=2013-11-02+18%3A22%3A16','','0000-00-00 00:00:00','','','','','dspr'),(128,'Arlo James Barnes','https://friendica.free-beer.ch/profile/arlojamesbarnes','http://friendica.free-beer.ch/profile/arlojamesbarnes','https://friendica.free-beer.ch/photo/custom/300/593.jpg?rev=2013-11-04+21%3A56%3A10','','0000-00-00 00:00:00','','','','','dspr'),(129,'Roxana Diaz','https://friendica.free-beer.ch/profile/heindys','http://friendica.free-beer.ch/profile/heindys','https://friendica.free-beer.ch/photo/custom/300/774.jpg?rev=2014-05-10+09%3A51%3A52','','0000-00-00 00:00:00','','','','','dspr'),(130,'Armin Lutz','https://friendica.free-beer.ch/profile/zebra','http://friendica.free-beer.ch/profile/zebra','https://friendica.free-beer.ch/photo/custom/300/612.jpg?rev=2013-11-20+12%3A36%3A03','','0000-00-00 00:00:00','','','','','dspr'),(131,'Philipp Obenauer','https://friendica.free-beer.ch/profile/clandestino','http://friendica.free-beer.ch/profile/clandestino','https://friendica.free-beer.ch/photo/custom/300/621.jpg?rev=2013-12-14+11%3A09%3A01','','0000-00-00 00:00:00','','','','','dspr'),(132,'ѕтєιикαмρf','https://friendica.free-beer.ch/profile/steinkampf','http://friendica.free-beer.ch/profile/steinkampf','https://friendica.free-beer.ch/photo/custom/300/652.jpg?rev=2014-01-19+13%3A36%3A41','','0000-00-00 00:00:00','','','','','dspr'),(133,'Jerry Briardy','https://friendica.free-beer.ch/profile/bookman37','http://friendica.free-beer.ch/profile/bookman37','https://friendica.free-beer.ch/photo/custom/300/651.jpg?rev=2013-12-31+06%3A49%3A25','','0000-00-00 00:00:00','','','','','dspr'),(134,'D2O','https://friendica.free-beer.ch/profile/d2o','http://friendica.free-beer.ch/profile/d2o','https://friendica.free-beer.ch/photo/custom/300/673.jpg?rev=2014-01-16+14%3A57%3A25','','0000-00-00 00:00:00','','','','','dspr'),(135,'Marc Leunig','https://friendica.free-beer.ch/profile/miefda','http://friendica.free-beer.ch/profile/miefda','https://friendica.free-beer.ch/photo/custom/300/675.jpg?rev=2014-01-16+20%3A51%3A38','','0000-00-00 00:00:00','','','','','dspr'),(136,'Sebas Pesersen','https://friendica.free-beer.ch/profile/sebasped','http://friendica.free-beer.ch/profile/sebasped','https://friendica.free-beer.ch/photo/custom/300/714.jpg?rev=2014-02-16+21%3A33%3A10','','0000-00-00 00:00:00','','','','','dspr'),(137,'Redrick Deckard','https://friendica.free-beer.ch/profile/red','http://friendica.free-beer.ch/profile/red','https://friendica.free-beer.ch/photo/custom/300/724.jpg?rev=2014-03-02+17%3A12%3A30','','0000-00-00 00:00:00','','','','','dspr'),(138,'Rui Bernardo','https://friendica.free-beer.ch/profile/rui_miguel','http://friendica.free-beer.ch/profile/rui_miguel','https://friendica.free-beer.ch/photo/custom/300/729.jpg?rev=2014-03-05+15%3A46%3A11','','0000-00-00 00:00:00','','','','','dspr'),(139,'Manoel Nascimento','https://friendica.free-beer.ch/profile/manoelnascimento','http://friendica.free-beer.ch/profile/manoelnascimento','https://friendica.free-beer.ch/photo/custom/300/734.jpg?rev=2014-03-09+14%3A15%3A23','','0000-00-00 00:00:00','','','','','dspr'),(140,'ilma','https://friendica.free-beer.ch/profile/ilma','http://friendica.free-beer.ch/profile/ilma','https://friendica.free-beer.ch/photo/custom/300/739.jpg?rev=2014-03-14+03%3A41%3A44','','0000-00-00 00:00:00','','','','','dspr'),(141,'David Mccauley','https://friendica.free-beer.ch/profile/opticalrevenge','http://friendica.free-beer.ch/profile/opticalrevenge','https://friendica.free-beer.ch/photo/custom/300/746.jpg?rev=2014-03-22+18%3A30%3A05','','0000-00-00 00:00:00','','','','','dspr'),(142,'Atterratio Aeternus','https://friendica.free-beer.ch/profile/atterratio','http://friendica.free-beer.ch/profile/atterratio','https://friendica.free-beer.ch/photo/custom/300/753.jpg?rev=2014-04-04+01%3A23%3A23','','0000-00-00 00:00:00','','','','','dspr'),(143,'Markus Krüger','https://friendica.free-beer.ch/profile/kreuzmacher','http://friendica.free-beer.ch/profile/kreuzmacher','https://friendica.free-beer.ch/photo/custom/300/800.jpg?rev=2014-06-26+05%3A48%3A58','','0000-00-00 00:00:00','','','','','dspr'),(144,'Master O Disaster','https://friendica.free-beer.ch/profile/masterodisaster','http://friendica.free-beer.ch/profile/masterodisaster','https://friendica.free-beer.ch/photo/custom/300/855.jpg?rev=2014-08-18+20%3A31%3A42','','0000-00-00 00:00:00','','','','','dspr'),(145,'eyal72','https://friendica.free-beer.ch/profile/eyal72','http://friendica.free-beer.ch/profile/eyal72','https://friendica.free-beer.ch/photo/custom/300/872.jpg?rev=2014-09-03+22%3A35%3A36','','0000-00-00 00:00:00','','','','','dspr'),(146,'Ed Wes','https://friendica.free-beer.ch/profile/edwes','http://friendica.free-beer.ch/profile/edwes','https://friendica.free-beer.ch/photo/custom/300/1206.jpg','','0000-00-00 00:00:00','','','','','dspr'),(147,'Romoli Marco','https://friendica.free-beer.ch/profile/redleghorn','http://friendica.free-beer.ch/profile/redleghorn','https://friendica.free-beer.ch/photo/custom/300/1270.jpg?rev=2014-11-26+16%3A57%3A51','','0000-00-00 00:00:00','','','','','dspr'),(148,'Michael Rueetschli','http://social.rueetschli.org/profile/rueetschli','http://social.rueetschli.org/profile/rueetschli','http://social.rueetschli.org/photo/custom/300/1.jpg?rev=2014-03-14+09%3A30%3A42','','0000-00-00 00:00:00','','','','','dspr'),(149,'Land Ei','http://social.rueetschli.org/profile/land_ei','http://social.rueetschli.org/profile/land_ei','http://social.rueetschli.org/photo/custom/300/32.jpg?rev=2014-07-25+17%3A03%3A43','','0000-00-00 00:00:00','','','','','dspr'),(150,'Jim Wiskey','http://social.rueetschli.org/profile/gsxrpilot','http://social.rueetschli.org/profile/gsxrpilot','http://social.rueetschli.org/photo/custom/300/36.jpg?rev=2014-08-21+01%3A47%3A44','','0000-00-00 00:00:00','','','','','dspr'),(151,'Kevin K.','http://social.rueetschli.org/profile/dj-atropine','http://social.rueetschli.org/profile/dj-atropine','http://social.rueetschli.org/photo/custom/300/66.jpg?rev=2014-12-31+13%3A05%3A29','','0000-00-00 00:00:00','','','','','dspr'),(152,'friendica2','http://192.168.22.10/profile/friendica2','http://192.168.22.10/profile/friendica2','http://192.168.22.10/photo/avatar/3.jpg','','2015-02-02 19:00:21','','','','','stat'),(153,'friendica5','http://192.168.22.10/profile/friendica5','http://192.168.22.10/profile/friendica5','http://192.168.22.10/photo/avatar/5.jpg','','2015-02-02 19:00:18','','','','','stat'),(154,'friendica4','http://192.168.22.10/profile/friendica4','http://192.168.22.10/profile/friendica4','http://192.168.22.10/photo/avatar/6.jpg','','2015-02-02 19:00:24','','','','','stat'),(155,'friendica1','http://192.168.22.10/profile/friendica1','http://192.168.22.10/profile/friendica1','http://192.168.22.10/photo/profile/2.jpg','','2015-02-02 12:02:11','','','','','stat'),(156,'friendica3','http://192.168.22.10/profile/friendica3','http://192.168.22.10/profile/friendica3','http://192.168.22.10/photo/1fc6596c195944666e18cbd313795942-4.jpg','','2015-02-02 19:00:12','','','','','dfrn'); +INSERT INTO `gcontact` VALUES (1,'Keith','https://friendika.me4.it/profile/keith','http://friendika.me4.it/profile/keith','https://friendika.me4.it/photo/custom/300/1.jpg?rev=2014-07-27+19%3A34%3A36','','0001-01-01 00:00:00','','','','','dspr'),(2,'Manuel Freiria','https://friendika.me4.it/profile/manolofreiria','http://friendika.me4.it/profile/manolofreiria','https://friendika.me4.it/photo/custom/300/254.jpg?rev=2014-09-06+23%3A58%3A50','','0001-01-01 00:00:00','','','','','dspr'),(3,'José Manuel Goig','https://friendika.me4.it/profile/jmgoig','http://friendika.me4.it/profile/jmgoig','https://friendika.me4.it/photo/custom/300/283.jpg?rev=2014-12-16+10%3A11%3A40','','0001-01-01 00:00:00','','','','','dspr'),(4,'Keith','https://friendica.eu/profile/support','http://friendica.eu/profile/support','https://friendica.eu/photo/custom/300/1.jpg?rev=2011-12-21+14%3A41%3A44','','0001-01-01 00:00:00','','','','','dspr'),(5,'Henrike Van Mortis','https://friendica.eu/profile/hvm','http://friendica.eu/profile/hvm','https://friendica.eu/photo/custom/300/250.jpg','','0001-01-01 00:00:00','','','','','dspr'),(6,'offene Ablage: nothing to hide','https://friendica.eu/profile/o2myfrdca01','http://friendica.eu/profile/o2myfrdca01','https://friendica.eu/photo/custom/300/259.jpg?rev=2012-02-16+16%3A49%3A37','','0001-01-01 00:00:00','','','','','dspr'),(7,'Friendica Theme Developers','https://friendica.eu/profile/ftdevs','http://friendica.eu/profile/ftdevs','https://friendica.eu/photo/custom/300/366.jpg?rev=2012-03-01+11%3A58%3A18','','0001-01-01 00:00:00','','','','','dspr'),(8,'Nepesh Hacker','https://friendica.eu/profile/arescorpio','http://friendica.eu/profile/arescorpio','https://friendica.eu/photo/custom/300/516.jpg?rev=2012-11-07+22%3A39%3A38','','0001-01-01 00:00:00','','','','','dspr'),(9,'Rolf Rupp','https://friendica.eu/profile/rcr','http://friendica.eu/profile/rcr','https://friendica.eu/photo/custom/300/841.jpg?rev=2014-01-09+22%3A15%3A09','','0001-01-01 00:00:00','','','','','dspr'),(10,'Daniel Steinbacher','https://friendica.eu/profile/damez','http://friendica.eu/profile/damez','https://friendica.eu/photo/custom/300/1791.jpg?rev=2015-01-15+16%3A49%3A29','','0001-01-01 00:00:00','','','','','dspr'),(11,'Pirate Times','https://friendica.eu/profile/piratetimes','http://friendica.eu/profile/piratetimes','https://friendica.eu/photo/custom/300/885.jpg?rev=2014-01-21+11%3A09%3A35','','0001-01-01 00:00:00','','','','','dspr'),(12,'Jacques','https://friendica.eu/profile/jacques','http://friendica.eu/profile/jacques','https://friendica.eu/photo/custom/300/907.jpg?rev=2015-01-15+14%3A37%3A37','','0001-01-01 00:00:00','','','','','dspr'),(13,'Montse Freire','https://friendica.eu/profile/auga09','http://friendica.eu/profile/auga09','https://friendica.eu/photo/custom/300/934.jpg?rev=2014-02-16+14%3A17%3A30','','0001-01-01 00:00:00','','','','','dspr'),(14,'oremus','https://friendica.eu/profile/oremus','http://friendica.eu/profile/oremus','https://friendica.eu/photo/custom/300/1073.jpg?rev=2014-04-29+15%3A09%3A50','','0001-01-01 00:00:00','','','','','dspr'),(15,'ppp','https://friendica.eu/profile/ppp','http://friendica.eu/profile/ppp','https://friendica.eu/photo/custom/300/1134.jpg?rev=2014-06-01+12%3A58%3A28','','0001-01-01 00:00:00','','','','','dspr'),(16,'Krin Bouch','https://friendica.eu/profile/krinbouch','http://friendica.eu/profile/krinbouch','https://friendica.eu/photo/custom/300/1471.jpg?rev=2014-09-20+14%3A18%3A24','','0001-01-01 00:00:00','','','','','dspr'),(17,'Miguel Menéndez','https://friendica.eu/profile/miguelmenendez','http://friendica.eu/profile/miguelmenendez','https://friendica.eu/photo/custom/300/1508.jpg?rev=2014-10-26+15%3A21%3A28','','0001-01-01 00:00:00','','','','','dspr'),(18,'Alexandre Pólvora','https://friendica.eu/profile/discomplex','http://friendica.eu/profile/discomplex','https://friendica.eu/photo/custom/300/1522.jpg?rev=2014-11-05+23%3A54%3A57','','0001-01-01 00:00:00','','','','','dspr'),(19,'Chak\'pur','https://friendica.eu/profile/murokka','http://friendica.eu/profile/murokka','https://friendica.eu/photo/custom/300/1535.jpg?rev=2014-11-13+09%3A13%3A55','','0001-01-01 00:00:00','','','','','dspr'),(20,'Samuel Contraste','https://friendica.eu/profile/stace-melunor','http://friendica.eu/profile/stace-melunor','https://friendica.eu/photo/custom/300/1586.jpg?rev=2014-11-28+13%3A01%3A22','','0001-01-01 00:00:00','','','','','dspr'),(21,'Martin Langlotz','https://friendica.eu/profile/numan','http://friendica.eu/profile/numan','https://friendica.eu/photo/custom/300/1621.jpg?rev=2014-12-02+10%3A37%3A34','','0001-01-01 00:00:00','','','','','dspr'),(22,'Elie Bissery','https://friendica.eu/profile/eilsib','http://friendica.eu/profile/eilsib','https://friendica.eu/photo/custom/300/1680.jpg?rev=2014-12-17+16%3A05%3A23','','0001-01-01 00:00:00','','','','','dspr'),(23,'Cécile Maitre','https://friendica.eu/profile/cecile','http://friendica.eu/profile/cecile','https://friendica.eu/photo/custom/300/1703.jpg?rev=2014-12-23+19%3A29%3A41','','0001-01-01 00:00:00','','','','','dspr'),(24,'Ralf Gerdes','https://friendica.eu/profile/ralf','http://friendica.eu/profile/ralf','https://friendica.eu/photo/custom/300/1739.jpg?rev=2014-12-30+12%3A43%3A12','','0001-01-01 00:00:00','','','','','dspr'),(25,'Loran Btn','https://friendica.eu/profile/loran_mcfly','http://friendica.eu/profile/loran_mcfly','https://friendica.eu/photo/custom/300/1781.jpg?rev=2015-01-11+09%3A10%3A33','','0001-01-01 00:00:00','','','','','dspr'),(26,'Jörn Rinne','https://friendica.eu/profile/lefou','http://friendica.eu/profile/lefou','https://friendica.eu/photo/custom/300/1782.jpg?rev=2015-01-11+15%3A39%3A33','','0001-01-01 00:00:00','','','','','dspr'),(27,'Lud Wig','https://friendica.eu/profile/ludwig','http://friendica.eu/profile/ludwig','https://friendica.eu/photo/custom/300/1810.jpg?rev=2015-01-25+04%3A41%3A20','','0001-01-01 00:00:00','','','','','dspr'),(28,'Rike','http://mist.loozah.com/profile/rike','http://mist.loozah.com/profile/rike','http://mist.loozah.com/photo/custom/300/2.jpg?rev=2012-02-03+14%3A10%3A17','','0001-01-01 00:00:00','','','','','dspr'),(29,'Torsten Peh','http://mist.loozah.com/profile/torsten_peh','http://mist.loozah.com/profile/torsten_peh','http://mist.loozah.com/photo/custom/300/13.jpg?rev=2012-05-15+12%3A58%3A18','','0001-01-01 00:00:00','','','','','dspr'),(30,'der buffer','http://mist.loozah.com/profile/derbuffer','http://mist.loozah.com/profile/derbuffer','http://mist.loozah.com/photo/custom/300/98.jpg?rev=2013-07-27+00%3A10%3A59','','0001-01-01 00:00:00','','','','','dspr'),(31,'Marcel','http://mist.loozah.com/profile/mkay','http://mist.loozah.com/profile/mkay','http://mist.loozah.com/photo/custom/300/24.jpg?rev=2012-06-14+19%3A06%3A37','','0001-01-01 00:00:00','','','','','dspr'),(32,'Gianluca Zoni','http://mist.loozah.com/profile/zoninoz','http://mist.loozah.com/profile/zoninoz','http://mist.loozah.com/photo/custom/300/56.jpg?rev=2012-09-12+15%3A38%3A42','','0001-01-01 00:00:00','','','','','dspr'),(33,'Jo A','http://mist.loozah.com/profile/joooo','http://mist.loozah.com/profile/joooo','http://mist.loozah.com/photo/custom/300/64.jpg?rev=2012-11-12+15%3A32%3A02','','0001-01-01 00:00:00','','','','','dspr'),(34,'Lass Mi Randa Den Sie Will Ja','https://friendica.styliztique.biz/profile/stb','http://friendica.styliztique.biz/profile/stb','https://friendica.styliztique.biz/photo/custom/300/20.jpg?rev=2013-09-06+16%3A04%3A10','','0001-01-01 00:00:00','','','','','dspr'),(35,'кαяισz м☠яку','https://karl.marx.pm/profile/kmarky','http://karl.marx.pm/profile/kmarky','https://karl.marx.pm/photo/custom/300/11.jpg?rev=2014-01-17+09%3A48%3A33','','0001-01-01 00:00:00','','','','','dspr'),(36,'Indignados','https://karl.marx.pm/profile/indignados','http://karl.marx.pm/profile/indignados','https://karl.marx.pm/photo/custom/300/44.jpg?rev=2012-05-27+14%3A53%3A52','','0001-01-01 00:00:00','','','','','dspr'),(37,'Anarkia','https://karl.marx.pm/profile/anarquia','http://karl.marx.pm/profile/anarquia','https://karl.marx.pm/photo/custom/300/45.jpg?rev=2012-05-29+11%3A01%3A11','','0001-01-01 00:00:00','','','','','dspr'),(38,'Planeta Pirata','https://karl.marx.pm/profile/pirata','http://karl.marx.pm/profile/pirata','https://karl.marx.pm/photo/custom/300/46.jpg?rev=2012-05-27+15%3A20%3A12','','0001-01-01 00:00:00','','','','','dspr'),(39,'Grupo GNU | Linux','https://karl.marx.pm/profile/gnu','http://karl.marx.pm/profile/gnu','https://karl.marx.pm/photo/custom/300/47.jpg?rev=2012-05-27+15%3A34%3A20','','0001-01-01 00:00:00','','','','','dspr'),(40,'Ecologia','https://karl.marx.pm/profile/eco','http://karl.marx.pm/profile/eco','https://karl.marx.pm/photo/custom/300/57.jpg?rev=2012-06-09+06%3A42%3A04','','0001-01-01 00:00:00','','','','','dspr'),(41,'Grupo antiFa Friendica','https://karl.marx.pm/profile/antifa','http://karl.marx.pm/profile/antifa','https://karl.marx.pm/photo/custom/300/60.jpg?rev=2012-06-11+08%3A46%3A48','','0001-01-01 00:00:00','','','','','dspr'),(42,'Facebook (alias Feisbuk)','https://karl.marx.pm/profile/facebook','http://karl.marx.pm/profile/facebook','https://karl.marx.pm/photo/custom/300/61.jpg?rev=2014-01-17+09%3A50%3A44','','0001-01-01 00:00:00','','','','','dspr'),(43,'Todo Cine','https://karl.marx.pm/profile/cine','http://karl.marx.pm/profile/cine','https://karl.marx.pm/photo/custom/300/65.jpg?rev=2012-06-15+07%3A20%3A01','','0001-01-01 00:00:00','','','','','dspr'),(44,'Rivera Valdez','https://karl.marx.pm/profile/riveravaldez','http://karl.marx.pm/profile/riveravaldez','https://karl.marx.pm/photo/custom/300/205.jpg?rev=2013-06-18+10%3A58%3A46','','0001-01-01 00:00:00','','','','','dspr'),(45,'Tazman Devil','https://karl.marx.pm/profile/tazman','http://karl.marx.pm/profile/tazman','https://karl.marx.pm/photo/custom/300/228.jpg?rev=2013-08-24+02%3A59%3A52','','0001-01-01 00:00:00','','','','','dspr'),(46,'Tiago Casal Ribeiro','https://karl.marx.pm/profile/tiago','http://karl.marx.pm/profile/tiago','https://karl.marx.pm/photo/custom/300/391.jpg?rev=2014-10-30+17%3A10%3A40','','0001-01-01 00:00:00','','','','','dspr'),(47,'Protestation','https://karl.marx.pm/profile/protestation_','http://karl.marx.pm/profile/protestation_','https://karl.marx.pm/photo/custom/300/414.jpg','','0001-01-01 00:00:00','','','','','dspr'),(48,'Arto','https://myfriendica.net/profile/arto','http://myfriendica.net/profile/arto','https://myfriendica.net/photo/custom/300/5.jpg?rev=2012-04-29+18%3A36%3A29','','0001-01-01 00:00:00','','','','','dspr'),(49,'Gatoso Kot','https://myfriendica.net/profile/gatoso','http://myfriendica.net/profile/gatoso','https://myfriendica.net/photo/custom/300/159.jpg?rev=2013-04-05+05%3A51%3A58','','0001-01-01 00:00:00','','','','','dspr'),(50,'Believing Prayer','https://myfriendica.net/profile/believingprayer','http://myfriendica.net/profile/believingprayer','https://myfriendica.net/photo/custom/300/11.jpg?rev=2012-03-19+13%3A12%3A07','','0001-01-01 00:00:00','','','','','dspr'),(51,'Avery Jenkins','https://myfriendica.net/profile/docaltmed','http://myfriendica.net/profile/docaltmed','https://myfriendica.net/photo/custom/300/17.jpg?rev=2012-03-27+11%3A05%3A26','','0001-01-01 00:00:00','','','','','dspr'),(52,'Vincent','https://myfriendica.net/profile/influencepc','http://myfriendica.net/profile/influencepc','https://myfriendica.net/photo/custom/300/55.jpg?rev=2012-04-26+12%3A47%3A48','','0001-01-01 00:00:00','','','','','dspr'),(53,'Berlin Group','https://myfriendica.net/profile/berlin','http://myfriendica.net/profile/berlin','https://myfriendica.net/photo/custom/300/65.jpg?rev=2012-04-28+09%3A21%3A19','','0001-01-01 00:00:00','','','','','dspr'),(54,'jcsesecuneta@myfriendica.net','https://myfriendica.net/profile/jcsesecuneta','http://myfriendica.net/profile/jcsesecuneta','https://myfriendica.net/photo/custom/300/281.jpg?rev=2013-09-06+11%3A51%3A59','','0001-01-01 00:00:00','','','','','dspr'),(55,'Sam I','https://myfriendica.net/profile/sam01','http://myfriendica.net/profile/sam01','https://myfriendica.net/photo/custom/300/183.jpg?rev=2013-06-28+15%3A34%3A46','','0001-01-01 00:00:00','','','','','dspr'),(56,'Stephen Judge','https://myfriendica.net/profile/stephen','http://myfriendica.net/profile/stephen','https://myfriendica.net/photo/custom/300/294.jpg?rev=2014-02-25+15%3A07%3A05','','0001-01-01 00:00:00','','','','','dspr'),(57,'潘隆吉 Tony Phuah','https://myfriendica.net/profile/tonyphuah','http://myfriendica.net/profile/tonyphuah','https://myfriendica.net/photo/custom/300/304.jpg?rev=2013-11-02+00%3A37%3A59','','0001-01-01 00:00:00','','','','','dspr'),(58,'Lina María Largo','https://myfriendica.net/profile/linamaria','http://myfriendica.net/profile/linamaria','https://myfriendica.net/photo/custom/300/332.jpg?rev=2013-12-18+08%3A14%3A24','','0001-01-01 00:00:00','','','','','dspr'),(59,'Petra L.','https://myfriendica.net/profile/petra-l','http://myfriendica.net/profile/petra-l','https://myfriendica.net/photo/custom/300/349.jpg?rev=2014-04-05+13%3A41%3A25','','0001-01-01 00:00:00','','','','','dspr'),(60,'Panko','https://myfriendica.net/profile/panko','http://myfriendica.net/profile/panko','https://myfriendica.net/photo/custom/300/354.jpg?rev=2014-07-30+14%3A22%3A42','','0001-01-01 00:00:00','','','','','dspr'),(61,'Jorge','https://myfriendica.net/profile/soloojos','http://myfriendica.net/profile/soloojos','https://myfriendica.net/photo/custom/300/370.jpg?rev=2014-03-02+16%3A20%3A32','','0001-01-01 00:00:00','','','','','dspr'),(62,'Sebas Pedersen','https://myfriendica.net/profile/sebasped','http://myfriendica.net/profile/sebasped','https://myfriendica.net/photo/custom/300/373.jpg?rev=2015-01-15+23%3A04%3A06','','0001-01-01 00:00:00','','','','','dspr'),(63,'ivan zlax','https://myfriendica.net/profile/zlaxyi','http://myfriendica.net/profile/zlaxyi','https://myfriendica.net/photo/custom/300/376.jpg?rev=2014-03-09+09%3A56%3A13','','0001-01-01 00:00:00','','','','','dspr'),(64,'Shimriez','https://myfriendica.net/profile/shimriez','http://myfriendica.net/profile/shimriez','https://myfriendica.net/photo/custom/300/403.jpg?rev=2014-06-21+17%3A18%3A05','','0001-01-01 00:00:00','','','','','dspr'),(65,'Sitesonix Web Solutions','https://myfriendica.net/profile/sitesonix','http://myfriendica.net/profile/sitesonix','https://myfriendica.net/photo/custom/300/445.jpg?rev=2014-06-13+17%3A25%3A54','','0001-01-01 00:00:00','','','','','dspr'),(66,'Bastian Lang','https://myfriendica.net/profile/raudy93','http://myfriendica.net/profile/raudy93','https://myfriendica.net/photo/custom/300/436.jpg?rev=2014-05-29+12%3A40%3A00','','0001-01-01 00:00:00','','','','','dspr'),(67,'Simó Albert i Beltran','https://myfriendica.net/profile/sim6','http://myfriendica.net/profile/sim6','https://myfriendica.net/photo/custom/300/419.jpg?rev=2014-05-14+16%3A14%3A04','','0001-01-01 00:00:00','','','','','dspr'),(68,'RT Griffiti','https://myfriendica.net/profile/rtgriffiti','http://myfriendica.net/profile/rtgriffiti','https://myfriendica.net/photo/custom/300/437.jpg?rev=2014-05-30+01%3A17%3A19','','0001-01-01 00:00:00','','','','','dspr'),(69,'Damian','https://myfriendica.net/profile/deb92','http://myfriendica.net/profile/deb92','https://myfriendica.net/photo/custom/300/462.jpg?rev=2014-07-29+18%3A18%3A26','','0001-01-01 00:00:00','','','','','dspr'),(70,'Ciril Earth','https://myfriendica.net/profile/cirilearth','http://myfriendica.net/profile/cirilearth','https://myfriendica.net/photo/custom/300/519.jpg?rev=2014-12-22+12%3A19%3A09','','0001-01-01 00:00:00','','','','','dspr'),(71,'The SOS Card Project','https://myfriendica.net/profile/the_sos_card_project','http://myfriendica.net/profile/the_sos_card_project','https://myfriendica.net/photo/custom/300/524.jpg?rev=2014-12-26+19%3A54%3A41','','0001-01-01 00:00:00','','','','','dspr'),(72,'Hauke Altmann','https://snarl.de/profile/tugelblend','http://snarl.de/profile/tugelblend','https://www.snarl.de/photo/profile/5.jpg','','2015-01-25 05:02:28','Berlin','Softwaredeveloper, friendica enthusiast, member of http://www.graffitiresearchlab.de/, cyclist','graffiti, friendica, graffiti, research, lab, diy, collectivism, urban, art, surfing, berlin, opensource, critical, mass, freifunk','','dfrn'),(73,'Chris Thina','https://snarl.de/profile/chillkroete','http://snarl.de/profile/chillkroete','https://snarl.de/photo/profile/69.jpg','','2014-01-11 11:59:56','','','','','dfrn'),(74,'Dirk Schlechter','https://snarl.de/profile/viewfinder','http://snarl.de/profile/viewfinder','https://snarl.de/photo/profile/106.jpg','','2014-03-24 16:20:54','','','','Männlich','dfrn'),(75,'Tauschring Prenzelberg','https://snarl.de/profile/prenzeltausch','http://snarl.de/profile/prenzeltausch','https://snarl.de/photo/profile/117.jpg','','2015-01-25 19:31:54','Berlin','Haareschneiden gegen Waschmaschinenreparatur?
Autotransport gegen Katze gießen?
Der Prenzelberger Tauschring
sucht weitere Mitglieder.
Komm doch mal vorbei:
Treffen jeden 2. & 4. Montag im Monat
im Kiezladen in der Dunckerstr. 14, 19-20 Uhr
prenzeltausch.thing.de','tauschring, zeitkonto','Intersex','dfrn'),(76,'Panko','https://snarl.de/profile/panko','http://snarl.de/profile/panko','https://snarl.de/photo/profile/141.jpg','@','2015-02-02 11:31:46','La Vila Joiosa','','debian, linux, gnu, gnu/linux, scifi, horror, xmpp, jabber, friendica, pump, freesoftware, darts, dardos, dards, punk, rock, ska, reggae, beer','Home','dfrn'),(77,'Berlin Group','https://snarl.de/profile/berlin','http://snarl.de/profile/berlin','https://snarl.de/photo/profile/0.jpg','','2012-04-28 09:21:19','Berlin','Eine Gruppe für alle Friendicianer, die an der geilsten Stadt Deutschlands interessiert sind.','berlin','','dfrn'),(78,'Daniel C. Würl','https://snarl.de/profile/decadentgray','http://snarl.de/profile/decadentgray','https://snarl.de/photo/profile/158.jpg','','2014-08-29 02:20:44','','','','','dfrn'),(79,'Michaela Gruber','https://snarl.de/profile/starling','http://snarl.de/profile/starling','https://snarl.de/photo/profile/160.jpg','','2014-09-03 18:19:10','','','','','dfrn'),(80,'Kristian R.','https://snarl.de/profile/z428','http://snarl.de/profile/z428','https://snarl.de/photo/profile/181.jpg','','2015-01-30 13:47:31','','Software engineer (#java, #javaee, #python, mainly server-sided and backend), art and imaging addict mainly using #gimp, #opensource / #softwarelibre # freesoftware software user and promoter, lover of bizarre #music (especially #netaudio stuff, #metal, #postrock, more open-minded #indie), #vegetarian, 30something and a few other things.
kr428 virtually everywhere, including twitter, identica et al.','linux, gimp, photography, music, java, opensource, gnome, philosophy, spirituality, art','Männlich','dfrn'),(81,'Georg Hofer','https://snarl.de/profile/ironhead','http://snarl.de/profile/ironhead','https://snarl.de/photo/profile/228.jpg','','2014-12-31 15:47:14','','','','','dfrn'),(82,'Nick Power','https://snarl.de/profile/veganvincent','http://snarl.de/profile/veganvincent','https://snarl.de/photo/profile/240.jpg','','2015-01-26 16:59:02','','','','','dfrn'),(83,'Yushin W','https://snarl.de/profile/opduur','http://snarl.de/profile/opduur','https://snarl.de/photo/profile/254.jpg','','2015-01-28 19:44:40','','','freesoftware, floss, foss, opensource, linux, vim, cli, command-line, creativecommons, ocw, oer, commons, sustainability, energy, lohas, mdg, sdg','','dfrn'),(84,'Oradon','https://oradon.pegasus.uberspace.de/profile/oradon','http://oradon.pegasus.uberspace.de/profile/oradon','https://oradon.pegasus.uberspace.de/photo/custom/300/1.jpg','','0001-01-01 00:00:00','','','','','dspr'),(85,'Stuttgart','https://oradon.pegasus.uberspace.de/profile/stuttgart','http://oradon.pegasus.uberspace.de/profile/stuttgart','https://oradon.pegasus.uberspace.de/photo/custom/300/12.jpg','','0001-01-01 00:00:00','','','','','dspr'),(86,'Olivier','https://friendica.free-beer.ch/profile/olivier','http://friendica.free-beer.ch/profile/olivier','https://friendica.free-beer.ch/photo/custom/300/1.jpg?rev=2012-05-02+09%3A02%3A19','','0001-01-01 00:00:00','','','','','dspr'),(87,'pogonator','https://friendica.free-beer.ch/profile/pogonator','http://friendica.free-beer.ch/profile/pogonator','https://friendica.free-beer.ch/photo/custom/300/396.jpg?rev=2013-06-22+07%3A51%3A38','','0001-01-01 00:00:00','','','','','dspr'),(88,'Claus Muehlenkamp','https://friendica.free-beer.ch/profile/clausmuehlenkamp','http://friendica.free-beer.ch/profile/clausmuehlenkamp','https://friendica.free-beer.ch/photo/custom/300/368.jpg?rev=2013-06-12+21%3A21%3A07','','0001-01-01 00:00:00','','','','','dspr'),(89,'Jörg Hartmann','https://friendica.free-beer.ch/profile/jh72de','http://friendica.free-beer.ch/profile/jh72de','https://friendica.free-beer.ch/photo/custom/300/295.jpg?rev=2013-04-09+19%3A21%3A01','','0001-01-01 00:00:00','','','','','dspr'),(90,'Carlos Solís','https://friendica.free-beer.ch/profile/csolisr','http://friendica.free-beer.ch/profile/csolisr','https://friendica.free-beer.ch/photo/custom/300/22.jpg?rev=2012-05-31+23%3A00%3A24','','0001-01-01 00:00:00','','','','','dspr'),(91,'Frederic Guilbault','https://friendica.free-beer.ch/profile/border','http://friendica.free-beer.ch/profile/border','https://friendica.free-beer.ch/photo/custom/300/23.jpg?rev=2012-06-01+02%3A24%3A09','','0001-01-01 00:00:00','','','','','dspr'),(92,'Sun Sunich','https://friendica.free-beer.ch/profile/sunsunich','http://friendica.free-beer.ch/profile/sunsunich','https://friendica.free-beer.ch/photo/custom/300/337.jpg?rev=2013-06-06+19%3A54%3A58','','0001-01-01 00:00:00','','','','','dspr'),(93,'Jaun Santiago','https://friendica.free-beer.ch/profile/juansantiago','http://friendica.free-beer.ch/profile/juansantiago','https://friendica.free-beer.ch/photo/custom/300/94.jpg?rev=2012-08-05+21%3A12%3A40','','0001-01-01 00:00:00','','','','','dspr'),(94,'Axel','https://friendica.free-beer.ch/profile/axel','http://friendica.free-beer.ch/profile/axel','https://friendica.free-beer.ch/photo/custom/300/61.jpg?rev=2014-01-08+17%3A14%3A05','','0001-01-01 00:00:00','','','','','dspr'),(95,'Alexander Jobst','https://friendica.free-beer.ch/profile/alexanderjobst','http://friendica.free-beer.ch/profile/alexanderjobst','https://friendica.free-beer.ch/photo/custom/300/77.jpg?rev=2012-07-11+08%3A19%3A36','','0001-01-01 00:00:00','','','','','dspr'),(96,'Matija Šuklje','https://friendica.free-beer.ch/profile/hook','http://friendica.free-beer.ch/profile/hook','https://friendica.free-beer.ch/photo/custom/300/336.jpg?rev=2013-06-02+20%3A40%3A51','','0001-01-01 00:00:00','','','','','dspr'),(97,'Brando','https://friendica.free-beer.ch/profile/dysfunctional','http://friendica.free-beer.ch/profile/dysfunctional','https://friendica.free-beer.ch/photo/custom/300/89.jpg?rev=2012-07-28+04%3A35%3A53','','0001-01-01 00:00:00','','','','','dspr'),(98,'Max Anton','https://friendica.free-beer.ch/profile/ntimes','http://friendica.free-beer.ch/profile/ntimes','https://friendica.free-beer.ch/photo/custom/300/98.jpg?rev=2012-08-08+21%3A32%3A00','','0001-01-01 00:00:00','','','','','dspr'),(99,'Inyan','https://friendica.free-beer.ch/profile/inyan','http://friendica.free-beer.ch/profile/inyan','https://friendica.free-beer.ch/photo/custom/300/111.jpg?rev=2012-08-18+19%3A01%3A17','','0001-01-01 00:00:00','','','','','dspr'),(100,'亗 Dr. Emporio Efikz 亗','https://friendica.free-beer.ch/profile/dr_emporio_efikz','http://friendica.free-beer.ch/profile/dr_emporio_efikz','https://friendica.free-beer.ch/photo/custom/300/108.jpg?rev=2012-08-17+01%3A48%3A09','','0001-01-01 00:00:00','','','','','dspr'),(101,'w2bh.- free-beer.ch','https://friendica.free-beer.ch/profile/w2bh','http://friendica.free-beer.ch/profile/w2bh','https://friendica.free-beer.ch/photo/custom/300/104.jpg?rev=2012-08-15+10%3A52%3A29','','0001-01-01 00:00:00','','','','','dspr'),(102,'Torsten Schilinsky','https://friendica.free-beer.ch/profile/torsten1968','http://friendica.free-beer.ch/profile/torsten1968','https://friendica.free-beer.ch/photo/custom/300/107.jpg?rev=2012-09-18+11%3A17%3A42','','0001-01-01 00:00:00','','','','','dspr'),(103,'Ecologie Libidinale','https://friendica.free-beer.ch/profile/ecologielibidinale','http://friendica.free-beer.ch/profile/ecologielibidinale','https://friendica.free-beer.ch/photo/custom/300/118.jpg?rev=2012-08-23+18%3A19%3A23','','0001-01-01 00:00:00','','','','','dspr'),(104,'Robert Bonie','https://friendica.free-beer.ch/profile/robrob','http://friendica.free-beer.ch/profile/robrob','https://friendica.free-beer.ch/photo/custom/300/138.jpg?rev=2012-09-07+17%3A57%3A21','','0001-01-01 00:00:00','','','','','dspr'),(105,'Marius Katcá','https://friendica.free-beer.ch/profile/marius_katca','http://friendica.free-beer.ch/profile/marius_katca','https://friendica.free-beer.ch/photo/custom/300/143.jpg?rev=2012-09-10+11%3A02%3A55','','0001-01-01 00:00:00','','','','','dspr'),(106,'Yossefa Mekyton','https://friendica.free-beer.ch/profile/jooxz','http://friendica.free-beer.ch/profile/jooxz','https://friendica.free-beer.ch/photo/custom/300/413.jpg?rev=2013-06-29+18%3A54%3A44','','0001-01-01 00:00:00','','','','','dspr'),(107,'Xurxo Ventos','https://friendica.free-beer.ch/profile/xurxoventos','http://friendica.free-beer.ch/profile/xurxoventos','https://friendica.free-beer.ch/photo/custom/300/412.jpg?rev=2013-06-29+10%3A07%3A23','','0001-01-01 00:00:00','','','','','dspr'),(108,'Fergus Ferrier','https://friendica.free-beer.ch/profile/rufusson','http://friendica.free-beer.ch/profile/rufusson','https://friendica.free-beer.ch/photo/custom/300/146.jpg?rev=2012-09-14+01%3A11%3A23','','0001-01-01 00:00:00','','','','','dspr'),(109,'Arescorpio Nepesh','https://friendica.free-beer.ch/profile/arescorpio','http://friendica.free-beer.ch/profile/arescorpio','https://friendica.free-beer.ch/photo/custom/300/158.jpg?rev=2012-10-05+19%3A05%3A49','','0001-01-01 00:00:00','','','','','dspr'),(110,'Shiroikuma','https://friendica.free-beer.ch/profile/shiroikuma','http://friendica.free-beer.ch/profile/shiroikuma','https://friendica.free-beer.ch/photo/custom/300/334.jpg?rev=2013-06-02+09%3A59%3A35','','0001-01-01 00:00:00','','','','','dspr'),(111,'FreeBeer Klampf','https://friendica.free-beer.ch/profile/klampfattacke','http://friendica.free-beer.ch/profile/klampfattacke','https://friendica.free-beer.ch/photo/custom/300/167.jpg?rev=2012-10-27+02%3A34%3A19','','0001-01-01 00:00:00','','','','','dspr'),(112,'Raphael Vieira','https://friendica.free-beer.ch/profile/barba_negra','http://friendica.free-beer.ch/profile/barba_negra','https://friendica.free-beer.ch/photo/custom/300/772.jpg?rev=2014-05-04+03%3A45%3A51','','0001-01-01 00:00:00','','','','','dspr'),(113,'Marina Soler','https://friendica.free-beer.ch/profile/marisoler','http://friendica.free-beer.ch/profile/marisoler','https://friendica.free-beer.ch/photo/custom/300/514.jpg?rev=2013-09-01+18%3A38%3A55','','0001-01-01 00:00:00','','','','','dspr'),(114,'Als Ob','https://friendica.free-beer.ch/profile/derhuaba','http://friendica.free-beer.ch/profile/derhuaba','https://friendica.free-beer.ch/photo/custom/300/842.jpg?rev=2014-08-06+23%3A24%3A06','','0001-01-01 00:00:00','','','','','dspr'),(115,'Colin Steele','https://friendica.free-beer.ch/profile/emberleaf','http://friendica.free-beer.ch/profile/emberleaf','https://friendica.free-beer.ch/photo/custom/300/245.jpg?rev=2013-02-23+16%3A54%3A57','','0001-01-01 00:00:00','','','','','dspr'),(116,'Max Mustermann','https://friendica.free-beer.ch/profile/jan_sofasurfer','http://friendica.free-beer.ch/profile/jan_sofasurfer','https://friendica.free-beer.ch/photo/custom/300/246.jpg?rev=2013-02-24+13%3A17%3A05','','0001-01-01 00:00:00','','','','','dspr'),(117,'Nicola Sisto Alessandro Vaccarone','https://friendica.free-beer.ch/profile/nk','http://friendica.free-beer.ch/profile/nk','https://friendica.free-beer.ch/photo/custom/300/286.jpg?rev=2014-03-05+18%3A14%3A39','','0001-01-01 00:00:00','','','','','dspr'),(118,'Pascal Daniel Angst','https://friendica.free-beer.ch/profile/pascala','http://friendica.free-beer.ch/profile/pascala','https://friendica.free-beer.ch/photo/custom/300/268.jpg?rev=2013-03-16+14%3A39%3A19','','0001-01-01 00:00:00','','','','','dspr'),(119,'Bodhi SparkleSnapdragon Goforth','https://friendica.free-beer.ch/profile/snapdragon','http://friendica.free-beer.ch/profile/snapdragon','https://friendica.free-beer.ch/photo/custom/300/494.jpg?rev=2013-08-15+14%3A51%3A39','','0001-01-01 00:00:00','','','','','dspr'),(120,'AntiChristos44 BodhiSattva','https://friendica.free-beer.ch/profile/ac44bo','http://friendica.free-beer.ch/profile/ac44bo','https://friendica.free-beer.ch/photo/custom/300/440.jpg?rev=2013-07-15+01%3A55%3A24','','0001-01-01 00:00:00','','','','','dspr'),(121,'Michael Moroni','https://friendica.free-beer.ch/profile/airon90','http://friendica.free-beer.ch/profile/airon90','https://friendica.free-beer.ch/photo/custom/300/547.jpg?rev=2013-09-27+11%3A19%3A56','','0001-01-01 00:00:00','','','','','dspr'),(122,'Martin Neujahr','https://friendica.free-beer.ch/profile/funkymartin','http://friendica.free-beer.ch/profile/funkymartin','https://friendica.free-beer.ch/photo/custom/300/557.jpg?rev=2013-10-04+06%3A33%3A29','','0001-01-01 00:00:00','','','','','dspr'),(123,'Florian Traverse','https://friendica.free-beer.ch/profile/temsa','http://friendica.free-beer.ch/profile/temsa','https://friendica.free-beer.ch/photo/custom/300/548.jpg?rev=2013-09-28+06%3A16%3A05','','0001-01-01 00:00:00','','','','','dspr'),(124,'Picaflor Azul','https://friendica.free-beer.ch/profile/picaflor','http://friendica.free-beer.ch/profile/picaflor','https://friendica.free-beer.ch/photo/custom/300/549.jpg?rev=2013-09-28+15%3A36%3A46','','0001-01-01 00:00:00','','','','','dspr'),(125,'edson duarte','https://friendica.free-beer.ch/profile/vaugs3roty','http://friendica.free-beer.ch/profile/vaugs3roty','https://friendica.free-beer.ch/photo/custom/300/570.jpg?rev=2013-10-13+18%3A01%3A06','','0001-01-01 00:00:00','','','','','dspr'),(126,'Don Viktoranghelo De Cuyo','https://friendica.free-beer.ch/profile/lechju','http://friendica.free-beer.ch/profile/lechju','https://friendica.free-beer.ch/photo/custom/300/583.jpg?rev=2013-11-02+22%3A56%3A06','','0001-01-01 00:00:00','','','','','dspr'),(127,'Liselotte Vinberg','https://friendica.free-beer.ch/profile/musikmamma','http://friendica.free-beer.ch/profile/musikmamma','https://friendica.free-beer.ch/photo/custom/300/589.jpg?rev=2013-11-02+18%3A22%3A16','','0001-01-01 00:00:00','','','','','dspr'),(128,'Arlo James Barnes','https://friendica.free-beer.ch/profile/arlojamesbarnes','http://friendica.free-beer.ch/profile/arlojamesbarnes','https://friendica.free-beer.ch/photo/custom/300/593.jpg?rev=2013-11-04+21%3A56%3A10','','0001-01-01 00:00:00','','','','','dspr'),(129,'Roxana Diaz','https://friendica.free-beer.ch/profile/heindys','http://friendica.free-beer.ch/profile/heindys','https://friendica.free-beer.ch/photo/custom/300/774.jpg?rev=2014-05-10+09%3A51%3A52','','0001-01-01 00:00:00','','','','','dspr'),(130,'Armin Lutz','https://friendica.free-beer.ch/profile/zebra','http://friendica.free-beer.ch/profile/zebra','https://friendica.free-beer.ch/photo/custom/300/612.jpg?rev=2013-11-20+12%3A36%3A03','','0001-01-01 00:00:00','','','','','dspr'),(131,'Philipp Obenauer','https://friendica.free-beer.ch/profile/clandestino','http://friendica.free-beer.ch/profile/clandestino','https://friendica.free-beer.ch/photo/custom/300/621.jpg?rev=2013-12-14+11%3A09%3A01','','0001-01-01 00:00:00','','','','','dspr'),(132,'ѕтєιикαмρf','https://friendica.free-beer.ch/profile/steinkampf','http://friendica.free-beer.ch/profile/steinkampf','https://friendica.free-beer.ch/photo/custom/300/652.jpg?rev=2014-01-19+13%3A36%3A41','','0001-01-01 00:00:00','','','','','dspr'),(133,'Jerry Briardy','https://friendica.free-beer.ch/profile/bookman37','http://friendica.free-beer.ch/profile/bookman37','https://friendica.free-beer.ch/photo/custom/300/651.jpg?rev=2013-12-31+06%3A49%3A25','','0001-01-01 00:00:00','','','','','dspr'),(134,'D2O','https://friendica.free-beer.ch/profile/d2o','http://friendica.free-beer.ch/profile/d2o','https://friendica.free-beer.ch/photo/custom/300/673.jpg?rev=2014-01-16+14%3A57%3A25','','0001-01-01 00:00:00','','','','','dspr'),(135,'Marc Leunig','https://friendica.free-beer.ch/profile/miefda','http://friendica.free-beer.ch/profile/miefda','https://friendica.free-beer.ch/photo/custom/300/675.jpg?rev=2014-01-16+20%3A51%3A38','','0001-01-01 00:00:00','','','','','dspr'),(136,'Sebas Pesersen','https://friendica.free-beer.ch/profile/sebasped','http://friendica.free-beer.ch/profile/sebasped','https://friendica.free-beer.ch/photo/custom/300/714.jpg?rev=2014-02-16+21%3A33%3A10','','0001-01-01 00:00:00','','','','','dspr'),(137,'Redrick Deckard','https://friendica.free-beer.ch/profile/red','http://friendica.free-beer.ch/profile/red','https://friendica.free-beer.ch/photo/custom/300/724.jpg?rev=2014-03-02+17%3A12%3A30','','0001-01-01 00:00:00','','','','','dspr'),(138,'Rui Bernardo','https://friendica.free-beer.ch/profile/rui_miguel','http://friendica.free-beer.ch/profile/rui_miguel','https://friendica.free-beer.ch/photo/custom/300/729.jpg?rev=2014-03-05+15%3A46%3A11','','0001-01-01 00:00:00','','','','','dspr'),(139,'Manoel Nascimento','https://friendica.free-beer.ch/profile/manoelnascimento','http://friendica.free-beer.ch/profile/manoelnascimento','https://friendica.free-beer.ch/photo/custom/300/734.jpg?rev=2014-03-09+14%3A15%3A23','','0001-01-01 00:00:00','','','','','dspr'),(140,'ilma','https://friendica.free-beer.ch/profile/ilma','http://friendica.free-beer.ch/profile/ilma','https://friendica.free-beer.ch/photo/custom/300/739.jpg?rev=2014-03-14+03%3A41%3A44','','0001-01-01 00:00:00','','','','','dspr'),(141,'David Mccauley','https://friendica.free-beer.ch/profile/opticalrevenge','http://friendica.free-beer.ch/profile/opticalrevenge','https://friendica.free-beer.ch/photo/custom/300/746.jpg?rev=2014-03-22+18%3A30%3A05','','0001-01-01 00:00:00','','','','','dspr'),(142,'Atterratio Aeternus','https://friendica.free-beer.ch/profile/atterratio','http://friendica.free-beer.ch/profile/atterratio','https://friendica.free-beer.ch/photo/custom/300/753.jpg?rev=2014-04-04+01%3A23%3A23','','0001-01-01 00:00:00','','','','','dspr'),(143,'Markus Krüger','https://friendica.free-beer.ch/profile/kreuzmacher','http://friendica.free-beer.ch/profile/kreuzmacher','https://friendica.free-beer.ch/photo/custom/300/800.jpg?rev=2014-06-26+05%3A48%3A58','','0001-01-01 00:00:00','','','','','dspr'),(144,'Master O Disaster','https://friendica.free-beer.ch/profile/masterodisaster','http://friendica.free-beer.ch/profile/masterodisaster','https://friendica.free-beer.ch/photo/custom/300/855.jpg?rev=2014-08-18+20%3A31%3A42','','0001-01-01 00:00:00','','','','','dspr'),(145,'eyal72','https://friendica.free-beer.ch/profile/eyal72','http://friendica.free-beer.ch/profile/eyal72','https://friendica.free-beer.ch/photo/custom/300/872.jpg?rev=2014-09-03+22%3A35%3A36','','0001-01-01 00:00:00','','','','','dspr'),(146,'Ed Wes','https://friendica.free-beer.ch/profile/edwes','http://friendica.free-beer.ch/profile/edwes','https://friendica.free-beer.ch/photo/custom/300/1206.jpg','','0001-01-01 00:00:00','','','','','dspr'),(147,'Romoli Marco','https://friendica.free-beer.ch/profile/redleghorn','http://friendica.free-beer.ch/profile/redleghorn','https://friendica.free-beer.ch/photo/custom/300/1270.jpg?rev=2014-11-26+16%3A57%3A51','','0001-01-01 00:00:00','','','','','dspr'),(148,'Michael Rueetschli','http://social.rueetschli.org/profile/rueetschli','http://social.rueetschli.org/profile/rueetschli','http://social.rueetschli.org/photo/custom/300/1.jpg?rev=2014-03-14+09%3A30%3A42','','0001-01-01 00:00:00','','','','','dspr'),(149,'Land Ei','http://social.rueetschli.org/profile/land_ei','http://social.rueetschli.org/profile/land_ei','http://social.rueetschli.org/photo/custom/300/32.jpg?rev=2014-07-25+17%3A03%3A43','','0001-01-01 00:00:00','','','','','dspr'),(150,'Jim Wiskey','http://social.rueetschli.org/profile/gsxrpilot','http://social.rueetschli.org/profile/gsxrpilot','http://social.rueetschli.org/photo/custom/300/36.jpg?rev=2014-08-21+01%3A47%3A44','','0001-01-01 00:00:00','','','','','dspr'),(151,'Kevin K.','http://social.rueetschli.org/profile/dj-atropine','http://social.rueetschli.org/profile/dj-atropine','http://social.rueetschli.org/photo/custom/300/66.jpg?rev=2014-12-31+13%3A05%3A29','','0001-01-01 00:00:00','','','','','dspr'),(152,'friendica2','http://192.168.22.10/profile/friendica2','http://192.168.22.10/profile/friendica2','http://192.168.22.10/photo/avatar/3.jpg','','2015-02-02 19:00:21','','','','','stat'),(153,'friendica5','http://192.168.22.10/profile/friendica5','http://192.168.22.10/profile/friendica5','http://192.168.22.10/photo/avatar/5.jpg','','2015-02-02 19:00:18','','','','','stat'),(154,'friendica4','http://192.168.22.10/profile/friendica4','http://192.168.22.10/profile/friendica4','http://192.168.22.10/photo/avatar/6.jpg','','2015-02-02 19:00:24','','','','','stat'),(155,'friendica1','http://192.168.22.10/profile/friendica1','http://192.168.22.10/profile/friendica1','http://192.168.22.10/photo/profile/2.jpg','','2015-02-02 12:02:11','','','','','stat'),(156,'friendica3','http://192.168.22.10/profile/friendica3','http://192.168.22.10/profile/friendica3','http://192.168.22.10/photo/1fc6596c195944666e18cbd313795942-4.jpg','','2015-02-02 19:00:12','','','','','dfrn'); /*!40000 ALTER TABLE `gcontact` ENABLE KEYS */; UNLOCK TABLES; @@ -611,19 +611,19 @@ UNLOCK TABLES; DROP TABLE IF EXISTS `glink`; /*!40101 SET @saved_cs_client = @@character_set_client */; -/*!40101 SET character_set_client = utf8 */; +/*!40101 SET character_set_client = utf8mb4 */; CREATE TABLE `glink` ( `id` int(10) unsigned NOT NULL AUTO_INCREMENT, `cid` int(11) NOT NULL DEFAULT '0', `uid` int(11) NOT NULL DEFAULT '0', `gcid` int(11) NOT NULL DEFAULT '0', `zcid` int(11) NOT NULL DEFAULT '0', - `updated` datetime NOT NULL DEFAULT '0000-00-00 00:00:00', + `updated` datetime NOT NULL DEFAULT '0001-01-01 00:00:00', PRIMARY KEY (`id`), KEY `cid_uid_gcid_zcid` (`cid`,`uid`,`gcid`,`zcid`), KEY `gcid` (`gcid`), KEY `zcid` (`zcid`) -) ENGINE=InnoDB AUTO_INCREMENT=189 DEFAULT CHARSET=utf8; +) ENGINE=InnoDB AUTO_INCREMENT=189 DEFAULT CHARSET=utf8mb4; /*!40101 SET character_set_client = @saved_cs_client */; -- @@ -642,7 +642,7 @@ UNLOCK TABLES; DROP TABLE IF EXISTS `group`; /*!40101 SET @saved_cs_client = @@character_set_client */; -/*!40101 SET character_set_client = utf8 */; +/*!40101 SET character_set_client = utf8mb4 */; CREATE TABLE `group` ( `id` int(10) unsigned NOT NULL AUTO_INCREMENT, `uid` int(10) unsigned NOT NULL DEFAULT '0', @@ -651,7 +651,7 @@ CREATE TABLE `group` ( `name` varchar(255) NOT NULL DEFAULT '', PRIMARY KEY (`id`), KEY `uid` (`uid`) -) ENGINE=InnoDB AUTO_INCREMENT=9 DEFAULT CHARSET=utf8; +) ENGINE=InnoDB AUTO_INCREMENT=9 DEFAULT CHARSET=utf8mb4; /*!40101 SET character_set_client = @saved_cs_client */; -- @@ -670,7 +670,7 @@ UNLOCK TABLES; DROP TABLE IF EXISTS `group_member`; /*!40101 SET @saved_cs_client = @@character_set_client */; -/*!40101 SET character_set_client = utf8 */; +/*!40101 SET character_set_client = utf8mb4 */; CREATE TABLE `group_member` ( `id` int(10) unsigned NOT NULL AUTO_INCREMENT, `uid` int(10) unsigned NOT NULL DEFAULT '0', @@ -678,7 +678,7 @@ CREATE TABLE `group_member` ( `contact-id` int(10) unsigned NOT NULL DEFAULT '0', PRIMARY KEY (`id`), KEY `uid_gid_contactid` (`uid`,`gid`,`contact-id`) -) ENGINE=InnoDB AUTO_INCREMENT=16 DEFAULT CHARSET=utf8; +) ENGINE=InnoDB AUTO_INCREMENT=16 DEFAULT CHARSET=utf8mb4; /*!40101 SET character_set_client = @saved_cs_client */; -- @@ -697,13 +697,13 @@ UNLOCK TABLES; DROP TABLE IF EXISTS `guid`; /*!40101 SET @saved_cs_client = @@character_set_client */; -/*!40101 SET character_set_client = utf8 */; +/*!40101 SET character_set_client = utf8mb4 */; CREATE TABLE `guid` ( `id` int(10) unsigned NOT NULL AUTO_INCREMENT, `guid` varchar(255) NOT NULL DEFAULT '', PRIMARY KEY (`id`), KEY `guid` (`guid`) -) ENGINE=InnoDB AUTO_INCREMENT=29 DEFAULT CHARSET=utf8; +) ENGINE=InnoDB AUTO_INCREMENT=29 DEFAULT CHARSET=utf8mb4; /*!40101 SET character_set_client = @saved_cs_client */; -- @@ -722,7 +722,7 @@ UNLOCK TABLES; DROP TABLE IF EXISTS `hook`; /*!40101 SET @saved_cs_client = @@character_set_client */; -/*!40101 SET character_set_client = utf8 */; +/*!40101 SET character_set_client = utf8mb4 */; CREATE TABLE `hook` ( `id` int(11) NOT NULL AUTO_INCREMENT, `hook` varchar(255) NOT NULL DEFAULT '', @@ -731,7 +731,7 @@ CREATE TABLE `hook` ( `priority` int(11) unsigned NOT NULL DEFAULT '0', PRIMARY KEY (`id`), KEY `hook_file_function` (`hook`(30),`file`(60),`function`(30)) -) ENGINE=InnoDB DEFAULT CHARSET=utf8; +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; /*!40101 SET character_set_client = @saved_cs_client */; -- @@ -749,7 +749,7 @@ UNLOCK TABLES; DROP TABLE IF EXISTS `intro`; /*!40101 SET @saved_cs_client = @@character_set_client */; -/*!40101 SET character_set_client = utf8 */; +/*!40101 SET character_set_client = utf8mb4 */; CREATE TABLE `intro` ( `id` int(10) unsigned NOT NULL AUTO_INCREMENT, `uid` int(10) unsigned NOT NULL DEFAULT '0', @@ -759,11 +759,11 @@ CREATE TABLE `intro` ( `duplex` tinyint(1) NOT NULL DEFAULT '0', `note` text NOT NULL, `hash` varchar(255) NOT NULL DEFAULT '', - `datetime` datetime NOT NULL DEFAULT '0000-00-00 00:00:00', + `datetime` datetime NOT NULL DEFAULT '0001-01-01 00:00:00', `blocked` tinyint(1) NOT NULL DEFAULT '1', `ignore` tinyint(1) NOT NULL DEFAULT '0', PRIMARY KEY (`id`) -) ENGINE=InnoDB AUTO_INCREMENT=8 DEFAULT CHARSET=utf8; +) ENGINE=InnoDB AUTO_INCREMENT=8 DEFAULT CHARSET=utf8mb4; /*!40101 SET character_set_client = @saved_cs_client */; -- @@ -782,7 +782,7 @@ UNLOCK TABLES; DROP TABLE IF EXISTS `item`; /*!40101 SET @saved_cs_client = @@character_set_client */; -/*!40101 SET character_set_client = utf8 */; +/*!40101 SET character_set_client = utf8mb4 */; CREATE TABLE `item` ( `id` int(10) unsigned NOT NULL AUTO_INCREMENT, `guid` varchar(255) NOT NULL DEFAULT '', @@ -796,11 +796,11 @@ CREATE TABLE `item` ( `parent-uri` varchar(255) NOT NULL DEFAULT '', `extid` varchar(255) NOT NULL DEFAULT '', `thr-parent` varchar(255) NOT NULL DEFAULT '', - `created` datetime NOT NULL DEFAULT '0000-00-00 00:00:00', - `edited` datetime NOT NULL DEFAULT '0000-00-00 00:00:00', - `commented` datetime NOT NULL DEFAULT '0000-00-00 00:00:00', - `received` datetime NOT NULL DEFAULT '0000-00-00 00:00:00', - `changed` datetime NOT NULL DEFAULT '0000-00-00 00:00:00', + `created` datetime NOT NULL DEFAULT '0001-01-01 00:00:00', + `edited` datetime NOT NULL DEFAULT '0001-01-01 00:00:00', + `commented` datetime NOT NULL DEFAULT '0001-01-01 00:00:00', + `received` datetime NOT NULL DEFAULT '0001-01-01 00:00:00', + `changed` datetime NOT NULL DEFAULT '0001-01-01 00:00:00', `owner-name` varchar(255) NOT NULL DEFAULT '', `owner-link` varchar(255) NOT NULL DEFAULT '', `owner-avatar` varchar(255) NOT NULL DEFAULT '', @@ -876,7 +876,7 @@ CREATE TABLE `item` ( KEY `uid_eventid` (`uid`,`event-id`), KEY `uid_authorlink` (`uid`,`author-link`), KEY `uid_ownerlink` (`uid`,`owner-link`) -) ENGINE=InnoDB AUTO_INCREMENT=31 DEFAULT CHARSET=utf8; +) ENGINE=InnoDB AUTO_INCREMENT=31 DEFAULT CHARSET=utf8mb4; /*!40101 SET character_set_client = @saved_cs_client */; -- @@ -895,7 +895,7 @@ UNLOCK TABLES; DROP TABLE IF EXISTS `item_id`; /*!40101 SET @saved_cs_client = @@character_set_client */; -/*!40101 SET character_set_client = utf8 */; +/*!40101 SET character_set_client = utf8mb4 */; CREATE TABLE `item_id` ( `id` int(11) NOT NULL AUTO_INCREMENT, `iid` int(11) NOT NULL DEFAULT '0', @@ -907,7 +907,7 @@ CREATE TABLE `item_id` ( KEY `sid` (`sid`), KEY `service` (`service`), KEY `iid` (`iid`) -) ENGINE=InnoDB DEFAULT CHARSET=utf8; +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; /*!40101 SET character_set_client = @saved_cs_client */; -- @@ -925,14 +925,14 @@ UNLOCK TABLES; DROP TABLE IF EXISTS `locks`; /*!40101 SET @saved_cs_client = @@character_set_client */; -/*!40101 SET character_set_client = utf8 */; +/*!40101 SET character_set_client = utf8mb4 */; CREATE TABLE `locks` ( `id` int(11) NOT NULL AUTO_INCREMENT, `name` varchar(128) NOT NULL DEFAULT '', `locked` tinyint(1) NOT NULL DEFAULT '0', - `created` datetime DEFAULT '0000-00-00 00:00:00', + `created` datetime DEFAULT '0001-01-01 00:00:00', PRIMARY KEY (`id`) -) ENGINE=InnoDB DEFAULT CHARSET=utf8; +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; /*!40101 SET character_set_client = @saved_cs_client */; -- @@ -950,7 +950,7 @@ UNLOCK TABLES; DROP TABLE IF EXISTS `mail`; /*!40101 SET @saved_cs_client = @@character_set_client */; -/*!40101 SET character_set_client = utf8 */; +/*!40101 SET character_set_client = utf8mb4 */; CREATE TABLE `mail` ( `id` int(10) unsigned NOT NULL AUTO_INCREMENT, `uid` int(10) unsigned NOT NULL DEFAULT '0', @@ -968,7 +968,7 @@ CREATE TABLE `mail` ( `unknown` tinyint(1) NOT NULL DEFAULT '0', `uri` varchar(255) NOT NULL DEFAULT '', `parent-uri` varchar(255) NOT NULL DEFAULT '', - `created` datetime NOT NULL DEFAULT '0000-00-00 00:00:00', + `created` datetime NOT NULL DEFAULT '0001-01-01 00:00:00', PRIMARY KEY (`id`), KEY `uid` (`uid`), KEY `guid` (`guid`), @@ -976,7 +976,7 @@ CREATE TABLE `mail` ( KEY `reply` (`reply`), KEY `uri` (`uri`), KEY `parent-uri` (`parent-uri`) -) ENGINE=InnoDB DEFAULT CHARSET=utf8; +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; /*!40101 SET character_set_client = @saved_cs_client */; -- @@ -994,7 +994,7 @@ UNLOCK TABLES; DROP TABLE IF EXISTS `mailacct`; /*!40101 SET @saved_cs_client = @@character_set_client */; -/*!40101 SET character_set_client = utf8 */; +/*!40101 SET character_set_client = utf8mb4 */; CREATE TABLE `mailacct` ( `id` int(11) NOT NULL AUTO_INCREMENT, `uid` int(11) NOT NULL DEFAULT '0', @@ -1008,9 +1008,9 @@ CREATE TABLE `mailacct` ( `action` int(11) NOT NULL DEFAULT '0', `movetofolder` varchar(255) NOT NULL DEFAULT '', `pubmail` tinyint(1) NOT NULL DEFAULT '0', - `last_check` datetime NOT NULL DEFAULT '0000-00-00 00:00:00', + `last_check` datetime NOT NULL DEFAULT '0001-01-01 00:00:00', PRIMARY KEY (`id`) -) ENGINE=InnoDB DEFAULT CHARSET=utf8; +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; /*!40101 SET character_set_client = @saved_cs_client */; -- @@ -1028,14 +1028,14 @@ UNLOCK TABLES; DROP TABLE IF EXISTS `manage`; /*!40101 SET @saved_cs_client = @@character_set_client */; -/*!40101 SET character_set_client = utf8 */; +/*!40101 SET character_set_client = utf8mb4 */; CREATE TABLE `manage` ( `id` int(11) NOT NULL AUTO_INCREMENT, `uid` int(11) NOT NULL DEFAULT '0', `mid` int(11) NOT NULL DEFAULT '0', PRIMARY KEY (`id`), KEY `uid_mid` (`uid`,`mid`) -) ENGINE=InnoDB DEFAULT CHARSET=utf8; +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; /*!40101 SET character_set_client = @saved_cs_client */; -- @@ -1053,7 +1053,7 @@ UNLOCK TABLES; DROP TABLE IF EXISTS `notify`; /*!40101 SET @saved_cs_client = @@character_set_client */; -/*!40101 SET character_set_client = utf8 */; +/*!40101 SET character_set_client = utf8mb4 */; CREATE TABLE `notify` ( `id` int(11) NOT NULL AUTO_INCREMENT, `hash` varchar(64) NOT NULL DEFAULT '', @@ -1061,7 +1061,7 @@ CREATE TABLE `notify` ( `name` varchar(255) NOT NULL DEFAULT '', `url` varchar(255) NOT NULL DEFAULT '', `photo` varchar(255) NOT NULL DEFAULT '', - `date` datetime NOT NULL DEFAULT '0000-00-00 00:00:00', + `date` datetime NOT NULL DEFAULT '0001-01-01 00:00:00', `msg` mediumtext NOT NULL, `uid` int(11) NOT NULL DEFAULT '0', `link` varchar(255) NOT NULL DEFAULT '', @@ -1071,7 +1071,7 @@ CREATE TABLE `notify` ( `otype` varchar(16) NOT NULL DEFAULT '', PRIMARY KEY (`id`), KEY `uid` (`uid`) -) ENGINE=InnoDB AUTO_INCREMENT=16 DEFAULT CHARSET=utf8; +) ENGINE=InnoDB AUTO_INCREMENT=16 DEFAULT CHARSET=utf8mb4; /*!40101 SET character_set_client = @saved_cs_client */; -- @@ -1090,7 +1090,7 @@ UNLOCK TABLES; DROP TABLE IF EXISTS `notify-threads`; /*!40101 SET @saved_cs_client = @@character_set_client */; -/*!40101 SET character_set_client = utf8 */; +/*!40101 SET character_set_client = utf8mb4 */; CREATE TABLE `notify-threads` ( `id` int(11) NOT NULL AUTO_INCREMENT, `notify-id` int(11) NOT NULL DEFAULT '0', @@ -1100,7 +1100,7 @@ CREATE TABLE `notify-threads` ( PRIMARY KEY (`id`), KEY `master-parent-item` (`master-parent-item`), KEY `receiver-uid` (`receiver-uid`) -) ENGINE=InnoDB AUTO_INCREMENT=3 DEFAULT CHARSET=utf8; +) ENGINE=InnoDB AUTO_INCREMENT=3 DEFAULT CHARSET=utf8mb4; /*!40101 SET character_set_client = @saved_cs_client */; -- @@ -1119,7 +1119,7 @@ UNLOCK TABLES; DROP TABLE IF EXISTS `pconfig`; /*!40101 SET @saved_cs_client = @@character_set_client */; -/*!40101 SET character_set_client = utf8 */; +/*!40101 SET character_set_client = utf8mb4 */; CREATE TABLE `pconfig` ( `id` int(11) NOT NULL AUTO_INCREMENT, `uid` int(11) NOT NULL DEFAULT '0', @@ -1128,7 +1128,7 @@ CREATE TABLE `pconfig` ( `v` mediumtext NOT NULL, PRIMARY KEY (`id`), KEY `uid_cat_k` (`uid`,`cat`(30),`k`(30)) -) ENGINE=InnoDB AUTO_INCREMENT=79 DEFAULT CHARSET=utf8; +) ENGINE=InnoDB AUTO_INCREMENT=79 DEFAULT CHARSET=utf8mb4; /*!40101 SET character_set_client = @saved_cs_client */; -- @@ -1147,15 +1147,15 @@ UNLOCK TABLES; DROP TABLE IF EXISTS `photo`; /*!40101 SET @saved_cs_client = @@character_set_client */; -/*!40101 SET character_set_client = utf8 */; +/*!40101 SET character_set_client = utf8mb4 */; CREATE TABLE `photo` ( `id` int(10) unsigned NOT NULL AUTO_INCREMENT, `uid` int(10) unsigned NOT NULL DEFAULT '0', `contact-id` int(10) unsigned NOT NULL DEFAULT '0', `guid` varchar(64) NOT NULL DEFAULT '', `resource-id` varchar(255) NOT NULL DEFAULT '', - `created` datetime NOT NULL DEFAULT '0000-00-00 00:00:00', - `edited` datetime NOT NULL DEFAULT '0000-00-00 00:00:00', + `created` datetime NOT NULL DEFAULT '0001-01-01 00:00:00', + `edited` datetime NOT NULL DEFAULT '0001-01-01 00:00:00', `title` varchar(255) NOT NULL DEFAULT '', `desc` text NOT NULL, `album` varchar(255) NOT NULL DEFAULT '', @@ -1175,7 +1175,7 @@ CREATE TABLE `photo` ( KEY `uid` (`uid`), KEY `resource-id` (`resource-id`), KEY `guid` (`guid`) -) ENGINE=InnoDB AUTO_INCREMENT=55 DEFAULT CHARSET=utf8; +) ENGINE=InnoDB AUTO_INCREMENT=55 DEFAULT CHARSET=utf8mb4; /*!40101 SET character_set_client = @saved_cs_client */; -- @@ -1194,7 +1194,7 @@ UNLOCK TABLES; DROP TABLE IF EXISTS `poll`; /*!40101 SET @saved_cs_client = @@character_set_client */; -/*!40101 SET character_set_client = utf8 */; +/*!40101 SET character_set_client = utf8mb4 */; CREATE TABLE `poll` ( `id` int(11) NOT NULL AUTO_INCREMENT, `uid` int(11) NOT NULL DEFAULT '0', @@ -1210,7 +1210,7 @@ CREATE TABLE `poll` ( `q9` mediumtext NOT NULL, PRIMARY KEY (`id`), KEY `uid` (`uid`) -) ENGINE=InnoDB DEFAULT CHARSET=utf8; +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; /*!40101 SET character_set_client = @saved_cs_client */; -- @@ -1228,7 +1228,7 @@ UNLOCK TABLES; DROP TABLE IF EXISTS `poll_result`; /*!40101 SET @saved_cs_client = @@character_set_client */; -/*!40101 SET character_set_client = utf8 */; +/*!40101 SET character_set_client = utf8mb4 */; CREATE TABLE `poll_result` ( `id` int(11) NOT NULL AUTO_INCREMENT, `poll_id` int(11) NOT NULL DEFAULT '0', @@ -1236,7 +1236,7 @@ CREATE TABLE `poll_result` ( PRIMARY KEY (`id`), KEY `poll_id` (`poll_id`), KEY `choice` (`choice`) -) ENGINE=InnoDB DEFAULT CHARSET=utf8; +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; /*!40101 SET character_set_client = @saved_cs_client */; -- @@ -1254,7 +1254,7 @@ UNLOCK TABLES; DROP TABLE IF EXISTS `profile`; /*!40101 SET @saved_cs_client = @@character_set_client */; -/*!40101 SET character_set_client = utf8 */; +/*!40101 SET character_set_client = utf8mb4 */; CREATE TABLE `profile` ( `id` int(11) NOT NULL AUTO_INCREMENT, `uid` int(11) NOT NULL DEFAULT '0', @@ -1263,7 +1263,7 @@ CREATE TABLE `profile` ( `hide-friends` tinyint(1) NOT NULL DEFAULT '0', `name` varchar(255) NOT NULL DEFAULT '', `pdesc` varchar(255) NOT NULL DEFAULT '', - `dob` varchar(32) NOT NULL DEFAULT '0000-00-00', + `dob` varchar(32) NOT NULL DEFAULT '0001-01-01', `address` varchar(255) NOT NULL DEFAULT '', `locality` varchar(255) NOT NULL DEFAULT '', `region` varchar(255) NOT NULL DEFAULT '', @@ -1273,7 +1273,7 @@ CREATE TABLE `profile` ( `gender` varchar(32) NOT NULL DEFAULT '', `marital` varchar(255) NOT NULL DEFAULT '', `with` text NOT NULL, - `howlong` datetime NOT NULL DEFAULT '0000-00-00 00:00:00', + `howlong` datetime NOT NULL DEFAULT '0001-01-01 00:00:00', `sexual` varchar(255) NOT NULL DEFAULT '', `politic` varchar(255) NOT NULL DEFAULT '', `religion` varchar(255) NOT NULL DEFAULT '', @@ -1299,7 +1299,7 @@ CREATE TABLE `profile` ( `net-publish` tinyint(1) NOT NULL DEFAULT '0', PRIMARY KEY (`id`), KEY `hometown` (`hometown`) -) ENGINE=InnoDB AUTO_INCREMENT=7 DEFAULT CHARSET=utf8; +) ENGINE=InnoDB AUTO_INCREMENT=7 DEFAULT CHARSET=utf8mb4; /*!40101 SET character_set_client = @saved_cs_client */; -- @@ -1308,7 +1308,7 @@ CREATE TABLE `profile` ( LOCK TABLES `profile` WRITE; /*!40000 ALTER TABLE `profile` DISABLE KEYS */; -INSERT INTO `profile` VALUES (1,1,'default',1,0,'admin','','0000-00-00','','','','','','','','','','0000-00-00 00:00:00','','','','','','','','','','','','','','','','','','','','http://192.168.22.10/photo/profile/1.jpg','http://192.168.22.10/photo/avatar/1.jpg',0,0),(2,2,'default',1,0,'friendica1','','0000-00-00','','','','','','','','','','0000-00-00 00:00:00','','','','','','','','','','','','','','','','','','','','http://192.168.22.10/photo/profile/2.jpg','http://192.168.22.10/photo/avatar/2.jpg',0,0),(3,3,'default',1,0,'friendica2','','0000-00-00','','','','','','','','','','0000-00-00 00:00:00','','','','','','','','','','','','','','','','','','','','http://192.168.22.10/photo/profile/3.jpg','http://192.168.22.10/photo/avatar/3.jpg',0,0),(4,4,'default',1,0,'friendica3','','0000-00-00','','','','','','','','','','0000-00-00 00:00:00','','','','','','','','','','','','','','','','','','','','http://192.168.22.10/photo/profile/4.jpg','http://192.168.22.10/photo/avatar/4.jpg',0,0),(5,5,'default',1,0,'friendica5','','0000-00-00','','','','','','','','','','0000-00-00 00:00:00','','','','','','','','','','','','','','','','','','','','http://192.168.22.10/photo/profile/5.jpg','http://192.168.22.10/photo/avatar/5.jpg',0,0),(6,6,'default',1,0,'friendica4','','0000-00-00','','','','','','','','','','0000-00-00 00:00:00','','','','','','','','','','','','','','','','','','','','http://192.168.22.10/photo/profile/6.jpg','http://192.168.22.10/photo/avatar/6.jpg',0,0); +INSERT INTO `profile` VALUES (1,1,'default',1,0,'admin','','0001-01-01','','','','','','','','','','0001-01-01 00:00:00','','','','','','','','','','','','','','','','','','','','http://192.168.22.10/photo/profile/1.jpg','http://192.168.22.10/photo/avatar/1.jpg',0,0),(2,2,'default',1,0,'friendica1','','0001-01-01','','','','','','','','','','0001-01-01 00:00:00','','','','','','','','','','','','','','','','','','','','http://192.168.22.10/photo/profile/2.jpg','http://192.168.22.10/photo/avatar/2.jpg',0,0),(3,3,'default',1,0,'friendica2','','0001-01-01','','','','','','','','','','0001-01-01 00:00:00','','','','','','','','','','','','','','','','','','','','http://192.168.22.10/photo/profile/3.jpg','http://192.168.22.10/photo/avatar/3.jpg',0,0),(4,4,'default',1,0,'friendica3','','0001-01-01','','','','','','','','','','0001-01-01 00:00:00','','','','','','','','','','','','','','','','','','','','http://192.168.22.10/photo/profile/4.jpg','http://192.168.22.10/photo/avatar/4.jpg',0,0),(5,5,'default',1,0,'friendica5','','0001-01-01','','','','','','','','','','0001-01-01 00:00:00','','','','','','','','','','','','','','','','','','','','http://192.168.22.10/photo/profile/5.jpg','http://192.168.22.10/photo/avatar/5.jpg',0,0),(6,6,'default',1,0,'friendica4','','0001-01-01','','','','','','','','','','0001-01-01 00:00:00','','','','','','','','','','','','','','','','','','','','http://192.168.22.10/photo/profile/6.jpg','http://192.168.22.10/photo/avatar/6.jpg',0,0); /*!40000 ALTER TABLE `profile` ENABLE KEYS */; UNLOCK TABLES; @@ -1318,7 +1318,7 @@ UNLOCK TABLES; DROP TABLE IF EXISTS `profile_check`; /*!40101 SET @saved_cs_client = @@character_set_client */; -/*!40101 SET character_set_client = utf8 */; +/*!40101 SET character_set_client = utf8mb4 */; CREATE TABLE `profile_check` ( `id` int(10) unsigned NOT NULL AUTO_INCREMENT, `uid` int(10) unsigned NOT NULL DEFAULT '0', @@ -1327,7 +1327,7 @@ CREATE TABLE `profile_check` ( `sec` varchar(255) NOT NULL DEFAULT '', `expire` int(11) NOT NULL DEFAULT '0', PRIMARY KEY (`id`) -) ENGINE=InnoDB DEFAULT CHARSET=utf8; +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; /*!40101 SET character_set_client = @saved_cs_client */; -- @@ -1345,7 +1345,7 @@ UNLOCK TABLES; DROP TABLE IF EXISTS `push_subscriber`; /*!40101 SET @saved_cs_client = @@character_set_client */; -/*!40101 SET character_set_client = utf8 */; +/*!40101 SET character_set_client = utf8mb4 */; CREATE TABLE `push_subscriber` ( `id` int(11) NOT NULL AUTO_INCREMENT, `uid` int(11) NOT NULL DEFAULT '0', @@ -1353,10 +1353,10 @@ CREATE TABLE `push_subscriber` ( `topic` varchar(255) NOT NULL DEFAULT '', `nickname` varchar(255) NOT NULL DEFAULT '', `push` int(11) NOT NULL DEFAULT '0', - `last_update` datetime NOT NULL DEFAULT '0000-00-00 00:00:00', + `last_update` datetime NOT NULL DEFAULT '0001-01-01 00:00:00', `secret` varchar(255) NOT NULL DEFAULT '', PRIMARY KEY (`id`) -) ENGINE=InnoDB DEFAULT CHARSET=utf8; +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; /*!40101 SET character_set_client = @saved_cs_client */; -- @@ -1374,13 +1374,13 @@ UNLOCK TABLES; DROP TABLE IF EXISTS `queue`; /*!40101 SET @saved_cs_client = @@character_set_client */; -/*!40101 SET character_set_client = utf8 */; +/*!40101 SET character_set_client = utf8mb4 */; CREATE TABLE `queue` ( `id` int(11) NOT NULL AUTO_INCREMENT, `cid` int(11) NOT NULL DEFAULT '0', `network` varchar(32) NOT NULL DEFAULT '', - `created` datetime NOT NULL DEFAULT '0000-00-00 00:00:00', - `last` datetime NOT NULL DEFAULT '0000-00-00 00:00:00', + `created` datetime NOT NULL DEFAULT '0001-01-01 00:00:00', + `last` datetime NOT NULL DEFAULT '0001-01-01 00:00:00', `content` mediumtext NOT NULL, `batch` tinyint(1) NOT NULL DEFAULT '0', PRIMARY KEY (`id`), @@ -1389,7 +1389,7 @@ CREATE TABLE `queue` ( KEY `last` (`last`), KEY `network` (`network`), KEY `batch` (`batch`) -) ENGINE=InnoDB DEFAULT CHARSET=utf8; +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; /*!40101 SET character_set_client = @saved_cs_client */; -- @@ -1407,16 +1407,16 @@ UNLOCK TABLES; DROP TABLE IF EXISTS `register`; /*!40101 SET @saved_cs_client = @@character_set_client */; -/*!40101 SET character_set_client = utf8 */; +/*!40101 SET character_set_client = utf8mb4 */; CREATE TABLE `register` ( `id` int(11) unsigned NOT NULL AUTO_INCREMENT, `hash` varchar(255) NOT NULL DEFAULT '', - `created` datetime NOT NULL DEFAULT '0000-00-00 00:00:00', + `created` datetime NOT NULL DEFAULT '0001-01-01 00:00:00', `uid` int(11) unsigned NOT NULL DEFAULT '0', `password` varchar(255) NOT NULL DEFAULT '', `language` varchar(16) NOT NULL DEFAULT '', PRIMARY KEY (`id`) -) ENGINE=InnoDB DEFAULT CHARSET=utf8; +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; /*!40101 SET character_set_client = @saved_cs_client */; -- @@ -1434,7 +1434,7 @@ UNLOCK TABLES; DROP TABLE IF EXISTS `search`; /*!40101 SET @saved_cs_client = @@character_set_client */; -/*!40101 SET character_set_client = utf8 */; +/*!40101 SET character_set_client = utf8mb4 */; CREATE TABLE `search` ( `id` int(11) NOT NULL AUTO_INCREMENT, `uid` int(11) NOT NULL DEFAULT '0', @@ -1442,7 +1442,7 @@ CREATE TABLE `search` ( PRIMARY KEY (`id`), KEY `uid` (`uid`), KEY `term` (`term`) -) ENGINE=InnoDB DEFAULT CHARSET=utf8; +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; /*!40101 SET character_set_client = @saved_cs_client */; -- @@ -1460,7 +1460,7 @@ UNLOCK TABLES; DROP TABLE IF EXISTS `session`; /*!40101 SET @saved_cs_client = @@character_set_client */; -/*!40101 SET character_set_client = utf8 */; +/*!40101 SET character_set_client = utf8mb4 */; CREATE TABLE `session` ( `id` bigint(20) unsigned NOT NULL AUTO_INCREMENT, `sid` varchar(255) NOT NULL DEFAULT '', @@ -1469,7 +1469,7 @@ CREATE TABLE `session` ( PRIMARY KEY (`id`), KEY `sid` (`sid`), KEY `expire` (`expire`) -) ENGINE=InnoDB AUTO_INCREMENT=123 DEFAULT CHARSET=utf8; +) ENGINE=InnoDB AUTO_INCREMENT=123 DEFAULT CHARSET=utf8mb4; /*!40101 SET character_set_client = @saved_cs_client */; -- @@ -1488,7 +1488,7 @@ UNLOCK TABLES; DROP TABLE IF EXISTS `sign`; /*!40101 SET @saved_cs_client = @@character_set_client */; -/*!40101 SET character_set_client = utf8 */; +/*!40101 SET character_set_client = utf8mb4 */; CREATE TABLE `sign` ( `id` int(10) unsigned NOT NULL AUTO_INCREMENT, `iid` int(10) unsigned NOT NULL DEFAULT '0', @@ -1499,7 +1499,7 @@ CREATE TABLE `sign` ( PRIMARY KEY (`id`), KEY `iid` (`iid`), KEY `retract_iid` (`retract_iid`) -) ENGINE=InnoDB DEFAULT CHARSET=utf8; +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; /*!40101 SET character_set_client = @saved_cs_client */; -- @@ -1517,20 +1517,20 @@ UNLOCK TABLES; DROP TABLE IF EXISTS `spam`; /*!40101 SET @saved_cs_client = @@character_set_client */; -/*!40101 SET character_set_client = utf8 */; +/*!40101 SET character_set_client = utf8mb4 */; CREATE TABLE `spam` ( `id` int(11) NOT NULL AUTO_INCREMENT, `uid` int(11) NOT NULL DEFAULT '0', `spam` int(11) NOT NULL DEFAULT '0', `ham` int(11) NOT NULL DEFAULT '0', `term` varchar(255) NOT NULL DEFAULT '', - `date` datetime NOT NULL DEFAULT '0000-00-00 00:00:00', + `date` datetime NOT NULL DEFAULT '0001-01-01 00:00:00', PRIMARY KEY (`id`), KEY `uid` (`uid`), KEY `spam` (`spam`), KEY `ham` (`ham`), KEY `term` (`term`) -) ENGINE=InnoDB DEFAULT CHARSET=utf8; +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; /*!40101 SET character_set_client = @saved_cs_client */; -- @@ -1548,7 +1548,7 @@ UNLOCK TABLES; DROP TABLE IF EXISTS `term`; /*!40101 SET @saved_cs_client = @@character_set_client */; -/*!40101 SET character_set_client = utf8 */; +/*!40101 SET character_set_client = utf8mb4 */; CREATE TABLE `term` ( `tid` int(10) unsigned NOT NULL AUTO_INCREMENT, `oid` int(10) unsigned NOT NULL DEFAULT '0', @@ -1564,7 +1564,7 @@ CREATE TABLE `term` ( KEY `type_term` (`type`,`term`), KEY `uid_otype_type_term_tid` (`uid`,`otype`,`type`,`term`,`tid`), KEY `otype_type_term_tid` (`otype`,`type`,`term`,`tid`) -) ENGINE=InnoDB DEFAULT CHARSET=utf8; +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; /*!40101 SET character_set_client = @saved_cs_client */; -- @@ -1582,16 +1582,16 @@ UNLOCK TABLES; DROP TABLE IF EXISTS `thread`; /*!40101 SET @saved_cs_client = @@character_set_client */; -/*!40101 SET character_set_client = utf8 */; +/*!40101 SET character_set_client = utf8mb4 */; CREATE TABLE `thread` ( `iid` int(10) unsigned NOT NULL DEFAULT '0', `uid` int(10) unsigned NOT NULL DEFAULT '0', `contact-id` int(11) unsigned NOT NULL DEFAULT '0', - `created` datetime NOT NULL DEFAULT '0000-00-00 00:00:00', - `edited` datetime NOT NULL DEFAULT '0000-00-00 00:00:00', - `commented` datetime NOT NULL DEFAULT '0000-00-00 00:00:00', - `received` datetime NOT NULL DEFAULT '0000-00-00 00:00:00', - `changed` datetime NOT NULL DEFAULT '0000-00-00 00:00:00', + `created` datetime NOT NULL DEFAULT '0001-01-01 00:00:00', + `edited` datetime NOT NULL DEFAULT '0001-01-01 00:00:00', + `commented` datetime NOT NULL DEFAULT '0001-01-01 00:00:00', + `received` datetime NOT NULL DEFAULT '0001-01-01 00:00:00', + `changed` datetime NOT NULL DEFAULT '0001-01-01 00:00:00', `wall` tinyint(1) NOT NULL DEFAULT '0', `private` tinyint(1) NOT NULL DEFAULT '0', `pubmail` tinyint(1) NOT NULL DEFAULT '0', @@ -1617,7 +1617,7 @@ CREATE TABLE `thread` ( KEY `wall_private_received` (`wall`,`private`,`received`), KEY `uid_created` (`uid`,`created`), KEY `uid_commented` (`uid`,`commented`) -) ENGINE=InnoDB DEFAULT CHARSET=utf8; +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; /*!40101 SET character_set_client = @saved_cs_client */; -- @@ -1636,7 +1636,7 @@ UNLOCK TABLES; DROP TABLE IF EXISTS `tokens`; /*!40101 SET @saved_cs_client = @@character_set_client */; -/*!40101 SET character_set_client = utf8 */; +/*!40101 SET character_set_client = utf8mb4 */; CREATE TABLE `tokens` ( `id` varchar(40) NOT NULL, `secret` text NOT NULL, @@ -1645,7 +1645,7 @@ CREATE TABLE `tokens` ( `scope` varchar(200) NOT NULL DEFAULT '', `uid` int(11) NOT NULL DEFAULT '0', PRIMARY KEY (`id`) -) ENGINE=InnoDB DEFAULT CHARSET=utf8; +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; /*!40101 SET character_set_client = @saved_cs_client */; -- @@ -1663,7 +1663,7 @@ UNLOCK TABLES; DROP TABLE IF EXISTS `user`; /*!40101 SET @saved_cs_client = @@character_set_client */; -/*!40101 SET character_set_client = utf8 */; +/*!40101 SET character_set_client = utf8mb4 */; CREATE TABLE `user` ( `uid` int(11) NOT NULL AUTO_INCREMENT, `guid` varchar(64) NOT NULL DEFAULT '', @@ -1674,8 +1674,8 @@ CREATE TABLE `user` ( `openid` varchar(255) NOT NULL DEFAULT '', `timezone` varchar(128) NOT NULL DEFAULT '', `language` varchar(32) NOT NULL DEFAULT 'en', - `register_date` datetime NOT NULL DEFAULT '0000-00-00 00:00:00', - `login_date` datetime NOT NULL DEFAULT '0000-00-00 00:00:00', + `register_date` datetime NOT NULL DEFAULT '0001-01-01 00:00:00', + `login_date` datetime NOT NULL DEFAULT '0001-01-01 00:00:00', `default-location` varchar(255) NOT NULL DEFAULT '', `allow_location` tinyint(1) NOT NULL DEFAULT '0', `theme` varchar(255) NOT NULL DEFAULT '', @@ -1698,8 +1698,8 @@ CREATE TABLE `user` ( `expire` int(11) unsigned NOT NULL DEFAULT '0', `account_removed` tinyint(1) NOT NULL DEFAULT '0', `account_expired` tinyint(1) NOT NULL DEFAULT '0', - `account_expires_on` datetime NOT NULL DEFAULT '0000-00-00 00:00:00', - `expire_notification_sent` datetime NOT NULL DEFAULT '0000-00-00 00:00:00', + `account_expires_on` datetime NOT NULL DEFAULT '0001-01-01 00:00:00', + `expire_notification_sent` datetime NOT NULL DEFAULT '0001-01-01 00:00:00', `service_class` varchar(32) NOT NULL DEFAULT '', `def_gid` int(11) NOT NULL DEFAULT '0', `allow_cid` mediumtext NOT NULL, @@ -1709,7 +1709,7 @@ CREATE TABLE `user` ( `openidserver` text NOT NULL, PRIMARY KEY (`uid`), KEY `nickname` (`nickname`) -) ENGINE=InnoDB AUTO_INCREMENT=7 DEFAULT CHARSET=utf8; +) ENGINE=InnoDB AUTO_INCREMENT=7 DEFAULT CHARSET=utf8mb4; /*!40101 SET character_set_client = @saved_cs_client */; -- @@ -1718,7 +1718,7 @@ CREATE TABLE `user` ( LOCK TABLES `user` WRITE; /*!40000 ALTER TABLE `user` DISABLE KEYS */; -INSERT INTO `user` VALUES (1,'a76680835da79303','admin','6a4e012bd9583858a5a6fa15f58bd86a25af266d3a4344f1ec2018b778f29ba83be86eb45e6dc204e11276f4a99eff4e2144fbe15e756c2c88e999649aae7d94','admin','vagrant@friendica.dev','','UTC','en','2015-02-02 11:24:17','2015-02-02 11:26:23','',0,'','-----BEGIN PUBLIC KEY-----\nMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAoPnn8yXCAdkLCgHLlA7I\nMZZH4XnzS93NgpoaFWpGgdX9hbHjmHpbY+0rD1Q0FsOC9W+R3qsDypkstJ4CqPZ9\nSHDs2QupZHVa6LrZFYAZaAd8ViR2KJVFl3Ssb4voGnmexkVQfKJnOZRbMxDJylUD\n1xYwnQRRRH89MMAA8m2gMnHzE/wMbIOiDBO9hbZZVYVmcV7G1YPPp250Tsn+O5c8\nWrIG7Wcq4+gWzzXNJiJdqZinD8FrpHEnmxypRzrvuTnZ71zDhRKFiXBRdBL05fMk\nKsyImSwGQMwzRNnVGlpYRVROuJSS2UEPi/VK6k73srNKteD5TN1tJoZyRKCiyOx6\nnohglwzuj69aCsONf+FezF1jpjtTqvqRAJ4PQgMIVW5UMYXLXYt5Ukk4WQi1OI1x\nrj65v1vnpyYRpdULOe7yyizZNxMmlrzom6TaJyBQjg9lyLwQzbIdBPOmC7KViV/h\nwhYVo14m1aCmL/dM8Cn2USdL0cKyxwhBrdgFX+Amm2JD1Umu1IBPxzAIT8++s8JY\nlre707vkZENvGErINnokQp9uZlQHm03NgiPAIHcp7PURyVvnDeT7B9bZ4WQXrIXR\njhiYau/pZ976IRpKw1E8jVdI/Q+JvWzX4vS+jbwikd9pqQ/q7EoG5OMhYf2xkI7m\nmQj4WxHDsvNm37bilj3zAZECAwEAAQ==\n-----END PUBLIC KEY-----\n','-----BEGIN PRIVATE KEY-----\n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\n2BhqpyDqneDnzk0bxsH7Igoz2hCH+fMv\n-----END PRIVATE KEY-----\n','-----BEGIN PUBLIC KEY-----\nMFwwDQYJKoZIhvcNAQEBBQADSwAwSAJBAKlFbwaAOe6kwcpj8W+IsEKN1iFGOcno\nbzRNnlH0/WaH5e62Kx3Y4lfl2SLoKNVd4eNTR/y0pmIPIlISSZ46sBsCAwEAAQ==\n-----END PUBLIC KEY-----\n','-----BEGIN PRIVATE KEY-----\nMIIBVAIBADANBgkqhkiG9w0BAQEFAASCAT4wggE6AgEAAkEAqUVvBoA57qTBymPx\nb4iwQo3WIUY5yehvNE2eUfT9Zofl7rYrHdjiV+XZIugo1V3h41NH/LSmYg8iUhJJ\nnjqwGwIDAQABAkAl8HMXEOxrKbBpzYbSyd8/u4yv/o57S8aJAZCnq/KT5Spolsoj\n5FUtU9BHEmDdiyaFizpRbd7BQo2oZRPGoDEhAiEA2Fjcj5mCi0s5Fd6K+kEeRz0i\neuqHQF1DXUr1EENJAqsCIQDIS74g1E5fzeY60z6qpoNCLCoBrLnCrmHuR+GZkCKI\nUQIgF1NtZGYutwoDO6Jk5ZqDwzaKMyp6LqxfiP198qTuiEUCID2lqlgaYCD2k3Tp\njbEiXOXiB+/KBMaZu4SGVTZZeXdxAiEAo0RKX6prYeQ+rXTpuxMczrHkZuD+DTSB\nRRHgZxABlf4=\n-----END PRIVATE KEY-----\n',1,0,0,0,0,0,10,703,0,0,'',10,0,0,0,'0000-00-00 00:00:00','0000-00-00 00:00:00','',1,'','','','',''),(2,'ea011657ce99b36d','friendica1','dbfada587308ebdfd1da52a5acd46c889d8467ea5051e16fe3dd034d153f897d4878f4b99f43282c2b7425c5136482833a79070ed1846fe40804aecd77738435','friendica1','friendica1@friendica.dev','','UTC','en','2015-02-02 12:02:11','2015-02-02 18:48:19','',0,'','-----BEGIN PUBLIC KEY-----\nMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEA8/tIxRBs81u0V6ug4VXh\nG8omo+8YIckQqL5m7jWJqQ3v0fCrjyO8EcrjXhKC6esafSOlVhgxzFOkqNH8rRGF\ntF00suNJXy/0fh6EFFvifX1hQw1ZCXXlHxmmM4yNkGOzbRXPeVuSxyn1OtQNGRnB\nSGeqdCZc4QMtgPbVPwTTWYB4rSbVGYbEa5vpqY0OFnlIwC+BtQrd0xFEO7+FGfmv\n2jRt7ImRiyFazef0NhZL890IFeB5+rF8fifC3o7OP0kzB75+z5LkBfnsveZCriaj\nwHjUmMOa/hTOVHw4qYIq6XY4Q2OgaGTs2xqBz4/gniKjNSBbRyYy45prFOuJTLmO\ns07078nfg3NbWq5JkszwPen+gcvc4Pv38z2DBc2RxjgU0YbY4ZV053GIzd8hutA4\nm+eD1Cl0NZcEd9OYi3dtXWACPsf2C0/FsouAj1juXWxeRZ9exHphs0tCXt/RPgyK\nOqFPaPRCBL6MUvM0N1yR2TVk3s3Uq0k/4AExcplJGuZt8bMDIGR6g3RF+bXn3eLb\n9SnpnLSIMpHS/N/JVQzMs4W8tkdwi2OiIeNWhYrFH/stfU7KPYXdwVfduDTAv9LA\nY5Yk8oMomfL5b097eKDdzXFJ3rKUXktobl74REtgAfXEA3OgqCXUGPLbS45I8gsZ\nxBFRmmPH3SuOCQSRkY0gb/UCAwEAAQ==\n-----END PUBLIC KEY-----\n','-----BEGIN PRIVATE KEY-----\n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\nvmU1V1rzKCbc8QX/G36jwrNistIgKWf8\n-----END PRIVATE KEY-----\n','-----BEGIN PUBLIC KEY-----\nMFwwDQYJKoZIhvcNAQEBBQADSwAwSAJBALg2gbuc+ZJFLmGwm4gzIJ5Lu6yci9rm\nRr6KGQS5FZ5ELZzqABX/hAi1psB3UvzywfVgus/3Al65CTCI+CdH5nMCAwEAAQ==\n-----END PUBLIC KEY-----\n','-----BEGIN PRIVATE KEY-----\nMIIBVgIBADANBgkqhkiG9w0BAQEFAASCAUAwggE8AgEAAkEAuDaBu5z5kkUuYbCb\niDMgnku7rJyL2uZGvooZBLkVnkQtnOoAFf+ECLWmwHdS/PLB9WC6z/cCXrkJMIj4\nJ0fmcwIDAQABAkEAiiS+F275rdpZlQL3MCV/UZZjsGdZbhgAd4Vii6ss7hjXCA2l\n/74l9K0YiP3R2gg3pepvONN0ohXbzxflkIKs2QIhANyzg9YTIUKolr0xoOjVkjrf\nAPhdbQWgkHz/GVB2XFAPAiEA1az/r0XRIsTkImmI+FicYmfocH1kCHm+HDqVnngj\nH10CIQClg2dCm5QdBowNlPOEye5hgi6bFI2XY8QYScO1SR6P1wIgOPmnN9IzAMVl\nW3OujSH7mRXB2fTlbokf0yEf8iBwpRUCIQC94ofddRjyue2GlUcnNjLjJ9aNVkz7\njdZ8ohUKgtkFJw==\n-----END PRIVATE KEY-----\n',1,0,0,0,0,0,10,703,0,0,'',10,0,0,0,'0000-00-00 00:00:00','0000-00-00 00:00:00','',2,'','','','',''),(3,'9e44e9d0b279a4a3','friendica2','2d8912fdf66ea84e9904308bc9fe9e1e6e822af2028749ef2f63e25189f30880fb0378912d08ddbfd100a900d3df2d1a40ca1f1f3a0fcf3571de7a8e9dba6beb','friendica2','friendica2@friendica.dev','','UTC','en','2015-02-02 12:02:40','2015-02-02 18:59:46','',0,'','-----BEGIN PUBLIC KEY-----\nMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEA4QpA4flE9v17fh+yrMpR\nU4iKSxLOF/8ROTotrdQsk8HcHkPS7E60QUaRK45gDc9O+7FU1+90V+oo0BqdkJFL\nbFtTogP5fdNSD3ApHz7s03oBX9JenU/8JhxaH1VwEs3lLDlFrywngiYcEDZIeLGZ\nIFK1GWP79+ZwJ9WWoBhzCD4hg4excOWPwwQMjCLYAzI5INEPTw+R3CKD6EsnVLu0\nS+u3zBBsL/A+bgDDfgZoD6igJQlvenK5jStgfbiuVp1mqdXKJ8D+rYz5FQ72Yn3r\nn6AvrXcPQMbLSaUK5m1Ug7beasuhRJ5Z7TVtJ/RLNgA3mOX2A2Vy1i38VYmcTaG5\nom8AYeI/nSvMzJt7FYXOBdxKnSW0UhkXsjBQavefz7sp2Lhcw5U+7eaPi2fIkYio\nVHKU2r8uiJPFfUMAbHA2+rScBjn2lYZH0nfMKrZTzva7y6d19EOsO2aP5e4XNjU8\n0tX/C1iy6LPMCf7xG844iROXi7NPJJoTgx/Sl6+o0oqBl9J5wJDK5U33rUSqYI/p\nsPEfaStqA5CgBAvAsq0N+NQQndJzGfuYaIdfleyUSLIchHhEICE4SN62RHZ6VTlg\nIVCva4xdBrGlkGV/IgE228FwgX4GWELclfUH/KwcGHChlY8dTtVZHbTCuizvPLvl\nXuZQ9ROdQiwkYwGJA/bhM3kCAwEAAQ==\n-----END PUBLIC KEY-----\n','-----BEGIN PRIVATE KEY-----\n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\n3XJwnl4GIBdvQSoa/8wxMTsWdV8Jslk=\n-----END PRIVATE KEY-----\n','-----BEGIN PUBLIC KEY-----\nMFwwDQYJKoZIhvcNAQEBBQADSwAwSAJBAMr1t2Z+nHjBXTuRT8qj8aGt2mkqAT5W\nI/Nl9my/Vo+z3AqfysE9KKXBKtUy/8tRDe1rru1rlGX7aNu8OaXUzzMCAwEAAQ==\n-----END PUBLIC KEY-----\n','-----BEGIN PRIVATE KEY-----\nMIIBVAIBADANBgkqhkiG9w0BAQEFAASCAT4wggE6AgEAAkEAyvW3Zn6ceMFdO5FP\nyqPxoa3aaSoBPlYj82X2bL9Wj7PcCp/KwT0opcEq1TL/y1EN7Wuu7WuUZfto27w5\npdTPMwIDAQABAkBbbD211JiFKIzntTgdDqZcbuSwdHRk8QZ2sFpFeBb02YEzDD4C\n70N82B4ewogtvat+PYh7Wf8suQ9PoQMJasihAiEA8ao57LgZKM7xX1YrQrwMOreb\nn03bLsO14CwUJZzAaVECIQDW/70AQMj+cSfbdkiNUa3CqBJyLeGhOpbxxg2RMRWP\nQwIgW2AN/t+tQ6zbvzyJpvYLebgq85UwpwIBJv4DsCUQ68ECIApY0G28sG+eXn6v\nWJqEfcpKcGjSUHOD8FO+ZlTAefslAiEAi6bjWnnaFDqwO2amwtlUeylNM6Qxp7lG\nSo91wUVaDd4=\n-----END PRIVATE KEY-----\n',1,0,0,0,0,0,10,703,0,0,'',10,0,0,0,'0000-00-00 00:00:00','0000-00-00 00:00:00','',3,'','','','',''),(4,'8f624e0d807c4b3a','friendica3','a4fe179880e01243799458e9090e87bc40746eac1c7f9c2373678d7cb3b15a547fdef510a3670988f567ceaef2aa5a52e98aaac0bf677d0ddff56cbe845814f2','friendica3','friendica3@friendica.dev','','UTC','en','2015-02-02 12:03:07','2015-02-02 18:57:06','',0,'','-----BEGIN PUBLIC KEY-----\nMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAliSi9id9Ll1dpzXC/lL6\n2/5FYxdn0XYb5I2JeXBNopwbXOLDsnnzXlV2NN8riZaYRQcIbS00OuAvyYj/IG3i\nDykD2zPjVnLEWADtj1YhLSgKcfQgv6Cj/7CPdb1Rg3icbvWdVY9wabcblVa9k+qr\ngK273C47lCQzXgvMtPst1DOzxtVCGmPJJHKjXZ8hDvf/IS0pVGa0zIv9kdofqQV9\nD5u5LuNzRuEGnrpAzpfzMueDppBrrrr37sKrZfCvyYHZ/ouFgZ3bY9NNVnjuFItP\nrcDlJPL8NhGmmzuYtI03MLor+1yVdBKLIJ3G2Bxzn5tynjSX9XZzOQgC3+YVH4TU\n7WDUHjTWJ9mliD2M1WXCp2Lwc/pV1Prnvv057pAqdiMhnddzucV9nLk9X9fR8xyy\nC7PRwx0hkB427EtAYaOTr3RtInP6+cm+3M7wd6ZKTqWAU+Pi20RNrQRsqfHJ7+hx\n+i5rIG6/knB/C+MAAutEH25oY8kJYtJzXid2OBSE462DTuYaee9aGHUDNy+HQau8\nBhJ4/Wsc7Nf/7GRZ38SVT/HQShl47B1AG5AyomyWgwn9J2KJ8kMuScPmBv5u7Mwq\nSjLk5pLkwyUtZwUu8UtsFKw9HLcRksGSze5s2cbw3rf/6jgKycT72Bfm1fjRnv6s\nXt1GdSzfG9zVHuEwRDgTX3UCAwEAAQ==\n-----END PUBLIC KEY-----\n','-----BEGIN PRIVATE KEY-----\n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\nFeFvwaeMJIKLN32PSSd6TCZHTZk16hM=\n-----END PRIVATE KEY-----\n','-----BEGIN PUBLIC KEY-----\nMFwwDQYJKoZIhvcNAQEBBQADSwAwSAJBANGB/ZPJ5PxQqJbvJ9DQ8Jrn6fI4KaOJ\neODR0GlUPR8M0Phu7IT+LM6Wlu+E0BxRLLvnH8NTdVDX5/wS4FhDYhsCAwEAAQ==\n-----END PUBLIC KEY-----\n','-----BEGIN PRIVATE KEY-----\nMIIBVAIBADANBgkqhkiG9w0BAQEFAASCAT4wggE6AgEAAkEA0YH9k8nk/FColu8n\n0NDwmufp8jgpo4l44NHQaVQ9HwzQ+G7shP4szpaW74TQHFEsu+cfw1N1UNfn/BLg\nWENiGwIDAQABAkBrZJDRgvpoBAiHZgwo1BGhtiOL0BI4DC30QFjuxQmXshIf+RpN\nzDTdQBMNYMUavTtlXthCBAzHYV7equiFEPDxAiEA+H4kcGLEvUMYy1u7aZRuX6Hk\n4Cqa6TvGgis0bw5d5g8CIQDX1lYM8fAEAoPX8Rekp/cdvHV04xvlYfEGOaa2iwov\nNQIgZrsPqX7Lw0r39yqnYlDBCLxPePVkMcRKnwnplXglDbUCICzAD89XSkBKlTNs\nlU5aVO4haOj3PY1tpR95TIuEgHQRAiEAyfKMJJImU9/HKDONz60iLndP98DOf/UP\naA7kFdSlfhc=\n-----END PRIVATE KEY-----\n',1,0,0,0,0,0,10,703,0,0,'',10,0,0,0,'0000-00-00 00:00:00','0000-00-00 00:00:00','',4,'','','','',''),(5,'c23f1ab5f7ca5c73','friendica5','c4020916e31735b16a8e851be06c5a94e7c95d544ad69c05a92b9ebf2992216a2dcb65d4c731405af0e4c098edaf53f49444f01842db3bed2c561ce982639600','friendica5','friendica5@friendica.dev','','UTC','en','2015-02-02 12:04:05','2015-02-02 18:43:16','',0,'','-----BEGIN PUBLIC KEY-----\nMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAyvuTsaZaTgPDm69uxixR\n8qd0ylkeA/IY3KDsI4vjrLuF7WLmU07lzQXmilQJ+MlipIju+wFXx3a8ksavEYpP\n9ZU9YrpXe7zneHRLTxgMDH9IMbSCIUAkEsozpzF02Ft0+G36tzIET2oTuU6uLtx6\nI5ifmF/qFC+4avAoABQg8qfOPpuaP3AJ6FppqEifUsb0lTWqP4zg7PQXC36oKIJ0\nUDuQniVy8lTxVfkhoi/aHZw0khVXe6tDK7C0ALg5U7jLTDNdJ1R0v5iC41QK4CEt\n5x4x008mdk6xLKGZiou1UuEPv/+WSQU1Q21JFzNVGBASkRu7dUVH6k+59VQr3ONI\n5bdbAZviVY3ezFNtBeWWfDk06BWoZwX67eGG/dVsCPnEkuP9CpemcwwGZbYCIqf0\n++5h0CU41CjNShHdBD+Q+ZQmT3I4sAlPZ7x90nA9KfuKM9QyTPQ9EmK2bxq7TKvV\nzLqHptL5mC/VH4FbO1eKf7p/f7XxOaeXGANUaRSPwLSO7lk8lkl/wj7sNJYGYygC\nMLTqH8GTizpyPkSDv5xO6bYn/g3BYFuUM5x1MZVS8MdG2a3L8UzRiXUsm/AjnfSV\nImN2+8bHJI0wy9zRxfEaG8pvbupb7UU5zWr3WRkSVr84Bq1SJNxLfWZj3GHLaesr\nu3exEdYGfxLuG1zHIROVwlcCAwEAAQ==\n-----END PUBLIC KEY-----\n','-----BEGIN PRIVATE KEY-----\n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\nv2axspuwOp1lOGArmT34cpZbY+U1\n-----END PRIVATE KEY-----\n','-----BEGIN PUBLIC KEY-----\nMFwwDQYJKoZIhvcNAQEBBQADSwAwSAJBAMio2DnP8bcB7Mfx3BlXepLHE57Ydu9y\nZh0zSne7YDPZdubU7ouhaHAZMyWntP449ybQr3eUyNeuUZZDoVmq++0CAwEAAQ==\n-----END PUBLIC KEY-----\n','-----BEGIN PRIVATE KEY-----\nMIIBVQIBADANBgkqhkiG9w0BAQEFAASCAT8wggE7AgEAAkEAyKjYOc/xtwHsx/Hc\nGVd6kscTnth273JmHTNKd7tgM9l25tTui6FocBkzJae0/jj3JtCvd5TI165RlkOh\nWar77QIDAQABAkBvctglxAlMzBTnOL42lQ/PViLfpvroI3Hz5fkGZ1wXb0UW/64T\nxFC3UPC8NXWfuvTWSnZ6KbY8PGgQfy7fu/lBAiEA8F2wO7YP05ruqBeNHE/ToJfz\noChbi+e+PBUWiMnH9N8CIQDVtgId76iBZWotVvpmkewdKQf0m6Dff2RLbVICZtm8\nswIgY7VZj8t8UTkp2wy5+o6aqTmfVEapgyXE4kOVL3UUv10CIQCMtW+jYj4iJDHK\ndHAdxIofkPpp9WXwgaH5f5r1dd56vQIhANL5tpKSMdGSNThQZz8UnDSt7kIc6btK\nORPv/J3wm0N+\n-----END PRIVATE KEY-----\n',1,0,0,0,0,0,10,703,0,0,'',10,0,0,0,'0000-00-00 00:00:00','0000-00-00 00:00:00','',5,'','','','',''),(6,'ac116e1d642da69c','friendica4','537485cc08fae106246d8990a7f6d615900611eea6356c8efa75fc6cd6b4221fec27c0a753bac3366eca50426a12fa186277036eaf5ab3fc8a533089cb43f954','friendica4','friendica4@friendica.dev','','UTC','en','2015-02-02 12:04:29','2015-02-02 18:52:53','',0,'','-----BEGIN PUBLIC KEY-----\nMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEA3nCYawg+HTyQgV7a7Osg\nCXeACOitKLhcb2WDTN/lLOMO7n1lSm3Kdv1dbOc0/lkAPeB2XsLF/aDfoUPWWg4Q\n/oRPrXFIi2dK/cIQVvgOhebQheztAYPJyaYYMWVK7bLbPuKVTyzALqkWD8Zjjtit\n4Uvm3kjmcofKr+/Lw+VFaEBMESQDbP5eTDtQeDGGjluWQMj1/D+V/Tcm+SMrAVIv\njyklQEhBJlYGJ+LsfXv4XXbeH73dkIXkQW5JgWQyPCloJ+PxmmjjEDozsdgmFQXq\n6T9HFVHvW2O2lmDoaTrbIGrULWBpslKZJJrV+LgtkzhP4uuKfJPD2DpMJ4+ixtBE\nzM/o+EuYDTz0P3dTvwruq1t8gUYcQOVUzEp1LM0qYDMVY86XneW1W5xghztl5zqy\nGBMBvjVIFvMVL1cVeXze4zpwwKln2cArepToSpN7lmy9EgBd9mZrVLWosZShB9R0\n05kBc2Tfv7FlixwZ1P8rwJn9sEEs9oa6TnRLL+7L8eqapg6vUI1G7e0HWWEjdHsR\nrYVHYW+ogtOYjrQ1Tfh1W2PtNaez5fGYVBDjC+1vy0scJmqrgy00z7MHBT2WTOAL\noHbdedhpa3UZ0FrsCto+vqil8BcF5aBhi2Hi5YdKtbY3EBsaabcSO2joc7rlmee4\nxdKfDRYXCPysFPhZNgIW708CAwEAAQ==\n-----END PUBLIC KEY-----\n','-----BEGIN PRIVATE KEY-----\n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\nigTbSRJm04IWeuH+480HXjZRuHMclA4=\n-----END PRIVATE KEY-----\n','-----BEGIN PUBLIC KEY-----\nMFwwDQYJKoZIhvcNAQEBBQADSwAwSAJBALwNfVA38nGCbi/oAewWsIAfRzrAC9np\nPTYGiYfhOxgI3uXkdwMvcrvW98XGugYAHMAJbuHP2aPOnKiZCNKRLeMCAwEAAQ==\n-----END PUBLIC KEY-----\n','-----BEGIN PRIVATE KEY-----\nMIIBVQIBADANBgkqhkiG9w0BAQEFAASCAT8wggE7AgEAAkEAvA19UDfycYJuL+gB\n7BawgB9HOsAL2ek9NgaJh+E7GAje5eR3Ay9yu9b3xca6BgAcwAlu4c/Zo86cqJkI\n0pEt4wIDAQABAkBUfKsEU151aOggVdgnPbpmlabm2kl4ybVahG1dwu9NyEjttz0/\nEFyN2IQzorUefkhow1jpNC8LGJ8t1dyrXZLhAiEA6eYzvYBXdPUoia4yF8ChRRFp\nSFYgmPIj5FR3MEfKHpUCIQDN0k3BfXBtFLawe1VDEs8CvtWOCjJux+15Si07Mj+U\nlwIhAOgQlV88Ogl5v8myglLctWUwnDO/+EGnZQMC5uqJH7ltAiBJ2/QnQTp9Cnfc\nsQWRwkgjNhQwmpwqgPhJFENTAN8sFQIhAIO04kWVXMXGVCGRVlvPOlHzrIBp3d+N\no/Wp+OK69U1n\n-----END PRIVATE KEY-----\n',1,0,0,0,0,0,10,703,0,0,'',10,0,0,0,'0000-00-00 00:00:00','0000-00-00 00:00:00','',6,'','','','',''); +INSERT INTO `user` VALUES (1,'a76680835da79303','admin','6a4e012bd9583858a5a6fa15f58bd86a25af266d3a4344f1ec2018b778f29ba83be86eb45e6dc204e11276f4a99eff4e2144fbe15e756c2c88e999649aae7d94','admin','vagrant@friendica.dev','','UTC','en','2015-02-02 11:24:17','2015-02-02 11:26:23','',0,'','-----BEGIN PUBLIC KEY-----\nMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAoPnn8yXCAdkLCgHLlA7I\nMZZH4XnzS93NgpoaFWpGgdX9hbHjmHpbY+0rD1Q0FsOC9W+R3qsDypkstJ4CqPZ9\nSHDs2QupZHVa6LrZFYAZaAd8ViR2KJVFl3Ssb4voGnmexkVQfKJnOZRbMxDJylUD\n1xYwnQRRRH89MMAA8m2gMnHzE/wMbIOiDBO9hbZZVYVmcV7G1YPPp250Tsn+O5c8\nWrIG7Wcq4+gWzzXNJiJdqZinD8FrpHEnmxypRzrvuTnZ71zDhRKFiXBRdBL05fMk\nKsyImSwGQMwzRNnVGlpYRVROuJSS2UEPi/VK6k73srNKteD5TN1tJoZyRKCiyOx6\nnohglwzuj69aCsONf+FezF1jpjtTqvqRAJ4PQgMIVW5UMYXLXYt5Ukk4WQi1OI1x\nrj65v1vnpyYRpdULOe7yyizZNxMmlrzom6TaJyBQjg9lyLwQzbIdBPOmC7KViV/h\nwhYVo14m1aCmL/dM8Cn2USdL0cKyxwhBrdgFX+Amm2JD1Umu1IBPxzAIT8++s8JY\nlre707vkZENvGErINnokQp9uZlQHm03NgiPAIHcp7PURyVvnDeT7B9bZ4WQXrIXR\njhiYau/pZ976IRpKw1E8jVdI/Q+JvWzX4vS+jbwikd9pqQ/q7EoG5OMhYf2xkI7m\nmQj4WxHDsvNm37bilj3zAZECAwEAAQ==\n-----END PUBLIC KEY-----\n','-----BEGIN PRIVATE KEY-----\n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\n2BhqpyDqneDnzk0bxsH7Igoz2hCH+fMv\n-----END PRIVATE KEY-----\n','-----BEGIN PUBLIC KEY-----\nMFwwDQYJKoZIhvcNAQEBBQADSwAwSAJBAKlFbwaAOe6kwcpj8W+IsEKN1iFGOcno\nbzRNnlH0/WaH5e62Kx3Y4lfl2SLoKNVd4eNTR/y0pmIPIlISSZ46sBsCAwEAAQ==\n-----END PUBLIC KEY-----\n','-----BEGIN PRIVATE KEY-----\nMIIBVAIBADANBgkqhkiG9w0BAQEFAASCAT4wggE6AgEAAkEAqUVvBoA57qTBymPx\nb4iwQo3WIUY5yehvNE2eUfT9Zofl7rYrHdjiV+XZIugo1V3h41NH/LSmYg8iUhJJ\nnjqwGwIDAQABAkAl8HMXEOxrKbBpzYbSyd8/u4yv/o57S8aJAZCnq/KT5Spolsoj\n5FUtU9BHEmDdiyaFizpRbd7BQo2oZRPGoDEhAiEA2Fjcj5mCi0s5Fd6K+kEeRz0i\neuqHQF1DXUr1EENJAqsCIQDIS74g1E5fzeY60z6qpoNCLCoBrLnCrmHuR+GZkCKI\nUQIgF1NtZGYutwoDO6Jk5ZqDwzaKMyp6LqxfiP198qTuiEUCID2lqlgaYCD2k3Tp\njbEiXOXiB+/KBMaZu4SGVTZZeXdxAiEAo0RKX6prYeQ+rXTpuxMczrHkZuD+DTSB\nRRHgZxABlf4=\n-----END PRIVATE KEY-----\n',1,0,0,0,0,0,10,703,0,0,'',10,0,0,0,'0001-01-01 00:00:00','0001-01-01 00:00:00','',1,'','','','',''),(2,'ea011657ce99b36d','friendica1','dbfada587308ebdfd1da52a5acd46c889d8467ea5051e16fe3dd034d153f897d4878f4b99f43282c2b7425c5136482833a79070ed1846fe40804aecd77738435','friendica1','friendica1@friendica.dev','','UTC','en','2015-02-02 12:02:11','2015-02-02 18:48:19','',0,'','-----BEGIN PUBLIC KEY-----\nMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEA8/tIxRBs81u0V6ug4VXh\nG8omo+8YIckQqL5m7jWJqQ3v0fCrjyO8EcrjXhKC6esafSOlVhgxzFOkqNH8rRGF\ntF00suNJXy/0fh6EFFvifX1hQw1ZCXXlHxmmM4yNkGOzbRXPeVuSxyn1OtQNGRnB\nSGeqdCZc4QMtgPbVPwTTWYB4rSbVGYbEa5vpqY0OFnlIwC+BtQrd0xFEO7+FGfmv\n2jRt7ImRiyFazef0NhZL890IFeB5+rF8fifC3o7OP0kzB75+z5LkBfnsveZCriaj\nwHjUmMOa/hTOVHw4qYIq6XY4Q2OgaGTs2xqBz4/gniKjNSBbRyYy45prFOuJTLmO\ns07078nfg3NbWq5JkszwPen+gcvc4Pv38z2DBc2RxjgU0YbY4ZV053GIzd8hutA4\nm+eD1Cl0NZcEd9OYi3dtXWACPsf2C0/FsouAj1juXWxeRZ9exHphs0tCXt/RPgyK\nOqFPaPRCBL6MUvM0N1yR2TVk3s3Uq0k/4AExcplJGuZt8bMDIGR6g3RF+bXn3eLb\n9SnpnLSIMpHS/N/JVQzMs4W8tkdwi2OiIeNWhYrFH/stfU7KPYXdwVfduDTAv9LA\nY5Yk8oMomfL5b097eKDdzXFJ3rKUXktobl74REtgAfXEA3OgqCXUGPLbS45I8gsZ\nxBFRmmPH3SuOCQSRkY0gb/UCAwEAAQ==\n-----END PUBLIC KEY-----\n','-----BEGIN PRIVATE KEY-----\n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\nvmU1V1rzKCbc8QX/G36jwrNistIgKWf8\n-----END PRIVATE KEY-----\n','-----BEGIN PUBLIC KEY-----\nMFwwDQYJKoZIhvcNAQEBBQADSwAwSAJBALg2gbuc+ZJFLmGwm4gzIJ5Lu6yci9rm\nRr6KGQS5FZ5ELZzqABX/hAi1psB3UvzywfVgus/3Al65CTCI+CdH5nMCAwEAAQ==\n-----END PUBLIC KEY-----\n','-----BEGIN PRIVATE KEY-----\nMIIBVgIBADANBgkqhkiG9w0BAQEFAASCAUAwggE8AgEAAkEAuDaBu5z5kkUuYbCb\niDMgnku7rJyL2uZGvooZBLkVnkQtnOoAFf+ECLWmwHdS/PLB9WC6z/cCXrkJMIj4\nJ0fmcwIDAQABAkEAiiS+F275rdpZlQL3MCV/UZZjsGdZbhgAd4Vii6ss7hjXCA2l\n/74l9K0YiP3R2gg3pepvONN0ohXbzxflkIKs2QIhANyzg9YTIUKolr0xoOjVkjrf\nAPhdbQWgkHz/GVB2XFAPAiEA1az/r0XRIsTkImmI+FicYmfocH1kCHm+HDqVnngj\nH10CIQClg2dCm5QdBowNlPOEye5hgi6bFI2XY8QYScO1SR6P1wIgOPmnN9IzAMVl\nW3OujSH7mRXB2fTlbokf0yEf8iBwpRUCIQC94ofddRjyue2GlUcnNjLjJ9aNVkz7\njdZ8ohUKgtkFJw==\n-----END PRIVATE KEY-----\n',1,0,0,0,0,0,10,703,0,0,'',10,0,0,0,'0001-01-01 00:00:00','0001-01-01 00:00:00','',2,'','','','',''),(3,'9e44e9d0b279a4a3','friendica2','2d8912fdf66ea84e9904308bc9fe9e1e6e822af2028749ef2f63e25189f30880fb0378912d08ddbfd100a900d3df2d1a40ca1f1f3a0fcf3571de7a8e9dba6beb','friendica2','friendica2@friendica.dev','','UTC','en','2015-02-02 12:02:40','2015-02-02 18:59:46','',0,'','-----BEGIN PUBLIC KEY-----\nMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEA4QpA4flE9v17fh+yrMpR\nU4iKSxLOF/8ROTotrdQsk8HcHkPS7E60QUaRK45gDc9O+7FU1+90V+oo0BqdkJFL\nbFtTogP5fdNSD3ApHz7s03oBX9JenU/8JhxaH1VwEs3lLDlFrywngiYcEDZIeLGZ\nIFK1GWP79+ZwJ9WWoBhzCD4hg4excOWPwwQMjCLYAzI5INEPTw+R3CKD6EsnVLu0\nS+u3zBBsL/A+bgDDfgZoD6igJQlvenK5jStgfbiuVp1mqdXKJ8D+rYz5FQ72Yn3r\nn6AvrXcPQMbLSaUK5m1Ug7beasuhRJ5Z7TVtJ/RLNgA3mOX2A2Vy1i38VYmcTaG5\nom8AYeI/nSvMzJt7FYXOBdxKnSW0UhkXsjBQavefz7sp2Lhcw5U+7eaPi2fIkYio\nVHKU2r8uiJPFfUMAbHA2+rScBjn2lYZH0nfMKrZTzva7y6d19EOsO2aP5e4XNjU8\n0tX/C1iy6LPMCf7xG844iROXi7NPJJoTgx/Sl6+o0oqBl9J5wJDK5U33rUSqYI/p\nsPEfaStqA5CgBAvAsq0N+NQQndJzGfuYaIdfleyUSLIchHhEICE4SN62RHZ6VTlg\nIVCva4xdBrGlkGV/IgE228FwgX4GWELclfUH/KwcGHChlY8dTtVZHbTCuizvPLvl\nXuZQ9ROdQiwkYwGJA/bhM3kCAwEAAQ==\n-----END PUBLIC KEY-----\n','-----BEGIN PRIVATE KEY-----\n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\n3XJwnl4GIBdvQSoa/8wxMTsWdV8Jslk=\n-----END PRIVATE KEY-----\n','-----BEGIN PUBLIC KEY-----\nMFwwDQYJKoZIhvcNAQEBBQADSwAwSAJBAMr1t2Z+nHjBXTuRT8qj8aGt2mkqAT5W\nI/Nl9my/Vo+z3AqfysE9KKXBKtUy/8tRDe1rru1rlGX7aNu8OaXUzzMCAwEAAQ==\n-----END PUBLIC KEY-----\n','-----BEGIN PRIVATE KEY-----\nMIIBVAIBADANBgkqhkiG9w0BAQEFAASCAT4wggE6AgEAAkEAyvW3Zn6ceMFdO5FP\nyqPxoa3aaSoBPlYj82X2bL9Wj7PcCp/KwT0opcEq1TL/y1EN7Wuu7WuUZfto27w5\npdTPMwIDAQABAkBbbD211JiFKIzntTgdDqZcbuSwdHRk8QZ2sFpFeBb02YEzDD4C\n70N82B4ewogtvat+PYh7Wf8suQ9PoQMJasihAiEA8ao57LgZKM7xX1YrQrwMOreb\nn03bLsO14CwUJZzAaVECIQDW/70AQMj+cSfbdkiNUa3CqBJyLeGhOpbxxg2RMRWP\nQwIgW2AN/t+tQ6zbvzyJpvYLebgq85UwpwIBJv4DsCUQ68ECIApY0G28sG+eXn6v\nWJqEfcpKcGjSUHOD8FO+ZlTAefslAiEAi6bjWnnaFDqwO2amwtlUeylNM6Qxp7lG\nSo91wUVaDd4=\n-----END PRIVATE KEY-----\n',1,0,0,0,0,0,10,703,0,0,'',10,0,0,0,'0001-01-01 00:00:00','0001-01-01 00:00:00','',3,'','','','',''),(4,'8f624e0d807c4b3a','friendica3','a4fe179880e01243799458e9090e87bc40746eac1c7f9c2373678d7cb3b15a547fdef510a3670988f567ceaef2aa5a52e98aaac0bf677d0ddff56cbe845814f2','friendica3','friendica3@friendica.dev','','UTC','en','2015-02-02 12:03:07','2015-02-02 18:57:06','',0,'','-----BEGIN PUBLIC KEY-----\nMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAliSi9id9Ll1dpzXC/lL6\n2/5FYxdn0XYb5I2JeXBNopwbXOLDsnnzXlV2NN8riZaYRQcIbS00OuAvyYj/IG3i\nDykD2zPjVnLEWADtj1YhLSgKcfQgv6Cj/7CPdb1Rg3icbvWdVY9wabcblVa9k+qr\ngK273C47lCQzXgvMtPst1DOzxtVCGmPJJHKjXZ8hDvf/IS0pVGa0zIv9kdofqQV9\nD5u5LuNzRuEGnrpAzpfzMueDppBrrrr37sKrZfCvyYHZ/ouFgZ3bY9NNVnjuFItP\nrcDlJPL8NhGmmzuYtI03MLor+1yVdBKLIJ3G2Bxzn5tynjSX9XZzOQgC3+YVH4TU\n7WDUHjTWJ9mliD2M1WXCp2Lwc/pV1Prnvv057pAqdiMhnddzucV9nLk9X9fR8xyy\nC7PRwx0hkB427EtAYaOTr3RtInP6+cm+3M7wd6ZKTqWAU+Pi20RNrQRsqfHJ7+hx\n+i5rIG6/knB/C+MAAutEH25oY8kJYtJzXid2OBSE462DTuYaee9aGHUDNy+HQau8\nBhJ4/Wsc7Nf/7GRZ38SVT/HQShl47B1AG5AyomyWgwn9J2KJ8kMuScPmBv5u7Mwq\nSjLk5pLkwyUtZwUu8UtsFKw9HLcRksGSze5s2cbw3rf/6jgKycT72Bfm1fjRnv6s\nXt1GdSzfG9zVHuEwRDgTX3UCAwEAAQ==\n-----END PUBLIC KEY-----\n','-----BEGIN PRIVATE KEY-----\n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\nFeFvwaeMJIKLN32PSSd6TCZHTZk16hM=\n-----END PRIVATE KEY-----\n','-----BEGIN PUBLIC KEY-----\nMFwwDQYJKoZIhvcNAQEBBQADSwAwSAJBANGB/ZPJ5PxQqJbvJ9DQ8Jrn6fI4KaOJ\neODR0GlUPR8M0Phu7IT+LM6Wlu+E0BxRLLvnH8NTdVDX5/wS4FhDYhsCAwEAAQ==\n-----END PUBLIC KEY-----\n','-----BEGIN PRIVATE KEY-----\nMIIBVAIBADANBgkqhkiG9w0BAQEFAASCAT4wggE6AgEAAkEA0YH9k8nk/FColu8n\n0NDwmufp8jgpo4l44NHQaVQ9HwzQ+G7shP4szpaW74TQHFEsu+cfw1N1UNfn/BLg\nWENiGwIDAQABAkBrZJDRgvpoBAiHZgwo1BGhtiOL0BI4DC30QFjuxQmXshIf+RpN\nzDTdQBMNYMUavTtlXthCBAzHYV7equiFEPDxAiEA+H4kcGLEvUMYy1u7aZRuX6Hk\n4Cqa6TvGgis0bw5d5g8CIQDX1lYM8fAEAoPX8Rekp/cdvHV04xvlYfEGOaa2iwov\nNQIgZrsPqX7Lw0r39yqnYlDBCLxPePVkMcRKnwnplXglDbUCICzAD89XSkBKlTNs\nlU5aVO4haOj3PY1tpR95TIuEgHQRAiEAyfKMJJImU9/HKDONz60iLndP98DOf/UP\naA7kFdSlfhc=\n-----END PRIVATE KEY-----\n',1,0,0,0,0,0,10,703,0,0,'',10,0,0,0,'0001-01-01 00:00:00','0001-01-01 00:00:00','',4,'','','','',''),(5,'c23f1ab5f7ca5c73','friendica5','c4020916e31735b16a8e851be06c5a94e7c95d544ad69c05a92b9ebf2992216a2dcb65d4c731405af0e4c098edaf53f49444f01842db3bed2c561ce982639600','friendica5','friendica5@friendica.dev','','UTC','en','2015-02-02 12:04:05','2015-02-02 18:43:16','',0,'','-----BEGIN PUBLIC KEY-----\nMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAyvuTsaZaTgPDm69uxixR\n8qd0ylkeA/IY3KDsI4vjrLuF7WLmU07lzQXmilQJ+MlipIju+wFXx3a8ksavEYpP\n9ZU9YrpXe7zneHRLTxgMDH9IMbSCIUAkEsozpzF02Ft0+G36tzIET2oTuU6uLtx6\nI5ifmF/qFC+4avAoABQg8qfOPpuaP3AJ6FppqEifUsb0lTWqP4zg7PQXC36oKIJ0\nUDuQniVy8lTxVfkhoi/aHZw0khVXe6tDK7C0ALg5U7jLTDNdJ1R0v5iC41QK4CEt\n5x4x008mdk6xLKGZiou1UuEPv/+WSQU1Q21JFzNVGBASkRu7dUVH6k+59VQr3ONI\n5bdbAZviVY3ezFNtBeWWfDk06BWoZwX67eGG/dVsCPnEkuP9CpemcwwGZbYCIqf0\n++5h0CU41CjNShHdBD+Q+ZQmT3I4sAlPZ7x90nA9KfuKM9QyTPQ9EmK2bxq7TKvV\nzLqHptL5mC/VH4FbO1eKf7p/f7XxOaeXGANUaRSPwLSO7lk8lkl/wj7sNJYGYygC\nMLTqH8GTizpyPkSDv5xO6bYn/g3BYFuUM5x1MZVS8MdG2a3L8UzRiXUsm/AjnfSV\nImN2+8bHJI0wy9zRxfEaG8pvbupb7UU5zWr3WRkSVr84Bq1SJNxLfWZj3GHLaesr\nu3exEdYGfxLuG1zHIROVwlcCAwEAAQ==\n-----END PUBLIC KEY-----\n','-----BEGIN PRIVATE KEY-----\nMIIJQQIBADANBgkqhkiG9w0BAQEFAASCCSswggknAgEAAoICAQDK+5OxplpOA8Ob\nr27GLFHyp3TKWR4D8hjcoOwji+Osu4XtYuZTTuXNBeaKVAn4yWKkiO77AVfHdryS\nxq8Rik/1lT1iuld7vOd4dEtPGAwMf0gxtIIhQCQSyjOnMXTYW3T4bfq3MgRPahO5\nTq4u3HojmJ+YX+oUL7hq8CgAFCDyp84+m5o/cAnoWmmoSJ9SxvSVNao/jODs9BcL\nfqgognRQO5CeJXLyVPFV+SGiL9odnDSSFVd7q0MrsLQAuDlTuMtMM10nVHS/mILj\nVArgIS3nHjHTTyZ2TrEsoZmKi7VS4Q+//5ZJBTVDbUkXM1UYEBKRG7t1RUfqT7n1\nVCvc40jlt1sBm+JVjd7MU20F5ZZ8OTToFahnBfrt4Yb91WwI+cSS4/0Kl6ZzDAZl\ntgIip/T77mHQJTjUKM1KEd0EP5D5lCZPcjiwCU9nvH3ScD0p+4oz1DJM9D0SYrZv\nGrtMq9XMuoem0vmYL9UfgVs7V4p/un9/tfE5p5cYA1RpFI/AtI7uWTyWSX/CPuw0\nlgZjKAIwtOofwZOLOnI+RIO/nE7ptif+DcFgW5QznHUxlVLwx0bZrcvxTNGJdSyb\n8COd9JUiY3b7xsckjTDL3NHF8Robym9u6lvtRTnNavdZGRJWvzgGrVIk3Et9ZmPc\nYctp6yu7d7ER1gZ/Eu4bXMchE5XCVwIDAQABAoICACAJpT4c65P0tCMWhX1x8V1D\nYQOvHTWyOIpaO+tAYScaUgEt4vyzL0I09DZRHWHPJ2qg0ld71sb8zra79VXnZsd0\nTsQOdVBqeH5inKBXQ0+Vp2dw/jkRTqBIme6Bt9eOV9/+O9w+YL/IFmThLkznL7/+\njvIV8XROM+VtEmMwyiKCqeLn3Gi23ll2K8cL71m5XVFPrxdovPepbxm5XAFI1eL0\nA9dyQbpN/el78PsQYnTZ+tIz3CMA3RFASqjyatn0COJ2GPXkNqknAUGwOic2FXCt\nK2AW1hNGSGCrAPkFJBF4xGuhg67yy31g+nBXAc9Sehu9LNFNphQtkURPjLzIgvC3\nEiElZvGUta8nv+Vjiq13iDBf+tIWF9Wz3PIlSs4njKoEBHgOmG12zNsg1CYp8jYi\nhNIzYzwlGmbub8gA3lP1yjuD6SFoWYYJstdnPZbL+1Cn7YQF23fhZUX5TOC0SGqA\nkoYxNYekghf13AkyyL68OEoEnTrIDZbHAH3H8lQZTtqp6bPgx4u6Yo2GpyVmBW40\nRhElGohCnUuqp6zk9rCkEAGadGKsO4TgL7JzpKM4aas3BABt5tczVk7ZILtccTtw\nmh3BAIwaNmsSOvd5zL0HgpTd1lsW9ZmlpRvZCA0BbzWOpvvujOPYj368W0D/rrY+\nlJdAK29yCw4yMXf0cI+BAoIBAQDlGs6gevh3cztgzU5kr6Shw33zYcVCzBxkmlM6\nORqCy+wYJqJoUultBbVHX4f4cKrr47XnRGW5ZwVlj2sb5JIUX9al9M5sFRT4FqnE\nc3DDQqJYeo+xdxwqvzMB/LfMnZattHT6YFUVHrdATtKrngrw0q6mcK5kSokwWrDI\nGIsxdMmNJ0n4MZzU1qNEXj9qVLYe43LoDvCz/LbXzpbOlq8yL/zfKx0XHv8K3taI\npeQyN1CaALyC/33YhWR0FVdhkTsgHeigv8PWISJrD4CgieZeqEMJdYRgnObgHEFw\nIl4ncUkGkNSjLTMUhI3bO1K/4QhDzIPDvLDU8q+twntrJn8pAoIBAQDiz7xl63KT\n9qgtDd6ey+QCnPl5T+Lg1W5m4dOI3IXeQHueI7hLbcUJdqScMMkP7aUJvrpo+19h\nLiMxL4reOHYMZG9XI3o6KSNeOAKbCIjfIdXoQtPyNEw5OWD1O9vr3PfbZrorEWuk\nRaQMSNGikfADHbbN/IALdPoFSGa3YInD+DB1pt/0wnPFM6oJq80XfqYZ+qlnx/w0\nWqUfzh3/U4LpUr3OBJ0jounVx8mkjmOSkFYtWpBpBZghXhrKRZn/Zk6RaondaKmB\nvV2ZNQ/wCc2RzTNkSPxDbsEKyaHnAm7Bcp7RaIzeaz+xBbvrF5SfH2RFpEMdHHnD\nXWtbFDwudeV/AoIBAA+8EJba+zeQ9XIHh6vImGD3wS22+EpHJGgQZUjpZRW4laVu\n+dZ6Y0e2jaWyPO9mJYb/451XiDj8h1VbTTrkLtgxYNeTAZ5QsFj9jXlNiGAQsn+r\nIzVH/eo9qW4ogiMOa6vQafxMI2vI6UMEZtmciBnUDmSl9oQyzktA30VO0jh6UeFc\n4mqmVaQUfbATXP2bhcqHSnv/kq5528Dkklzr4mpq+04EcwIEgfWoKknGQu7j96gs\nBsZkb6swNh723EJ6K/pfs3te0D9jlS6PKQFdlzHHEpuSs53DCOQ5bJEb+yVwVVib\nF8+BKjHtjKSS5XMCLIQjhqUpz2dAp6oiYkGQqkkCggEAG7UQ6Mp4dsbdCJP3LCLw\nObl/aGhv6NNp5zuTIdb+q4XpFAp9Cwnf1iYeOc5j4YRAcw5Pq1956V8/gVSzfC4d\njan/R//XgJ9h6LKi7tl+DvQNM5BmX+IvpZXy2EJ1vTyDMtQ7zeMU6T5wqeeDZH67\neUX5/PPpmHyzxk1v7trmOYBqOxUlqrrOdbq3/PJ13XblR6stYrY1gxfHsDj3xSco\niORIt5Asuhu+wRTk9ytF0rO7M1Mq7Ql36iuazjbudxrCYlVHfjq46lZ9xqeKyOIJ\nsNQGgSvBVWOERZMYKiZL7WnZKO/CtbEYWMHAkRmSWFX3Y+KLKFVAMrOI19mC+JIC\ndQKCAQBtwU+T0DG3ESoWcbL02m3CYbMU7gbuyDNY6/a0YcH+D1uTVtM4IZPnlWhO\nUhLoe5gGbkY/hLrS5DrkzgHv9Tt8hugXpfC2x7gzaFNmakFxnkMjIiVOoqcPNq0H\n4TZFZlKgtJbgUwER1RK4Waot/1f++JnT5t96n8A3RalfbCT6ScnAGK/P34pSt79r\n1XxSD2SUKNnAnlFoN5vV2TmDGAO3XG4pS0RPTnJTJITz47HNQONgEEiXnBoLYhGQ\nkYu8+UY2B2DkMejLKCMigB8Z3i5N1E0X57X89yUk+/QQ9LzheVTM/pk8UdDrEZ6n\nv2axspuwOp1lOGArmT34cpZbY+U1\n-----END PRIVATE KEY-----\n','-----BEGIN PUBLIC KEY-----\nMFwwDQYJKoZIhvcNAQEBBQADSwAwSAJBAMio2DnP8bcB7Mfx3BlXepLHE57Ydu9y\nZh0zSne7YDPZdubU7ouhaHAZMyWntP449ybQr3eUyNeuUZZDoVmq++0CAwEAAQ==\n-----END PUBLIC KEY-----\n','-----BEGIN PRIVATE KEY-----\nMIIBVQIBADANBgkqhkiG9w0BAQEFAASCAT8wggE7AgEAAkEAyKjYOc/xtwHsx/Hc\nGVd6kscTnth273JmHTNKd7tgM9l25tTui6FocBkzJae0/jj3JtCvd5TI165RlkOh\nWar77QIDAQABAkBvctglxAlMzBTnOL42lQ/PViLfpvroI3Hz5fkGZ1wXb0UW/64T\nxFC3UPC8NXWfuvTWSnZ6KbY8PGgQfy7fu/lBAiEA8F2wO7YP05ruqBeNHE/ToJfz\noChbi+e+PBUWiMnH9N8CIQDVtgId76iBZWotVvpmkewdKQf0m6Dff2RLbVICZtm8\nswIgY7VZj8t8UTkp2wy5+o6aqTmfVEapgyXE4kOVL3UUv10CIQCMtW+jYj4iJDHK\ndHAdxIofkPpp9WXwgaH5f5r1dd56vQIhANL5tpKSMdGSNThQZz8UnDSt7kIc6btK\nORPv/J3wm0N+\n-----END PRIVATE KEY-----\n',1,0,0,0,0,0,10,703,0,0,'',10,0,0,0,'0001-01-01 00:00:00','0001-01-01 00:00:00','',5,'','','','',''),(6,'ac116e1d642da69c','friendica4','537485cc08fae106246d8990a7f6d615900611eea6356c8efa75fc6cd6b4221fec27c0a753bac3366eca50426a12fa186277036eaf5ab3fc8a533089cb43f954','friendica4','friendica4@friendica.dev','','UTC','en','2015-02-02 12:04:29','2015-02-02 18:52:53','',0,'','-----BEGIN PUBLIC KEY-----\nMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEA3nCYawg+HTyQgV7a7Osg\nCXeACOitKLhcb2WDTN/lLOMO7n1lSm3Kdv1dbOc0/lkAPeB2XsLF/aDfoUPWWg4Q\n/oRPrXFIi2dK/cIQVvgOhebQheztAYPJyaYYMWVK7bLbPuKVTyzALqkWD8Zjjtit\n4Uvm3kjmcofKr+/Lw+VFaEBMESQDbP5eTDtQeDGGjluWQMj1/D+V/Tcm+SMrAVIv\njyklQEhBJlYGJ+LsfXv4XXbeH73dkIXkQW5JgWQyPCloJ+PxmmjjEDozsdgmFQXq\n6T9HFVHvW2O2lmDoaTrbIGrULWBpslKZJJrV+LgtkzhP4uuKfJPD2DpMJ4+ixtBE\nzM/o+EuYDTz0P3dTvwruq1t8gUYcQOVUzEp1LM0qYDMVY86XneW1W5xghztl5zqy\nGBMBvjVIFvMVL1cVeXze4zpwwKln2cArepToSpN7lmy9EgBd9mZrVLWosZShB9R0\n05kBc2Tfv7FlixwZ1P8rwJn9sEEs9oa6TnRLL+7L8eqapg6vUI1G7e0HWWEjdHsR\nrYVHYW+ogtOYjrQ1Tfh1W2PtNaez5fGYVBDjC+1vy0scJmqrgy00z7MHBT2WTOAL\noHbdedhpa3UZ0FrsCto+vqil8BcF5aBhi2Hi5YdKtbY3EBsaabcSO2joc7rlmee4\nxdKfDRYXCPysFPhZNgIW708CAwEAAQ==\n-----END PUBLIC KEY-----\n','-----BEGIN PRIVATE KEY-----\n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\nigTbSRJm04IWeuH+480HXjZRuHMclA4=\n-----END PRIVATE KEY-----\n','-----BEGIN PUBLIC KEY-----\nMFwwDQYJKoZIhvcNAQEBBQADSwAwSAJBALwNfVA38nGCbi/oAewWsIAfRzrAC9np\nPTYGiYfhOxgI3uXkdwMvcrvW98XGugYAHMAJbuHP2aPOnKiZCNKRLeMCAwEAAQ==\n-----END PUBLIC KEY-----\n','-----BEGIN PRIVATE KEY-----\nMIIBVQIBADANBgkqhkiG9w0BAQEFAASCAT8wggE7AgEAAkEAvA19UDfycYJuL+gB\n7BawgB9HOsAL2ek9NgaJh+E7GAje5eR3Ay9yu9b3xca6BgAcwAlu4c/Zo86cqJkI\n0pEt4wIDAQABAkBUfKsEU151aOggVdgnPbpmlabm2kl4ybVahG1dwu9NyEjttz0/\nEFyN2IQzorUefkhow1jpNC8LGJ8t1dyrXZLhAiEA6eYzvYBXdPUoia4yF8ChRRFp\nSFYgmPIj5FR3MEfKHpUCIQDN0k3BfXBtFLawe1VDEs8CvtWOCjJux+15Si07Mj+U\nlwIhAOgQlV88Ogl5v8myglLctWUwnDO/+EGnZQMC5uqJH7ltAiBJ2/QnQTp9Cnfc\nsQWRwkgjNhQwmpwqgPhJFENTAN8sFQIhAIO04kWVXMXGVCGRVlvPOlHzrIBp3d+N\no/Wp+OK69U1n\n-----END PRIVATE KEY-----\n',1,0,0,0,0,0,10,703,0,0,'',10,0,0,0,'0001-01-01 00:00:00','0001-01-01 00:00:00','',6,'','','','',''); /*!40000 ALTER TABLE `user` ENABLE KEYS */; UNLOCK TABLES; @@ -1728,13 +1728,13 @@ UNLOCK TABLES; DROP TABLE IF EXISTS `userd`; /*!40101 SET @saved_cs_client = @@character_set_client */; -/*!40101 SET character_set_client = utf8 */; +/*!40101 SET character_set_client = utf8mb4 */; CREATE TABLE `userd` ( `id` int(11) NOT NULL AUTO_INCREMENT, `username` varchar(255) NOT NULL, PRIMARY KEY (`id`), KEY `username` (`username`) -) ENGINE=InnoDB DEFAULT CHARSET=utf8; +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; /*!40101 SET character_set_client = @saved_cs_client */; -- diff --git a/htconfig.php b/htconfig.php index 5967e79f4..4ea97e9ae 100644 --- a/htconfig.php +++ b/htconfig.php @@ -16,7 +16,7 @@ $db_user = 'mysqlusername'; $db_pass = 'mysqlpassword'; $db_data = 'mysqldatabasename'; -// Set the database connection charset to UTF8. +// Set the database connection charset to full Unicode (utf8mb4). // Changing this value will likely corrupt the special characters. // You have been warned. $a->config['system']['db_charset'] = "utf8mb4"; @@ -87,7 +87,7 @@ $a->config['system']['no_regfullname'] = true; //$a->config['system']['block_local_dir'] = false; // Location of the global directory -$a->config['system']['directory'] = 'http://dir.friendi.ca'; +$a->config['system']['directory'] = 'https://dir.friendica.social'; // Allowed protocols in link URLs; HTTP protocols always are accepted $a->config['system']['allowed_link_protocols'] = array('ftp', 'ftps', 'mailto', 'cid', 'gopher'); diff --git a/include/Contact.php b/include/Contact.php index fc9f660f1..6f662cdf1 100644 --- a/include/Contact.php +++ b/include/Contact.php @@ -212,6 +212,10 @@ function unmark_for_death($contact) { function get_contact_details_by_url($url, $uid = -1, $default = array()) { static $cache = array(); + if ($url == '') { + return $default; + } + if ($uid == -1) { $uid = local_user(); } @@ -254,7 +258,7 @@ function get_contact_details_by_url($url, $uid = -1, $default = array()) { // "bd" always contains the upcoming birthday of a contact. // "birthday" might contain the birthday including the year of birth. - if ($profile["birthday"] != "0000-00-00") { + if ($profile["birthday"] > '0001-01-01') { $bd_timestamp = strtotime($profile["birthday"]); $month = date("m", $bd_timestamp); $day = date("d", $bd_timestamp); @@ -271,7 +275,7 @@ function get_contact_details_by_url($url, $uid = -1, $default = array()) { $profile["bd"] = (++$current_year)."-".$month."-".$day; } } else { - $profile["bd"] = "0000-00-00"; + $profile["bd"] = '0001-01-01'; } } else { $profile = $default; @@ -307,7 +311,7 @@ function get_contact_details_by_url($url, $uid = -1, $default = array()) { $profile["location"] = ""; $profile["about"] = ""; $profile["gender"] = ""; - $profile["birthday"] = "0000-00-00"; + $profile["birthday"] = '0001-01-01'; } $cache[$url][$uid] = $profile; @@ -328,6 +332,10 @@ function get_contact_details_by_url($url, $uid = -1, $default = array()) { function get_contact_details_by_addr($addr, $uid = -1) { static $cache = array(); + if ($addr == '') { + return array(); + } + if ($uid == -1) { $uid = local_user(); } @@ -534,6 +542,10 @@ function get_contact($url, $uid = 0, $no_update = false) { $data = array(); $contact_id = 0; + if ($url == '') { + return 0; + } + // We first try the nurl (http://server.tld/nick), most common case $contacts = q("SELECT `id`, `avatar-date` FROM `contact` WHERE `nurl` = '%s' diff --git a/include/Probe.php b/include/Probe.php index c2136eec8..f67a821f9 100644 --- a/include/Probe.php +++ b/include/Probe.php @@ -364,9 +364,9 @@ class Probe { return self::mail($uri, $uid); } - if ($network == NETWORK_MAIL) + if ($network == NETWORK_MAIL) { return self::mail($uri, $uid); - + } // Remove "acct:" from the URI $uri = str_replace('acct:', '', $uri); @@ -391,37 +391,37 @@ class Probe { /// @todo Do we need the prefix "acct:" or "acct://"? foreach ($lrdd AS $key => $link) { - if ($webfinger) + if ($webfinger) { continue; + } + if (!in_array($key, array("lrdd", "lrdd-xml", "lrdd-json"))) { + continue; + } + // At first try it with the given uri + $path = str_replace('{uri}', urlencode($uri), $link); + $webfinger = self::webfinger($path); - if (!in_array($key, array("lrdd", "lrdd-xml", "lrdd-json"))) - continue; + // We cannot be sure that the detected address was correct, so we don't use the values + if ($webfinger AND ($uri != $addr)) { + $nick = ""; + $addr = ""; + } // Try webfinger with the address (user@domain.tld) - $path = str_replace('{uri}', urlencode($addr), $link); - $webfinger = self::webfinger($path); + if (!$webfinger) { + $path = str_replace('{uri}', urlencode($addr), $link); + $webfinger = self::webfinger($path); + } // Mastodon needs to have it with "acct:" if (!$webfinger) { $path = str_replace('{uri}', urlencode("acct:".$addr), $link); $webfinger = self::webfinger($path); } - - // If webfinger wasn't successful then try it with the URL - possibly in the format https://... - if (!$webfinger AND ($uri != $addr)) { - $path = str_replace('{uri}', urlencode($uri), $link); - $webfinger = self::webfinger($path); - - // Since the detection with the address wasn't successful, we delete it. - if ($webfinger) { - $nick = ""; - $addr = ""; - } - } - } - if (!$webfinger) + if (!$webfinger) { return self::feed($uri); + } $result = false; diff --git a/include/acl_selectors.php b/include/acl_selectors.php index f4b644d68..f57af575a 100644 --- a/include/acl_selectors.php +++ b/include/acl_selectors.php @@ -4,11 +4,11 @@ * @file include/acl_selectors.php */ -require_once("include/contact_selectors.php"); -require_once("include/contact_widgets.php"); -require_once("include/DirSearch.php"); -require_once("include/features.php"); -require_once("mod/proxy.php"); +require_once "include/contact_selectors.php"; +require_once "include/contact_widgets.php"; +require_once "include/DirSearch.php"; +require_once "include/features.php"; +require_once "mod/proxy.php"; /** @@ -35,10 +35,11 @@ function group_select($selname,$selclass,$preselected = false,$size = 4) { if (dbm::is_result($r)) { foreach ($r as $rr) { - if((is_array($preselected)) && in_array($rr['id'], $preselected)) + if ((is_array($preselected)) && in_array($rr['id'], $preselected)) { $selected = " selected=\"selected\" "; - else + } else { $selected = ''; + } $trimmed = mb_substr($rr['name'],0,12); @@ -54,7 +55,8 @@ function group_select($selname,$selclass,$preselected = false,$size = 4) { return $o; } - +/// @TODO after an optional parameter, no mandadory parameter can follow +/// @TODO find proper type-hints function contact_selector($selname, $selclass, $preselected = false, $options) { $a = get_app(); @@ -66,40 +68,42 @@ function contact_selector($selname, $selclass, $preselected = false, $options) { $size = 4; if (is_array($options)) { - if (x($options,'size')) + if (x($options, 'size')) $size = $options['size']; - if (x($options,'mutual_friends')) { + if (x($options, 'mutual_friends')) { $mutual = true; } - if (x($options,'single')) { + if (x($options, 'single')) { $single = true; } - if (x($options,'multiple')) { + if (x($options, 'multiple')) { $single = false; } - if (x($options,'exclude')) { + if (x($options, 'exclude')) { $exclude = $options['exclude']; } - if (x($options,'networks')) { - switch($options['networks']) { + if (x($options, 'networks')) { + switch ($options['networks']) { case 'DFRN_ONLY': $networks = array(NETWORK_DFRN); break; case 'PRIVATE': - if(is_array($a->user) && $a->user['prvnets']) - $networks = array(NETWORK_DFRN,NETWORK_MAIL,NETWORK_DIASPORA); - else - $networks = array(NETWORK_DFRN,NETWORK_FACEBOOK,NETWORK_MAIL, NETWORK_DIASPORA); + if (is_array($a->user) && $a->user['prvnets']) { + $networks = array(NETWORK_DFRN, NETWORK_MAIL, NETWORK_DIASPORA); + } else { + $networks = array(NETWORK_DFRN, NETWORK_FACEBOOK, NETWORK_MAIL, NETWORK_DIASPORA); + } break; case 'TWO_WAY': - if(is_array($a->user) && $a->user['prvnets']) - $networks = array(NETWORK_DFRN,NETWORK_MAIL,NETWORK_DIASPORA); - else - $networks = array(NETWORK_DFRN,NETWORK_FACEBOOK,NETWORK_MAIL,NETWORK_DIASPORA,NETWORK_OSTATUS); + if (is_array($a->user) && $a->user['prvnets']) { + $networks = array(NETWORK_DFRN, NETWORK_MAIL, NETWORK_DIASPORA); + } else { + $networks = array(NETWORK_DFRN, NETWORK_FACEBOOK, NETWORK_MAIL, NETWORK_DIASPORA, NETWORK_OSTATUS); + } break; - default: + default: /// @TODO Maybe log this call? break; } } @@ -113,26 +117,30 @@ function contact_selector($selname, $selclass, $preselected = false, $options) { $sql_extra = ''; - if($x['mutual']) { + if (x($x, 'mutual')) { $sql_extra .= sprintf(" AND `rel` = %d ", intval(CONTACT_IS_FRIEND)); } - if(intval($x['exclude'])) + if (x($x, 'exclude')) { $sql_extra .= sprintf(" AND `id` != %d ", intval($x['exclude'])); + } - if(is_array($x['networks']) && count($x['networks'])) { - for($y = 0; $y < count($x['networks']) ; $y ++) + if (is_array($x['networks']) && count($x['networks'])) { + /// @TODO rewrite to foreach() + for ($y = 0; $y < count($x['networks']) ; $y ++) { $x['networks'][$y] = "'" . dbesc($x['networks'][$y]) . "'"; - $str_nets = implode(',',$x['networks']); + } + $str_nets = implode(',', $x['networks']); $sql_extra .= " AND `network` IN ( $str_nets ) "; } $tabindex = (x($options, 'tabindex') ? "tabindex=\"" . $options["tabindex"] . "\"" : ""); - if($x['single']) + if ($x['single']) { $o .= "\r\n"; + } $r = q("SELECT `id`, `name`, `url`, `network` FROM `contact` WHERE `uid` = %d AND NOT `self` AND NOT `blocked` AND NOT `pending` AND NOT `archive` AND `notify` != '' @@ -174,7 +182,7 @@ function contact_selector($selname, $selclass, $preselected = false, $options) { function contact_select($selname, $selclass, $preselected = false, $size = 4, $privmail = false, $celeb = false, $privatenet = false, $tabindex = null) { - require_once("include/bbcode.php"); + require_once "include/bbcode.php"; $a = get_app(); @@ -185,29 +193,32 @@ function contact_select($selname, $selclass, $preselected = false, $size = 4, $p $sql_extra = ''; - if($privmail || $celeb) { + if ($privmail || $celeb) { $sql_extra .= sprintf(" AND `rel` = %d ", intval(CONTACT_IS_FRIEND)); } - if($privmail) + if ($privmail) { $sql_extra .= sprintf(" AND `network` IN ('%s' , '%s') ", NETWORK_DFRN, NETWORK_DIASPORA); - elseif($privatenet) + } elseif ($privatenet) { $sql_extra .= sprintf(" AND `network` IN ('%s' , '%s', '%s', '%s') ", NETWORK_DFRN, NETWORK_MAIL, NETWORK_FACEBOOK, NETWORK_DIASPORA); + } $tabindex = ($tabindex > 0 ? "tabindex=\"$tabindex\"" : ""); if ($privmail AND $preselected) { $sql_extra .= " AND `id` IN (".implode(",", $preselected).")"; $hidepreselected = ' style="display: none;"'; - } else + } else { $hidepreselected = ""; + } - if($privmail) + if ($privmail) { $o .= "\r\n"; + } $r = q("SELECT `id`, `name`, `url`, `network` FROM `contact` WHERE `uid` = %d AND NOT `self` AND NOT `blocked` AND NOT `pending` AND NOT `archive` AND `notify` != '' @@ -229,8 +240,7 @@ function contact_select($selname, $selclass, $preselected = false, $size = 4, $p foreach ($r as $rr) { if ((is_array($preselected)) && in_array($rr['id'], $preselected)) { $selected = " selected=\"selected\" "; - } - else { + } else { $selected = ''; } @@ -249,8 +259,9 @@ function contact_select($selname, $selclass, $preselected = false, $size = 4, $p $o .= "\r\n"; - if ($privmail AND $preselected) + if ($privmail AND $preselected) { $o .= implode(", ", $receiverlist); + } call_hooks($a->module . '_post_' . $selname, $o); @@ -259,7 +270,7 @@ function contact_select($selname, $selclass, $preselected = false, $size = 4, $p function fixacl(&$item) { - $item = intval(str_replace(array('<','>'),array('',''),$item)); + $item = intval(str_replace(array('<', '>'), array('', ''), $item)); } function prune_deadguys($arr) { @@ -268,7 +279,7 @@ function prune_deadguys($arr) { return $arr; } - $str = dbesc(implode(',',$arr)); + $str = dbesc(implode(',', $arr)); $r = q("SELECT `id` FROM `contact` WHERE `id` IN ( " . $str . ") AND `blocked` = 0 AND `pending` = 0 AND `archive` = 0 "); @@ -287,7 +298,7 @@ function prune_deadguys($arr) { function get_acl_permissions($user = null) { $allow_cid = $allow_gid = $deny_cid = $deny_gid = false; - if(is_array($user)) { + if (is_array($user)) { $allow_cid = ((strlen($user['allow_cid'])) ? explode('><', $user['allow_cid']) : array() ); $allow_gid = ((strlen($user['allow_gid'])) @@ -318,34 +329,36 @@ function populate_acl($user = null, $show_jotnets = false) { $perms = get_acl_permissions($user); $jotnets = ''; - if($show_jotnets) { + if ($show_jotnets) { $mail_disabled = ((function_exists('imap_open') && (! get_config('system','imap_disabled'))) ? 0 : 1); $mail_enabled = false; $pubmail_enabled = false; - if(! $mail_disabled) { + if (! $mail_disabled) { $r = q("SELECT `pubmail` FROM `mailacct` WHERE `uid` = %d AND `server` != '' LIMIT 1", intval(local_user()) ); if (dbm::is_result($r)) { $mail_enabled = true; - if(intval($r[0]['pubmail'])) + if (intval($r[0]['pubmail'])) { $pubmail_enabled = true; + } } } if (!$user['hidewall']) { - if($mail_enabled) { + if ($mail_enabled) { $selected = (($pubmail_enabled) ? ' checked="checked" ' : ''); $jotnets .= '
' . t("Post to Email") . '
'; } call_hooks('jot_networks', $jotnets); - } else + } else { $jotnets .= sprintf(t('Connectors disabled, since "%s" is enabled.'), t('Hide your profile details from unknown viewers?')); } + } $tpl = get_markup_template("acl_selector.tpl"); $o = replace_macros($tpl, array( @@ -363,7 +376,7 @@ function populate_acl($user = null, $show_jotnets = false) { '$aclModalTitle' => t('Permissions'), '$aclModalDismiss' => t('Close'), '$features' => array( - "aclautomention"=>(feature_enabled($user['uid'],"aclautomention")?"true":"false") + 'aclautomention' => (feature_enabled($user['uid'], "aclautomention") ? "true" : "false") ), )); @@ -379,24 +392,26 @@ function construct_acl_data(App $a, $user) { $user_defaults = get_acl_permissions($user); - if($acl_data['groups']) { - foreach($acl_data['groups'] as $key=>$group) { + if ($acl_data['groups']) { + foreach ($acl_data['groups'] as $key => $group) { // Add a "selected" flag to groups that are posted to by default - if($user_defaults['allow_gid'] && - in_array($group['id'], $user_defaults['allow_gid']) && !in_array($group['id'], $user_defaults['deny_gid']) ) + if ($user_defaults['allow_gid'] && + in_array($group['id'], $user_defaults['allow_gid']) && !in_array($group['id'], $user_defaults['deny_gid']) ) { $acl_data['groups'][$key]['selected'] = 1; - else + } else { $acl_data['groups'][$key]['selected'] = 0; + } } } - if($acl_data['contacts']) { - foreach($acl_data['contacts'] as $key=>$contact) { + if ($acl_data['contacts']) { + foreach ($acl_data['contacts'] as $key => $contact) { // Add a "selected" flag to groups that are posted to by default - if($user_defaults['allow_cid'] && - in_array($contact['id'], $user_defaults['allow_cid']) && !in_array($contact['id'], $user_defaults['deny_cid']) ) + if ($user_defaults['allow_cid'] && + in_array($contact['id'], $user_defaults['allow_cid']) && !in_array($contact['id'], $user_defaults['deny_cid']) ) { $acl_data['contacts'][$key]['selected'] = 1; - else + } else { $acl_data['contacts'][$key]['selected'] = 0; + } } } @@ -419,23 +434,25 @@ function acl_lookup(App $a, $out_type = 'json') { // For use with jquery.textcomplete for private mail completion - if(x($_REQUEST,'query') && strlen($_REQUEST['query'])) { - if(! $type) + if (x($_REQUEST, 'query') && strlen($_REQUEST['query'])) { + if (! $type) { $type = 'm'; + } $search = $_REQUEST['query']; } logger("Searching for ".$search." - type ".$type, LOGGER_DEBUG); - if ($search!=""){ + if ($search != "") { $sql_extra = "AND `name` LIKE '%%".dbesc($search)."%%'"; $sql_extra2 = "AND (`attag` LIKE '%%".dbesc($search)."%%' OR `name` LIKE '%%".dbesc($search)."%%' OR `nick` LIKE '%%".dbesc($search)."%%')"; } else { + /// @TODO Avoid these needless else blocks by putting variable-initialization atop of if() $sql_extra = $sql_extra2 = ""; } // count groups and contacts - if ($type=='' || $type=='g'){ + if ($type == '' || $type == 'g') { $r = q("SELECT COUNT(*) AS g FROM `group` WHERE `deleted` = 0 AND `uid` = %d $sql_extra", intval(local_user()) ); @@ -446,8 +463,8 @@ function acl_lookup(App $a, $out_type = 'json') { $sql_extra2 .= " ".unavailable_networks(); - // autocomplete for editor mentions - if ($type=='' || $type=='c'){ + if ($type == '' || $type == 'c') { + // autocomplete for editor mentions $r = q("SELECT COUNT(*) AS c FROM `contact` WHERE `uid` = %d AND NOT `self` AND NOT `blocked` AND NOT `pending` AND NOT `archive` @@ -493,7 +510,7 @@ function acl_lookup(App $a, $out_type = 'json') { $groups = array(); $contacts = array(); - if ($type=='' || $type=='g'){ + if ($type == '' || $type == 'g') { /// @todo We should cache this query. // This can be done when we can delete cache entries via wildcard @@ -502,7 +519,7 @@ function acl_lookup(App $a, $out_type = 'json') { INNER JOIN `group_member` ON `group_member`.`gid`=`group`.`id` AND `group_member`.`uid` = `group`.`uid` WHERE NOT `group`.`deleted` AND `group`.`uid` = %d $sql_extra - GROUP BY `group`.`name` + GROUP BY `group`.`name`, `group`.`id` ORDER BY `group`.`name` LIMIT %d,%d", intval(local_user()), @@ -510,7 +527,7 @@ function acl_lookup(App $a, $out_type = 'json') { intval($count) ); - foreach($r as $g){ + foreach ($r as $g) { // logger('acl: group: ' . $g['name'] . ' members: ' . $g['uids']); $groups[] = array( "type" => "g", @@ -524,7 +541,7 @@ function acl_lookup(App $a, $out_type = 'json') { } } - if ($type==''){ + if ($type == '') { $r = q("SELECT `id`, `name`, `nick`, `micro`, `network`, `url`, `attag`, `forum`, `prv` FROM `contact` WHERE `uid` = %d AND NOT `self` AND NOT `blocked` AND NOT `pending` AND NOT `archive` AND `notify` != '' @@ -534,9 +551,7 @@ function acl_lookup(App $a, $out_type = 'json') { intval(local_user()), dbesc(NETWORK_OSTATUS), dbesc(NETWORK_STATUSNET) ); - } - elseif ($type=='c'){ - + } elseif ($type == 'c') { $r = q("SELECT `id`, `name`, `nick`, `micro`, `network`, `url`, `attag`, `forum`, `prv` FROM `contact` WHERE `uid` = %d AND NOT `self` AND NOT `blocked` AND NOT `pending` AND NOT `archive` AND `notify` != '' AND NOT (`network` IN ('%s')) @@ -546,7 +561,7 @@ function acl_lookup(App $a, $out_type = 'json') { dbesc(NETWORK_STATUSNET) ); } - elseif($type == 'm') { + elseif ($type == 'm') { $r = q("SELECT `id`, `name`, `nick`, `micro`, `network`, `url`, `attag` FROM `contact` WHERE `uid` = %d AND NOT `self` AND NOT `blocked` AND NOT `pending` AND NOT `archive` AND `network` IN ('%s','%s','%s') @@ -593,7 +608,7 @@ function acl_lookup(App $a, $out_type = 'json') { if (dbm::is_result($r)) { - foreach ($r as $g){ + foreach ($r as $g) { $contacts[] = array( 'type' => 'c', 'photo' => proxy_url($g['micro'], false, PROXY_SIZE_MICRO), @@ -602,7 +617,7 @@ function acl_lookup(App $a, $out_type = 'json') { 'network' => $g['network'], 'link' => $g['url'], 'nick' => htmlentities(($g['attag']) ? $g['attag'] : $g['nick']), - 'forum' => ((x($g['forum']) || x($g['prv'])) ? 1 : 0), + 'forum' => ((x($g, 'forum') || x($g, 'prv')) ? 1 : 0), ); } } @@ -610,46 +625,50 @@ function acl_lookup(App $a, $out_type = 'json') { $items = array_merge($groups, $contacts); if ($conv_id) { - /* if $conv_id is set, get unknow contacts in thread */ - /* but first get know contacts url to filter them out */ - function _contact_link($i){ return dbesc($i['link']); } - $known_contacts = array_map(_contact_link, $contacts); - $unknow_contacts=array(); - $r = q("SELECT `author-avatar`,`author-name`,`author-link` + /* + * if $conv_id is set, get unknown contacts in thread + * but first get known contacts url to filter them out + */ + $known_contacts = array_map( + function ($i) { + return dbesc($i['link']); + } + , $contacts); + + $unknown_contacts = array(); + $r = q("SELECT `author-link` FROM `item` WHERE `parent` = %d AND (`author-name` LIKE '%%%s%%' OR `author-link` LIKE '%%%s%%') AND `author-link` NOT IN ('%s') - GROUP BY `author-link` + GROUP BY `author-link`, `author-avatar`, `author-name` ORDER BY `author-name` ASC ", intval($conv_id), dbesc($search), dbesc($search), - implode("','", $known_contacts) + implode("', '", $known_contacts) ); - if (dbm::is_result($r)){ + if (dbm::is_result($r)) { foreach ($r as $row) { - // nickname.. - $up = parse_url($row['author-link']); - $nick = explode("/",$up['path']); - $nick = $nick[count($nick)-1]; - $nick .= "@".$up['host']; - // /nickname - $unknow_contacts[] = array( - 'type' => 'c', - 'photo' => proxy_url($row['author-avatar'], false, PROXY_SIZE_MICRO), - 'name' => htmlentities($row['author-name']), - 'id' => '', - 'network' => 'unknown', - 'link' => $row['author-link'], - 'nick' => htmlentities($nick), - 'forum' => false - ); + $contact = get_contact_details_by_url($row['author-link']); + + if (count($contact) > 0) { + $unknown_contacts[] = array( + 'type' => 'c', + 'photo' => proxy_url($contact['micro'], false, PROXY_SIZE_MICRO), + 'name' => htmlentities($contact['name']), + 'id' => intval($contact['cid']), + 'network' => $contact['network'], + 'link' => $contact['url'], + 'nick' => htmlentities($contact['nick'] ? : $contact['addr']), + 'forum' => $contact['forum'] + ); + } } } - $items = array_merge($items, $unknow_contacts); - $tot += count($unknow_contacts); + $items = array_merge($items, $unknown_contacts); + $tot += count($unknown_contacts); } $results = array( @@ -665,7 +684,7 @@ function acl_lookup(App $a, $out_type = 'json') { call_hooks('acl_lookup_end', $results); - if($out_type === 'html') { + if ($out_type === 'html') { $o = array( 'tot' => $results['tot'], 'start' => $results['start'], diff --git a/include/api.php b/include/api.php index 9fc853340..97c09c20a 100644 --- a/include/api.php +++ b/include/api.php @@ -8,39 +8,36 @@ use \Friendica\Core\Config; - require_once('include/HTTPExceptions.php'); +require_once 'include/HTTPExceptions.php'; +require_once 'include/bbcode.php'; +require_once 'include/datetime.php'; +require_once 'include/conversation.php'; +require_once 'include/oauth.php'; +require_once 'include/html2plain.php'; +require_once 'mod/share.php'; +require_once 'include/Photo.php'; +require_once 'mod/item.php'; +require_once 'include/security.php'; +require_once 'include/contact_selectors.php'; +require_once 'include/html2bbcode.php'; +require_once 'mod/wall_upload.php'; +require_once 'mod/proxy.php'; +require_once 'include/message.php'; +require_once 'include/group.php'; +require_once 'include/like.php'; +require_once 'include/NotificationsManager.php'; +require_once 'include/plaintext.php'; +require_once 'include/xml.php'; - require_once('include/bbcode.php'); - require_once('include/datetime.php'); - require_once('include/conversation.php'); - require_once('include/oauth.php'); - require_once('include/html2plain.php'); - require_once('mod/share.php'); - require_once('include/Photo.php'); - require_once('mod/item.php'); - require_once('include/security.php'); - require_once('include/contact_selectors.php'); - require_once('include/html2bbcode.php'); - require_once('mod/wall_upload.php'); - require_once('mod/proxy.php'); - require_once('include/message.php'); - require_once('include/group.php'); - require_once('include/like.php'); - require_once('include/NotificationsManager.php'); - require_once('include/plaintext.php'); - require_once('include/xml.php'); +define('API_METHOD_ANY', '*'); +define('API_METHOD_GET', 'GET'); +define('API_METHOD_POST', 'POST,PUT'); +define('API_METHOD_DELETE', 'POST,DELETE'); +$API = array(); +$called_api = null; - define('API_METHOD_ANY','*'); - define('API_METHOD_GET','GET'); - define('API_METHOD_POST','POST,PUT'); - define('API_METHOD_DELETE','POST,DELETE'); - - - - $API = Array(); - $called_api = Null; - +/// @TODO Fix intending /** * @brief Auth API user * @@ -49,8 +46,9 @@ use \Friendica\Core\Config; * into a page, and visitors will post something without noticing it). */ function api_user() { - if ($_SESSION['allow_api']) + if (x($_SESSION, 'allow_api')) { return local_user(); + } return false; } @@ -67,16 +65,18 @@ use \Friendica\Core\Config; * Client source name, default to "api" if unset/unknown */ function api_source() { - if (requestdata('source')) - return (requestdata('source')); + if (requestdata('source')) { + return requestdata('source'); + } // Support for known clients that doesn't send a source name - if (strstr($_SERVER['HTTP_USER_AGENT'], "Twidere")) - return ("Twidere"); + if (strpos($_SERVER['HTTP_USER_AGENT'], "Twidere") !== false) { + return "Twidere"; + } logger("Unrecognized user-agent ".$_SERVER['HTTP_USER_AGENT'], LOGGER_DEBUG); - return ("api"); + return "api"; } /** @@ -85,8 +85,8 @@ use \Friendica\Core\Config; * @param string $str Source date, as UTC * @return string Date in UTC formatted as "D M d H:i:s +0000 Y" */ - function api_date($str){ - //Wed May 23 06:01:13 +0000 2007 + function api_date($str) { + // Wed May 23 06:01:13 +0000 2007 return datetime_convert('UTC', 'UTC', $str, "D M d H:i:s +0000 Y" ); } @@ -98,25 +98,27 @@ use \Friendica\Core\Config; * @param string $path API URL path, relative to App::get_baseurl() * @param string $func Function name to call on path request * @param bool $auth API need logged user - * @param string $method - * HTTP method reqiured to call this endpoint. - * One of API_METHOD_ANY, API_METHOD_GET, API_METHOD_POST. - * Default to API_METHOD_ANY + * @param string $method HTTP method reqiured to call this endpoint. + * + * One of API_METHOD_ANY, API_METHOD_GET, API_METHOD_POST. + * Default to API_METHOD_ANY */ - function api_register_func($path, $func, $auth=false, $method=API_METHOD_ANY){ + function api_register_func($path, $func, $auth = false, $method = API_METHOD_ANY) { global $API; + $API[$path] = array( - 'func'=>$func, - 'auth'=>$auth, - 'method'=> $method + 'func' => $func, + 'auth' => $auth, + 'method' => $method, ); // Workaround for hotot $path = str_replace("api/", "api/1.1/", $path); + $API[$path] = array( - 'func'=>$func, - 'auth'=>$auth, - 'method'=> $method + 'func' => $func, + 'auth' => $auth, + 'method' => $method, ); } @@ -136,34 +138,34 @@ use \Friendica\Core\Config; * @hook 'logged_in' * array $user logged user record */ - function api_login(App $a){ + function api_login(App $a) { // login with oauth - try{ + try { $oauth = new FKOAuth1(); list($consumer,$token) = $oauth->verify_request(OAuthRequest::from_request()); - if (!is_null($token)){ + if (!is_null($token)) { $oauth->loginUser($token->uid); call_hooks('logged_in', $a->user); return; } - echo __file__.__line__.__function__."
"; var_dump($consumer, $token); die();
-		}catch(Exception $e){
+			echo __FILE__.__LINE__.__FUNCTION__ . "
";
+			var_dump($consumer, $token);
+			die();
+		} catch (Exception $e) {
 			logger($e);
 		}
 
-
-
 		// workaround for HTTP-auth in CGI mode
-		if(x($_SERVER,'REDIRECT_REMOTE_USER')) {
-			$userpass = base64_decode(substr($_SERVER["REDIRECT_REMOTE_USER"],6)) ;
-			if(strlen($userpass)) {
+		if (x($_SERVER, 'REDIRECT_REMOTE_USER')) {
+			$userpass = base64_decode(substr($_SERVER["REDIRECT_REMOTE_USER"], 6)) ;
+			if (strlen($userpass)) {
 				list($name, $password) = explode(':', $userpass);
 				$_SERVER['PHP_AUTH_USER'] = $name;
 				$_SERVER['PHP_AUTH_PW'] = $password;
 			}
 		}
 
-		if (!isset($_SERVER['PHP_AUTH_USER'])) {
+		if (!x($_SERVER, 'PHP_AUTH_USER')) {
 			logger('API_login: ' . print_r($_SERVER,true), LOGGER_DEBUG);
 			header('WWW-Authenticate: Basic realm="Friendica"');
 			throw new UnauthorizedException("This API requires login");
@@ -171,55 +173,51 @@ use \Friendica\Core\Config;
 
 		$user = $_SERVER['PHP_AUTH_USER'];
 		$password = $_SERVER['PHP_AUTH_PW'];
-		$encrypted = hash('whirlpool',trim($password));
+		$encrypted = hash('whirlpool', trim($password));
 
 		// allow "user@server" login (but ignore 'server' part)
-		$at=strstr($user, "@", true);
-		if ( $at ) $user=$at;
+		$at = strstr($user, "@", true);
+		if ($at) {
+			$user = $at;
+		}
 
-		/**
-		 *  next code from mod/auth.php. needs better solution
-		 */
+		// next code from mod/auth.php. needs better solution
 		$record = null;
 
 		$addon_auth = array(
 			'username' => trim($user),
 			'password' => trim($password),
 			'authenticated' => 0,
-			'user_record' => null
+			'user_record' => null,
 		);
 
-		/**
-		 *
+		/*
 		 * A plugin indicates successful login by setting 'authenticated' to non-zero value and returning a user record
 		 * Plugins should never set 'authenticated' except to indicate success - as hooks may be chained
 		 * and later plugins should not interfere with an earlier one that succeeded.
-		 *
 		 */
-
 		call_hooks('authenticate', $addon_auth);
 
-		if(($addon_auth['authenticated']) && (count($addon_auth['user_record']))) {
+		if (($addon_auth['authenticated']) && (count($addon_auth['user_record']))) {
 			$record = $addon_auth['user_record'];
-		}
-		else {
+		} else {
 			// process normal login request
-
 			$r = q("SELECT * FROM `user` WHERE (`email` = '%s' OR `nickname` = '%s')
 				AND `password` = '%s' AND NOT `blocked` AND NOT `account_expired` AND NOT `account_removed` AND `verified` LIMIT 1",
 				dbesc(trim($user)),
 				dbesc(trim($user)),
 				dbesc($encrypted)
 			);
-			if (dbm::is_result($r))
+			if (dbm::is_result($r)) {
 				$record = $r[0];
+			}
 		}
 
-		if((! $record) || (! count($record))) {
-			logger('API_login failure: ' . print_r($_SERVER,true), LOGGER_DEBUG);
+		if ((! $record) || (! count($record))) {
+			logger('API_login failure: ' . print_r($_SERVER, true), LOGGER_DEBUG);
 			header('WWW-Authenticate: Basic realm="Friendica"');
-			#header('HTTP/1.0 401 Unauthorized');
-			#die('This api requires login');
+			//header('HTTP/1.0 401 Unauthorized');
+			//die('This api requires login');
 			throw new UnauthorizedException("This API requires login");
 		}
 
@@ -242,8 +240,10 @@ use \Friendica\Core\Config;
 	 * @return bool
 	 */
 	 function api_check_method($method) {
-		if ($method=="*") return True;
-		return strpos($method, $_SERVER['REQUEST_METHOD']) !== false;
+		if ($method == "*") {
+			return true;
+		}
+		return (strpos($method, $_SERVER['REQUEST_METHOD']) !== false);
 	 }
 
 	/**
@@ -254,39 +254,51 @@ use \Friendica\Core\Config;
 	 * @param App $a
 	 * @return string API call result
 	 */
-	function api_call(App $a){
+	function api_call(App $a) {
 		global $API, $called_api;
 
-		$type="json";
-		if (strpos($a->query_string, ".xml")>0) $type="xml";
-		if (strpos($a->query_string, ".json")>0) $type="json";
-		if (strpos($a->query_string, ".rss")>0) $type="rss";
-		if (strpos($a->query_string, ".atom")>0) $type="atom";
+		$type = "json";
+		if (strpos($a->query_string, ".xml") > 0) {
+			$type = "xml";
+		}
+		if (strpos($a->query_string, ".json") > 0) {
+			$type = "json";
+		}
+		if (strpos($a->query_string, ".rss") > 0) {
+			$type = "rss";
+		}
+		if (strpos($a->query_string, ".atom") > 0) {
+			$type = "atom";
+		}
+
 		try {
-			foreach ($API as $p=>$info){
-				if (strpos($a->query_string, $p)===0){
-					if (!api_check_method($info['method'])){
+			foreach ($API as $p => $info) {
+				if (strpos($a->query_string, $p) === 0) {
+					if (!api_check_method($info['method'])) {
 						throw new MethodNotAllowedException();
 					}
 
-					$called_api= explode("/",$p);
+					$called_api = explode("/", $p);
 					//unset($_SERVER['PHP_AUTH_USER']);
-					if ($info['auth']===true && api_user()===false) {
-							api_login($a);
+
+					/// @TODO should be "true ==[=] $info['auth']", if you miss only one = character, you assign a variable (only with ==). Let's make all this even.
+					if ($info['auth'] === true && api_user() === false) {
+						api_login($a);
 					}
 
 					logger('API call for ' . $a->user['username'] . ': ' . $a->query_string);
-					logger('API parameters: ' . print_r($_REQUEST,true));
+					logger('API parameters: ' . print_r($_REQUEST, true));
 
 					$stamp =  microtime(true);
 					$r = call_user_func($info['func'], $type);
-					$duration = (float)(microtime(true)-$stamp);
-					logger("API call duration: ".round($duration, 2)."\t".$a->query_string, LOGGER_DEBUG);
+					$duration = (float) (microtime(true) - $stamp);
+					logger("API call duration: " . round($duration, 2) . "\t" . $a->query_string, LOGGER_DEBUG);
 
 					if (get_config("system", "profiler")) {
 						$duration = microtime(true)-$a->performance["start"];
 
-						logger(parse_url($a->query_string, PHP_URL_PATH).": ".sprintf("Database: %s/%s, Network: %s, I/O: %s, Other: %s, Total: %s",
+						/// @TODO round() really everywhere?
+						logger(parse_url($a->query_string, PHP_URL_PATH) . ": " . sprintf("Database: %s/%s, Network: %s, I/O: %s, Other: %s, Total: %s",
 							round($a->performance["database"] - $a->performance["database_write"], 3),
 							round($a->performance["database_write"], 3),
 							round($a->performance["network"], 2),
@@ -294,65 +306,71 @@ use \Friendica\Core\Config;
 							round($duration - ($a->performance["database"] + $a->performance["network"]
 								+ $a->performance["file"]), 2),
 							round($duration, 2)),
-							LOGGER_DEBUG);
+							LOGGER_DEBUG
+						);
 
 						if (get_config("rendertime", "callstack")) {
 							$o = "Database Read:\n";
 							foreach ($a->callstack["database"] AS $func => $time) {
 								$time = round($time, 3);
-								if ($time > 0)
-									$o .= $func.": ".$time."\n";
+								if ($time > 0) {
+									$o .= $func . ": " . $time . "\n";
+								}
 							}
 							$o .= "\nDatabase Write:\n";
 							foreach ($a->callstack["database_write"] AS $func => $time) {
 								$time = round($time, 3);
-								if ($time > 0)
-									$o .= $func.": ".$time."\n";
+								if ($time > 0) {
+									$o .= $func . ": " . $time . "\n";
+								}
 							}
 
 							$o .= "\nNetwork:\n";
 							foreach ($a->callstack["network"] AS $func => $time) {
 								$time = round($time, 3);
-								if ($time > 0)
-									$o .= $func.": ".$time."\n";
+								if ($time > 0) {
+									$o .= $func . ": " . $time . "\n";
+								}
 							}
 							logger($o, LOGGER_DEBUG);
 						}
 					}
 
-
-					if ($r===false) {
-						// api function returned false withour throw an
-						// exception. This should not happend, throw a 500
+					if (false === $r) {
+						/*
+						 * api function returned false withour throw an
+						 * exception. This should not happend, throw a 500
+						 */
 						throw new InternalServerErrorException();
 					}
 
-					switch($type){
+					switch ($type) {
 						case "xml":
 							header ("Content-Type: text/xml");
 							return $r;
 							break;
 						case "json":
 							header ("Content-Type: application/json");
-							foreach($r as $rr)
+							foreach ($r as $rr)
 								$json = json_encode($rr);
-								if ($_GET['callback'])
-									$json = $_GET['callback']."(".$json.")";
+								if (x($_GET, 'callback')) {
+									$json = $_GET['callback'] . "(" . $json . ")";
+								}
 								return $json;
 							break;
 						case "rss":
 							header ("Content-Type: application/rss+xml");
-							return ''."\n".$r;
+							return '' . "\n" . $r;
 							break;
 						case "atom":
 							header ("Content-Type: application/atom+xml");
-							return ''."\n".$r;
+							return '' . "\n" . $r;
 							break;
-
 					}
 				}
 			}
-			logger('API call not implemented: '.$a->query_string);
+
+			logger('API call not implemented: ' . $a->query_string);
 			throw new NotImplementedException();
 		} catch (HTTPException $e) {
 			header("HTTP/1.1 {$e->httpcode} {$e->httpdesc}");
@@ -371,16 +389,16 @@ use \Friendica\Core\Config;
 
 		$a = get_app();
 
-		$error = ($e->getMessage()!==""?$e->getMessage():$e->httpdesc);
-		# TODO:  https://dev.twitter.com/overview/api/response-codes
+		$error = ($e->getMessage() !== "" ? $e->getMessage() : $e->httpdesc);
+		/// @TODO:  https://dev.twitter.com/overview/api/response-codes
 
 		$error = array("error" => $error,
-				"code" => $e->httpcode." ".$e->httpdesc,
+				"code" => $e->httpcode . " " . $e->httpdesc,
 				"request" => $a->query_string);
 
 		$ret = api_format_data('status', $type, array('status' => $error));
 
-		switch($type){
+		switch ($type) {
 			case "xml":
 				header ("Content-Type: text/xml");
 				return $ret;
@@ -407,18 +425,22 @@ use \Friendica\Core\Config;
 	 * @param array $arr Array to be passed to template
 	 * @param array $user_info
 	 * @return array
+	 * @todo find proper type-hints
 	 */
-	function api_rss_extra(App $a, $arr, $user_info){
-		if (is_null($user_info)) $user_info = api_get_user($a);
+	function api_rss_extra(App $a, $arr, $user_info) {
+		if (is_null($user_info)) {
+			$user_info = api_get_user($a);
+		}
+
 		$arr['$user'] = $user_info;
 		$arr['$rss'] = array(
 			'alternate'    => $user_info['url'],
-			'self'         => App::get_baseurl(). "/". $a->query_string,
+			'self'         => App::get_baseurl() . "/" . $a->query_string,
 			'base'         => App::get_baseurl(),
 			'updated'      => api_date(null),
-			'atom_updated' => datetime_convert('UTC','UTC','now',ATOM_TIME),
+			'atom_updated' => datetime_convert('UTC', 'UTC', 'now', ATOM_TIME),
 			'language'     => $user_info['language'],
-			'logo'         => App::get_baseurl()."/images/friendica-32.png",
+			'logo'         => App::get_baseurl() . "/images/friendica-32.png",
 		);
 
 		return $arr;
@@ -432,13 +454,11 @@ use \Friendica\Core\Config;
 	 * @return bool|string
 	 * 		Contact url or False if contact id is unknown
 	 */
-	function api_unique_id_to_url($id){
+	function api_unique_id_to_url($id) {
 		$r = q("SELECT `url` FROM `contact` WHERE `uid` = 0 AND `id` = %d LIMIT 1",
 			intval($id));
-		if ($r)
-			return ($r[0]["url"]);
-		else
-			return false;
+
+		return (dbm::is_result($r) && $r[0]["url"]);
 	}
 
 	/**
@@ -448,8 +468,9 @@ use \Friendica\Core\Config;
 	 * @param int|string $contact_id Contact ID or URL
 	 * @param string $type Return type (for errors)
 	 */
-	function api_get_user(App $a, $contact_id = Null, $type = "json"){
+	function api_get_user(App $a, $contact_id = null, $type = "json") {
 		global $called_api;
+
 		$user = null;
 		$extra_query = "";
 		$url = "";
@@ -458,68 +479,83 @@ use \Friendica\Core\Config;
 		logger("api_get_user: Fetching user data for user ".$contact_id, LOGGER_DEBUG);
 
 		// Searching for contact URL
-		if(!is_null($contact_id) AND (intval($contact_id) == 0)){
+		if (!is_null($contact_id) AND (intval($contact_id) == 0)) {
 			$user = dbesc(normalise_link($contact_id));
 			$url = $user;
 			$extra_query = "AND `contact`.`nurl` = '%s' ";
-			if (api_user()!==false)  $extra_query .= "AND `contact`.`uid`=".intval(api_user());
+			if (api_user() !== false) {
+				$extra_query .= "AND `contact`.`uid`=" . intval(api_user());
+			}
 		}
 
 		// Searching for contact id with uid = 0
-		if(!is_null($contact_id) AND (intval($contact_id) != 0)){
+		if (!is_null($contact_id) AND (intval($contact_id) != 0)) {
 			$user = dbesc(api_unique_id_to_url($contact_id));
 
-			if ($user == "")
+			if ($user == "") {
 				throw new BadRequestException("User not found.");
+			}
 
 			$url = $user;
 			$extra_query = "AND `contact`.`nurl` = '%s' ";
-			if (api_user()!==false)  $extra_query .= "AND `contact`.`uid`=".intval(api_user());
+			if (api_user() !== false) {
+				$extra_query .= "AND `contact`.`uid`=" . intval(api_user());
+			}
 		}
 
-		if(is_null($user) && x($_GET, 'user_id')) {
+		if (is_null($user) && x($_GET, 'user_id')) {
 			$user = dbesc(api_unique_id_to_url($_GET['user_id']));
 
-			if ($user == "")
+			if ($user == "") {
 				throw new BadRequestException("User not found.");
+			}
 
 			$url = $user;
 			$extra_query = "AND `contact`.`nurl` = '%s' ";
-			if (api_user()!==false)  $extra_query .= "AND `contact`.`uid`=".intval(api_user());
+			if (api_user() !== false) {
+				$extra_query .= "AND `contact`.`uid`=" . intval(api_user());
+			}
 		}
-		if(is_null($user) && x($_GET, 'screen_name')) {
+		if (is_null($user) && x($_GET, 'screen_name')) {
 			$user = dbesc($_GET['screen_name']);
 			$nick = $user;
 			$extra_query = "AND `contact`.`nick` = '%s' ";
-			if (api_user()!==false)  $extra_query .= "AND `contact`.`uid`=".intval(api_user());
+			if (api_user() !== false) {
+				$extra_query .= "AND `contact`.`uid`=".intval(api_user());
+			}
 		}
 
-		if (is_null($user) AND ($a->argc > (count($called_api)-1)) AND (count($called_api) > 0)){
+		if (is_null($user) AND ($a->argc > (count($called_api) - 1)) AND (count($called_api) > 0)) {
 			$argid = count($called_api);
-			list($user, $null) = explode(".",$a->argv[$argid]);
-			if(is_numeric($user)){
+			list($user, $null) = explode(".", $a->argv[$argid]);
+			if (is_numeric($user)) {
 				$user = dbesc(api_unique_id_to_url($user));
 
-				if ($user == "")
+				if ($user == "") {
 					return false;
+				}
 
 				$url = $user;
 				$extra_query = "AND `contact`.`nurl` = '%s' ";
-				if (api_user()!==false)  $extra_query .= "AND `contact`.`uid`=".intval(api_user());
+				if (api_user() !== false) {
+					$extra_query .= "AND `contact`.`uid`=" . intval(api_user());
+				}
 			} else {
 				$user = dbesc($user);
 				$nick = $user;
 				$extra_query = "AND `contact`.`nick` = '%s' ";
-				if (api_user()!==false)  $extra_query .= "AND `contact`.`uid`=".intval(api_user());
+				if (api_user() !== false) {
+					$extra_query .= "AND `contact`.`uid`=" . intval(api_user());
+				}
 			}
 		}
 
 		logger("api_get_user: user ".$user, LOGGER_DEBUG);
 
 		if (!$user) {
-			if (api_user()===false) {
+			if (api_user() === false) {
 				api_login($a);
-				return False;
+				return false;
 			} else {
 				$user = $_SESSION['uid'];
 				$extra_query = "AND `contact`.`uid` = %d AND `contact`.`self` ";
@@ -528,8 +564,9 @@ use \Friendica\Core\Config;
 		}
 
 		logger('api_user: ' . $extra_query . ', user: ' . $user);
+
 		// user info
-		$uinfo = q("SELECT *, `contact`.`id` as `cid` FROM `contact`
+		$uinfo = q("SELECT *, `contact`.`id` AS `cid` FROM `contact`
 				WHERE 1
 				$extra_query",
 				$user
@@ -539,18 +576,20 @@ use \Friendica\Core\Config;
 		api_best_nickname($uinfo);
 
 		// if the contact wasn't found, fetch it from the contacts with uid = 0
-		if (count($uinfo)==0) {
+		if (!dbm::is_result($uinfo)) {
 			$r = array();
 
-			if ($url != "")
+			if ($url != "") {
 				$r = q("SELECT * FROM `contact` WHERE `uid` = 0 AND `nurl` = '%s' LIMIT 1", dbesc(normalise_link($url)));
+			}
 
-			if ($r) {
+			if (dbm::is_result($r)) {
 				$network_name = network_to_name($r[0]['network'], $r[0]['url']);
 
 				// If no nick where given, extract it from the address
-				if (($r[0]['nick'] == "") OR ($r[0]['name'] == $r[0]['nick']))
+				if (($r[0]['nick'] == "") OR ($r[0]['name'] == $r[0]['nick'])) {
 					$r[0]['nick'] = api_get_nick($r[0]["url"]);
+				}
 
 				$ret = array(
 					'id' => $r[0]["id"],
@@ -594,18 +633,20 @@ use \Friendica\Core\Config;
 			}
 		}
 
-		if($uinfo[0]['self']) {
+		if ($uinfo[0]['self']) {
 
-			if ($uinfo[0]['network'] == "")
+			if ($uinfo[0]['network'] == "") {
 				$uinfo[0]['network'] = NETWORK_DFRN;
+			}
 
-			$usr = q("select * from user where uid = %d limit 1",
+			$usr = q("SELECT * FROM `user` WHERE `uid` = %d LIMIT 1",
 				intval(api_user())
 			);
-			$profile = q("select * from profile where uid = %d and `is-default` = 1 limit 1",
+			$profile = q("SELECT * FROM `profile` WHERE `uid` = %d AND `is-default` = 1 LIMIT 1",
 				intval(api_user())
 			);
 
+			/// @TODO old-lost code? (twice)
 			// Counting is deactivated by now, due to performance issues
 			// count public wall messages
 			//$r = q("SELECT COUNT(*) as `count` FROM `item` WHERE `uid` = %d AND `wall`",
@@ -622,6 +663,8 @@ use \Friendica\Core\Config;
 			//$countitms = $r[0]['count'];
 			$countitms = 0;
 		}
+
+		/// @TODO old-lost code? (twice)
 /*
 		// Counting is deactivated by now, due to performance issues
 		// count friends
@@ -649,7 +692,7 @@ use \Friendica\Core\Config;
 		$starred = $r[0]['count'];
 
 
-		if(! $uinfo[0]['self']) {
+		if (! $uinfo[0]['self']) {
 			$countfriends = 0;
 			$countfollowers = 0;
 			$starred = 0;
@@ -668,7 +711,7 @@ use \Friendica\Core\Config;
 
 		$pcontact_id  = get_contact($uinfo[0]['url'], 0, true);
 
-		$ret = Array(
+		$ret = array(
 			'id' => intval($pcontact_id),
 			'id_str' => (string) intval($pcontact_id),
 			'name' => (($uinfo[0]['name']) ? $uinfo[0]['name'] : $uinfo[0]['nick']),
@@ -697,6 +740,7 @@ use \Friendica\Core\Config;
 			'follow_request_sent' => false,
 			'statusnet_blocking' => false,
 			'notifications' => false,
+			/// @TODO old way?
 			//'statusnet_profile_url' => App::get_baseurl()."/contacts/".$uinfo[0]['cid'],
 			'statusnet_profile_url' => $uinfo[0]['url'],
 			'uid' => intval($uinfo[0]['uid']),
@@ -726,7 +770,11 @@ use \Friendica\Core\Config;
 						($item["deny_gid"] != "") OR
 						$item["private"]);
 
-		$owner_user = api_get_user($a, $item["owner-link"]);
+		if ($item['thr-parent'] == $item['uri']) {
+			$owner_user = api_get_user($a, $item["owner-link"]);
+		} else {
+			$owner_user = $status_user;
+		}
 
 		return (array($status_user, $owner_user));
 	}
@@ -745,11 +793,13 @@ use \Friendica\Core\Config;
 
 		foreach ($array as $k => $v) {
 			if (is_array($v)) {
-				if ($callback($v, $k))
+				if ($callback($v, $k)) {
 					$new_array[$k] = api_walk_recursive($v, $callback);
+				}
 			} else {
-				if ($callback($v, $k))
+				if ($callback($v, $k)) {
 					$new_array[$k] = $v;
+				}
 			}
 		}
 		$array = $new_array;
@@ -766,13 +816,16 @@ use \Friendica\Core\Config;
 	 * @return boolean Should the array item be deleted?
 	 */
 	function api_reformat_xml(&$item, &$key) {
-		if (is_bool($item))
+		if (is_bool($item)) {
 			$item = ($item ? "true" : "false");
+		}
 
-		if (substr($key, 0, 10) == "statusnet_")
+		if (substr($key, 0, 10) == "statusnet_") {
 			$key = "statusnet:".substr($key, 10);
-		elseif (substr($key, 0, 10) == "friendica_")
+		} elseif (substr($key, 0, 10) == "friendica_") {
 			$key = "friendica:".substr($key, 10);
+		}
+		/// @TODO old-lost code?
 		//else
 		//	$key = "default:".$key;
 
@@ -798,18 +851,21 @@ use \Friendica\Core\Config;
 					"georss" => "http://www.georss.org/georss");
 
 		/// @todo Auto detection of needed namespaces
-		if (in_array($root_element, array("ok", "hash", "config", "version", "ids", "notes", "photos")))
+		if (in_array($root_element, array("ok", "hash", "config", "version", "ids", "notes", "photos"))) {
 			$namespaces = array();
+		}
 
-		if (is_array($data2))
+		if (is_array($data2)) {
 			api_walk_recursive($data2, "api_reformat_xml");
+		}
 
 		if ($key == "0") {
 			$data4 = array();
 			$i = 1;
 
-			foreach ($data2 AS $item)
+			foreach ($data2 AS $item) {
 				$data4[$i++.":".$childname] = $item;
+			}
 
 			$data2 = $data4;
 		}
@@ -829,11 +885,11 @@ use \Friendica\Core\Config;
 	 *
 	 * @return (string|object) XML data or JSON data
 	 */
-	function api_format_data($root_element, $type, $data){
+	function api_format_data($root_element, $type, $data) {
 
 		$a = get_app();
 
-		switch($type){
+		switch ($type) {
 			case "atom":
 			case "rss":
 			case "xml":
@@ -856,11 +912,13 @@ use \Friendica\Core\Config;
 	 * returns a 401 status code and an error message if not.
 	 * http://developer.twitter.com/doc/get/account/verify_credentials
 	 */
-	function api_account_verify_credentials($type){
+	function api_account_verify_credentials($type) {
 
 		$a = get_app();
 
-		if (api_user()===false) throw new ForbiddenException();
+		if (api_user() === false) {
+			throw new ForbiddenException();
+		}
 
 		unset($_REQUEST["user_id"]);
 		unset($_GET["user_id"]);
@@ -868,7 +926,7 @@ use \Friendica\Core\Config;
 		unset($_REQUEST["screen_name"]);
 		unset($_GET["screen_name"]);
 
-		$skip_status = (x($_REQUEST,'skip_status')?$_REQUEST['skip_status']:false);
+		$skip_status = (x($_REQUEST, 'skip_status')?$_REQUEST['skip_status'] : false);
 
 		$user_info = api_get_user($a);
 
@@ -878,10 +936,11 @@ use \Friendica\Core\Config;
 		// - Adding last status
 		if (!$skip_status) {
 			$user_info["status"] = api_status_show("raw");
-			if (!count($user_info["status"]))
+			if (!count($user_info["status"])) {
 				unset($user_info["status"]);
-			else
+			} else {
 				unset($user_info["status"]["user"]);
+			}
 		}
 
 		// "uid" and "self" are only needed for some internal stuff, so remove it from here
@@ -891,17 +950,18 @@ use \Friendica\Core\Config;
 		return api_format_data("user", $type, array('user' => $user_info));
 
 	}
-	api_register_func('api/account/verify_credentials','api_account_verify_credentials', true);
 
+	/// @TODO move to top of file or somwhere better
+	api_register_func('api/account/verify_credentials','api_account_verify_credentials', true);
 
 	/**
 	 * get data from $_POST or $_GET
 	 */
-	function requestdata($k){
-		if (isset($_POST[$k])){
+	function requestdata($k) {
+		if (x($_POST, $k)) {
 			return $_POST[$k];
 		}
-		if (isset($_GET[$k])){
+		if (x($_GET, $k)) {
 			return $_GET[$k];
 		}
 		return null;
@@ -912,7 +972,7 @@ use \Friendica\Core\Config;
 
 		$a = get_app();
 
-		if (api_user()===false) {
+		if (api_user() === false) {
 			logger('api_statuses_update: no user');
 			throw new ForbiddenException();
 		}
@@ -922,9 +982,10 @@ use \Friendica\Core\Config;
 		$_REQUEST['profile_uid'] = api_user();
 		$_REQUEST['api_source'] = true;
 		$txt = requestdata('status');
+		/// @TODO old-lost code?
 		//$txt = urldecode(requestdata('status'));
 
-		if((strpos($txt,'<') !== false) || (strpos($txt,'>') !== false)) {
+		if ((strpos($txt,'<') !== false) || (strpos($txt,'>') !== false)) {
 
 			$txt = html2bb_video($txt);
 			$config = HTMLPurifier_Config::createDefault();
@@ -936,25 +997,26 @@ use \Friendica\Core\Config;
 
 		$a->argv[1]=$user_info['screen_name']; //should be set to username?
 
-		$_REQUEST['hush']='yeah'; //tell wall_upload function to return img info instead of echo
+		// tell wall_upload function to return img info instead of echo
+		$_REQUEST['hush'] = 'yeah';
 		$bebop = wall_upload_post($a);
 
-		//now that we have the img url in bbcode we can add it to the status and insert the wall item.
-		$_REQUEST['body']=$txt."\n\n".$bebop;
+		// now that we have the img url in bbcode we can add it to the status and insert the wall item.
+		$_REQUEST['body'] = $txt . "\n\n" . $bebop;
 		item_post($a);
 
 		// this should output the last post (the one we just posted).
 		return api_status_show($type);
 	}
-	api_register_func('api/statuses/mediap','api_statuses_mediap', true, API_METHOD_POST);
-/*Waitman Gobble Mod*/
 
+	/// @TODO move this to top of file or somewhere better!
+	api_register_func('api/statuses/mediap','api_statuses_mediap', true, API_METHOD_POST);
 
 	function api_statuses_update($type) {
 
 		$a = get_app();
 
-		if (api_user()===false) {
+		if (api_user() === false) {
 			logger('api_statuses_update: no user');
 			throw new ForbiddenException();
 		}
@@ -965,9 +1027,9 @@ use \Friendica\Core\Config;
 
 		// logger('api_post: ' . print_r($_POST,true));
 
-		if(requestdata('htmlstatus')) {
+		if (requestdata('htmlstatus')) {
 			$txt = requestdata('htmlstatus');
-			if((strpos($txt,'<') !== false) || (strpos($txt,'>') !== false)) {
+			if ((strpos($txt, '<') !== false) || (strpos($txt, '>') !== false)) {
 				$txt = html2bb_video($txt);
 
 				$config = HTMLPurifier_Config::createDefault();
@@ -979,29 +1041,33 @@ use \Friendica\Core\Config;
 				$_REQUEST['body'] = html2bbcode($txt);
 			}
 
-		} else
+		} else {
 			$_REQUEST['body'] = requestdata('status');
+		}
 
 		$_REQUEST['title'] = requestdata('title');
 
 		$parent = requestdata('in_reply_to_status_id');
 
 		// Twidere sends "-1" if it is no reply ...
-		if ($parent == -1)
+		if ($parent == -1) {
 			$parent = "";
+		}
 
-		if(ctype_digit($parent))
+		if (ctype_digit($parent)) {
 			$_REQUEST['parent'] = $parent;
-		else
+		} else {
 			$_REQUEST['parent_uri'] = $parent;
+		}
 
-		if(requestdata('lat') && requestdata('long'))
-			$_REQUEST['coord'] = sprintf("%s %s",requestdata('lat'),requestdata('long'));
+		if (requestdata('lat') && requestdata('long')) {
+			$_REQUEST['coord'] = sprintf("%s %s", requestdata('lat'), requestdata('long'));
+		}
 		$_REQUEST['profile_uid'] = api_user();
 
-		if($parent)
+		if ($parent) {
 			$_REQUEST['type'] = 'net-comment';
-		else {
+		} else {
 			// Check for throttling (maximum posts per day, week and month)
 			$throttle_day = get_config('system','throttle_limit_day');
 			if ($throttle_day > 0) {
@@ -1011,14 +1077,15 @@ use \Friendica\Core\Config;
 					AND `created` > '%s' AND `id` = `parent`",
 					intval(api_user()), dbesc($datefrom));
 
-				if ($r)
+				if (dbm::is_result($r)) {
 					$posts_day = $r[0]["posts_day"];
-				else
+				} else {
 					$posts_day = 0;
+				}
 
 				if ($posts_day > $throttle_day) {
 					logger('Daily posting limit reached for user '.api_user(), LOGGER_DEBUG);
-					#die(api_error($type, sprintf(t("Daily posting limit of %d posts reached. The post was rejected."), $throttle_day)));
+					// die(api_error($type, sprintf(t("Daily posting limit of %d posts reached. The post was rejected."), $throttle_day)));
 					throw new TooManyRequestsException(sprintf(t("Daily posting limit of %d posts reached. The post was rejected."), $throttle_day));
 				}
 			}
@@ -1031,16 +1098,16 @@ use \Friendica\Core\Config;
 					AND `created` > '%s' AND `id` = `parent`",
 					intval(api_user()), dbesc($datefrom));
 
-				if ($r)
+				if (dbm::is_result($r)) {
 					$posts_week = $r[0]["posts_week"];
-				else
+				} else {
 					$posts_week = 0;
+				}
 
 				if ($posts_week > $throttle_week) {
 					logger('Weekly posting limit reached for user '.api_user(), LOGGER_DEBUG);
-					#die(api_error($type, sprintf(t("Weekly posting limit of %d posts reached. The post was rejected."), $throttle_week)));
+					// die(api_error($type, sprintf(t("Weekly posting limit of %d posts reached. The post was rejected."), $throttle_week)));
 					throw new TooManyRequestsException(sprintf(t("Weekly posting limit of %d posts reached. The post was rejected."), $throttle_week));
-
 				}
 			}
 
@@ -1052,14 +1119,15 @@ use \Friendica\Core\Config;
 					AND `created` > '%s' AND `id` = `parent`",
 					intval(api_user()), dbesc($datefrom));
 
-				if ($r)
+				if (dbm::is_result($r)) {
 					$posts_month = $r[0]["posts_month"];
-				else
+				} else {
 					$posts_month = 0;
+				}
 
 				if ($posts_month > $throttle_month) {
 					logger('Monthly posting limit reached for user '.api_user(), LOGGER_DEBUG);
-					#die(api_error($type, sprintf(t("Monthly posting limit of %d posts reached. The post was rejected."), $throttle_month)));
+					// die(api_error($type, sprintf(t("Monthly posting limit of %d posts reached. The post was rejected."), $throttle_month)));
 					throw new TooManyRequestsException(sprintf(t("Monthly posting limit of %d posts reached. The post was rejected."), $throttle_month));
 				}
 			}
@@ -1067,23 +1135,24 @@ use \Friendica\Core\Config;
 			$_REQUEST['type'] = 'wall';
 		}
 
-		if(x($_FILES,'media')) {
+		if (x($_FILES, 'media')) {
 			// upload the image if we have one
-			$_REQUEST['hush']='yeah'; //tell wall_upload function to return img info instead of echo
+			$_REQUEST['hush'] = 'yeah'; //tell wall_upload function to return img info instead of echo
 			$media = wall_upload_post($a);
-			if(strlen($media)>0)
-				$_REQUEST['body'] .= "\n\n".$media;
+			if (strlen($media) > 0) {
+				$_REQUEST['body'] .= "\n\n" . $media;
+			}
 		}
 
 		// To-Do: Multiple IDs
 		if (requestdata('media_ids')) {
 			$r = q("SELECT `resource-id`, `scale`, `nickname`, `type` FROM `photo` INNER JOIN `user` ON `user`.`uid` = `photo`.`uid` WHERE `resource-id` IN (SELECT `resource-id` FROM `photo` WHERE `id` = %d) AND `scale` > 0 AND `photo`.`uid` = %d ORDER BY `photo`.`width` DESC LIMIT 1",
 				intval(requestdata('media_ids')), api_user());
-			if ($r) {
+			if (dbm::is_result($r)) {
 				$phototypes = Photo::supportedTypes();
 				$ext = $phototypes[$r[0]['type']];
-				$_REQUEST['body'] .= "\n\n".'[url='.App::get_baseurl().'/photos/'.$r[0]['nickname'].'/image/'.$r[0]['resource-id'].']';
-				$_REQUEST['body'] .= '[img]'.App::get_baseurl()."/photo/".$r[0]['resource-id']."-".$r[0]['scale'].".".$ext."[/img][/url]";
+				$_REQUEST['body'] .= "\n\n" . '[url=' . App::get_baseurl() . '/photos/' . $r[0]['nickname'] . '/image/' . $r[0]['resource-id'] . ']';
+				$_REQUEST['body'] .= '[img]' . App::get_baseurl() . '/photo/' . $r[0]['resource-id'] . '-' . $r[0]['scale'] . '.' . $ext . '[/img][/url]';
 			}
 		}
 
@@ -1091,38 +1160,39 @@ use \Friendica\Core\Config;
 
 		$_REQUEST['api_source'] = true;
 
-		if (!x($_REQUEST, "source"))
+		if (!x($_REQUEST, "source")) {
 			$_REQUEST["source"] = api_source();
+		}
 
 		// call out normal post function
-
 		item_post($a);
 
 		// this should output the last post (the one we just posted).
 		return api_status_show($type);
 	}
+
+	/// @TODO move to top of file or somwhere better
 	api_register_func('api/statuses/update','api_statuses_update', true, API_METHOD_POST);
 	api_register_func('api/statuses/update_with_media','api_statuses_update', true, API_METHOD_POST);
 
-
 	function api_media_upload($type) {
 
 		$a = get_app();
 
-		if (api_user()===false) {
+		if (api_user() === false) {
 			logger('no user');
 			throw new ForbiddenException();
 		}
 
 		$user_info = api_get_user($a);
 
-		if(!x($_FILES,'media')) {
+		if (!x($_FILES, 'media')) {
 			// Output error
 			throw new BadRequestException("No media.");
 		}
 
 		$media = wall_upload_post($a, false);
-		if(!$media) {
+		if (!$media) {
 			// Output error
 			throw new InternalServerErrorException();
 		}
@@ -1135,13 +1205,15 @@ use \Friendica\Core\Config;
 						"h" => $media["height"],
 						"image_type" => $media["type"]);
 
-		logger("Media uploaded: ".print_r($returndata, true), LOGGER_DEBUG);
+		logger("Media uploaded: " . print_r($returndata, true), LOGGER_DEBUG);
 
 		return array("media" => $returndata);
 	}
+
+	/// @TODO move to top of file or somwhere better
 	api_register_func('api/media/upload','api_media_upload', true, API_METHOD_POST);
 
-	function api_status_show($type){
+	function api_status_show($type) {
 
 		$a = get_app();
 
@@ -1149,10 +1221,11 @@ use \Friendica\Core\Config;
 
 		logger('api_status_show: user_info: '.print_r($user_info, true), LOGGER_DEBUG);
 
-		if ($type == "raw")
+		if ($type == "raw") {
 			$privacy_sql = "AND `item`.`allow_cid`='' AND `item`.`allow_gid`='' AND `item`.`deny_cid`='' AND `item`.`deny_gid`=''";
-		else
+		} else {
 			$privacy_sql = "";
+		}
 
 		// get last public wall message
 		$lastwall = q("SELECT `item`.*
@@ -1170,17 +1243,18 @@ use \Friendica\Core\Config;
 				dbesc(normalise_link($user_info['url']))
 		);
 
-		if (count($lastwall)>0){
+		if (dbm::is_result($lastwall)) {
 			$lastwall = $lastwall[0];
 
 			$in_reply_to = api_in_reply_to($lastwall);
 
 			$converted = api_convert_item($lastwall);
 
-			if ($type == "xml")
+			if ($type == "xml") {
 				$geo = "georss:point";
-			else
+			} else {
 				$geo = "geo";
+			}
 
 			$status_info = array(
 				'created_at' => api_date($lastwall['created']),
@@ -1210,16 +1284,19 @@ use \Friendica\Core\Config;
 				'statusnet_conversation_id'	=> $lastwall['parent'],
 			);
 
-			if (count($converted["attachments"]) > 0)
+			if (count($converted["attachments"]) > 0) {
 				$status_info["attachments"] = $converted["attachments"];
+			}
 
-			if (count($converted["entities"]) > 0)
+			if (count($converted["entities"]) > 0) {
 				$status_info["entities"] = $converted["entities"];
+			}
 
-			if (($lastwall['item_network'] != "") AND ($status["source"] == 'web'))
+			if (($lastwall['item_network'] != "") AND ($status["source"] == 'web')) {
 				$status_info["source"] = network_to_name($lastwall['item_network'], $user_info['url']);
-			elseif (($lastwall['item_network'] != "") AND (network_to_name($lastwall['item_network'], $user_info['url']) != $status_info["source"]))
+			} elseif (($lastwall['item_network'] != "") AND (network_to_name($lastwall['item_network'], $user_info['url']) != $status_info["source"])) {
 				$status_info["source"] = trim($status_info["source"].' ('.network_to_name($lastwall['item_network'], $user_info['url']).')');
+			}
 
 			// "uid" and "self" are only needed for some internal stuff, so remove it from here
 			unset($status_info["user"]["uid"]);
@@ -1228,23 +1305,20 @@ use \Friendica\Core\Config;
 
 		logger('status_info: '.print_r($status_info, true), LOGGER_DEBUG);
 
-		if ($type == "raw")
-			return($status_info);
+		if ($type == "raw") {
+			return $status_info;
+		}
 
-		return  api_format_data("statuses", $type, array('status' => $status_info));
+		return api_format_data("statuses", $type, array('status' => $status_info));
 
 	}
 
-
-
-
-
 	/**
 	 * Returns extended information of a given user, specified by ID or screen name as per the required id parameter.
 	 * The author's most recent status will be returned inline.
 	 * http://developer.twitter.com/doc/get/users/show
 	 */
-	function api_users_show($type){
+	function api_users_show($type) {
 
 		$a = get_app();
 
@@ -1267,17 +1341,18 @@ use \Friendica\Core\Config;
 				dbesc(normalise_link($user_info['url']))
 		);
 
-		if (count($lastwall)>0){
+		if (dbm::is_result($lastwall)) {
 			$lastwall = $lastwall[0];
 
 			$in_reply_to = api_in_reply_to($lastwall);
 
 			$converted = api_convert_item($lastwall);
 
-			if ($type == "xml")
+			if ($type == "xml") {
 				$geo = "georss:point";
-			else
+			} else {
 				$geo = "geo";
+			}
 
 			$user_info['status'] = array(
 				'text' => $converted["text"],
@@ -1293,20 +1368,25 @@ use \Friendica\Core\Config;
 				'in_reply_to_screen_name' => $in_reply_to['screen_name'],
 				$geo => NULL,
 				'favorited' => $lastwall['starred'] ? true : false,
-				'statusnet_html'		=> $converted["html"],
+				'statusnet_html' => $converted["html"],
 				'statusnet_conversation_id'	=> $lastwall['parent'],
 			);
 
-			if (count($converted["attachments"]) > 0)
+			if (count($converted["attachments"]) > 0) {
 				$user_info["status"]["attachments"] = $converted["attachments"];
+			}
 
-			if (count($converted["entities"]) > 0)
+			if (count($converted["entities"]) > 0) {
 				$user_info["status"]["entities"] = $converted["entities"];
+			}
 
-			if (($lastwall['item_network'] != "") AND ($user_info["status"]["source"] == 'web'))
+			if (($lastwall['item_network'] != "") AND ($user_info["status"]["source"] == 'web')) {
 				$user_info["status"]["source"] = network_to_name($lastwall['item_network'], $user_info['url']);
-			if (($lastwall['item_network'] != "") AND (network_to_name($lastwall['item_network'], $user_info['url']) != $user_info["status"]["source"]))
-				$user_info["status"]["source"] = trim($user_info["status"]["source"].' ('.network_to_name($lastwall['item_network'], $user_info['url']).')');
+			}
+
+			if (($lastwall['item_network'] != "") AND (network_to_name($lastwall['item_network'], $user_info['url']) != $user_info["status"]["source"])) {
+				$user_info["status"]["source"] = trim($user_info["status"]["source"] . ' (' . network_to_name($lastwall['item_network'], $user_info['url']) . ')');
+			}
 
 		}
 
@@ -1314,34 +1394,38 @@ use \Friendica\Core\Config;
 		unset($user_info["uid"]);
 		unset($user_info["self"]);
 
-		return  api_format_data("user", $type, array('user' => $user_info));
+		return api_format_data("user", $type, array('user' => $user_info));
 
 	}
-	api_register_func('api/users/show','api_users_show');
 
+	/// @TODO move to top of file or somewhere better
+	api_register_func('api/users/show','api_users_show');
 
 	function api_users_search($type) {
 
 		$a = get_app();
 
-		$page = (x($_REQUEST,'page')?$_REQUEST['page']-1:0);
+		$page = (x($_REQUEST, 'page') ? $_REQUEST['page'] - 1 : 0);
 
 		$userlist = array();
 
-		if (isset($_GET["q"])) {
+		if (x($_GET, 'q')) {
 			$r = q("SELECT id FROM `contact` WHERE `uid` = 0 AND `name` = '%s'", dbesc($_GET["q"]));
-			if (!dbm::is_result($r))
+
+			if (!dbm::is_result($r)) {
 				$r = q("SELECT `id` FROM `contact` WHERE `uid` = 0 AND `nick` = '%s'", dbesc($_GET["q"]));
+			}
 
 			if (dbm::is_result($r)) {
 				$k = 0;
 				foreach ($r AS $user) {
 					$user_info = api_get_user($a, $user["id"], "json");
 
-					if ($type == "xml")
+					if ($type == "xml") {
 						$userlist[$k++.":user"] = $user_info;
-					else
+					} else {
 						$userlist[] = $user_info;
+					}
 				}
 				$userlist = array("users" => $userlist);
 			} else {
@@ -1353,6 +1437,7 @@ use \Friendica\Core\Config;
 		return api_format_data("users", $type, $userlist);
 	}
 
+	/// @TODO move to top of file or somewhere better
 	api_register_func('api/users/search','api_users_search');
 
 	/**
@@ -1362,11 +1447,13 @@ use \Friendica\Core\Config;
 	 * TODO: Optional parameters
 	 * TODO: Add reply info
 	 */
-	function api_statuses_home_timeline($type){
+	function api_statuses_home_timeline($type) {
 
 		$a = get_app();
 
-		if (api_user()===false) throw new ForbiddenException();
+		if (api_user() === false) {
+			throw new ForbiddenException();
+		}
 
 		unset($_REQUEST["user_id"]);
 		unset($_GET["user_id"]);
@@ -1378,24 +1465,29 @@ use \Friendica\Core\Config;
 		// get last newtork messages
 
 		// params
-		$count = (x($_REQUEST,'count')?$_REQUEST['count']:20);
-		$page = (x($_REQUEST,'page')?$_REQUEST['page']-1:0);
-		if ($page<0) $page=0;
-		$since_id = (x($_REQUEST,'since_id')?$_REQUEST['since_id']:0);
-		$max_id = (x($_REQUEST,'max_id')?$_REQUEST['max_id']:0);
-		//$since_id = 0;//$since_id = (x($_REQUEST,'since_id')?$_REQUEST['since_id']:0);
-		$exclude_replies = (x($_REQUEST,'exclude_replies')?1:0);
-		$conversation_id = (x($_REQUEST,'conversation_id')?$_REQUEST['conversation_id']:0);
+		$count = (x($_REQUEST, 'count') ? $_REQUEST['count'] : 20);
+		$page = (x($_REQUEST, 'page') ? $_REQUEST['page'] - 1 : 0);
+		if ($page < 0) {
+			$page = 0;
+		}
+		$since_id = (x($_REQUEST, 'since_id') ? $_REQUEST['since_id'] : 0);
+		$max_id = (x($_REQUEST, 'max_id') ? $_REQUEST['max_id'] : 0);
+		//$since_id = 0;//$since_id = (x($_REQUEST, 'since_id')?$_REQUEST['since_id'] : 0);
+		$exclude_replies = (x($_REQUEST, 'exclude_replies') ? 1 : 0);
+		$conversation_id = (x($_REQUEST, 'conversation_id') ? $_REQUEST['conversation_id'] : 0);
 
-		$start = $page*$count;
+		$start = $page * $count;
 
 		$sql_extra = '';
-		if ($max_id > 0)
-			$sql_extra .= ' AND `item`.`id` <= '.intval($max_id);
-		if ($exclude_replies > 0)
+		if ($max_id > 0) {
+			$sql_extra .= ' AND `item`.`id` <= ' . intval($max_id);
+		}
+		if ($exclude_replies > 0) {
 			$sql_extra .= ' AND `item`.`parent` = `item`.`id`';
-		if ($conversation_id > 0)
-			$sql_extra .= ' AND `item`.`parent` = '.intval($conversation_id);
+		}
+		if ($conversation_id > 0) {
+			$sql_extra .= ' AND `item`.`parent` = ' . intval($conversation_id);
+		}
 
 		$r = q("SELECT `item`.*, `item`.`id` AS `item_id`, `item`.`network` AS `item_network`,
 			`contact`.`name`, `contact`.`photo`, `contact`.`url`, `contact`.`rel`,
@@ -1415,63 +1507,73 @@ use \Friendica\Core\Config;
 			intval($start),	intval($count)
 		);
 
-		$ret = api_format_items($r,$user_info, false, $type);
+		$ret = api_format_items($r, $user_info, false, $type);
 
 		// Set all posts from the query above to seen
 		$idarray = array();
-		foreach ($r AS $item)
+		foreach ($r AS $item) {
 			$idarray[] = intval($item["id"]);
+		}
 
 		$idlist = implode(",", $idarray);
 
 		if ($idlist != "") {
 			$unseen = q("SELECT `id` FROM `item` WHERE `unseen` AND `id` IN (%s)", $idlist);
 
-			if ($unseen)
+			if ($unseen) {
 				$r = q("UPDATE `item` SET `unseen` = 0 WHERE `unseen` AND `id` IN (%s)", $idlist);
+			}
 		}
 
 		$data = array('status' => $ret);
-		switch($type){
+		switch ($type) {
 			case "atom":
 			case "rss":
 				$data = api_rss_extra($a, $data, $user_info);
 				break;
 		}
 
-		return  api_format_data("statuses", $type, $data);
+		return api_format_data("statuses", $type, $data);
 	}
+
+	/// @TODO move to top of file or somewhere better
 	api_register_func('api/statuses/home_timeline','api_statuses_home_timeline', true);
 	api_register_func('api/statuses/friends_timeline','api_statuses_home_timeline', true);
 
-	function api_statuses_public_timeline($type){
+	function api_statuses_public_timeline($type) {
 
 		$a = get_app();
 
-		if (api_user()===false) throw new ForbiddenException();
+		if (api_user() === false) {
+			throw new ForbiddenException();
+		}
 
 		$user_info = api_get_user($a);
 		// get last newtork messages
 
-
 		// params
-		$count = (x($_REQUEST,'count')?$_REQUEST['count']:20);
-		$page = (x($_REQUEST,'page')?$_REQUEST['page']-1:0);
-		if ($page<0) $page=0;
-		$since_id = (x($_REQUEST,'since_id')?$_REQUEST['since_id']:0);
-		$max_id = (x($_REQUEST,'max_id')?$_REQUEST['max_id']:0);
-		//$since_id = 0;//$since_id = (x($_REQUEST,'since_id')?$_REQUEST['since_id']:0);
-		$exclude_replies = (x($_REQUEST,'exclude_replies')?1:0);
-		$conversation_id = (x($_REQUEST,'conversation_id')?$_REQUEST['conversation_id']:0);
+		$count = (x($_REQUEST, 'count') ? $_REQUEST['count'] : 20);
+		$page = (x($_REQUEST, 'page') ? $_REQUEST['page'] -1 : 0);
+		if ($page < 0) {
+			$page = 0;
+		}
+		$since_id = (x($_REQUEST, 'since_id') ? $_REQUEST['since_id'] : 0);
+		$max_id = (x($_REQUEST, 'max_id') ? $_REQUEST['max_id'] : 0);
+		//$since_id = 0;//$since_id = (x($_REQUEST, 'since_id')?$_REQUEST['since_id'] : 0);
+		$exclude_replies = (x($_REQUEST, 'exclude_replies') ? 1 : 0);
+		$conversation_id = (x($_REQUEST, 'conversation_id') ? $_REQUEST['conversation_id'] : 0);
 
-		$start = $page*$count;
+		$start = $page * $count;
 
-		if ($max_id > 0)
-			$sql_extra = 'AND `item`.`id` <= '.intval($max_id);
-		if ($exclude_replies > 0)
+		if ($max_id > 0) {
+			$sql_extra = 'AND `item`.`id` <= ' . intval($max_id);
+		}
+		if ($exclude_replies > 0) {
 			$sql_extra .= ' AND `item`.`parent` = `item`.`id`';
-		if ($conversation_id > 0)
-			$sql_extra .= ' AND `item`.`parent` = '.intval($conversation_id);
+		}
+		if ($conversation_id > 0) {
+			$sql_extra .= ' AND `item`.`parent` = ' . intval($conversation_id);
+		}
 
 		$r = q("SELECT `item`.*, `item`.`id` AS `item_id`, `item`.`network` AS `item_network`,
 			`contact`.`name`, `contact`.`photo`, `contact`.`url`, `contact`.`rel`,
@@ -1495,51 +1597,57 @@ use \Friendica\Core\Config;
 			intval($start),
 			intval($count));
 
-		$ret = api_format_items($r,$user_info, false, $type);
-
+		$ret = api_format_items($r, $user_info, false, $type);
 
 		$data = array('status' => $ret);
-		switch($type){
+		switch ($type) {
 			case "atom":
 			case "rss":
 				$data = api_rss_extra($a, $data, $user_info);
 				break;
 		}
 
-		return  api_format_data("statuses", $type, $data);
+		return api_format_data("statuses", $type, $data);
 	}
+
+	/// @TODO move to top of file or somewhere better
 	api_register_func('api/statuses/public_timeline','api_statuses_public_timeline', true);
 
 	/**
-	 *
+	 * @TODO nothing to say?
 	 */
-	function api_statuses_show($type){
+	function api_statuses_show($type) {
 
 		$a = get_app();
 
-		if (api_user()===false) throw new ForbiddenException();
+		if (api_user() === false) {
+			throw new ForbiddenException();
+		}
 
 		$user_info = api_get_user($a);
 
 		// params
 		$id = intval($a->argv[3]);
 
-		if ($id == 0)
+		if ($id == 0) {
 			$id = intval($_REQUEST["id"]);
+		}
 
 		// Hotot workaround
-		if ($id == 0)
+		if ($id == 0) {
 			$id = intval($a->argv[4]);
+		}
 
-		logger('API: api_statuses_show: '.$id);
+		logger('API: api_statuses_show: ' . $id);
 
-		$conversation = (x($_REQUEST,'conversation')?1:0);
+		$conversation = (x($_REQUEST, 'conversation') ? 1 : 0);
 
 		$sql_extra = '';
-		if ($conversation)
+		if ($conversation) {
 			$sql_extra .= " AND `item`.`parent` = %d ORDER BY `id` ASC ";
-		else
+		} else {
 			$sql_extra .= " AND `item`.`id` = %d";
+		}
 
 		$r = q("SELECT `item`.*, `item`.`id` AS `item_id`, `item`.`network` AS `item_network`,
 			`contact`.`name`, `contact`.`photo`, `contact`.`url`, `contact`.`rel`,
@@ -1556,7 +1664,8 @@ use \Friendica\Core\Config;
 			intval($id)
 		);
 
-		if (!$r) {
+		/// @TODO How about copying this to above methods which don't check $r ?
+		if (!dbm::is_result($r)) {
 			throw new BadRequestException("There is no status with this id.");
 		}
 
@@ -1567,50 +1676,59 @@ use \Friendica\Core\Config;
 			return api_format_data("statuses", $type, $data);
 		} else {
 			$data = array('status' => $ret[0]);
-			return  api_format_data("status", $type, $data);
+			return api_format_data("status", $type, $data);
 		}
 	}
+
+	/// @TODO move to top of file or somewhere better
 	api_register_func('api/statuses/show','api_statuses_show', true);
 
-
 	/**
-	 *
+	 * @TODO nothing to say?
 	 */
-	function api_conversation_show($type){
+	function api_conversation_show($type) {
 
 		$a = get_app();
 
-		if (api_user()===false) throw new ForbiddenException();
+		if (api_user() === false) {
+			throw new ForbiddenException();
+		}
 
 		$user_info = api_get_user($a);
 
 		// params
 		$id = intval($a->argv[3]);
-		$count = (x($_REQUEST,'count')?$_REQUEST['count']:20);
-		$page = (x($_REQUEST,'page')?$_REQUEST['page']-1:0);
-		if ($page<0) $page=0;
-		$since_id = (x($_REQUEST,'since_id')?$_REQUEST['since_id']:0);
-		$max_id = (x($_REQUEST,'max_id')?$_REQUEST['max_id']:0);
+		$count = (x($_REQUEST, 'count') ? $_REQUEST['count'] : 20);
+		$page = (x($_REQUEST, 'page') ? $_REQUEST['page'] - 1 : 0);
+		if ($page < 0) {
+			$page = 0;
+		}
+		$since_id = (x($_REQUEST, 'since_id') ? $_REQUEST['since_id'] : 0);
+		$max_id = (x($_REQUEST, 'max_id') ? $_REQUEST['max_id'] : 0);
 
 		$start = $page*$count;
 
-		if ($id == 0)
+		if ($id == 0) {
 			$id = intval($_REQUEST["id"]);
+		}
 
 		// Hotot workaround
-		if ($id == 0)
+		if ($id == 0) {
 			$id = intval($a->argv[4]);
+		}
 
 		logger('API: api_conversation_show: '.$id);
 
 		$r = q("SELECT `parent` FROM `item` WHERE `id` = %d", intval($id));
-		if ($r)
+		if (dbm::is_result($r)) {
 			$id = $r[0]["parent"];
+		}
 
 		$sql_extra = '';
 
-		if ($max_id > 0)
-			$sql_extra = ' AND `item`.`id` <= '.intval($max_id);
+		if ($max_id > 0) {
+			$sql_extra = ' AND `item`.`id` <= ' . intval($max_id);
+		}
 
 		// Not sure why this query was so complicated. We should keep it here for a while,
 		// just to make sure that we really don't need it.
@@ -1635,39 +1753,45 @@ use \Friendica\Core\Config;
 			intval($start), intval($count)
 		);
 
-		if (!$r)
-			throw new BadRequestException("There is no conversation with this id.");
+		if (!dbm::is_result($r)) {
+			throw new BadRequestException("There is no status with this id.");
+		}
 
-		$ret = api_format_items($r,$user_info, false, $type);
+		$ret = api_format_items($r, $user_info, false, $type);
 
 		$data = array('status' => $ret);
 		return api_format_data("statuses", $type, $data);
 	}
+
+	/// @TODO move to top of file or somewhere better
 	api_register_func('api/conversation/show','api_conversation_show', true);
 	api_register_func('api/statusnet/conversation','api_conversation_show', true);
 
-
 	/**
-	 *
+	 * @TODO nothing to say?
 	 */
-	function api_statuses_repeat($type){
+	function api_statuses_repeat($type) {
 		global $called_api;
 
 		$a = get_app();
 
-		if (api_user()===false) throw new ForbiddenException();
+		if (api_user() === false) {
+			throw new ForbiddenException();
+		}
 
 		$user_info = api_get_user($a);
 
 		// params
 		$id = intval($a->argv[3]);
 
-		if ($id == 0)
+		if ($id == 0) {
 			$id = intval($_REQUEST["id"]);
+		}
 
 		// Hotot workaround
-		if ($id == 0)
+		if ($id == 0) {
 			$id = intval($a->argv[4]);
+		}
 
 		logger('API: api_statuses_repeat: '.$id);
 
@@ -1686,7 +1810,8 @@ use \Friendica\Core\Config;
 			intval($id)
 		);
 
-		if ($r[0]['body'] != "") {
+		/// @TODO other style than above functions!
+		if (dbm::is_result($r) && $r[0]['body'] != "") {
 			if (strpos($r[0]['body'], "[/share]") !== false) {
 				$pos = strpos($r[0]['body'], "[share");
 				$post = substr($r[0]['body'], $pos);
@@ -1701,39 +1826,47 @@ use \Friendica\Core\Config;
 			$_REQUEST['type'] = 'wall';
 			$_REQUEST['api_source'] = true;
 
-			if (!x($_REQUEST, "source"))
+			if (!x($_REQUEST, "source")) {
 				$_REQUEST["source"] = api_source();
+			}
 
 			item_post($a);
-		} else
+		} else {
 			throw new ForbiddenException();
+		}
 
 		// this should output the last post (the one we just posted).
 		$called_api = null;
-		return(api_status_show($type));
+		return api_status_show($type);
 	}
+
+	/// @TODO move to top of file or somewhere better
 	api_register_func('api/statuses/retweet','api_statuses_repeat', true, API_METHOD_POST);
 
 	/**
-	 *
+	 * @TODO nothing to say?
 	 */
-	function api_statuses_destroy($type){
+	function api_statuses_destroy($type) {
 
 		$a = get_app();
 
-		if (api_user()===false) throw new ForbiddenException();
+		if (api_user() === false) {
+			throw new ForbiddenException();
+		}
 
 		$user_info = api_get_user($a);
 
 		// params
 		$id = intval($a->argv[3]);
 
-		if ($id == 0)
+		if ($id == 0) {
 			$id = intval($_REQUEST["id"]);
+		}
 
 		// Hotot workaround
-		if ($id == 0)
+		if ($id == 0) {
 			$id = intval($a->argv[4]);
+		}
 
 		logger('API: api_statuses_destroy: '.$id);
 
@@ -1741,20 +1874,23 @@ use \Friendica\Core\Config;
 
 		drop_item($id, false);
 
-		return($ret);
+		return $ret;
 	}
+
+	/// @TODO move to top of file or somewhere better
 	api_register_func('api/statuses/destroy','api_statuses_destroy', true, API_METHOD_DELETE);
 
 	/**
-	 *
+	 * @TODO Nothing more than an URL to say?
 	 * http://developer.twitter.com/doc/get/statuses/mentions
-	 *
 	 */
-	function api_statuses_mentions($type){
+	function api_statuses_mentions($type) {
 
 		$a = get_app();
 
-		if (api_user()===false) throw new ForbiddenException();
+		if (api_user() === false) {
+			throw new ForbiddenException();
+		}
 
 		unset($_REQUEST["user_id"]);
 		unset($_GET["user_id"]);
@@ -1767,24 +1903,27 @@ use \Friendica\Core\Config;
 
 
 		// params
-		$count = (x($_REQUEST,'count')?$_REQUEST['count']:20);
-		$page = (x($_REQUEST,'page')?$_REQUEST['page']-1:0);
-		if ($page<0) $page=0;
-		$since_id = (x($_REQUEST,'since_id')?$_REQUEST['since_id']:0);
-		$max_id = (x($_REQUEST,'max_id')?$_REQUEST['max_id']:0);
-		//$since_id = 0;//$since_id = (x($_REQUEST,'since_id')?$_REQUEST['since_id']:0);
+		$count = (x($_REQUEST, 'count') ? $_REQUEST['count'] : 20);
+		$page = (x($_REQUEST, 'page') ? $_REQUEST['page'] -1 : 0);
+		if ($page < 0) {
+			$page = 0;
+		}
+		$since_id = (x($_REQUEST, 'since_id') ? $_REQUEST['since_id'] : 0);
+		$max_id = (x($_REQUEST, 'max_id') ? $_REQUEST['max_id'] : 0);
+		//$since_id = 0;//$since_id = (x($_REQUEST, 'since_id')?$_REQUEST['since_id'] : 0);
 
-		$start = $page*$count;
+		$start = $page * $count;
 
 		// Ugly code - should be changed
 		$myurl = App::get_baseurl() . '/profile/'. $a->user['nickname'];
-		$myurl = substr($myurl,strpos($myurl,'://')+3);
+		$myurl = substr($myurl,strpos($myurl, '://') + 3);
 		//$myurl = str_replace(array('www.','.'),array('','\\.'),$myurl);
-		$myurl = str_replace('www.','',$myurl);
-		$diasp_url = str_replace('/profile/','/u/',$myurl);
+		$myurl = str_replace('www.', '', $myurl);
+		$diasp_url = str_replace('/profile/', '/u/', $myurl);
 
-		if ($max_id > 0)
-			$sql_extra = ' AND `item`.`id` <= '.intval($max_id);
+		if ($max_id > 0) {
+			$sql_extra = ' AND `item`.`id` <= ' . intval($max_id);
+		}
 
 		$r = q("SELECT `item`.*, `item`.`id` AS `item_id`, `item`.`network` AS `item_network`,
 			`contact`.`name`, `contact`.`photo`, `contact`.`url`, `contact`.`rel`,
@@ -1809,28 +1948,30 @@ use \Friendica\Core\Config;
 			intval($start),	intval($count)
 		);
 
-		$ret = api_format_items($r,$user_info, false, $type);
-
+		$ret = api_format_items($r, $user_info, false, $type);
 
 		$data = array('status' => $ret);
-		switch($type){
+		switch ($type) {
 			case "atom":
 			case "rss":
 				$data = api_rss_extra($a, $data, $user_info);
 				break;
 		}
 
-		return  api_format_data("statuses", $type, $data);
+		return api_format_data("statuses", $type, $data);
 	}
+
+	/// @TODO move to top of file or somewhere better
 	api_register_func('api/statuses/mentions','api_statuses_mentions', true);
 	api_register_func('api/statuses/replies','api_statuses_mentions', true);
 
-
-	function api_statuses_user_timeline($type){
+	function api_statuses_user_timeline($type) {
 
 		$a = get_app();
 
-		if (api_user()===false) throw new ForbiddenException();
+		if (api_user() === false) {
+			throw new ForbiddenException();
+		}
 
 		$user_info = api_get_user($a);
 		// get last network messages
@@ -1841,24 +1982,29 @@ use \Friendica\Core\Config;
 			   LOGGER_DEBUG);
 
 		// params
-		$count = (x($_REQUEST,'count')?$_REQUEST['count']:20);
-		$page = (x($_REQUEST,'page')?$_REQUEST['page']-1:0);
-		if ($page<0) $page=0;
-		$since_id = (x($_REQUEST,'since_id')?$_REQUEST['since_id']:0);
-		//$since_id = 0;//$since_id = (x($_REQUEST,'since_id')?$_REQUEST['since_id']:0);
-		$exclude_replies = (x($_REQUEST,'exclude_replies')?1:0);
-		$conversation_id = (x($_REQUEST,'conversation_id')?$_REQUEST['conversation_id']:0);
+		$count = (x($_REQUEST, 'count') ? $_REQUEST['count'] : 20);
+		$page = (x($_REQUEST, 'page') ? $_REQUEST['page'] -1 : 0);
+		if ($page < 0) {
+			$page = 0;
+		}
+		$since_id = (x($_REQUEST, 'since_id') ? $_REQUEST['since_id'] : 0);
+		//$since_id = 0;//$since_id = (x($_REQUEST, 'since_id')?$_REQUEST['since_id'] : 0);
+		$exclude_replies = (x($_REQUEST, 'exclude_replies') ? 1 : 0);
+		$conversation_id = (x($_REQUEST, 'conversation_id') ? $_REQUEST['conversation_id'] : 0);
 
-		$start = $page*$count;
+		$start = $page * $count;
 
 		$sql_extra = '';
-		if ($user_info['self']==1)
+		if ($user_info['self'] == 1) {
 			$sql_extra .= " AND `item`.`wall` = 1 ";
+		}
 
-		if ($exclude_replies > 0)
+		if ($exclude_replies > 0) {
 			$sql_extra .= ' AND `item`.`parent` = `item`.`id`';
-		if ($conversation_id > 0)
-			$sql_extra .= ' AND `item`.`parent` = '.intval($conversation_id);
+		}
+		if ($conversation_id > 0) {
+			$sql_extra .= ' AND `item`.`parent` = ' . intval($conversation_id);
+		}
 
 		$r = q("SELECT `item`.*, `item`.`id` AS `item_id`, `item`.`network` AS `item_network`,
 			`contact`.`name`, `contact`.`photo`, `contact`.`url`, `contact`.`rel`,
@@ -1880,19 +2026,21 @@ use \Friendica\Core\Config;
 			intval($start),	intval($count)
 		);
 
-		$ret = api_format_items($r,$user_info, true, $type);
+		$ret = api_format_items($r, $user_info, true, $type);
 
 		$data = array('status' => $ret);
-		switch($type){
+		switch ($type) {
 			case "atom":
 			case "rss":
 				$data = api_rss_extra($a, $data, $user_info);
+				break;
 		}
 
-		return  api_format_data("statuses", $type, $data);
+		return api_format_data("statuses", $type, $data);
 	}
-	api_register_func('api/statuses/user_timeline','api_statuses_user_timeline', true);
 
+	/// @TODO move to top of file or somwhere better
+	api_register_func('api/statuses/user_timeline','api_statuses_user_timeline', true);
 
 	/**
 	 * Star/unstar an item
@@ -1900,49 +2048,59 @@ use \Friendica\Core\Config;
 	 *
 	 * api v1 : https://web.archive.org/web/20131019055350/https://dev.twitter.com/docs/api/1/post/favorites/create/%3Aid
 	 */
-	function api_favorites_create_destroy($type){
+	function api_favorites_create_destroy($type) {
 
 		$a = get_app();
 
-		if (api_user()===false) throw new ForbiddenException();
+		if (api_user() === false) {
+			throw new ForbiddenException();
+		}
 
 		// for versioned api.
 		/// @TODO We need a better global soluton
-		$action_argv_id=2;
-		if ($a->argv[1]=="1.1") $action_argv_id=3;
+		$action_argv_id = 2;
+		if ($a->argv[1] == "1.1") {
+			$action_argv_id = 3;
+		}
 
-		if ($a->argc<=$action_argv_id) throw new BadRequestException("Invalid request.");
-		$action = str_replace(".".$type,"",$a->argv[$action_argv_id]);
-		if ($a->argc==$action_argv_id+2) {
-			$itemid = intval($a->argv[$action_argv_id+1]);
+		if ($a->argc <= $action_argv_id) {
+			throw new BadRequestException("Invalid request.");
+		}
+		$action = str_replace("." . $type, "", $a->argv[$action_argv_id]);
+		if ($a->argc == $action_argv_id + 2) {
+			$itemid = intval($a->argv[$action_argv_id + 1]);
 		} else {
+			///  @TODO use x() to check if _REQUEST contains 'id'
 			$itemid = intval($_REQUEST['id']);
 		}
 
-		$item = q("SELECT * FROM item WHERE id=%d AND uid=%d",
+		$item = q("SELECT * FROM `item` WHERE `id`=%d AND `uid`=%d LIMIT 1",
 				$itemid, api_user());
 
-		if ($item===false || count($item)==0)
+		if (!dbm::is_result($item) || count($item) == 0) {
 			throw new BadRequestException("Invalid item.");
+		}
 
-		switch($action){
+		switch ($action) {
 			case "create":
-				$item[0]['starred']=1;
+				$item[0]['starred'] = 1;
 				break;
 			case "destroy":
-				$item[0]['starred']=0;
+				$item[0]['starred'] = 0;
 				break;
 			default:
 				throw new BadRequestException("Invalid action ".$action);
 		}
+
 		$r = q("UPDATE item SET starred=%d WHERE id=%d AND uid=%d",
 				$item[0]['starred'], $itemid, api_user());
 
 		q("UPDATE thread SET starred=%d WHERE iid=%d AND uid=%d",
 			$item[0]['starred'], $itemid, api_user());
 
-		if ($r===false)
-			throw InternalServerErrorException("DB error");
+		if ($r === false) {
+			throw new InternalServerErrorException("DB error");
+		}
 
 
 		$user_info = api_get_user($a);
@@ -1950,7 +2108,7 @@ use \Friendica\Core\Config;
 		$ret = $rets[0];
 
 		$data = array('status' => $ret);
-		switch($type){
+		switch ($type) {
 			case "atom":
 			case "rss":
 				$data = api_rss_extra($a, $data, $user_info);
@@ -1958,17 +2116,21 @@ use \Friendica\Core\Config;
 
 		return api_format_data("status", $type, $data);
 	}
+
+	/// @TODO move to top of file or somwhere better
 	api_register_func('api/favorites/create', 'api_favorites_create_destroy', true, API_METHOD_POST);
 	api_register_func('api/favorites/destroy', 'api_favorites_create_destroy', true, API_METHOD_DELETE);
 
-	function api_favorites($type){
+	function api_favorites($type) {
 		global $called_api;
 
 		$a = get_app();
 
-		if (api_user()===false) throw new ForbiddenException();
+		if (api_user() === false) {
+			throw new ForbiddenException();
+		}
 
-		$called_api= array();
+		$called_api = array();
 
 		$user_info = api_get_user($a);
 
@@ -1976,22 +2138,25 @@ use \Friendica\Core\Config;
 		// return favorites only for self
 		logger('api_favorites: self:' . $user_info['self']);
 
-		if ($user_info['self']==0) {
+		if ($user_info['self'] == 0) {
 			$ret = array();
 		} else {
 			$sql_extra = "";
 
 			// params
-			$since_id = (x($_REQUEST,'since_id')?$_REQUEST['since_id']:0);
-			$max_id = (x($_REQUEST,'max_id')?$_REQUEST['max_id']:0);
-			$count = (x($_GET,'count')?$_GET['count']:20);
-			$page = (x($_REQUEST,'page')?$_REQUEST['page']-1:0);
-			if ($page<0) $page=0;
+			$since_id = (x($_REQUEST, 'since_id') ? $_REQUEST['since_id'] : 0);
+			$max_id = (x($_REQUEST, 'max_id') ? $_REQUEST['max_id'] : 0);
+			$count = (x($_GET, 'count') ? $_GET['count'] : 20);
+			$page = (x($_REQUEST, 'page') ? $_REQUEST['page'] -1 : 0);
+			if ($page < 0) {
+				$page = 0;
+			}
 
 			$start = $page*$count;
 
-			if ($max_id > 0)
-				$sql_extra .= ' AND `item`.`id` <= '.intval($max_id);
+			if ($max_id > 0) {
+				$sql_extra .= ' AND `item`.`id` <= ' . intval($max_id);
+			}
 
 			$r = q("SELECT `item`.*, `item`.`id` AS `item_id`, `item`.`network` AS `item_network`,
 				`contact`.`name`, `contact`.`photo`, `contact`.`url`, `contact`.`rel`,
@@ -2016,14 +2181,16 @@ use \Friendica\Core\Config;
 		}
 
 		$data = array('status' => $ret);
-		switch($type){
+		switch ($type) {
 			case "atom":
 			case "rss":
 				$data = api_rss_extra($a, $data, $user_info);
 		}
 
-		return  api_format_data("statuses", $type, $data);
+		return api_format_data("statuses", $type, $data);
 	}
+
+	/// @TODO move to top of file or somwhere better
 	api_register_func('api/favorites','api_favorites', true);
 
 	function api_format_messages($item, $recipient, $sender) {
@@ -2038,9 +2205,9 @@ use \Friendica\Core\Config;
 				'recipient_screen_name' => $recipient['screen_name'],
 				'sender'                => $sender,
 				'recipient'             => $recipient,
-				'title'			=> "",
-				'friendica_seen'	=> $item['seen'],
-				'friendica_parent_uri'	=> $item['parent-uri'],
+				'title'                 => "",
+				'friendica_seen'        => $item['seen'],
+				'friendica_parent_uri'  => $item['parent-uri'],
 		);
 
 		// "uid" and "self" are only needed for some internal stuff, so remove it from here
@@ -2052,18 +2219,16 @@ use \Friendica\Core\Config;
 		//don't send title to regular StatusNET requests to avoid confusing these apps
 		if (x($_GET, 'getText')) {
 			$ret['title'] = $item['title'] ;
-			if ($_GET["getText"] == "html") {
+			if ($_GET['getText'] == 'html') {
 				$ret['text'] = bbcode($item['body'], false, false);
-			}
-			elseif ($_GET["getText"] == "plain") {
+			} elseif ($_GET['getText'] == 'plain') {
 				//$ret['text'] = html2plain(bbcode($item['body'], false, false, true), 0);
 				$ret['text'] = trim(html2plain(bbcode(api_clean_plain_items($item['body']), false, false, 2, true), 0));
 			}
+		} else {
+			$ret['text'] = $item['title'] . "\n" . html2plain(bbcode(api_clean_plain_items($item['body']), false, false, 2, true), 0);
 		}
-		else {
-			$ret['text'] = $item['title']."\n".html2plain(bbcode(api_clean_plain_items($item['body']), false, false, 2, true), 0);
-		}
-		if (isset($_GET["getUserObjects"]) && $_GET["getUserObjects"] == "false") {
+		if (x($_GET, 'getUserObjects') && $_GET['getUserObjects'] == 'false') {
 			unset($ret['sender']);
 			unset($ret['recipient']);
 		}
@@ -2084,13 +2249,15 @@ use \Friendica\Core\Config;
 
 		$statustitle = trim($item['title']);
 
-		if (($statustitle != '') and (strpos($statusbody, $statustitle) !== false))
+		if (($statustitle != '') and (strpos($statusbody, $statustitle) !== false)) {
 			$statustext = trim($statusbody);
-		else
+		} else {
 			$statustext = trim($statustitle."\n\n".$statusbody);
+		}
 
-		if (($item["network"] == NETWORK_FEED) and (strlen($statustext)> 1000))
+		if (($item["network"] == NETWORK_FEED) and (strlen($statustext)> 1000)) {
 			$statustext = substr($statustext, 0, 1000)."... \n".$item["plink"];
+		}
 
 		$statushtml = trim(bbcode($body, false, false));
 
@@ -2104,8 +2271,9 @@ use \Friendica\Core\Config;
 				"\n
", "
\n", "\n
", "
\n"); $statushtml = str_replace($search, $replace, $statushtml); - if ($item['title'] != "") - $statushtml = "

".bbcode($item['title'])."

\n".$statushtml; + if ($item['title'] != "") { + $statushtml = "

" . bbcode($item['title']) . "

\n" . $statushtml; + } $entities = api_get_entitities($statustext, $body); @@ -2125,21 +2293,25 @@ use \Friendica\Core\Config; $URLSearchString = "^\[\]"; $ret = preg_match_all("/\[img\]([$URLSearchString]*)\[\/img\]/ism", $text, $images); - if (!$ret) + if (!$ret) { return false; + } $attachments = array(); foreach ($images[1] AS $image) { $imagedata = get_photo_info($image); - if ($imagedata) + if ($imagedata) { $attachments[] = array("url" => $image, "mimetype" => $imagedata["mime"], "size" => $imagedata["size"]); + } } - if (strstr($_SERVER['HTTP_USER_AGENT'], "AndStatus")) - foreach ($images[0] AS $orig) + if (strstr($_SERVER['HTTP_USER_AGENT'], "AndStatus")) { + foreach ($images[0] AS $orig) { $body = str_replace($orig, "", $body); + } + } return $attachments; } @@ -2152,7 +2324,7 @@ use \Friendica\Core\Config; $a = get_app(); - $include_entities = strtolower(x($_REQUEST,'include_entities')?$_REQUEST['include_entities']:"false"); + $include_entities = strtolower(x($_REQUEST, 'include_entities') ? $_REQUEST['include_entities'] : "false"); if ($include_entities != "true") { @@ -2198,11 +2370,12 @@ use \Friendica\Core\Config; preg_match_all("/\[url\=([$URLSearchString]*)\](.*?)\[\/url\]/ism", $bbcode, $urls); $ordered_urls = array(); - foreach ($urls[1] AS $id=>$url) { + foreach ($urls[1] AS $id => $url) { //$start = strpos($text, $url, $offset); $start = iconv_strpos($text, $url, 0, "UTF-8"); - if (!($start === false)) + if (!($start === false)) { $ordered_urls[$start] = array("url" => $url, "title" => $urls[2][$id]); + } } ksort($ordered_urls); @@ -2296,9 +2469,9 @@ use \Friendica\Core\Config; } } - return($entities); + return $entities; } - function api_format_items_embeded_images(&$item, $text){ + function api_format_items_embeded_images(&$item, $text) { $text = preg_replace_callback( "|data:image/([^;]+)[^=]+=*|m", function($match) use ($item) { @@ -2352,7 +2525,7 @@ use \Friendica\Core\Config; 'dislike' => array(), 'attendyes' => array(), 'attendno' => array(), - 'attendmaybe' => array() + 'attendmaybe' => array(), ); $items = q('SELECT * FROM item @@ -2360,13 +2533,13 @@ use \Friendica\Core\Config; intval($item['uid']), dbesc($item['uri'])); - foreach ($items as $i){ + foreach ($items as $i) { // not used as result should be structured like other user data //builtin_activity_puller($i, $activities); // get user data and add it to the array of the activity $user = api_get_user($a, $i['author-link']); - switch($i['verb']) { + switch ($i['verb']) { case ACTIVITY_LIKE: $activities['like'][] = $user; break; @@ -2468,25 +2641,27 @@ use \Friendica\Core\Config; $a = get_app(); - $ret = Array(); + $ret = array(); - foreach($r as $item) { + foreach ($r as $item) { localize_item($item); - list($status_user, $owner_user) = api_item_get_user($a,$item); + list($status_user, $owner_user) = api_item_get_user($a, $item); // Look if the posts are matching if they should be filtered by user id - if ($filter_user AND ($status_user["id"] != $user_info["id"])) + if ($filter_user AND ($status_user["id"] != $user_info["id"])) { continue; + } $in_reply_to = api_in_reply_to($item); $converted = api_convert_item($item); - if ($type == "xml") + if ($type == "xml") { $geo = "georss:point"; - else + } else { $geo = "geo"; + } $status = array( 'text' => $converted["text"], @@ -2510,16 +2685,19 @@ use \Friendica\Core\Config; 'friendica_activities' => api_format_items_activities($item, $type), ); - if (count($converted["attachments"]) > 0) + if (count($converted["attachments"]) > 0) { $status["attachments"] = $converted["attachments"]; + } - if (count($converted["entities"]) > 0) + if (count($converted["entities"]) > 0) { $status["entities"] = $converted["entities"]; + } - if (($item['item_network'] != "") AND ($status["source"] == 'web')) + if (($item['item_network'] != "") AND ($status["source"] == 'web')) { $status["source"] = network_to_name($item['item_network'], $user_info['url']); - else if (($item['item_network'] != "") AND (network_to_name($item['item_network'], $user_info['url']) != $status["source"])) + } elseif (($item['item_network'] != "") AND (network_to_name($item['item_network'], $user_info['url']) != $status["source"])) { $status["source"] = trim($status["source"].' ('.network_to_name($item['item_network'], $user_info['url']).')'); + } // Retweets are only valid for top postings @@ -2534,7 +2712,7 @@ use \Friendica\Core\Config; if ($retweeted_item !== false) { $retweeted_status = $status; try { - $retweeted_status["user"] = api_get_user($a,$retweeted_item["author-link"]); + $retweeted_status["user"] = api_get_user($a, $retweeted_item["author-link"]); } catch( BadRequestException $e ) { // user not found. should be found? /// @todo check if the user should be always found @@ -2571,67 +2749,81 @@ use \Friendica\Core\Config; return $ret; } - function api_account_rate_limit_status($type) { - if ($type == "xml") + if ($type == "xml") { $hash = array( - 'remaining-hits' => (string) 150, + 'remaining-hits' => '150', '@attributes' => array("type" => "integer"), - 'hourly-limit' => (string) 150, + 'hourly-limit' => '150', '@attributes2' => array("type" => "integer"), - 'reset-time' => datetime_convert('UTC','UTC','now + 1 hour',ATOM_TIME), + 'reset-time' => datetime_convert('UTC', 'UTC','now + 1 hour',ATOM_TIME), '@attributes3' => array("type" => "datetime"), 'reset_time_in_seconds' => strtotime('now + 1 hour'), '@attributes4' => array("type" => "integer"), ); - else + } else { $hash = array( 'reset_time_in_seconds' => strtotime('now + 1 hour'), - 'remaining_hits' => (string) 150, - 'hourly_limit' => (string) 150, - 'reset_time' => api_date(datetime_convert('UTC','UTC','now + 1 hour',ATOM_TIME)), + 'remaining_hits' => '150', + 'hourly_limit' => '150', + 'reset_time' => api_date(datetime_convert('UTC', 'UTC','now + 1 hour',ATOM_TIME)), ); + } return api_format_data('hash', $type, array('hash' => $hash)); } + + /// @TODO move to top of file or somwhere better api_register_func('api/account/rate_limit_status','api_account_rate_limit_status',true); function api_help_test($type) { - if ($type == 'xml') + if ($type == 'xml') { $ok = "true"; - else + } else { $ok = "ok"; + } return api_format_data('ok', $type, array("ok" => $ok)); } - api_register_func('api/help/test','api_help_test',false); + + /// @TODO move to top of file or somwhere better + api_register_func('api/help/test','api_help_test', false); function api_lists($type) { $ret = array(); + /// @TODO $ret is not filled here? return api_format_data('lists', $type, array("lists_list" => $ret)); } + + /// @TODO move to top of file or somwhere better api_register_func('api/lists','api_lists',true); function api_lists_list($type) { $ret = array(); + /// @TODO $ret is not filled here? return api_format_data('lists', $type, array("lists_list" => $ret)); } + + /// @TODO move to top of file or somwhere better api_register_func('api/lists/list','api_lists_list',true); /** - * https://dev.twitter.com/docs/api/1/get/statuses/friends - * This function is deprecated by Twitter - * returns: json, xml - **/ + * https://dev.twitter.com/docs/api/1/get/statuses/friends + * This function is deprecated by Twitter + * returns: json, xml + */ function api_statuses_f($type, $qtype) { $a = get_app(); - if (api_user()===false) throw new ForbiddenException(); + if (api_user() === false) { + throw new ForbiddenException(); + } + $user_info = api_get_user($a); - if (x($_GET,'cursor') && $_GET['cursor']=='undefined'){ + if (x($_GET, 'cursor') && $_GET['cursor']=='undefined') { /* this is to stop Hotot to load friends multiple times * I'm not sure if I'm missing return something or * is a bug in hotot. Workaround, meantime @@ -2642,51 +2834,58 @@ use \Friendica\Core\Config; return false; } - if($qtype == 'friends') + if ($qtype == 'friends') { $sql_extra = sprintf(" AND ( `rel` = %d OR `rel` = %d ) ", intval(CONTACT_IS_SHARING), intval(CONTACT_IS_FRIEND)); - if($qtype == 'followers') + } + if ($qtype == 'followers') { $sql_extra = sprintf(" AND ( `rel` = %d OR `rel` = %d ) ", intval(CONTACT_IS_FOLLOWER), intval(CONTACT_IS_FRIEND)); + } // friends and followers only for self - if ($user_info['self'] == 0) + if ($user_info['self'] == 0) { $sql_extra = " AND false "; + } $r = q("SELECT `nurl` FROM `contact` WHERE `uid` = %d AND NOT `self` AND (NOT `blocked` OR `pending`) $sql_extra", intval(api_user()) ); $ret = array(); - foreach($r as $cid){ + foreach ($r as $cid) { $user = api_get_user($a, $cid['nurl']); // "uid" and "self" are only needed for some internal stuff, so remove it from here unset($user["uid"]); unset($user["self"]); - if ($user) + if ($user) { $ret[] = $user; + } } return array('user' => $ret); } - function api_statuses_friends($type){ + + function api_statuses_friends($type) { $data = api_statuses_f($type, "friends"); - if ($data===false) return false; - return api_format_data("users", $type, $data); + if ($data === false) { + return false; + } + return api_format_data("users", $type, $data); } - function api_statuses_followers($type){ + + function api_statuses_followers($type) { $data = api_statuses_f($type, "followers"); - if ($data===false) return false; - return api_format_data("users", $type, $data); + if ($data === false) { + return false; + } + return api_format_data("users", $type, $data); } + + /// @TODO move to top of file or somewhere better api_register_func('api/statuses/friends','api_statuses_friends',true); api_register_func('api/statuses/followers','api_statuses_followers',true); - - - - - function api_statusnet_config($type) { $a = get_app(); @@ -2698,8 +2897,9 @@ use \Friendica\Core\Config; $closed = (($a->config['register_policy'] == REGISTER_CLOSED) ? 'true' : 'false'); $private = ((Config::get('system', 'block_public')) ? 'true' : 'false'); $textlimit = (string) (($a->config['max_import_size']) ? $a->config['max_import_size'] : 200000); - if($a->config['api_import_size']) + if ($a->config['api_import_size']) { $texlimit = string($a->config['api_import_size']); + } $ssl = ((Config::get('system', 'have_ssl')) ? 'true' : 'false'); $sslserver = (($ssl === 'true') ? str_replace('http:','https:',App::get_baseurl()) : ''); @@ -2721,8 +2921,10 @@ use \Friendica\Core\Config; return api_format_data('config', $type, array('config' => $config)); } - api_register_func('api/gnusocial/config','api_statusnet_config',false); - api_register_func('api/statusnet/config','api_statusnet_config',false); + + /// @TODO move to top of file or somewhere better + api_register_func('api/gnusocial/config','api_statusnet_config', false); + api_register_func('api/statusnet/config','api_statusnet_config', false); function api_statusnet_version($type) { // liar @@ -2730,8 +2932,10 @@ use \Friendica\Core\Config; return api_format_data('version', $type, array('version' => $fake_statusnet_version)); } - api_register_func('api/gnusocial/version','api_statusnet_version',false); - api_register_func('api/statusnet/version','api_statusnet_version',false); + + /// @TODO move to top of file or somewhere better + api_register_func('api/gnusocial/version','api_statusnet_version', false); + api_register_func('api/statusnet/version','api_statusnet_version', false); /** * @todo use api_format_data() to return data @@ -2740,19 +2944,24 @@ use \Friendica\Core\Config; $a = get_app(); - if(! api_user()) throw new ForbiddenException(); + if (! api_user()) { + throw new ForbiddenException(); + } $user_info = api_get_user($a); - if($qtype == 'friends') + if ($qtype == 'friends') { $sql_extra = sprintf(" AND ( `rel` = %d OR `rel` = %d ) ", intval(CONTACT_IS_SHARING), intval(CONTACT_IS_FRIEND)); - if($qtype == 'followers') + } + if ($qtype == 'followers') { $sql_extra = sprintf(" AND ( `rel` = %d OR `rel` = %d ) ", intval(CONTACT_IS_FOLLOWER), intval(CONTACT_IS_FRIEND)); + } - if (!$user_info["self"]) + if (!$user_info["self"]) { $sql_extra = " AND false "; + } - $stringify_ids = (x($_REQUEST,'stringify_ids')?$_REQUEST['stringify_ids']:false); + $stringify_ids = (x($_REQUEST, 'stringify_ids') ? $_REQUEST['stringify_ids'] : false); $r = q("SELECT `pcontact`.`id` FROM `contact` INNER JOIN `contact` AS `pcontact` ON `contact`.`nurl` = `pcontact`.`nurl` AND `pcontact`.`uid` = 0 @@ -2760,15 +2969,18 @@ use \Friendica\Core\Config; intval(api_user()) ); - if (!dbm::is_result($r)) + if (!dbm::is_result($r)) { return; + } $ids = array(); - foreach($r as $rr) - if ($stringify_ids) + foreach ($r as $rr) { + if ($stringify_ids) { $ids[] = $rr['id']; - else + } else { $ids[] = intval($rr['id']); + } + } return api_format_data("ids", $type, array('id' => $ids)); } @@ -2776,18 +2988,20 @@ use \Friendica\Core\Config; function api_friends_ids($type) { return api_ff_ids($type,'friends'); } + function api_followers_ids($type) { return api_ff_ids($type,'followers'); } + + /// @TODO move to top of file or somewhere better api_register_func('api/friends/ids','api_friends_ids',true); api_register_func('api/followers/ids','api_followers_ids',true); - function api_direct_messages_new($type) { $a = get_app(); - if (api_user()===false) throw new ForbiddenException(); + if (api_user() === false) throw new ForbiddenException(); if (!x($_POST, "text") OR (!x($_POST,"screen_name") AND !x($_POST,"user_id"))) return; @@ -2807,45 +3021,43 @@ use \Friendica\Core\Config; $replyto = ''; $sub = ''; - if (x($_REQUEST,'replyto')) { + if (x($_REQUEST, 'replyto')) { $r = q('SELECT `parent-uri`, `title` FROM `mail` WHERE `uid`=%d AND `id`=%d', intval(api_user()), intval($_REQUEST['replyto'])); $replyto = $r[0]['parent-uri']; $sub = $r[0]['title']; - } - else { - if (x($_REQUEST,'title')) { + } else { + if (x($_REQUEST, 'title')) { $sub = $_REQUEST['title']; - } - else { - $sub = ((strlen($_POST['text'])>10)?substr($_POST['text'],0,10)."...":$_POST['text']); + } else { + $sub = ((strlen($_POST['text'])>10) ? substr($_POST['text'],0,10)."...":$_POST['text']); } } $id = send_message($recipient['cid'], $_POST['text'], $sub, $replyto); - if ($id>-1) { + if ($id > -1) { $r = q("SELECT * FROM `mail` WHERE id=%d", intval($id)); $ret = api_format_messages($r[0], $recipient, $sender); - } else { $ret = array("error"=>$id); } - $data = Array('direct_message'=>$ret); + $data = array('direct_message'=>$ret); - switch($type){ + switch ($type) { case "atom": case "rss": $data = api_rss_extra($a, $data, $user_info); } - return api_format_data("direct-messages", $type, $data); + return api_format_data("direct-messages", $type, $data); } - api_register_func('api/direct_messages/new','api_direct_messages_new',true, API_METHOD_POST); + /// @TODO move to top of file or somewhere better + api_register_func('api/direct_messages/new','api_direct_messages_new',true, API_METHOD_POST); /** * @brief delete a direct_message from mail table through api @@ -2853,31 +3065,33 @@ use \Friendica\Core\Config; * @param string $type Known types are 'atom', 'rss', 'xml' and 'json' * @return string */ - function api_direct_messages_destroy($type){ + function api_direct_messages_destroy($type) { $a = get_app(); - if (api_user()===false) throw new ForbiddenException(); + if (api_user() === false) { + throw new ForbiddenException(); + } // params $user_info = api_get_user($a); //required - $id = (x($_REQUEST,'id') ? $_REQUEST['id'] : 0); + $id = (x($_REQUEST, 'id') ? $_REQUEST['id'] : 0); // optional $parenturi = (x($_REQUEST, 'friendica_parenturi') ? $_REQUEST['friendica_parenturi'] : ""); - $verbose = (x($_GET,'friendica_verbose')?strtolower($_GET['friendica_verbose']):"false"); + $verbose = (x($_GET, 'friendica_verbose') ? strtolower($_GET['friendica_verbose']) : "false"); /// @todo optional parameter 'include_entities' from Twitter API not yet implemented $uid = $user_info['uid']; // error if no id or parenturi specified (for clients posting parent-uri as well) - if ($verbose == "true") { - if ($id == 0 || $parenturi == "") { - $answer = array('result' => 'error', 'message' => 'message id or parenturi not specified'); - return api_format_data("direct_messages_delete", $type, array('$result' => $answer)); - } + if ($verbose == "true" && ($id == 0 || $parenturi == "")) { + $answer = array('result' => 'error', 'message' => 'message id or parenturi not specified'); + return api_format_data("direct_messages_delete", $type, array('$result' => $answer)); } // BadRequestException if no id specified (for clients using Twitter API) - if ($id == 0) throw new BadRequestException('Message id not specified'); + if ($id == 0) { + throw new BadRequestException('Message id not specified'); + } // add parent-uri to sql command if specified by calling app $sql_extra = ($parenturi != "" ? " AND `parent-uri` = '" . dbesc($parenturi) . "'" : ""); @@ -2907,8 +3121,7 @@ use \Friendica\Core\Config; // return success $answer = array('result' => 'ok', 'message' => 'message deleted'); return api_format_data("direct_message_delete", $type, array('$result' => $answer)); - } - else { + } else { $answer = array('result' => 'error', 'message' => 'unknown error'); return api_format_data("direct_messages_delete", $type, array('$result' => $answer)); } @@ -2916,25 +3129,30 @@ use \Friendica\Core\Config; /// @todo return JSON data like Twitter API not yet implemented } - api_register_func('api/direct_messages/destroy', 'api_direct_messages_destroy', true, API_METHOD_DELETE); + /// @TODO move to top of file or somewhere better + api_register_func('api/direct_messages/destroy', 'api_direct_messages_destroy', true, API_METHOD_DELETE); function api_direct_messages_box($type, $box, $verbose) { $a = get_app(); - if (api_user()===false) throw new ForbiddenException(); + if (api_user() === false) { + throw new ForbiddenException(); + } // params - $count = (x($_GET,'count')?$_GET['count']:20); - $page = (x($_REQUEST,'page')?$_REQUEST['page']-1:0); - if ($page<0) $page=0; + $count = (x($_GET, 'count') ? $_GET['count'] : 20); + $page = (x($_REQUEST, 'page') ? $_REQUEST['page'] -1 : 0); + if ($page < 0) { + $page = 0; + } - $since_id = (x($_REQUEST,'since_id')?$_REQUEST['since_id']:0); - $max_id = (x($_REQUEST,'max_id')?$_REQUEST['max_id']:0); + $since_id = (x($_REQUEST, 'since_id') ? $_REQUEST['since_id'] : 0); + $max_id = (x($_REQUEST, 'max_id') ? $_REQUEST['max_id'] : 0); - $user_id = (x($_REQUEST,'user_id')?$_REQUEST['user_id']:""); - $screen_name = (x($_REQUEST,'screen_name')?$_REQUEST['screen_name']:""); + $user_id = (x($_REQUEST, 'user_id') ? $_REQUEST['user_id'] : ""); + $screen_name = (x($_REQUEST, 'screen_name') ? $_REQUEST['screen_name'] : ""); // caller user info unset($_REQUEST["user_id"]); @@ -2946,31 +3164,27 @@ use \Friendica\Core\Config; $user_info = api_get_user($a); $profile_url = $user_info["url"]; - // pagination - $start = $page*$count; + $start = $page * $count; // filters if ($box=="sentbox") { - $sql_extra = "`mail`.`from-url`='".dbesc( $profile_url )."'"; - } - elseif ($box=="conversation") { - $sql_extra = "`mail`.`parent-uri`='".dbesc( $_GET["uri"] ) ."'"; - } - elseif ($box=="all") { + $sql_extra = "`mail`.`from-url`='" . dbesc( $profile_url ) . "'"; + } elseif ($box == "conversation") { + $sql_extra = "`mail`.`parent-uri`='" . dbesc( $_GET["uri"] ) . "'"; + } elseif ($box == "all") { $sql_extra = "true"; - } - elseif ($box=="inbox") { - $sql_extra = "`mail`.`from-url`!='".dbesc( $profile_url )."'"; + } elseif ($box == "inbox") { + $sql_extra = "`mail`.`from-url`!='" . dbesc( $profile_url ) . "'"; } - if ($max_id > 0) - $sql_extra .= ' AND `mail`.`id` <= '.intval($max_id); + if ($max_id > 0) { + $sql_extra .= ' AND `mail`.`id` <= ' . intval($max_id); + } - if ($user_id !="") { + if ($user_id != "") { $sql_extra .= ' AND `mail`.`contact-id` = ' . intval($user_id); - } - elseif($screen_name !=""){ + } elseif ($screen_name !="") { $sql_extra .= " AND `contact`.`nick` = '" . dbesc($screen_name). "'"; } @@ -2979,131 +3193,142 @@ use \Friendica\Core\Config; intval($since_id), intval($start), intval($count) ); - if ($verbose == "true") { - // stop execution and return error message if no mails available - if($r == null) { - $answer = array('result' => 'error', 'message' => 'no mails available'); - return api_format_data("direct_messages_all", $type, array('$result' => $answer)); - } + if ($verbose == "true" && !dbm::is_result($r)) { + $answer = array('result' => 'error', 'message' => 'no mails available'); + return api_format_data("direct_messages_all", $type, array('$result' => $answer)); } - $ret = Array(); - foreach($r as $item) { - if ($box == "inbox" || $item['from-url'] != $profile_url){ + $ret = array(); + foreach ($r as $item) { + if ($box == "inbox" || $item['from-url'] != $profile_url) { $recipient = $user_info; $sender = api_get_user($a,normalise_link($item['contact-url'])); - } - elseif ($box == "sentbox" || $item['from-url'] == $profile_url){ + } elseif ($box == "sentbox" || $item['from-url'] == $profile_url) { $recipient = api_get_user($a,normalise_link($item['contact-url'])); $sender = $user_info; - } - $ret[]=api_format_messages($item, $recipient, $sender); + + $ret[] = api_format_messages($item, $recipient, $sender); } $data = array('direct_message' => $ret); - switch($type){ + switch ($type) { case "atom": case "rss": $data = api_rss_extra($a, $data, $user_info); } - return api_format_data("direct-messages", $type, $data); + return api_format_data("direct-messages", $type, $data); } - function api_direct_messages_sentbox($type){ - $verbose = (x($_GET,'friendica_verbose')?strtolower($_GET['friendica_verbose']):"false"); + function api_direct_messages_sentbox($type) { + $verbose = (x($_GET, 'friendica_verbose') ? strtolower($_GET['friendica_verbose']) : "false"); return api_direct_messages_box($type, "sentbox", $verbose); } - function api_direct_messages_inbox($type){ - $verbose = (x($_GET,'friendica_verbose')?strtolower($_GET['friendica_verbose']):"false"); + + function api_direct_messages_inbox($type) { + $verbose = (x($_GET, 'friendica_verbose') ? strtolower($_GET['friendica_verbose']) : "false"); return api_direct_messages_box($type, "inbox", $verbose); } - function api_direct_messages_all($type){ - $verbose = (x($_GET,'friendica_verbose')?strtolower($_GET['friendica_verbose']):"false"); + + function api_direct_messages_all($type) { + $verbose = (x($_GET, 'friendica_verbose') ? strtolower($_GET['friendica_verbose']) : "false"); return api_direct_messages_box($type, "all", $verbose); } - function api_direct_messages_conversation($type){ - $verbose = (x($_GET,'friendica_verbose')?strtolower($_GET['friendica_verbose']):"false"); + + function api_direct_messages_conversation($type) { + $verbose = (x($_GET, 'friendica_verbose') ? strtolower($_GET['friendica_verbose']) : "false"); return api_direct_messages_box($type, "conversation", $verbose); } + + /// @TODO move to top of file or somewhere better api_register_func('api/direct_messages/conversation','api_direct_messages_conversation',true); api_register_func('api/direct_messages/all','api_direct_messages_all',true); api_register_func('api/direct_messages/sent','api_direct_messages_sentbox',true); api_register_func('api/direct_messages','api_direct_messages_inbox',true); - - - function api_oauth_request_token($type){ - try{ + function api_oauth_request_token($type) { + try { $oauth = new FKOAuth1(); $r = $oauth->fetch_request_token(OAuthRequest::from_request()); - }catch(Exception $e){ - echo "error=". OAuthUtil::urlencode_rfc3986($e->getMessage()); killme(); + } catch (Exception $e) { + echo "error=" . OAuthUtil::urlencode_rfc3986($e->getMessage()); + killme(); } echo $r; killme(); } - function api_oauth_access_token($type){ - try{ + + function api_oauth_access_token($type) { + try { $oauth = new FKOAuth1(); $r = $oauth->fetch_access_token(OAuthRequest::from_request()); - }catch(Exception $e){ + } catch (Exception $e) { echo "error=". OAuthUtil::urlencode_rfc3986($e->getMessage()); killme(); } echo $r; killme(); } + /// @TODO move to top of file or somewhere better api_register_func('api/oauth/request_token', 'api_oauth_request_token', false); api_register_func('api/oauth/access_token', 'api_oauth_access_token', false); - function api_fr_photos_list($type) { - if (api_user()===false) throw new ForbiddenException(); - $r = q("select `resource-id`, max(scale) as scale, album, filename, type from photo - where uid = %d and album != 'Contact Photos' group by `resource-id`", + if (api_user() === false) { + throw new ForbiddenException(); + } + + $r = q("SELECT `resource-id`, MAX(`scale`) AS `scale`, `album`, `filename`, `type` + FROM `photo` + WHERE `uid` = %d AND `album` != 'Contact Photos' GROUP BY `resource-id`, `album`, `filename`, `type`", intval(local_user()) ); $typetoext = array( - 'image/jpeg' => 'jpg', - 'image/png' => 'png', - 'image/gif' => 'gif' + 'image/jpeg' => 'jpg', + 'image/png' => 'png', + 'image/gif' => 'gif' ); - $data = array('photo'=>array()); - if ($r) { + $data = array('photo' => array()); + if (dbm::is_result($r)) { foreach ($r as $rr) { $photo = array(); $photo['id'] = $rr['resource-id']; $photo['album'] = $rr['album']; $photo['filename'] = $rr['filename']; $photo['type'] = $rr['type']; - $thumb = App::get_baseurl()."/photo/".$rr['resource-id']."-".$rr['scale'].".".$typetoext[$rr['type']]; + $thumb = App::get_baseurl() . "/photo/" . $rr['resource-id'] . "-" . $rr['scale'] . "." . $typetoext[$rr['type']]; - if ($type == "xml") + if ($type == "xml") { $data['photo'][] = array("@attributes" => $photo, "1" => $thumb); - else { + } else { $photo['thumb'] = $thumb; $data['photo'][] = $photo; } } } - return api_format_data("photos", $type, $data); + return api_format_data("photos", $type, $data); } function api_fr_photo_detail($type) { - if (api_user()===false) throw new ForbiddenException(); - if(!x($_REQUEST,'photo_id')) throw new BadRequestException("No photo id."); + if (api_user() === false) { + throw new ForbiddenException(); + } elseif (!x($_REQUEST, 'photo_id')) { + throw new BadRequestException("No photo id."); + } $scale = (x($_REQUEST, 'scale') ? intval($_REQUEST['scale']) : false); - $scale_sql = ($scale === false ? "" : sprintf("and scale=%d",intval($scale))); - $data_sql = ($scale === false ? "" : "data, "); + $scale_sql = ($scale === false ? "" : sprintf("AND `scale`=%d",intval($scale))); + $data_sql = ($scale === false ? "" : "ANY_VALUE(`data`) AS data`,"); - $r = q("select %s `resource-id`, `created`, `edited`, `title`, `desc`, `album`, `filename`, - `type`, `height`, `width`, `datasize`, `profile`, min(`scale`) as minscale, max(`scale`) as maxscale - from photo where `uid` = %d and `resource-id` = '%s' %s group by `resource-id`", + $r = q("SELECT %s ANY_VALUE(`resource-id`) AS `resource-id`, ANY_VALUE(`created`) AS `created`, + ANY_VALUE(`edited`) AS `edited`, ANY_VALUE(`title`) AS `title`, ANY_VALUE(`desc`) AS `desc`, + ANY_VALUE(`album`) AS `album`, ANY_VALUE(`filename`) AS `filename`, ANY_VALUE(`type`) AS `type`, + ANY_VALUE(`height`) AS `height`, ANY_VALUE(`width`) AS `width`, ANY_VALUE(`datasize`) AS `datasize`, + ANY_VALUE(`profile`) AS `profile`, min(`scale`) as minscale, max(`scale`) as maxscale + FROM `photo` WHERE `uid` = %d AND `resource-id` = '%s' %s", $data_sql, intval(local_user()), dbesc($_REQUEST['photo_id']), @@ -3111,12 +3336,12 @@ use \Friendica\Core\Config; ); $typetoext = array( - 'image/jpeg' => 'jpg', - 'image/png' => 'png', - 'image/gif' => 'gif' + 'image/jpeg' => 'jpg', + 'image/png' => 'png', + 'image/gif' => 'gif' ); - if ($r) { + if (dbm::is_result($r)) { $data = array('photo' => $r[0]); $data['photo']['id'] = $data['photo']['resource-id']; if ($scale !== false) { @@ -3126,14 +3351,15 @@ use \Friendica\Core\Config; } if ($type == "xml") { $data['photo']['links'] = array(); - for ($k=intval($data['photo']['minscale']); $k<=intval($data['photo']['maxscale']); $k++) - $data['photo']['links'][$k.":link"]["@attributes"] = array("type" => $data['photo']['type'], - "scale" => $k, - "href" => App::get_baseurl()."/photo/".$data['photo']['resource-id']."-".$k.".".$typetoext[$data['photo']['type']]); + for ($k = intval($data['photo']['minscale']); $k <= intval($data['photo']['maxscale']); $k++) { + $data['photo']['links'][$k . ":link"]["@attributes"] = array("type" => $data['photo']['type'], + "scale" => $k, + "href" => App::get_baseurl() . "/photo/" . $data['photo']['resource-id'] . "-" . $k . "." . $typetoext[$data['photo']['type']]); + } } else { $data['photo']['link'] = array(); - for ($k=intval($data['photo']['minscale']); $k<=intval($data['photo']['maxscale']); $k++) { - $data['photo']['link'][$k] = App::get_baseurl()."/photo/".$data['photo']['resource-id']."-".$k.".".$typetoext[$data['photo']['type']]; + for ($k = intval($data['photo']['minscale']); $k <= intval($data['photo']['maxscale']); $k++) { + $data['photo']['link'][$k] = App::get_baseurl() . "/photo/" . $data['photo']['resource-id'] . "-" . $k . "." . $typetoext[$data['photo']['type']]; } } unset($data['photo']['resource-id']); @@ -3164,11 +3390,12 @@ use \Friendica\Core\Config; * url: string, url to redirect after auth */ function api_friendica_remoteauth() { - $url = ((x($_GET,'url')) ? $_GET['url'] : ''); - $c_url = ((x($_GET,'c_url')) ? $_GET['c_url'] : ''); + $url = ((x($_GET, 'url')) ? $_GET['url'] : ''); + $c_url = ((x($_GET, 'c_url')) ? $_GET['c_url'] : ''); - if ($url === '' || $c_url === '') + if ($url === '' || $c_url === '') { throw new BadRequestException("Wrong parameters."); + } $c_url = normalise_link($c_url); @@ -3179,18 +3406,19 @@ use \Friendica\Core\Config; intval(api_user()) ); - if ((! dbm::is_result($r)) || ($r[0]['network'] !== NETWORK_DFRN)) + if ((! dbm::is_result($r)) || ($r[0]['network'] !== NETWORK_DFRN)) { throw new BadRequestException("Unknown contact"); + } $cid = $r[0]['id']; $dfrn_id = $orig_id = (($r[0]['issued-id']) ? $r[0]['issued-id'] : $r[0]['dfrn-id']); - if($r[0]['duplex'] && $r[0]['issued-id']) { + if ($r[0]['duplex'] && $r[0]['issued-id']) { $orig_id = $r[0]['issued-id']; $dfrn_id = '1:' . $orig_id; } - if($r[0]['duplex'] && $r[0]['dfrn-id']) { + if ($r[0]['duplex'] && $r[0]['dfrn-id']) { $orig_id = $r[0]['dfrn-id']; $dfrn_id = '0:' . $orig_id; } @@ -3227,12 +3455,16 @@ use \Friendica\Core\Config; return false; } - $attributes = preg_replace("/\[share(.*?)\]\s?(.*?)\s?\[\/share\]\s?/ism","$1",$body); - // Skip if there is no shared message in there - // we already checked this in diaspora::is_reshare() - // but better one more than one less... - if ($body == $attributes) + /// @TODO "$1" should maybe mean '$1' ? + $attributes = preg_replace("/\[share(.*?)\]\s?(.*?)\s?\[\/share\]\s?/ism", "$1", $body); + /* + * Skip if there is no shared message in there + * we already checked this in diaspora::is_reshare() + * but better one more than one less... + */ + if ($body == $attributes) { return false; + } // build the fake reshared item @@ -3240,55 +3472,63 @@ use \Friendica\Core\Config; $author = ""; preg_match("/author='(.*?)'/ism", $attributes, $matches); - if ($matches[1] != "") - $author = html_entity_decode($matches[1],ENT_QUOTES,'UTF-8'); + if ($matches[1] != "") { + $author = html_entity_decode($matches[1], ENT_QUOTES, 'UTF-8'); + } preg_match('/author="(.*?)"/ism', $attributes, $matches); - if ($matches[1] != "") + if ($matches[1] != "") { $author = $matches[1]; + } $profile = ""; preg_match("/profile='(.*?)'/ism", $attributes, $matches); - if ($matches[1] != "") + if ($matches[1] != "") { $profile = $matches[1]; + } preg_match('/profile="(.*?)"/ism', $attributes, $matches); - if ($matches[1] != "") + if ($matches[1] != "") { $profile = $matches[1]; + } $avatar = ""; preg_match("/avatar='(.*?)'/ism", $attributes, $matches); - if ($matches[1] != "") + if ($matches[1] != "") { $avatar = $matches[1]; + } preg_match('/avatar="(.*?)"/ism', $attributes, $matches); - if ($matches[1] != "") + if ($matches[1] != "") { $avatar = $matches[1]; + } $link = ""; preg_match("/link='(.*?)'/ism", $attributes, $matches); - if ($matches[1] != "") + if ($matches[1] != "") { $link = $matches[1]; + } preg_match('/link="(.*?)"/ism', $attributes, $matches); - if ($matches[1] != "") + if ($matches[1] != "") { $link = $matches[1]; + } $posted = ""; preg_match("/posted='(.*?)'/ism", $attributes, $matches); if ($matches[1] != "") - $posted= $matches[1]; + $posted = $matches[1]; preg_match('/posted="(.*?)"/ism', $attributes, $matches); - if ($matches[1] != "") + if ($matches[1] != "") { $posted = $matches[1]; + } $shared_body = preg_replace("/\[share(.*?)\]\s?(.*?)\s?\[\/share\]\s?/ism","$2",$body); - if (($shared_body == "") || ($profile == "") || ($author == "") || ($avatar == "") || ($posted == "")) + if (($shared_body == "") || ($profile == "") || ($author == "") || ($avatar == "") || ($posted == "")) { return false; - - + } $reshared_item["body"] = $shared_body; $reshared_item["author-name"] = $author; @@ -3312,32 +3552,39 @@ use \Friendica\Core\Config; $r = q("SELECT `nick` FROM `contact` WHERE `uid` = 0 AND `nurl` = '%s'", dbesc(normalise_link($profile))); - if ($r) + + if (dbm::is_result($r)) { $nick = $r[0]["nick"]; + } if (!$nick == "") { $r = q("SELECT `nick` FROM `contact` WHERE `uid` = 0 AND `nurl` = '%s'", dbesc(normalise_link($profile))); - if ($r) + + if (dbm::is_result($r)) { $nick = $r[0]["nick"]; + } } if (!$nick == "") { $friendica = preg_replace("=https?://(.*)/profile/(.*)=ism", "$2", $profile); - if ($friendica != $profile) + if ($friendica != $profile) { $nick = $friendica; + } } if (!$nick == "") { $diaspora = preg_replace("=https?://(.*)/u/(.*)=ism", "$2", $profile); - if ($diaspora != $profile) + if ($diaspora != $profile) { $nick = $diaspora; + } } if (!$nick == "") { $twitter = preg_replace("=https?://twitter.com/(.*)=ism", "$1", $profile); - if ($twitter != $profile) + if ($twitter != $profile) { $nick = $twitter; + } } @@ -3348,8 +3595,9 @@ use \Friendica\Core\Config; if ($StatusnetUser != $profile) { $UserData = fetch_url("http://".$StatusnetHost."/api/users/show.json?user_id=".$StatusnetUser); $user = json_decode($UserData); - if ($user) + if ($user) { $nick = $user->screen_name; + } } } } @@ -3363,10 +3611,11 @@ use \Friendica\Core\Config; //} - if ($nick != "") - return($nick); + if ($nick != "") { + return $nick; + } - return(false); + return false; } function api_in_reply_to($item) { @@ -3424,7 +3673,7 @@ use \Friendica\Core\Config; } function api_clean_plain_items($Text) { - $include_entities = strtolower(x($_REQUEST,'include_entities')?$_REQUEST['include_entities']:"false"); + $include_entities = strtolower(x($_REQUEST, 'include_entities') ? $_REQUEST['include_entities'] : "false"); $Text = bb_CleanPictureLinks($Text); $URLSearchString = "^\[\]"; @@ -3518,11 +3767,11 @@ use \Friendica\Core\Config; $a = get_app(); - if (api_user()===false) throw new ForbiddenException(); + if (api_user() === false) throw new ForbiddenException(); // params $user_info = api_get_user($a); - $gid = (x($_REQUEST,'gid') ? $_REQUEST['gid'] : 0); + $gid = (x($_REQUEST, 'gid') ? $_REQUEST['gid'] : 0); $uid = $user_info['uid']; // get data of the specified group id or all groups if not specified @@ -3569,11 +3818,11 @@ use \Friendica\Core\Config; $a = get_app(); - if (api_user()===false) throw new ForbiddenException(); + if (api_user() === false) throw new ForbiddenException(); // params $user_info = api_get_user($a); - $gid = (x($_REQUEST,'gid') ? $_REQUEST['gid'] : 0); + $gid = (x($_REQUEST, 'gid') ? $_REQUEST['gid'] : 0); $name = (x($_REQUEST, 'name') ? $_REQUEST['name'] : ""); $uid = $user_info['uid']; @@ -3616,7 +3865,7 @@ use \Friendica\Core\Config; $a = get_app(); - if (api_user()===false) throw new ForbiddenException(); + if (api_user() === false) throw new ForbiddenException(); // params $user_info = api_get_user($a); @@ -3682,7 +3931,7 @@ use \Friendica\Core\Config; $a = get_app(); - if (api_user()===false) throw new ForbiddenException(); + if (api_user() === false) throw new ForbiddenException(); // params $user_info = api_get_user($a); @@ -3734,14 +3983,14 @@ use \Friendica\Core\Config; $success = array('success' => true, 'gid' => $gid, 'name' => $name, 'status' => $status, 'wrong users' => $errorusers); return api_format_data("group_update", $type, array('result' => $success)); } - api_register_func('api/friendica/group_update', 'api_friendica_group_update', true, API_METHOD_POST); + api_register_func('api/friendica/group_update', 'api_friendica_group_update', true, API_METHOD_POST); function api_friendica_activity($type) { $a = get_app(); - if (api_user()===false) throw new ForbiddenException(); + if (api_user() === false) throw new ForbiddenException(); $verb = strtolower($a->argv[3]); $verb = preg_replace("|\..*$|", "", $verb); @@ -3760,6 +4009,8 @@ use \Friendica\Core\Config; } } + + /// @TODO move to top of file or somwhere better api_register_func('api/friendica/activity/like', 'api_friendica_activity', true, API_METHOD_POST); api_register_func('api/friendica/activity/dislike', 'api_friendica_activity', true, API_METHOD_POST); api_register_func('api/friendica/activity/attendyes', 'api_friendica_activity', true, API_METHOD_POST); @@ -3781,7 +4032,7 @@ use \Friendica\Core\Config; $a = get_app(); - if (api_user()===false) throw new ForbiddenException(); + if (api_user() === false) throw new ForbiddenException(); if ($a->argc!==3) throw new BadRequestException("Invalid argument count"); $nm = new NotificationsManager(); @@ -3806,11 +4057,11 @@ use \Friendica\Core\Config; * @param string $type Known types are 'atom', 'rss', 'xml' and 'json' * @return string */ - function api_friendica_notification_seen($type){ + function api_friendica_notification_seen($type) { $a = get_app(); - if (api_user()===false) throw new ForbiddenException(); + if (api_user() === false) throw new ForbiddenException(); if ($a->argc!==4) throw new BadRequestException("Invalid argument count"); $id = (x($_REQUEST, 'id') ? intval($_REQUEST['id']) : 0); @@ -3838,19 +4089,21 @@ use \Friendica\Core\Config; return api_format_data('result', $type, array('result' => "success")); } + /// @TODO move to top of file or somwhere better api_register_func('api/friendica/notification/seen', 'api_friendica_notification_seen', true, API_METHOD_POST); api_register_func('api/friendica/notification', 'api_friendica_notification', true, API_METHOD_GET); - /** * @brief update a direct_message to seen state * * @param string $type Known types are 'atom', 'rss', 'xml' and 'json' * @return string (success result=ok, error result=error with error message) */ - function api_friendica_direct_messages_setseen($type){ + function api_friendica_direct_messages_setseen($type) { $a = get_app(); - if (api_user()===false) throw new ForbiddenException(); + if (api_user() === false) { + throw new ForbiddenException(); + } // params $user_info = api_get_user($a); @@ -3867,6 +4120,7 @@ use \Friendica\Core\Config; $r = q("SELECT `id` FROM `mail` WHERE `id` = %d AND `uid` = %d", intval($id), intval($uid)); + // error message if specified id is not in database if (!dbm::is_result($r)) { $answer = array('result' => 'error', 'message' => 'message id not in database'); @@ -3887,11 +4141,10 @@ use \Friendica\Core\Config; return api_format_data("direct_messages_setseen", $type, array('$result' => $answer)); } } + + /// @TODO move to top of file or somwhere better api_register_func('api/friendica/direct_messages_setseen', 'api_friendica_direct_messages_setseen', true); - - - /** * @brief search for direct_messages containing a searchstring through api * @@ -3900,14 +4153,16 @@ use \Friendica\Core\Config; * success=false if nothing was found, search_result='nothing found', * error: result=error with error message) */ - function api_friendica_direct_messages_search($type){ + function api_friendica_direct_messages_search($type) { $a = get_app(); - if (api_user()===false) throw new ForbiddenException(); + if (api_user() === false) { + throw new ForbiddenException(); + } // params $user_info = api_get_user($a); - $searchstring = (x($_REQUEST,'searchstring') ? $_REQUEST['searchstring'] : ""); + $searchstring = (x($_REQUEST, 'searchstring') ? $_REQUEST['searchstring'] : ""); $uid = $user_info['uid']; // error if no searchstring specified @@ -3923,29 +4178,32 @@ use \Friendica\Core\Config; ); $profile_url = $user_info["url"]; + // message if nothing was found - if (!dbm::is_result($r)) + if (!dbm::is_result($r)) { $success = array('success' => false, 'search_results' => 'problem with query'); - else if (count($r) == 0) + } elseif (count($r) == 0) { $success = array('success' => false, 'search_results' => 'nothing found'); - else { - $ret = Array(); - foreach($r as $item) { - if ($box == "inbox" || $item['from-url'] != $profile_url){ + } else { + $ret = array(); + foreach ($r as $item) { + if ($box == "inbox" || $item['from-url'] != $profile_url) { $recipient = $user_info; $sender = api_get_user($a,normalise_link($item['contact-url'])); - } - elseif ($box == "sentbox" || $item['from-url'] == $profile_url){ + } elseif ($box == "sentbox" || $item['from-url'] == $profile_url) { $recipient = api_get_user($a,normalise_link($item['contact-url'])); $sender = $user_info; } - $ret[]=api_format_messages($item, $recipient, $sender); + + $ret[] = api_format_messages($item, $recipient, $sender); } $success = array('success' => true, 'search_results' => $ret); } return api_format_data("direct_message_search", $type, array('$result' => $success)); } + + /// @TODO move to top of file or somwhere better api_register_func('api/friendica/direct_messages_search', 'api_friendica_direct_messages_search', true); /** @@ -3954,13 +4212,15 @@ use \Friendica\Core\Config; * @param string $type Known types are 'atom', 'rss', 'xml' and 'json' * @return string */ - function api_friendica_profile_show($type){ + function api_friendica_profile_show($type) { $a = get_app(); - if (api_user()===false) throw new ForbiddenException(); + if (api_user() === false) { + throw new ForbiddenException(); + } // input params - $profileid = (x($_REQUEST,'profile_id') ? $_REQUEST['profile_id'] : 0); + $profileid = (x($_REQUEST, 'profile_id') ? $_REQUEST['profile_id'] : 0); // retrieve general information about profiles for user $multi_profiles = feature_enabled(api_user(),'multi_profiles'); @@ -3971,9 +4231,11 @@ use \Friendica\Core\Config; $r = q("SELECT * FROM `profile` WHERE `uid` = %d AND `id` = %d", intval(api_user()), intval($profileid)); + // error message if specified gid is not in database - if (!dbm::is_result($r)) + if (!dbm::is_result($r)) { throw new BadRequestException("profile_id not available"); + } } else { $r = q("SELECT * FROM `profile` WHERE `uid` = %d", intval(api_user())); @@ -3991,13 +4253,13 @@ use \Friendica\Core\Config; foreach ($r as $rr) { $user = api_get_user($a, $rr['nurl']); - ($type == "xml") ? $users[$k++.":user"] = $user : $users[] = $user; + ($type == "xml") ? $users[$k++ . ":user"] = $user : $users[] = $user; } $profile['users'] = $users; // add prepared profile data to array for final return if ($type == "xml") { - $profiles[$k++.":profile"] = $profile; + $profiles[$k++ . ":profile"] = $profile; } else { $profiles[] = $profile; } @@ -4015,6 +4277,7 @@ use \Friendica\Core\Config; api_register_func('api/friendica/profile/show', 'api_friendica_profile_show', true, API_METHOD_GET); /* +@TODO Maybe open to implement? To.Do: [pagename] => api/1.1/statuses/lookup.json [id] => 605138389168451584 diff --git a/include/attach.php b/include/attach.php index 6b26b1ed6..ee6f49937 100644 --- a/include/attach.php +++ b/include/attach.php @@ -1060,13 +1060,14 @@ function z_mime_content_type($filename) { 'zsh' => 'text/x-script.zsh', ); - $dot = strpos($filename,'.'); - if($dot !== false) { - $ext = strtolower(substr($filename,$dot+1)); + $dot = strpos($filename, '.'); + if ($dot !== false) { + $ext = strtolower(substr($filename, $dot + 1)); if (array_key_exists($ext, $mime_types)) { return $mime_types[$ext]; } } + /// @TODO Then let's get rid of it? // can't use this because we're just passing a name, e.g. not a file that can be opened // elseif (function_exists('finfo_open')) { // $finfo = @finfo_open(FILEINFO_MIME); diff --git a/include/bb2diaspora.php b/include/bb2diaspora.php index 03eff5a6b..a07a58353 100644 --- a/include/bb2diaspora.php +++ b/include/bb2diaspora.php @@ -1,11 +1,12 @@ convert($Text); // unmask the special chars back to HTML - $Text = str_replace(array('&_lt_;','&_gt_;','&_amp_;'),array('<','>','&'),$Text); + $Text = str_replace(array('&_lt_;', '&_gt_;', '&_amp_;'), array('<', '>', '&'), $Text); $a->save_timestamp($stamp1, "parser"); @@ -172,20 +201,31 @@ function bb2diaspora($Text,$preserve_nl = false, $fordiaspora = true) { $Text = preg_replace_callback("/([@]\[(.*?)\])\(([$URLSearchString]*?)\)/ism", 'diaspora_mentions', $Text); } + // Restore code blocks + $Text = preg_replace_callback('/#codeblock-([0-9]+)#/iU', + function ($matches) use ($codeblocks) { + $return = ''; + if (isset($codeblocks[intval($matches[1])])) { + $return = $codeblocks[$matches[1]]; + } + return $return; + } + , $Text); + call_hooks('bb2diaspora',$Text); return $Text; } function unescape_underscores_in_links($m) { - $y = str_replace('\\_','_', $m[2]); + $y = str_replace('\\_', '_', $m[2]); return('[' . $m[1] . '](' . $y . ')'); } function format_event_diaspora($ev) { - - if(! ((is_array($ev)) && count($ev))) + if (! ((is_array($ev)) && count($ev))) { return ''; + } $bd_format = t('l F d, Y \@ g:i A') ; // Friday January 18, 2011 @ 8 AM @@ -200,17 +240,19 @@ function format_event_diaspora($ev) { $ev['start'] , $bd_format))) . '](' . App::get_baseurl() . '/localtime/?f=&time=' . urlencode(datetime_convert('UTC','UTC',$ev['start'])) . ")\n"; - if(! $ev['nofinish']) + if (! $ev['nofinish']) { $o .= t('Finishes:') . ' ' . '[' . (($ev['adjust']) ? day_translate(datetime_convert('UTC', 'UTC', $ev['finish'] , $bd_format )) : day_translate(datetime_convert('UTC', 'UTC', $ev['finish'] , $bd_format ))) . '](' . App::get_baseurl() . '/localtime/?f=&time=' . urlencode(datetime_convert('UTC','UTC',$ev['finish'])) . ")\n"; + } - if(strlen($ev['location'])) + if (strlen($ev['location'])) { $o .= t('Location:') . bb2diaspora($ev['location']) . "\n"; + } $o .= "\n"; return $o; diff --git a/include/bbcode.php b/include/bbcode.php index 489ef8b2e..2715334e4 100644 --- a/include/bbcode.php +++ b/include/bbcode.php @@ -1,43 +1,46 @@ ' . generate_map(str_replace('/',' ',$match[1])) . '', $match[0]); + return str_replace($match[0], '
' . generate_map(str_replace('/', ' ', $match[1])) . '
', $match[0]); } function bb_map_location($match) { // the extra space in the following line is intentional - return str_replace($match[0],'
' . generate_named_map($match[1]) . '
', $match[0]); + return str_replace($match[0], '
' . generate_named_map($match[1]) . '
', $match[0]); } function bb_attachment($Text, $simplehtml = false, $tryoembed = true) { $data = get_attachment_data($Text); - if (!$data) + if (!$data) { return $Text; + } if (isset($data["title"])) { $data["title"] = strip_tags($data["title"]); @@ -57,83 +60,91 @@ function bb_attachment($Text, $simplehtml = false, $tryoembed = true) { // If the link description is similar to the text above then don't add the link description if (($data["title"] != "") AND ((strpos($test1,$test2) !== false) OR - (similar_text($test1,$test2) / strlen($data["title"])) > 0.9)) + (similar_text($test1,$test2) / strlen($data["title"])) > 0.9)) { $title2 = $data["url"]; - $text = sprintf('%s
', + } + $text = sprintf('%s
', $data["url"], $data["title"], $title2); - } elseif (($simplehtml != 4) AND ($simplehtml != 0)) + } elseif (($simplehtml != 4) AND ($simplehtml != 0)) { $text = sprintf('%s
', $data["url"], $data["title"]); - else { + } else { $text = sprintf('', $data["type"]); $bookmark = array(sprintf('[bookmark=%s]%s[/bookmark]', $data["url"], $data["title"]), $data["url"], $data["title"]); - if ($tryoembed) + if ($tryoembed) { $oembed = tryoembed($bookmark); - else + } else { $oembed = $bookmark[0]; + } - if (strstr(strtolower($oembed), "', $Text); - else + } else { $Text = preg_replace("/\[iframe\](.*?)\[\/iframe\]/ism", '$1', $Text); + } // Youtube extensions if ($tryoembed) { $Text = preg_replace_callback("/\[youtube\](https?:\/\/www.youtube.com\/watch\?v\=.*?)\[\/youtube\]/ism", 'tryoembed', $Text); $Text = preg_replace_callback("/\[youtube\](www.youtube.com\/watch\?v\=.*?)\[\/youtube\]/ism", 'tryoembed', $Text); - $Text = preg_replace_callback("/\[youtube\](https?:\/\/youtu.be\/.*?)\[\/youtube\]/ism",'tryoembed',$Text); + $Text = preg_replace_callback("/\[youtube\](https?:\/\/youtu.be\/.*?)\[\/youtube\]/ism", 'tryoembed', $Text); } - $Text = preg_replace("/\[youtube\]https?:\/\/www.youtube.com\/watch\?v\=(.*?)\[\/youtube\]/ism",'[youtube]$1[/youtube]',$Text); - $Text = preg_replace("/\[youtube\]https?:\/\/www.youtube.com\/embed\/(.*?)\[\/youtube\]/ism",'[youtube]$1[/youtube]',$Text); - $Text = preg_replace("/\[youtube\]https?:\/\/youtu.be\/(.*?)\[\/youtube\]/ism",'[youtube]$1[/youtube]',$Text); - - if ($tryoembed) - $Text = preg_replace("/\[youtube\]([A-Za-z0-9\-_=]+)(.*?)\[\/youtube\]/ism", '', $Text); - else - $Text = preg_replace("/\[youtube\]([A-Za-z0-9\-_=]+)(.*?)\[\/youtube\]/ism", - 'https://www.youtube.com/watch?v=$1', $Text); + $Text = preg_replace("/\[youtube\]https?:\/\/www.youtube.com\/watch\?v\=(.*?)\[\/youtube\]/ism", '[youtube]$1[/youtube]', $Text); + $Text = preg_replace("/\[youtube\]https?:\/\/www.youtube.com\/embed\/(.*?)\[\/youtube\]/ism", '[youtube]$1[/youtube]', $Text); + $Text = preg_replace("/\[youtube\]https?:\/\/youtu.be\/(.*?)\[\/youtube\]/ism", '[youtube]$1[/youtube]', $Text); if ($tryoembed) { - $Text = preg_replace_callback("/\[vimeo\](https?:\/\/player.vimeo.com\/video\/[0-9]+).*?\[\/vimeo\]/ism",'tryoembed',$Text); - $Text = preg_replace_callback("/\[vimeo\](https?:\/\/vimeo.com\/[0-9]+).*?\[\/vimeo\]/ism",'tryoembed',$Text); + $Text = preg_replace("/\[youtube\]([A-Za-z0-9\-_=]+)(.*?)\[\/youtube\]/ism", '', $Text); + } else { + $Text = preg_replace("/\[youtube\]([A-Za-z0-9\-_=]+)(.*?)\[\/youtube\]/ism", + 'https://www.youtube.com/watch?v=$1', $Text); } - $Text = preg_replace("/\[vimeo\]https?:\/\/player.vimeo.com\/video\/([0-9]+)(.*?)\[\/vimeo\]/ism",'[vimeo]$1[/vimeo]',$Text); - $Text = preg_replace("/\[vimeo\]https?:\/\/vimeo.com\/([0-9]+)(.*?)\[\/vimeo\]/ism",'[vimeo]$1[/vimeo]',$Text); + if ($tryoembed) { + $Text = preg_replace_callback("/\[vimeo\](https?:\/\/player.vimeo.com\/video\/[0-9]+).*?\[\/vimeo\]/ism", 'tryoembed', $Text); + $Text = preg_replace_callback("/\[vimeo\](https?:\/\/vimeo.com\/[0-9]+).*?\[\/vimeo\]/ism", 'tryoembed', $Text); + } - if ($tryoembed) + $Text = preg_replace("/\[vimeo\]https?:\/\/player.vimeo.com\/video\/([0-9]+)(.*?)\[\/vimeo\]/ism", '[vimeo]$1[/vimeo]', $Text); + $Text = preg_replace("/\[vimeo\]https?:\/\/vimeo.com\/([0-9]+)(.*?)\[\/vimeo\]/ism", '[vimeo]$1[/vimeo]', $Text); + + if ($tryoembed) { $Text = preg_replace("/\[vimeo\]([0-9]+)(.*?)\[\/vimeo\]/ism", '', $Text); - else + } else { $Text = preg_replace("/\[vimeo\]([0-9]+)(.*?)\[\/vimeo\]/ism", 'https://vimeo.com/$1', $Text); + } // $Text = preg_replace("/\[youtube\](.*?)\[\/youtube\]/", '', $Text); @@ -1132,33 +1211,42 @@ function bbcode($Text,$preserve_nl = false, $tryoembed = true, $simplehtml = fal // Summary (e.g. title) is required, earlier revisions only required description (in addition to // start which is always required). Allow desc with a missing summary for compatibility. - if((x($ev,'desc') || x($ev,'summary')) && x($ev,'start')) { + if ((x($ev, 'desc') || x($ev, 'summary')) && x($ev, 'start')) { $sub = format_event_html($ev, $simplehtml); - $Text = preg_replace("/\[event\-summary\](.*?)\[\/event\-summary\]/ism",'',$Text); - $Text = preg_replace("/\[event\-description\](.*?)\[\/event\-description\]/ism",'',$Text); - $Text = preg_replace("/\[event\-start\](.*?)\[\/event\-start\]/ism",$sub,$Text); - $Text = preg_replace("/\[event\-finish\](.*?)\[\/event\-finish\]/ism",'',$Text); - $Text = preg_replace("/\[event\-location\](.*?)\[\/event\-location\]/ism",'',$Text); - $Text = preg_replace("/\[event\-adjust\](.*?)\[\/event\-adjust\]/ism",'',$Text); - $Text = preg_replace("/\[event\-id\](.*?)\[\/event\-id\]/ism",'',$Text); + $Text = preg_replace("/\[event\-summary\](.*?)\[\/event\-summary\]/ism", '', $Text); + $Text = preg_replace("/\[event\-description\](.*?)\[\/event\-description\]/ism", '', $Text); + $Text = preg_replace("/\[event\-start\](.*?)\[\/event\-start\]/ism", $sub, $Text); + $Text = preg_replace("/\[event\-finish\](.*?)\[\/event\-finish\]/ism", '', $Text); + $Text = preg_replace("/\[event\-location\](.*?)\[\/event\-location\]/ism", '', $Text); + $Text = preg_replace("/\[event\-adjust\](.*?)\[\/event\-adjust\]/ism", '', $Text); + $Text = preg_replace("/\[event\-id\](.*?)\[\/event\-id\]/ism", '', $Text); } - //replace oneliner with - $Text = preg_replace_callback("|(?!]*>)([^<]*)(?!]*>)|ism", 'bb_onelinecode_cb', $Text); + // Replace inline code blocks + $Text = preg_replace_callback("|(?!]*>)([^<]*)(?!]*>)|ism", + function ($match) use ($simplehtml) { + $return = '' . $match[1] . ''; + // Use for Diaspora inline code blocks + if ($simplehtml === 3) { + $return = '' . $match[1] . ''; + } + return $return; + } + , $Text); // Unhide all [noparse] contained bbtags unspacefying them // and triming the [noparse] tag. - $Text = preg_replace_callback("/\[noparse\](.*?)\[\/noparse\]/ism", 'bb_unspacefy_and_trim',$Text); - $Text = preg_replace_callback("/\[nobb\](.*?)\[\/nobb\]/ism", 'bb_unspacefy_and_trim',$Text); - $Text = preg_replace_callback("/\[pre\](.*?)\[\/pre\]/ism", 'bb_unspacefy_and_trim',$Text); + $Text = preg_replace_callback("/\[noparse\](.*?)\[\/noparse\]/ism", 'bb_unspacefy_and_trim', $Text); + $Text = preg_replace_callback("/\[nobb\](.*?)\[\/nobb\]/ism", 'bb_unspacefy_and_trim', $Text); + $Text = preg_replace_callback("/\[pre\](.*?)\[\/pre\]/ism", 'bb_unspacefy_and_trim', $Text); - $Text = preg_replace('/\[\&\;([#a-z0-9]+)\;\]/','&$1;',$Text); - $Text = preg_replace('/\&\#039\;/','\'',$Text); - $Text = preg_replace('/\"\;/','"',$Text); + $Text = preg_replace('/\[\&\;([#a-z0-9]+)\;\]/', '&$1;', $Text); + $Text = preg_replace('/\&\#039\;/', '\'', $Text); + $Text = preg_replace('/\"\;/', '"', $Text); // fix any escaped ampersands that may have been converted into links $Text = preg_replace('/\<([^>]*?)(src|href)=(.*?)\&\;(.*?)\>/ism', '<$1$2=$3&$4>', $Text); @@ -1178,7 +1266,7 @@ function bbcode($Text,$preserve_nl = false, $tryoembed = true, $simplehtml = fal $regex = '#<([^>]*?)(href)="(?!' . implode('|', $allowed_link_protocols) . ')(.*?)"(.*?)>#ism'; $Text = preg_replace($regex, '<$1$2="javascript:void(0)"$4 class="invalid-href" title="' . t('Invalid link protocol') . '">', $Text); - if($saved_image) { + if ($saved_image) { $Text = bb_replace_images($Text, $saved_image); } @@ -1198,19 +1286,19 @@ function bbcode($Text,$preserve_nl = false, $tryoembed = true, $simplehtml = fal $Text = $doc->saveHTML(); $Text = str_replace(array("", "", $doctype, $encoding), array("", "", "", ""), $Text); - $Text = str_replace('
','', $Text); + $Text = str_replace('
', '', $Text); //$Text = mb_convert_encoding($Text, "UTF-8", 'HTML-ENTITIES'); } // Clean up some useless linebreaks in lists - //$Text = str_replace('

','', $Text); - //$Text = str_replace('
','', $Text); - //$Text = str_replace('
  • ','
  • ', $Text); - // $Text = str_replace('

    ', '', $Text); + //$Text = str_replace('

  • ', '', $Text); + //$Text = str_replace('
  • ', '
  • ', $Text); + //$Text = str_replace('
    diff --git a/include/cli_startup.php b/include/cli_startup.php index 4b66b47a0..557d08c28 100644 --- a/include/cli_startup.php +++ b/include/cli_startup.php @@ -19,7 +19,7 @@ function cli_startup() { require_once("dba.php"); $db = new dba($db_host, $db_user, $db_pass, $db_data); unset($db_host, $db_user, $db_pass, $db_data); - }; + }; require_once('include/session.php'); diff --git a/include/contact_selectors.php b/include/contact_selectors.php index 56c032847..7069af066 100644 --- a/include/contact_selectors.php +++ b/include/contact_selectors.php @@ -9,12 +9,12 @@ function contact_profile_assign($current,$foreign_net) { $o .= "'; } else { - $profile_in_dir = replace_macros($opt_tpl,array( - '$field' => array('profile_in_directory', t('Publish your default profile in your local site directory?'), $profile['publish'], '', array(t('No'),t('Yes'))), + $profile_in_dir = replace_macros($opt_tpl, array( + '$field' => array('profile_in_directory', t('Publish your default profile in your local site directory?'), $profile['publish'], t("Your profile may be visible in public."), array(t('No'), t('Yes'))) )); } if (strlen(get_config('system','directory'))) { - $profile_in_net_dir = replace_macros($opt_tpl,array( - '$field' => array('profile_in_netdirectory', t('Publish your default profile in the global social directory?'), $profile['net-publish'], '', array(t('No'),t('Yes'))), + $profile_in_net_dir = replace_macros($opt_tpl, array( + '$field' => array('profile_in_netdirectory', t('Publish your default profile in the global social directory?'), $profile['net-publish'], '', array(t('No'), t('Yes'))) )); } else { $profile_in_net_dir = ''; } $hide_friends = replace_macros($opt_tpl,array( - '$field' => array('hide-friends', t('Hide your contact/friend list from viewers of your default profile?'), $profile['hide-friends'], '', array(t('No'),t('Yes'))), + '$field' => array('hide-friends', t('Hide your contact/friend list from viewers of your default profile?'), $profile['hide-friends'], '', array(t('No'), t('Yes'))), )); $hide_wall = replace_macros($opt_tpl,array( - '$field' => array('hidewall', t('Hide your profile details from unknown viewers?'), $a->user['hidewall'], t("If enabled, posting public messages to Diaspora and other networks isn't possible."), array(t('No'),t('Yes'))), + '$field' => array('hidewall', t('Hide your profile details from unknown viewers?'), $a->user['hidewall'], t("If enabled, posting public messages to Diaspora and other networks isn't possible."), array(t('No'), t('Yes'))), )); $blockwall = replace_macros($opt_tpl,array( - '$field' => array('blockwall', t('Allow friends to post to your profile page?'), (intval($a->user['blockwall']) ? '0' : '1'), '', array(t('No'),t('Yes'))), + '$field' => array('blockwall', t('Allow friends to post to your profile page?'), (intval($a->user['blockwall']) ? '0' : '1'), '', array(t('No'), t('Yes'))), )); $blocktags = replace_macros($opt_tpl,array( - '$field' => array('blocktags', t('Allow friends to tag your posts?'), (intval($a->user['blocktags']) ? '0' : '1'), '', array(t('No'),t('Yes'))), + '$field' => array('blocktags', t('Allow friends to tag your posts?'), (intval($a->user['blocktags']) ? '0' : '1'), '', array(t('No'), t('Yes'))), )); $suggestme = replace_macros($opt_tpl,array( - '$field' => array('suggestme', t('Allow us to suggest you as a potential friend to new members?'), $suggestme, '', array(t('No'),t('Yes'))), + '$field' => array('suggestme', t('Allow us to suggest you as a potential friend to new members?'), $suggestme, '', array(t('No'), t('Yes'))), )); $unkmail = replace_macros($opt_tpl,array( - '$field' => array('unkmail', t('Permit unknown people to send you private mail?'), $unkmail, '', array(t('No'),t('Yes'))), + '$field' => array('unkmail', t('Permit unknown people to send you private mail?'), $unkmail, '', array(t('No'), t('Yes'))), )); @@ -1231,11 +1231,11 @@ function settings_content(App $a) { 'days' => array('expire', t("Automatically expire posts after this many days:"), $expire, t('If empty, posts will not expire. Expired posts will be deleted')), 'advanced' => t('Advanced expiration settings'), 'label' => t('Advanced Expiration'), - 'items' => array('expire_items', t("Expire posts:"), $expire_items, '', array(t('No'),t('Yes'))), - 'notes' => array('expire_notes', t("Expire personal notes:"), $expire_notes, '', array(t('No'),t('Yes'))), - 'starred' => array('expire_starred', t("Expire starred posts:"), $expire_starred, '', array(t('No'),t('Yes'))), - 'photos' => array('expire_photos', t("Expire photos:"), $expire_photos, '', array(t('No'),t('Yes'))), - 'network_only' => array('expire_network_only', t("Only expire posts by others:"), $expire_network_only, '', array(t('No'),t('Yes'))), + 'items' => array('expire_items', t("Expire posts:"), $expire_items, '', array(t('No'), t('Yes'))), + 'notes' => array('expire_notes', t("Expire personal notes:"), $expire_notes, '', array(t('No'), t('Yes'))), + 'starred' => array('expire_starred', t("Expire starred posts:"), $expire_starred, '', array(t('No'), t('Yes'))), + 'photos' => array('expire_photos', t("Expire photos:"), $expire_photos, '', array(t('No'), t('Yes'))), + 'network_only' => array('expire_network_only', t("Only expire posts by others:"), $expire_network_only, '', array(t('No'), t('Yes'))), ); require_once('include/group.php'); @@ -1293,7 +1293,7 @@ function settings_content(App $a) { '$h_prv' => t('Security and Privacy Settings'), - '$maxreq' => array('maxreq', t('Maximum Friend Requests/Day:'), $maxreq ,t("\x28to prevent spam abuse\x29")), + '$maxreq' => array('maxreq', t('Maximum Friend Requests/Day:'), $maxreq , t("\x28to prevent spam abuse\x29")), '$permissions' => t('Default Post Permissions'), '$permdesc' => t("\x28click to open/close\x29"), '$visibility' => $profile['net-publish'], @@ -1323,7 +1323,7 @@ function settings_content(App $a) { '$hide_friends' => $hide_friends, '$hide_wall' => $hide_wall, '$unkmail' => $unkmail, - '$cntunkmail' => array('cntunkmail', t('Maximum private messages per day from unknown people:'), $cntunkmail ,t("\x28to prevent spam abuse\x29")), + '$cntunkmail' => array('cntunkmail', t('Maximum private messages per day from unknown people:'), $cntunkmail , t("\x28to prevent spam abuse\x29")), '$h_not' => t('Notification Settings'), diff --git a/mod/uexport.php b/mod/uexport.php index cada539bc..77a45f8a3 100644 --- a/mod/uexport.php +++ b/mod/uexport.php @@ -34,8 +34,8 @@ function uexport_content(App $a) { * list of array( 'link url', 'link text', 'help text' ) */ $options = array( - array('uexport/account',t('Export account'),t('Export your account info and contacts. Use this to make a backup of your account and/or to move it to another server.')), - array('uexport/backup',t('Export all'),t('Export your accout info, contacts and all your items as json. Could be a very big file, and could take a lot of time. Use this to make a full backup of your account (photos are not exported)')), + array('uexport/account', t('Export account'), t('Export your account info and contacts. Use this to make a backup of your account and/or to move it to another server.')), + array('uexport/backup', t('Export all'), t('Export your accout info, contacts and all your items as json. Could be a very big file, and could take a lot of time. Use this to make a full backup of your account (photos are not exported)')), ); call_hooks('uexport_options', $options); diff --git a/mod/videos.php b/mod/videos.php index 3828b8f1f..269d53785 100644 --- a/mod/videos.php +++ b/mod/videos.php @@ -356,7 +356,9 @@ function videos_content(App $a) { $a->set_pager_itemspage(20); } - $r = q("SELECT hash, `id`, `filename`, filetype FROM `attach` + $r = q("SELECT hash, ANY_VALUE(`id`) AS `id`, ANY_VALUE(`created`) AS `created`, + ANY_VALUE(`filename`) AS `filename`, ANY_VALUE(`filetype`) as `filetype` + FROM `attach` WHERE `uid` = %d AND filetype LIKE '%%video%%' $sql_extra GROUP BY hash ORDER BY `created` DESC LIMIT %d , %d", intval($a->data['user']['uid']), diff --git a/mod/webfinger.php b/mod/webfinger.php index eee0580e3..d823bd2dc 100644 --- a/mod/webfinger.php +++ b/mod/webfinger.php @@ -3,6 +3,13 @@ require_once("include/Probe.php"); function webfinger_content(App $a) { + if (!local_user()) { + http_status_exit(403, + array("title" => t("Public access denied."), + "description" => t("Only logged in users are permitted to perform a probing."))); + killme(); + } + $o .= '

    Webfinger Diagnostic

    '; $o .= '
    '; diff --git a/update.php b/update.php index 8404f5bf2..ea0c57535 100644 --- a/update.php +++ b/update.php @@ -1,6 +1,6 @@ /dev/null 2>&1; then + # Cygwin paths start with /cygdrive/ which will break windows PHP, + # so we need to translate the dir path to windows format. However + # we could be using cygwin PHP which does not require this, so we + # test if the path to PHP starts with /cygdrive/ rather than /usr/bin + if [[ $(which php) == /cygdrive/* ]]; then + dir=$(cygpath -m "$dir"); + fi +fi + +dir=$(echo $dir | sed 's/ /\ /g') +"${dir}/html-to-markdown" "$@" diff --git a/vendor/bin/html-to-markdown.bat b/vendor/bin/html-to-markdown.bat new file mode 100644 index 000000000..273f24a5d --- /dev/null +++ b/vendor/bin/html-to-markdown.bat @@ -0,0 +1,4 @@ +@ECHO OFF +setlocal DISABLEDELAYEDEXPANSION +SET BIN_TARGET=%~dp0/../league/html-to-markdown/bin/html-to-markdown +php "%BIN_TARGET%" %* diff --git a/vendor/composer/autoload_classmap.php b/vendor/composer/autoload_classmap.php index 95407cff6..4553da2e2 100644 --- a/vendor/composer/autoload_classmap.php +++ b/vendor/composer/autoload_classmap.php @@ -241,6 +241,29 @@ return array( 'HTMLPurifier_VarParser_Flexible' => $vendorDir . '/ezyang/htmlpurifier/library/HTMLPurifier/VarParser/Flexible.php', 'HTMLPurifier_VarParser_Native' => $vendorDir . '/ezyang/htmlpurifier/library/HTMLPurifier/VarParser/Native.php', 'HTMLPurifier_Zipper' => $vendorDir . '/ezyang/htmlpurifier/library/HTMLPurifier/Zipper.php', + 'League\\HTMLToMarkdown\\Configuration' => $vendorDir . '/league/html-to-markdown/src/Configuration.php', + 'League\\HTMLToMarkdown\\ConfigurationAwareInterface' => $vendorDir . '/league/html-to-markdown/src/ConfigurationAwareInterface.php', + 'League\\HTMLToMarkdown\\Converter\\BlockquoteConverter' => $vendorDir . '/league/html-to-markdown/src/Converter/BlockquoteConverter.php', + 'League\\HTMLToMarkdown\\Converter\\CodeConverter' => $vendorDir . '/league/html-to-markdown/src/Converter/CodeConverter.php', + 'League\\HTMLToMarkdown\\Converter\\CommentConverter' => $vendorDir . '/league/html-to-markdown/src/Converter/CommentConverter.php', + 'League\\HTMLToMarkdown\\Converter\\ConverterInterface' => $vendorDir . '/league/html-to-markdown/src/Converter/ConverterInterface.php', + 'League\\HTMLToMarkdown\\Converter\\DefaultConverter' => $vendorDir . '/league/html-to-markdown/src/Converter/DefaultConverter.php', + 'League\\HTMLToMarkdown\\Converter\\DivConverter' => $vendorDir . '/league/html-to-markdown/src/Converter/DivConverter.php', + 'League\\HTMLToMarkdown\\Converter\\EmphasisConverter' => $vendorDir . '/league/html-to-markdown/src/Converter/EmphasisConverter.php', + 'League\\HTMLToMarkdown\\Converter\\HardBreakConverter' => $vendorDir . '/league/html-to-markdown/src/Converter/HardBreakConverter.php', + 'League\\HTMLToMarkdown\\Converter\\HeaderConverter' => $vendorDir . '/league/html-to-markdown/src/Converter/HeaderConverter.php', + 'League\\HTMLToMarkdown\\Converter\\HorizontalRuleConverter' => $vendorDir . '/league/html-to-markdown/src/Converter/HorizontalRuleConverter.php', + 'League\\HTMLToMarkdown\\Converter\\ImageConverter' => $vendorDir . '/league/html-to-markdown/src/Converter/ImageConverter.php', + 'League\\HTMLToMarkdown\\Converter\\LinkConverter' => $vendorDir . '/league/html-to-markdown/src/Converter/LinkConverter.php', + 'League\\HTMLToMarkdown\\Converter\\ListBlockConverter' => $vendorDir . '/league/html-to-markdown/src/Converter/ListBlockConverter.php', + 'League\\HTMLToMarkdown\\Converter\\ListItemConverter' => $vendorDir . '/league/html-to-markdown/src/Converter/ListItemConverter.php', + 'League\\HTMLToMarkdown\\Converter\\ParagraphConverter' => $vendorDir . '/league/html-to-markdown/src/Converter/ParagraphConverter.php', + 'League\\HTMLToMarkdown\\Converter\\PreformattedConverter' => $vendorDir . '/league/html-to-markdown/src/Converter/PreformattedConverter.php', + 'League\\HTMLToMarkdown\\Converter\\TextConverter' => $vendorDir . '/league/html-to-markdown/src/Converter/TextConverter.php', + 'League\\HTMLToMarkdown\\Element' => $vendorDir . '/league/html-to-markdown/src/Element.php', + 'League\\HTMLToMarkdown\\ElementInterface' => $vendorDir . '/league/html-to-markdown/src/ElementInterface.php', + 'League\\HTMLToMarkdown\\Environment' => $vendorDir . '/league/html-to-markdown/src/Environment.php', + 'League\\HTMLToMarkdown\\HtmlConverter' => $vendorDir . '/league/html-to-markdown/src/HtmlConverter.php', 'Mobile_Detect' => $vendorDir . '/mobiledetect/mobiledetectlib/Mobile_Detect.php', 'OS_Guess' => $vendorDir . '/pear-pear.php.net/PEAR/OS/Guess.php', 'PEAR' => $vendorDir . '/pear-pear.php.net/PEAR/PEAR.php', diff --git a/vendor/composer/autoload_psr4.php b/vendor/composer/autoload_psr4.php index a8d577d5e..61a440ffd 100644 --- a/vendor/composer/autoload_psr4.php +++ b/vendor/composer/autoload_psr4.php @@ -6,5 +6,6 @@ $vendorDir = dirname(dirname(__FILE__)); $baseDir = dirname($vendorDir); return array( + 'League\\HTMLToMarkdown\\' => array($vendorDir . '/league/html-to-markdown/src'), 'Friendica\\' => array($baseDir . '/src'), ); diff --git a/vendor/composer/autoload_static.php b/vendor/composer/autoload_static.php index 370e53218..37d3c878b 100644 --- a/vendor/composer/autoload_static.php +++ b/vendor/composer/autoload_static.php @@ -11,6 +11,10 @@ class ComposerStaticInitFriendica ); public static $prefixLengthsPsr4 = array ( + 'L' => + array ( + 'League\\HTMLToMarkdown\\' => 22, + ), 'F' => array ( 'Friendica\\' => 10, @@ -18,6 +22,10 @@ class ComposerStaticInitFriendica ); public static $prefixDirsPsr4 = array ( + 'League\\HTMLToMarkdown\\' => + array ( + 0 => __DIR__ . '/..' . '/league/html-to-markdown/src', + ), 'Friendica\\' => array ( 0 => __DIR__ . '/../..' . '/src', @@ -277,6 +285,29 @@ class ComposerStaticInitFriendica 'HTMLPurifier_VarParser_Flexible' => __DIR__ . '/..' . '/ezyang/htmlpurifier/library/HTMLPurifier/VarParser/Flexible.php', 'HTMLPurifier_VarParser_Native' => __DIR__ . '/..' . '/ezyang/htmlpurifier/library/HTMLPurifier/VarParser/Native.php', 'HTMLPurifier_Zipper' => __DIR__ . '/..' . '/ezyang/htmlpurifier/library/HTMLPurifier/Zipper.php', + 'League\\HTMLToMarkdown\\Configuration' => __DIR__ . '/..' . '/league/html-to-markdown/src/Configuration.php', + 'League\\HTMLToMarkdown\\ConfigurationAwareInterface' => __DIR__ . '/..' . '/league/html-to-markdown/src/ConfigurationAwareInterface.php', + 'League\\HTMLToMarkdown\\Converter\\BlockquoteConverter' => __DIR__ . '/..' . '/league/html-to-markdown/src/Converter/BlockquoteConverter.php', + 'League\\HTMLToMarkdown\\Converter\\CodeConverter' => __DIR__ . '/..' . '/league/html-to-markdown/src/Converter/CodeConverter.php', + 'League\\HTMLToMarkdown\\Converter\\CommentConverter' => __DIR__ . '/..' . '/league/html-to-markdown/src/Converter/CommentConverter.php', + 'League\\HTMLToMarkdown\\Converter\\ConverterInterface' => __DIR__ . '/..' . '/league/html-to-markdown/src/Converter/ConverterInterface.php', + 'League\\HTMLToMarkdown\\Converter\\DefaultConverter' => __DIR__ . '/..' . '/league/html-to-markdown/src/Converter/DefaultConverter.php', + 'League\\HTMLToMarkdown\\Converter\\DivConverter' => __DIR__ . '/..' . '/league/html-to-markdown/src/Converter/DivConverter.php', + 'League\\HTMLToMarkdown\\Converter\\EmphasisConverter' => __DIR__ . '/..' . '/league/html-to-markdown/src/Converter/EmphasisConverter.php', + 'League\\HTMLToMarkdown\\Converter\\HardBreakConverter' => __DIR__ . '/..' . '/league/html-to-markdown/src/Converter/HardBreakConverter.php', + 'League\\HTMLToMarkdown\\Converter\\HeaderConverter' => __DIR__ . '/..' . '/league/html-to-markdown/src/Converter/HeaderConverter.php', + 'League\\HTMLToMarkdown\\Converter\\HorizontalRuleConverter' => __DIR__ . '/..' . '/league/html-to-markdown/src/Converter/HorizontalRuleConverter.php', + 'League\\HTMLToMarkdown\\Converter\\ImageConverter' => __DIR__ . '/..' . '/league/html-to-markdown/src/Converter/ImageConverter.php', + 'League\\HTMLToMarkdown\\Converter\\LinkConverter' => __DIR__ . '/..' . '/league/html-to-markdown/src/Converter/LinkConverter.php', + 'League\\HTMLToMarkdown\\Converter\\ListBlockConverter' => __DIR__ . '/..' . '/league/html-to-markdown/src/Converter/ListBlockConverter.php', + 'League\\HTMLToMarkdown\\Converter\\ListItemConverter' => __DIR__ . '/..' . '/league/html-to-markdown/src/Converter/ListItemConverter.php', + 'League\\HTMLToMarkdown\\Converter\\ParagraphConverter' => __DIR__ . '/..' . '/league/html-to-markdown/src/Converter/ParagraphConverter.php', + 'League\\HTMLToMarkdown\\Converter\\PreformattedConverter' => __DIR__ . '/..' . '/league/html-to-markdown/src/Converter/PreformattedConverter.php', + 'League\\HTMLToMarkdown\\Converter\\TextConverter' => __DIR__ . '/..' . '/league/html-to-markdown/src/Converter/TextConverter.php', + 'League\\HTMLToMarkdown\\Element' => __DIR__ . '/..' . '/league/html-to-markdown/src/Element.php', + 'League\\HTMLToMarkdown\\ElementInterface' => __DIR__ . '/..' . '/league/html-to-markdown/src/ElementInterface.php', + 'League\\HTMLToMarkdown\\Environment' => __DIR__ . '/..' . '/league/html-to-markdown/src/Environment.php', + 'League\\HTMLToMarkdown\\HtmlConverter' => __DIR__ . '/..' . '/league/html-to-markdown/src/HtmlConverter.php', 'Mobile_Detect' => __DIR__ . '/..' . '/mobiledetect/mobiledetectlib/Mobile_Detect.php', 'OS_Guess' => __DIR__ . '/..' . '/pear-pear.php.net/PEAR/OS/Guess.php', 'PEAR' => __DIR__ . '/..' . '/pear-pear.php.net/PEAR/PEAR.php', diff --git a/vendor/composer/installed.json b/vendor/composer/installed.json index d55aed01d..45038987b 100644 --- a/vendor/composer/installed.json +++ b/vendor/composer/installed.json @@ -330,5 +330,71 @@ "PHP License" ], "description": "Text_Highlighter is a package for syntax highlighting.\n\nIt provides a base class provining all the functionality,\nand a descendent classes geneator class.\n\nThe main idea is to simplify creation of subclasses\nimplementing syntax highlighting for particular language.\nSubclasses do not implement any new functioanality,\nthey just provide syntax highlighting rules.\nThe rules sources are in XML format.\n\nTo create a highlighter for a language, there is no need\nto code a new class manually. Simply describe the rules\nin XML file and use Text_Highlighter_Generator to create\na new class." + }, + { + "name": "league/html-to-markdown", + "version": "4.4.1", + "version_normalized": "4.4.1.0", + "source": { + "type": "git", + "url": "https://github.com/thephpleague/html-to-markdown.git", + "reference": "82ea375b5b2b1da1da222644c0565c695bf88186" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/thephpleague/html-to-markdown/zipball/82ea375b5b2b1da1da222644c0565c695bf88186", + "reference": "82ea375b5b2b1da1da222644c0565c695bf88186", + "shasum": "" + }, + "require": { + "ext-dom": "*", + "ext-xml": "*", + "php": ">=5.3.3" + }, + "require-dev": { + "mikehaertl/php-shellcommand": "~1.1.0", + "phpunit/phpunit": "4.*", + "scrutinizer/ocular": "~1.1" + }, + "time": "2017-03-16T00:45:59+00:00", + "bin": [ + "bin/html-to-markdown" + ], + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "4.5-dev" + } + }, + "installation-source": "dist", + "autoload": { + "psr-4": { + "League\\HTMLToMarkdown\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Colin O'Dell", + "email": "colinodell@gmail.com", + "homepage": "http://www.colinodell.com", + "role": "Lead Developer" + }, + { + "name": "Nick Cernis", + "email": "nick@cern.is", + "homepage": "http://modernnerd.net", + "role": "Original Author" + } + ], + "description": "An HTML-to-markdown conversion helper for PHP", + "homepage": "https://github.com/thephpleague/html-to-markdown", + "keywords": [ + "html", + "markdown" + ] } ] diff --git a/vendor/league/html-to-markdown/CHANGELOG.md b/vendor/league/html-to-markdown/CHANGELOG.md new file mode 100644 index 000000000..067864412 --- /dev/null +++ b/vendor/league/html-to-markdown/CHANGELOG.md @@ -0,0 +1,214 @@ +# Change Log +All notable changes to this project will be documented in this file. +Updates should follow the [Keep a CHANGELOG](http://keepachangelog.com/) principles. + +## [Unreleased][unreleased] + +## [4.4.1] + +### Fixed + - Fixed autolinking of invalid URLs (#129) + +## [4.4.0] + +### Added + - Added `hard_break` configuration option (#112, #115) + - The `HtmlConverter` can now be instantiated with an `Environment` (#118) + +### Fixed + - Fixed handling of paragraphs in list item elements (#47, #110) + - Fixed phantom spaces when newlines follow `br` elements (#116, #117) + - Fixed link converter not sanitizing inner spaces properly (#119, #120) + +## [4.3.1] +### Changed + - Revised the sanitization implementation (#109) + +### Fixed + - Fixed tag-like content not being escaped (#67, #109) + - Fixed thematic break-like content not being escaped (#65, #109) + - Fixed codefence-like content not being escaped (#64, #109) + +## [4.3.0] +### Added + - Added full support for PHP 7.0 and 7.1 + +### Changed + - Changed `
    ` and `
    ` conversions to use backticks instead of indendation (#102)
    +
    +### Fixed
    + - Fixed issue where specified code language was not preserved (#70, #102)
    + - Fixed issue where `` tags nested in `
    ` was not converted properly (#70, #102)
    + - Fixed header-like content not being escaped (#76, #105)
    + - Fixed blockquote-like content not being escaped (#77, #103)
    + - Fixed ordered list-like content not being escaped (#73, #106)
    + - Fixed unordered list-like content not being escaped (#71, #107)
    +
    +## [4.2.2]
    +### Fixed
    + - Fixed sanitization bug which sometimes removes desired content (#63, #101)
    +
    +## [4.2.1]
    +### Fixed
    + - Fixed path to autoload.php when used as a library (#98)
    + - Fixed edge case for tags containing only whitespace (#99)
    +
    +### Removed
    + - Removed double HTML entity decoding, as this is not desireable (#60)
    +
    +## [4.2.0]
    +
    +### Added
    + - Added the ability to invoke HtmlConverter objects as functions (#85)
    +
    +### Fixed
    + - Fixed improper handling of nested list items (#19 and #84)
    + - Fixed preceeding or trailing spaces within emphasis tags (#83)
    +
    +## [4.1.1]
    +
    +### Fixed
    + - Fixed conversion of empty paragraphs (#78)
    + - Fixed `preg_replace` so it wouldn't break UTF-8 characters (#79)
    +
    +## [4.1.0]
    +
    +### Added
    + - Added `bin/html-to-markdown` script
    +
    +### Changed
    + - Changed default italic character to `_` (#58)
    +
    +## [4.0.1]
    +
    +### Fixed
    + - Added escaping to avoid * and _ in a text being rendered as emphasis (#48)
    +
    +### Removed
    + - Removed the demo (#51)
    + - `.styleci.yml` and `CONTRIBUTING.md` are no longer included in distributions (#50)
    +
    +## [4.0.0]
    +
    +This release changes the visibility of several methods/properties. #42 and #43 brought to light that some visiblities were
    +not ideally set, so this releases fixes that. Moving forwards this should reduce the chance of introducing BC-breaking changes.
    +
    +### Added
    + - Added new `HtmlConverter::getEnvironment()` method to expose the `Environment` (#42, #43)
    +
    +### Changed
    + - Changed `Environment::addConverter()` from `protected` to `public`, enabling custom converters to be added (#42, #43)
    + - Changed `HtmlConverter::createDOMDocument()` from `protected` to `private`
    + - Changed `Element::nextCached` from `protected` to `private`
    + - Made the `Environment` class `final`
    +
    +## [3.1.1]
    +### Fixed
    + - Empty HTML strings now result in empty Markdown documents (#40, #41)
    +
    +## [3.1.0]
    +### Added
    + - Added new `equals` method to `Element` to check for equality
    +
    +### Changes
    + - Use Linux line endings consistently instead of plaform-specific line endings (#36)
    +
    +### Fixed
    + - Cleaned up code style
    +
    +## [3.0.0]
    +### Changed
    + - Changed namespace to `League\HTMLToMarkdown`
    + - Changed packagist name to `league/html-to-markdown`
    + - Re-organized code into several separate classes
    + - `` tags with identical href and inner text are now rendered using angular bracket syntax (#31)
    + - `
    ` elements are now treated as block-level elements (#33) + +## [2.2.2] +### Added + - Added support for PHP 5.6 and HHVM + - Enabled testing against PHP 7 nightlies + - Added this CHANGELOG.md + +### Fixed + - Fixed whitespace preservation between inline elements (#9 and #10) + +## [2.2.1] +### Fixed + - Preserve placeholder links (#22) + +## [2.2.0] +### Added + - Added CircleCI config + +### Changed + - `
    ` blocks are now treated as code elements
    +
    +### Removed
    + - Dropped support for PHP 5.2
    + - Removed incorrect README comment regarding `#text` nodes (#17)
    +
    +## [2.1.2]
    +### Added
    + - Added the ability to blacklist/remove specific node types (#11)
    +
    +### Changed
    + - Line breaks are now placed after divs instead of before them
    + - Newlines inside of link texts are now removed
    + - Updated the minimum PHPUnit version to 4.*
    +
    +## [2.1.1]
    +### Added
    + - Added options to customize emphasis characters
    +
    +## [2.1.0]
    +### Added
    + - Added option to strip HTML tags without Markdown equivalents
    + - Added `convert()` method for converter reuse
    + - Added ability to set options after instance construction
    + - Documented the required PHP extensions (#4)
    +
    +### Changed
    + - ATX style now used for h1 and h2 tags inside blockquotes
    +
    +### Fixed
    + - Newlines inside blockquotes are now started with a bracket
    + - Fixed some incorrect docblocks
    + - `__toString()` now returns an empty string if input is empty
    + - Convert head tag if body tag is empty (#7)
    + - Preserve special characters inside tags without md equivalents (#6)
    +
    +
    +## [2.0.1]
    +### Fixed
    + - Fixed first line indentation for multi-line code blocks
    + - Fixed consecutive anchors get separating spaces stripped (#3)
    +
    +## [2.0.0]
    +### Added
    + - Initial release
    +
    +[unreleased]: https://github.com/thephpleague/html-to-markdown/compare/4.4.1...master
    +[4.4.1]: https://github.com/thephpleague/html-to-markdown/compare/4.4.0...4.4.1
    +[4.4.0]: https://github.com/thephpleague/html-to-markdown/compare/4.3.1...4.4.0
    +[4.3.1]: https://github.com/thephpleague/html-to-markdown/compare/4.3.0...4.3.1
    +[4.3.0]: https://github.com/thephpleague/html-to-markdown/compare/4.2.2...4.3.0
    +[4.2.2]: https://github.com/thephpleague/html-to-markdown/compare/4.2.1...4.2.2
    +[4.2.1]: https://github.com/thephpleague/html-to-markdown/compare/4.2.0...4.2.1
    +[4.2.0]: https://github.com/thephpleague/html-to-markdown/compare/4.1.1...4.2.0
    +[4.1.1]: https://github.com/thephpleague/html-to-markdown/compare/4.1.0...4.1.1
    +[4.1.0]: https://github.com/thephpleague/html-to-markdown/compare/4.0.1...4.1.0
    +[4.0.1]: https://github.com/thephpleague/html-to-markdown/compare/4.0.0...4.0.1
    +[4.0.0]: https://github.com/thephpleague/html-to-markdown/compare/3.1.1...4.0.0
    +[3.1.1]: https://github.com/thephpleague/html-to-markdown/compare/3.1.0...3.1.1
    +[3.1.0]: https://github.com/thephpleague/html-to-markdown/compare/3.0.0...3.1.0
    +[3.0.0]: https://github.com/thephpleague/html-to-markdown/compare/2.2.2...3.0.0
    +[2.2.2]: https://github.com/thephpleague/html-to-markdown/compare/2.2.1...2.2.2
    +[2.2.1]: https://github.com/thephpleague/html-to-markdown/compare/2.2.0...2.2.1
    +[2.2.0]: https://github.com/thephpleague/html-to-markdown/compare/2.1.2...2.2.0
    +[2.1.2]: https://github.com/thephpleague/html-to-markdown/compare/2.1.1...2.1.2
    +[2.1.1]: https://github.com/thephpleague/html-to-markdown/compare/2.1.0...2.1.1
    +[2.1.0]: https://github.com/thephpleague/html-to-markdown/compare/2.0.1...2.1.0
    +[2.0.1]: https://github.com/thephpleague/html-to-markdown/compare/2.0.0...2.0.1
    +[2.0.0]: https://github.com/thephpleague/html-to-markdown/compare/775f91e...2.0.0
    +
    diff --git a/vendor/league/html-to-markdown/CONDUCT.md b/vendor/league/html-to-markdown/CONDUCT.md
    new file mode 100644
    index 000000000..01b8644f1
    --- /dev/null
    +++ b/vendor/league/html-to-markdown/CONDUCT.md
    @@ -0,0 +1,22 @@
    +# Contributor Code of Conduct
    +
    +As contributors and maintainers of this project, and in the interest of fostering an open and welcoming community, we pledge to respect all people who contribute through reporting issues, posting feature requests, updating documentation, submitting pull requests or patches, and other activities.
    +
    +We are committed to making participation in this project a harassment-free experience for everyone, regardless of level of experience, gender, gender identity and expression, sexual orientation, disability, personal appearance, body size, race, ethnicity, age, religion, or nationality.
    +
    +Examples of unacceptable behavior by participants include:
    +
    +* The use of sexualized language or imagery
    +* Personal attacks
    +* Trolling or insulting/derogatory comments
    +* Public or private harassment
    +* Publishing other's private information, such as physical or electronic addresses, without explicit permission
    +* Other unethical or unprofessional conduct.
    +
    +Project maintainers have the right and responsibility to remove, edit, or reject comments, commits, code, wiki edits, issues, and other contributions that are not aligned to this Code of Conduct. By adopting this Code of Conduct, project maintainers commit themselves to fairly and consistently applying these principles to every aspect of managing this project. Project maintainers who do not follow or enforce the Code of Conduct may be permanently removed from the project team.
    +
    +This code of conduct applies both within project spaces and in public spaces when an individual is representing the project or its community.
    +
    +Instances of abusive, harassing, or otherwise unacceptable behavior may be reported by opening an issue or contacting one or more of the project maintainers.
    +
    +This Code of Conduct is adapted from the [Contributor Covenant](http://contributor-covenant.org), version 1.2.0, available at [http://contributor-covenant.org/version/1/2/0/](http://contributor-covenant.org/version/1/2/0/)
    diff --git a/library/html-to-markdown/LICENSE b/vendor/league/html-to-markdown/LICENSE
    similarity index 93%
    rename from library/html-to-markdown/LICENSE
    rename to vendor/league/html-to-markdown/LICENSE
    index f538c2ac9..6c04a59dd 100644
    --- a/library/html-to-markdown/LICENSE
    +++ b/vendor/league/html-to-markdown/LICENSE
    @@ -1,6 +1,8 @@
     The MIT License (MIT)
     
    -Copyright (c) 2013 Nick Cernis
    +Copyright (c) 2015 Colin O'Dell
    +
    +Originally created by Nick Cernis
     
     Permission is hereby granted, free of charge, to any person obtaining a copy of
     this software and associated documentation files (the "Software"), to deal in
    diff --git a/vendor/league/html-to-markdown/README.md b/vendor/league/html-to-markdown/README.md
    new file mode 100644
    index 000000000..8d75649d6
    --- /dev/null
    +++ b/vendor/league/html-to-markdown/README.md
    @@ -0,0 +1,196 @@
    +HTML To Markdown for PHP
    +========================
    +
    +[![Join the chat at https://gitter.im/thephpleague/html-to-markdown](https://badges.gitter.im/Join%20Chat.svg)](https://gitter.im/thephpleague/html-to-markdown?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)
    +
    +[![Latest Version](https://img.shields.io/packagist/v/league/html-to-markdown.svg?style=flat-square)](https://packagist.org/packages/league/html-to-markdown)
    +[![Software License](http://img.shields.io/badge/license-MIT-brightgreen.svg?style=flat-square)](LICENSE)
    +[![Build Status](https://img.shields.io/travis/thephpleague/html-to-markdown/master.svg?style=flat-square)](https://travis-ci.org/thephpleague/html-to-markdown)
    +[![Coverage Status](https://img.shields.io/scrutinizer/coverage/g/thephpleague/html-to-markdown.svg?style=flat-square)](https://scrutinizer-ci.com/g/thephpleague/html-to-markdown/code-structure)
    +[![Quality Score](https://img.shields.io/scrutinizer/g/thephpleague/html-to-markdown.svg?style=flat-square)](https://scrutinizer-ci.com/g/thephpleague/html-to-markdown)
    +[![Total Downloads](https://img.shields.io/packagist/dt/league/html-to-markdown.svg?style=flat-square)](https://packagist.org/packages/league/html-to-markdown)
    +
    +Library which converts HTML to [Markdown](http://daringfireball.net/projects/markdown/) for your sanity and convenience.
    +
    +
    +**Requires**: PHP 5.3+
    +
    +**Lead Developer**: [@colinodell](http://twitter.com/colinodell)
    +
    +**Original Author**: [@nickcernis](http://twitter.com/nickcernis)
    +
    +
    +### Why convert HTML to Markdown?
    +
    +*"What alchemy is this?"* you mutter. *"I can see why you'd convert [Markdown to HTML](https://github.com/thephpleague/commonmark),"* you continue, already labouring the question somewhat, *"but why go the other way?"*
    +
    +Typically you would convert HTML to Markdown if:
    +
    +1. You have an existing HTML document that needs to be edited by people with good taste.
    +2. You want to store new content in HTML format but edit it as Markdown.
    +3. You want to convert HTML email to plain text email. 
    +4. You know a guy who's been converting HTML to Markdown for years, and now he can speak Elvish. You'd quite like to be able to speak Elvish.
    +5. You just really like Markdown.
    +
    +### How to use it
    +
    +Require the library by issuing this command:
    +
    +```bash
    +composer require league/html-to-markdown
    +```
    +
    +Add `require 'vendor/autoload.php';` to the top of your script.
    +
    +Next, create a new HtmlConverter instance, passing in your valid HTML code to its `convert()` function:
    +
    +```php
    +use League\HTMLToMarkdown\HtmlConverter;
    +
    +$converter = new HtmlConverter();
    +
    +$html = "

    Quick, to the Batpoles!

    "; +$markdown = $converter->convert($html); +``` + +The `$markdown` variable now contains the Markdown version of your HTML as a string: + +```php +echo $markdown; // ==> ### Quick, to the Batpoles! +``` + +The included `demo` directory contains an HTML->Markdown conversion form to try out. + +### Conversion options + +By default, HTML To Markdown preserves HTML tags without Markdown equivalents, like `` and `
    `. + +To strip HTML tags that don't have a Markdown equivalent while preserving the content inside them, set `strip_tags` to true, like this: + +```php +$converter = new HtmlConverter(array('strip_tags' => true)); + +$html = 'Turnips!'; +$markdown = $converter->convert($html); // $markdown now contains "Turnips!" +``` + +Or more explicitly, like this: + +```php +$converter = new HtmlConverter(); +$converter->getConfig()->setOption('strip_tags', true); + +$html = 'Turnips!'; +$markdown = $converter->convert($html); // $markdown now contains "Turnips!" +``` + +Note that only the tags themselves are stripped, not the content they hold. + +To strip tags and their content, pass a space-separated list of tags in `remove_nodes`, like this: + +```php +$converter = new HtmlConverter(array('remove_nodes' => 'span div')); + +$html = 'Turnips!
    Monkeys!
    '; +$markdown = $converter->convert($html); // $markdown now contains "" +``` + +### Style options + +Bold and italic tags are converted using the asterisk syntax by default. Change this to the underlined syntax using the `bold_style` and `italic_style` options. + +```php +$converter = new HtmlConverter(); +$converter->getConfig()->setOption('italic_style', '_'); +$converter->getConfig()->setOption('bold_style', '__'); + +$html = 'Italic and a bold'; +$markdown = $converter->convert($html); // $markdown now contains "_Italic_ and a __bold__" +``` + +### Line break options + +By default, `br` tags are converted to two spaces followed by a newline character as per [traditional Markdown](https://daringfireball.net/projects/markdown/syntax#p). Set `hard_break` to `true` to omit the two spaces, as per GitHub Flavored Markdown (GFM). + +```php +$converter = new HtmlConverter(); +$html = '

    test
    line break

    '; + +$converter->getConfig()->setOption('hard_break', true); +$markdown = $converter->convert($html); // $markdown now contains "test\nline break" + +$converter->getConfig()->setOption('hard_break', false); // default +$markdown = $converter->convert($html); // $markdown now contains "test \nline break" +``` + +### Passing custom Environment object + +You can pass current `Environment` object to customize i.e. which converters should be used. + +```php +$environment = new Environment(array( + // your configuration here +)); +$environment->addConverter(new HeaderConverter()); // optionally - add converter manually + +$converter = new HtmlConverter($environment); + +$html = '

    Header

    + +'; +$markdown = $converter->convert($html); // $markdown now contains "### Header" and "" +``` + +### Limitations + +- Markdown Extra, MultiMarkdown and other variants aren't supported – just Markdown. + +### Known issues + +- Nested lists and lists containing multiple paragraphs aren't converted correctly. +- Lists inside blockquotes aren't converted correctly. +- Any reported [open issues here](https://github.com/thephpleague/html-to-markdown/issues?state=open). + +[Report your issue or request a feature here.](https://github.com/thephpleague/html-to-markdown/issues/new) Issues with patches or failing tests are especially welcome. + +### Style notes + +- Setext (underlined) headers are the default for H1 and H2. If you prefer the ATX style for H1 and H2 (# Header 1 and ## Header 2), set `header_style` to 'atx' in the options array when you instantiate the object: + + `$converter = new HtmlConverter(array('header_style'=>'atx'));` + + Headers of H3 priority and lower always use atx style. + +- Links and images are referenced inline. Footnote references (where image src and anchor href attributes are listed in the footnotes) are not used. +- Blockquotes aren't line wrapped – it makes the converted Markdown easier to edit. + +### Dependencies + +HTML To Markdown requires PHP's [xml](http://www.php.net/manual/en/xml.installation.php), [lib-xml](http://www.php.net/manual/en/libxml.installation.php), and [dom](http://www.php.net/manual/en/dom.installation.php) extensions, all of which are enabled by default on most distributions. + +Errors such as "Fatal error: Class 'DOMDocument' not found" on distributions such as CentOS that disable PHP's xml extension can be resolved by installing php-xml. + +### Contributors + +Many thanks to all [contributors](https://github.com/thephpleague/html-to-markdown/graphs/contributors) so far. Further improvements and feature suggestions are very welcome. + +### How it works + +HTML To Markdown creates a DOMDocument from the supplied HTML, walks through the tree, and converts each node to a text node containing the equivalent markdown, starting from the most deeply nested node and working inwards towards the root node. + +### To-do + +- Support for nested lists and lists inside blockquotes. +- Offer an option to preserve tags as HTML if they contain attributes that can't be represented with Markdown (e.g. `style`). + +### Trying to convert Markdown to HTML? + +Use one of these great libraries: + + - [league/commonmark](https://github.com/thephpleague/commonmark) (recommended) + - [cebe/markdown](https://github.com/cebe/markdown) + - [PHP Markdown](https://michelf.ca/projects/php-markdown/) + - [Parsedown](https://github.com/erusev/parsedown) + +No guarantees about the Elvish, though. + diff --git a/vendor/league/html-to-markdown/bin/html-to-markdown b/vendor/league/html-to-markdown/bin/html-to-markdown new file mode 100644 index 000000000..2815a7cef --- /dev/null +++ b/vendor/league/html-to-markdown/bin/html-to-markdown @@ -0,0 +1,108 @@ +#!/usr/bin/env php + $arg) { + if ($i === 0) { + continue; + } + + if (substr($arg, 0, 1) === '-') { + switch ($arg) { + case '-h': + case '--help': + echo getHelpText(); + exit(0); + default: + fail('Unknown option: ' . $arg); + } + } else { + $src = $argv[1]; + } +} + +if (isset($src)) { + if (!file_exists($src)) { + fail('File not found: ' . $src); + } + + $html = file_get_contents($src); +} else { + $stdin = fopen('php://stdin', 'r'); + stream_set_blocking($stdin, false); + $html = stream_get_contents($stdin); + fclose($stdin); + + if (empty($html)) { + fail(getHelpText()); + } +} + + +$converter = new League\HTMLToMarkdown\HtmlConverter(); +echo $converter->convert($html); + +/** + * Get help and usage info + * + * @return string + */ +function getHelpText() +{ + return << output.md + + Converting from STDIN: + + echo -e '

    Hello World!

    ' | html-to-markdown + + Converting from STDIN and saving the output: + + echo -e '

    Hello World!

    ' | html-to-markdown > output.md + +HELP; +} + +/** + * @param string $message Error message + */ +function fail($message) +{ + fwrite(STDERR, $message . "\n"); + exit(1); +} + +function requireAutoloader() +{ + $autoloadPaths = array( + // Local package usage + __DIR__ . '/../vendor/autoload.php', + // Package was included as a library + __DIR__ . '/../../../autoload.php', + ); + foreach ($autoloadPaths as $path) { + if (file_exists($path)) { + require_once $path; + break; + } + } +} diff --git a/vendor/league/html-to-markdown/composer.json b/vendor/league/html-to-markdown/composer.json new file mode 100644 index 000000000..58764bcb5 --- /dev/null +++ b/vendor/league/html-to-markdown/composer.json @@ -0,0 +1,48 @@ +{ + "name": "league/html-to-markdown", + "type": "library", + "description": "An HTML-to-markdown conversion helper for PHP", + "keywords": ["markdown", "html"], + "homepage": "https://github.com/thephpleague/html-to-markdown", + "license": "MIT", + "authors": [ + { + "name": "Colin O'Dell", + "email": "colinodell@gmail.com", + "homepage": "http://www.colinodell.com", + "role": "Lead Developer" + }, + { + "name": "Nick Cernis", + "email": "nick@cern.is", + "homepage": "http://modernnerd.net", + "role": "Original Author" + } + ], + "autoload": { + "psr-4": { + "League\\HTMLToMarkdown\\": "src/" + } + }, + "autoload-dev": { + "psr-4": { + "League\\HTMLToMarkdown\\Test\\": "tests" + } + }, + "require": { + "php": ">=5.3.3", + "ext-dom": "*", + "ext-xml": "*" + }, + "require-dev": { + "mikehaertl/php-shellcommand": "~1.1.0", + "phpunit/phpunit": "4.*", + "scrutinizer/ocular": "~1.1" + }, + "bin": ["bin/html-to-markdown"], + "extra": { + "branch-alias": { + "dev-master": "4.5-dev" + } + } +} diff --git a/vendor/league/html-to-markdown/src/Configuration.php b/vendor/league/html-to-markdown/src/Configuration.php new file mode 100644 index 000000000..2943383aa --- /dev/null +++ b/vendor/league/html-to-markdown/src/Configuration.php @@ -0,0 +1,60 @@ +config = $config; + } + + /** + * @param array $config + */ + public function merge(array $config = array()) + { + $this->config = array_replace_recursive($this->config, $config); + } + + /** + * @param array $config + */ + public function replace(array $config = array()) + { + $this->config = $config; + } + + /** + * @param string $key + * @param mixed $value + */ + public function setOption($key, $value) + { + $this->config[$key] = $value; + } + + /** + * @param string|null $key + * @param mixed|null $default + * + * @return mixed|null + */ + public function getOption($key = null, $default = null) + { + if ($key === null) { + return $this->config; + } + + if (!isset($this->config[$key])) { + return $default; + } + + return $this->config[$key]; + } +} diff --git a/vendor/league/html-to-markdown/src/ConfigurationAwareInterface.php b/vendor/league/html-to-markdown/src/ConfigurationAwareInterface.php new file mode 100644 index 000000000..8aca530be --- /dev/null +++ b/vendor/league/html-to-markdown/src/ConfigurationAwareInterface.php @@ -0,0 +1,11 @@ +' symbols to each line. + + $markdown = ''; + + $quote_content = trim($element->getValue()); + + $lines = preg_split('/\r\n|\r|\n/', $quote_content); + + $total_lines = count($lines); + + foreach ($lines as $i => $line) { + $markdown .= '> ' . $line . "\n"; + if ($i + 1 === $total_lines) { + $markdown .= "\n"; + } + } + + return $markdown; + } + + /** + * @return string[] + */ + public function getSupportedTags() + { + return array('blockquote'); + } +} diff --git a/vendor/league/html-to-markdown/src/Converter/CodeConverter.php b/vendor/league/html-to-markdown/src/Converter/CodeConverter.php new file mode 100644 index 000000000..c8ec2c005 --- /dev/null +++ b/vendor/league/html-to-markdown/src/Converter/CodeConverter.php @@ -0,0 +1,62 @@ +getAttribute('class'); + + if ($classes) { + // Since tags can have more than one class, we need to find the one that starts with 'language-' + $classes = explode(' ', $classes); + foreach ($classes as $class) { + if (strpos($class, 'language-') !== false) { + // Found one, save it as the selected language and stop looping over the classes. + // The space after the language avoids gluing the actual code with the language tag + $language = str_replace('language-', '', $class) . ' '; + break; + } + } + } + + $markdown = ''; + $code = html_entity_decode($element->getChildrenAsString()); + + // In order to remove the code tags we need to search for them and, in the case of the opening tag + // use a regular expression to find the tag and the other attributes it might have + $code = preg_replace('/]*>/', '', $code); + $code = str_replace('
    ', '', $code); + + // Checking if the code has multiple lines + $lines = preg_split('/\r\n|\r|\n/', $code); + if (count($lines) > 1) { + // Multiple lines detected, adding three backticks and newlines + $markdown .= '```' . $language . "\n" . $code . "\n" . '```'; + } else { + // One line of code, wrapping it on one backtick. + $markdown .= '`' . $language . $code . '`'; + } + + return $markdown; + } + + /** + * @return string[] + */ + public function getSupportedTags() + { + return array('code'); + } +} diff --git a/vendor/league/html-to-markdown/src/Converter/CommentConverter.php b/vendor/league/html-to-markdown/src/Converter/CommentConverter.php new file mode 100644 index 000000000..55038b254 --- /dev/null +++ b/vendor/league/html-to-markdown/src/Converter/CommentConverter.php @@ -0,0 +1,26 @@ +config = $config; + } + + /** + * @param ElementInterface $element + * + * @return string + */ + public function convert(ElementInterface $element) + { + // If strip_tags is false (the default), preserve tags that don't have Markdown equivalents, + // such as nodes on their own. C14N() canonicalizes the node to a string. + // See: http://www.php.net/manual/en/domnode.c14n.php + if ($this->config->getOption('strip_tags', false)) { + return $element->getValue(); + } + + return html_entity_decode($element->getChildrenAsString()); + } + + /** + * @return string[] + */ + public function getSupportedTags() + { + return array(self::DEFAULT_CONVERTER); + } +} diff --git a/vendor/league/html-to-markdown/src/Converter/DivConverter.php b/vendor/league/html-to-markdown/src/Converter/DivConverter.php new file mode 100644 index 000000000..656a0ba4d --- /dev/null +++ b/vendor/league/html-to-markdown/src/Converter/DivConverter.php @@ -0,0 +1,45 @@ +config = $config; + } + + /** + * @param ElementInterface $element + * + * @return string + */ + public function convert(ElementInterface $element) + { + if ($this->config->getOption('strip_tags', false)) { + return $element->getValue() . "\n\n"; + } + + return html_entity_decode($element->getChildrenAsString()); + } + + /** + * @return string[] + */ + public function getSupportedTags() + { + return array('div'); + } +} diff --git a/vendor/league/html-to-markdown/src/Converter/EmphasisConverter.php b/vendor/league/html-to-markdown/src/Converter/EmphasisConverter.php new file mode 100644 index 000000000..67250769b --- /dev/null +++ b/vendor/league/html-to-markdown/src/Converter/EmphasisConverter.php @@ -0,0 +1,57 @@ +config = $config; + } + + /** + * @param ElementInterface $element + * + * @return string + */ + public function convert(ElementInterface $element) + { + $tag = $element->getTagName(); + $value = $element->getValue(); + + if (!trim($value)) { + return ''; + } + + if ($tag === 'i' || $tag === 'em') { + $style = $this->config->getOption('italic_style'); + } else { + $style = $this->config->getOption('bold_style'); + } + + $prefix = ltrim($value) !== $value ? ' ' : ''; + $suffix = rtrim($value) !== $value ? ' ' : ''; + + return $prefix . $style . trim($value) . $style . $suffix; + } + + /** + * @return string[] + */ + public function getSupportedTags() + { + return array('em', 'i', 'strong', 'b'); + } +} diff --git a/vendor/league/html-to-markdown/src/Converter/HardBreakConverter.php b/vendor/league/html-to-markdown/src/Converter/HardBreakConverter.php new file mode 100644 index 000000000..37cd44e73 --- /dev/null +++ b/vendor/league/html-to-markdown/src/Converter/HardBreakConverter.php @@ -0,0 +1,41 @@ +config = $config; + } + + /** + * @param ElementInterface $element + * + * @return string + */ + public function convert(ElementInterface $element) + { + return $this->config->getOption('hard_break') ? "\n" : " \n"; + } + + /** + * @return string[] + */ + public function getSupportedTags() + { + return array('br'); + } +} diff --git a/vendor/league/html-to-markdown/src/Converter/HeaderConverter.php b/vendor/league/html-to-markdown/src/Converter/HeaderConverter.php new file mode 100644 index 000000000..d117e7d36 --- /dev/null +++ b/vendor/league/html-to-markdown/src/Converter/HeaderConverter.php @@ -0,0 +1,78 @@ +config = $config; + } + + /** + * @param ElementInterface $element + * + * @return string + */ + public function convert(ElementInterface $element) + { + $level = (int) substr($element->getTagName(), 1, 1); + $style = $this->config->getOption('header_style', self::STYLE_SETEXT); + + if (($level === 1 || $level === 2) && !$element->isDescendantOf('blockquote') && $style === self::STYLE_SETEXT) { + return $this->createSetextHeader($level, $element->getValue()); + } + + return $this->createAtxHeader($level, $element->getValue()); + } + + /** + * @return string[] + */ + public function getSupportedTags() + { + return array('h1', 'h2', 'h3', 'h4', 'h5', 'h6'); + } + + /** + * @param int $level + * @param string $content + * + * @return string + */ + private function createSetextHeader($level, $content) + { + $length = function_exists('mb_strlen') ? mb_strlen($content, 'utf-8') : strlen($content); + $underline = ($level === 1) ? '=' : '-'; + + return $content . "\n" . str_repeat($underline, $length) . "\n\n"; + } + + /** + * @param int $level + * @param string $content + * + * @return string + */ + private function createAtxHeader($level, $content) + { + $prefix = str_repeat('#', $level) . ' '; + + return $prefix . $content . "\n\n"; + } +} diff --git a/vendor/league/html-to-markdown/src/Converter/HorizontalRuleConverter.php b/vendor/league/html-to-markdown/src/Converter/HorizontalRuleConverter.php new file mode 100644 index 000000000..8f54f9397 --- /dev/null +++ b/vendor/league/html-to-markdown/src/Converter/HorizontalRuleConverter.php @@ -0,0 +1,26 @@ +getAttribute('src'); + $alt = $element->getAttribute('alt'); + $title = $element->getAttribute('title'); + + if ($title !== '') { + // No newlines added. should be in a block-level element. + return '![' . $alt . '](' . $src . ' "' . $title . '")'; + } + + return '![' . $alt . '](' . $src . ')'; + } + + /** + * @return string[] + */ + public function getSupportedTags() + { + return array('img'); + } +} diff --git a/vendor/league/html-to-markdown/src/Converter/LinkConverter.php b/vendor/league/html-to-markdown/src/Converter/LinkConverter.php new file mode 100644 index 000000000..f0765f38b --- /dev/null +++ b/vendor/league/html-to-markdown/src/Converter/LinkConverter.php @@ -0,0 +1,52 @@ +getAttribute('href'); + $title = $element->getAttribute('title'); + $text = trim($element->getValue()); + + if ($title !== '') { + $markdown = '[' . $text . '](' . $href . ' "' . $title . '")'; + } elseif ($href === $text && $this->isValidAutolink($href)) { + $markdown = '<' . $href . '>'; + } else { + $markdown = '[' . $text . '](' . $href . ')'; + } + + if (!$href) { + $markdown = html_entity_decode($element->getChildrenAsString()); + } + + return $markdown; + } + + /** + * @return string[] + */ + public function getSupportedTags() + { + return array('a'); + } + + /** + * @param string $href + * + * @return bool + */ + private function isValidAutolink($href) + { + return preg_match('/^[A-Za-z][A-Za-z0-9.+-]{1,31}:[^<>\x00-\x20]*/i', $href) === 1; + } +} diff --git a/vendor/league/html-to-markdown/src/Converter/ListBlockConverter.php b/vendor/league/html-to-markdown/src/Converter/ListBlockConverter.php new file mode 100644 index 000000000..07a4c85a9 --- /dev/null +++ b/vendor/league/html-to-markdown/src/Converter/ListBlockConverter.php @@ -0,0 +1,26 @@ +getValue() . "\n"; + } + + /** + * @return string[] + */ + public function getSupportedTags() + { + return array('ol', 'ul'); + } +} diff --git a/vendor/league/html-to-markdown/src/Converter/ListItemConverter.php b/vendor/league/html-to-markdown/src/Converter/ListItemConverter.php new file mode 100644 index 000000000..dafec077c --- /dev/null +++ b/vendor/league/html-to-markdown/src/Converter/ListItemConverter.php @@ -0,0 +1,47 @@ +getParent()->getTagName(); + + // Add spaces to start for nested list items + $level = $element->getListItemLevel($element); + + $prefixForParagraph = str_repeat(' ', $level + 1); + $value = trim(implode("\n" . $prefixForParagraph, explode("\n", trim($element->getValue())))); + + // If list item is the first in a nested list, add a newline before it + $prefix = ''; + if ($level > 0 && $element->getSiblingPosition() === 1) { + $prefix = "\n"; + } + + if ($list_type === 'ul') { + return $prefix . '- ' . $value . "\n"; + } + + $number = $element->getSiblingPosition(); + + return $prefix . $number . '. ' . $value . "\n"; + } + + /** + * @return string[] + */ + public function getSupportedTags() + { + return array('li'); + } +} diff --git a/vendor/league/html-to-markdown/src/Converter/ParagraphConverter.php b/vendor/league/html-to-markdown/src/Converter/ParagraphConverter.php new file mode 100644 index 000000000..cf852bfcf --- /dev/null +++ b/vendor/league/html-to-markdown/src/Converter/ParagraphConverter.php @@ -0,0 +1,124 @@ +getValue(); + + $markdown = ''; + + $lines = preg_split('/\r\n|\r|\n/', $value); + foreach ($lines as $line) { + /* + * Some special characters need to be escaped based on the position that they appear + * The following function will deal with those special cases. + */ + $markdown .= $this->escapeSpecialCharacters($line); + $markdown .= "\n"; + } + + return trim($markdown) !== '' ? rtrim($markdown) . "\n\n" : ''; + } + + /** + * @return string[] + */ + public function getSupportedTags() + { + return array('p'); + } + + /** + * @param string $line + * + * @return string + */ + private function escapeSpecialCharacters($line) + { + $line = $this->escapeFirstCharacters($line); + $line = $this->escapeOtherCharacters($line); + $line = $this->escapeOtherCharactersRegex($line); + + return $line; + } + + /** + * @param string $line + * + * @return string + */ + private function escapeFirstCharacters($line) + { + $escapable = array( + '>', + '- ', + '+ ', + '--', + '~~~', + '---', + '- - -' + ); + + foreach ($escapable as $i) { + if (strpos(ltrim($line), $i) === 0) { + // Found a character that must be escaped, adding a backslash before + return '\\' . ltrim($line); + } + } + + return $line; + } + + /** + * @param string $line + * + * @return string + */ + private function escapeOtherCharacters($line) + { + $escapable = array( + ' {{include file="field_checkbox.tpl" field=$only_tag_search}} {{include file="field_input.tpl" field=$itemcache}} {{include file="field_input.tpl" field=$itemcache_duration}} diff --git a/view/templates/admin_summary.tpl b/view/templates/admin_summary.tpl index a8243b614..e65014413 100644 --- a/view/templates/admin_summary.tpl +++ b/view/templates/admin_summary.tpl @@ -11,7 +11,7 @@
    {{$queues.label}}
    -
    {{$queues.deliverq}} - {{$queues.queue}} - {{$queues.workerq}}
    +
    {{$queues.queue}} - {{$queues.workerq}}
    {{$pending.0}}
    diff --git a/view/templates/head.tpl b/view/templates/head.tpl index 0772af0bc..e7df8a18c 100644 --- a/view/templates/head.tpl +++ b/view/templates/head.tpl @@ -7,7 +7,7 @@ - + @@ -19,6 +19,7 @@ +