diff --git a/boot.php b/boot.php index 9cdaefb21..04e14ac4d 100644 --- a/boot.php +++ b/boot.php @@ -254,25 +254,24 @@ define('PROTOCOL_SPLITTED_CONV', 6); * @{ */ define('NETWORK_DFRN', 'dfrn'); // Friendica, Mistpark, other DFRN implementations -define('NETWORK_ZOT', 'zot!'); // Zot! -define('NETWORK_OSTATUS', 'stat'); // status.net, identi.ca, GNU-social, other OStatus implementations +define('NETWORK_ZOT', 'zot!'); // Zot! - Currently unsupported +define('NETWORK_OSTATUS', 'stat'); // GNU-social, Pleroma, Mastodon, other OStatus implementations define('NETWORK_FEED', 'feed'); // RSS/Atom feeds with no known "post/notify" protocol define('NETWORK_DIASPORA', 'dspr'); // Diaspora define('NETWORK_MAIL', 'mail'); // IMAP/POP -define('NETWORK_MAIL2', 'mai2'); // extended IMAP/POP define('NETWORK_FACEBOOK', 'face'); // Facebook API define('NETWORK_LINKEDIN', 'lnkd'); // LinkedIn -define('NETWORK_XMPP', 'xmpp'); // XMPP -define('NETWORK_MYSPACE', 'mysp'); // MySpace +define('NETWORK_XMPP', 'xmpp'); // XMPP - Currently unsupported +define('NETWORK_MYSPACE', 'mysp'); // MySpace - Currently unsupported define('NETWORK_GPLUS', 'goog'); // Google+ define('NETWORK_PUMPIO', 'pump'); // pump.io define('NETWORK_TWITTER', 'twit'); // Twitter define('NETWORK_DIASPORA2', 'dspc'); // Diaspora connector define('NETWORK_STATUSNET', 'stac'); // Statusnet connector -define('NETWORK_APPNET', 'apdn'); // app.net -define('NETWORK_NEWS', 'nntp'); // Network News Transfer Protocol -define('NETWORK_ICALENDAR', 'ical'); // iCalendar -define('NETWORK_PNUT', 'pnut'); // pnut.io +define('NETWORK_APPNET', 'apdn'); // app.net - Dead protocol +define('NETWORK_NEWS', 'nntp'); // Network News Transfer Protocol - Currently unsupported +define('NETWORK_ICALENDAR', 'ical'); // iCalendar - Currently unsupported +define('NETWORK_PNUT', 'pnut'); // pnut.io - Currently unsupported define('NETWORK_PHANTOM', 'unkn'); // Place holder /** * @} @@ -290,7 +289,6 @@ $netgroup_ids = array( NETWORK_FEED => (-4), NETWORK_DIASPORA => (-5), NETWORK_MAIL => (-6), - NETWORK_MAIL2 => (-7), NETWORK_FACEBOOK => (-8), NETWORK_LINKEDIN => (-9), NETWORK_XMPP => (-10), diff --git a/include/contact_selectors.php b/include/contact_selectors.php index 1e754ac9f..67d05f307 100644 --- a/include/contact_selectors.php +++ b/include/contact_selectors.php @@ -85,7 +85,6 @@ function network_to_name($s, $profile = "") { NETWORK_LINKEDIN => t('LinkedIn'), NETWORK_XMPP => t('XMPP/IM'), NETWORK_MYSPACE => t('MySpace'), - NETWORK_MAIL2 => t('Email'), NETWORK_GPLUS => t('Google+'), NETWORK_PUMPIO => t('pump.io'), NETWORK_TWITTER => t('Twitter'), diff --git a/include/uimport.php b/include/uimport.php index 301ab4803..7effcd62d 100644 --- a/include/uimport.php +++ b/include/uimport.php @@ -198,9 +198,6 @@ function import_account(App $a, $file) { case NETWORK_DIASPORA: // send relocate message (below) break; - case NETWORK_MAIL2: - /// @TODO ? - break; case NETWORK_FEED: case NETWORK_MAIL: // Nothing to do diff --git a/mod/admin.php b/mod/admin.php index 1e7d90436..d73ac23fd 100644 --- a/mod/admin.php +++ b/mod/admin.php @@ -1279,7 +1279,7 @@ function admin_page_site(App $a) '$banner' => array('banner', t("Banner/Logo"), $banner, ""), '$shortcut_icon' => array('shortcut_icon', t("Shortcut icon"), Config::get('system','shortcut_icon'), t("Link to an icon that will be used for browsers.")), '$touch_icon' => array('touch_icon', t("Touch icon"), Config::get('system','touch_icon'), t("Link to an icon that will be used for tablets and mobiles.")), - '$info' => array('info', t('Additional Info'), $info, sprintf(t('For public servers: you can add additional information here that will be listed at %s/siteinfo.'), get_server())), + '$info' => array('info', t('Additional Info'), $info, sprintf(t('For public servers: you can add additional information here that will be listed at %s/servers.'), get_server())), '$language' => array('language', t("System language"), Config::get('system','language'), "", $lang_choices), '$theme' => array('theme', t("System theme"), Config::get('system','theme'), t("Default system theme - may be over-ridden by user profiles - change theme settings"), $theme_choices), '$theme_mobile' => array('theme_mobile', t("Mobile system theme"), Config::get('system', 'mobile-theme', '---'), t("Theme for mobile devices"), $theme_choices_mobile), diff --git a/mod/contacts.php b/mod/contacts.php index 69f188496..9feacaf5e 100644 --- a/mod/contacts.php +++ b/mod/contacts.php @@ -559,7 +559,7 @@ function contacts_content(App $a) { } $lblsuggest = (($contact['network'] === NETWORK_DFRN) ? t('Suggest friends') : ''); - $poll_enabled = in_array($contact['network'], array(NETWORK_DFRN, NETWORK_OSTATUS, NETWORK_FEED, NETWORK_MAIL, NETWORK_MAIL2)); + $poll_enabled = in_array($contact['network'], array(NETWORK_DFRN, NETWORK_OSTATUS, NETWORK_FEED, NETWORK_MAIL)); $nettype = sprintf( t('Network type: %s'),network_to_name($contact['network'], $contact["url"])); @@ -586,7 +586,7 @@ function contacts_content(App $a) { '3' => t('Fetch keywords'), '2' => t('Fetch information and keywords'))); } - if (in_array($contact['network'], array(NETWORK_FEED, NETWORK_MAIL, NETWORK_MAIL2))) + if (in_array($contact['network'], array(NETWORK_FEED, NETWORK_MAIL))) $poll_interval = contact_poll_interval($contact['priority'],(! $poll_enabled)); if ($contact['network'] == NETWORK_DFRN) @@ -994,7 +994,7 @@ function _contact_detail_for_template($rr){ */ function contact_actions($contact) { - $poll_enabled = in_array($contact['network'], array(NETWORK_DFRN, NETWORK_OSTATUS, NETWORK_FEED, NETWORK_MAIL, NETWORK_MAIL2)); + $poll_enabled = in_array($contact['network'], array(NETWORK_DFRN, NETWORK_OSTATUS, NETWORK_FEED, NETWORK_MAIL)); $contact_action = array(); // Provide friend suggestion only for Friendica contacts diff --git a/mod/dfrn_request.php b/mod/dfrn_request.php index 3c7584318..67395a9fc 100644 --- a/mod/dfrn_request.php +++ b/mod/dfrn_request.php @@ -292,15 +292,12 @@ function dfrn_request_post(App $a) { * * Cleanup old introductions that remain blocked. * Also remove the contact record, but only if there is no existing relationship - * Do not remove email contacts as these may be awaiting email verification */ $r = q("SELECT `intro`.*, `intro`.`id` AS `iid`, `contact`.`id` AS `cid`, `contact`.`rel` FROM `intro` LEFT JOIN `contact` on `intro`.`contact-id` = `contact`.`id` WHERE `intro`.`blocked` = 1 AND `contact`.`self` = 0 - AND `contact`.`network` != '%s' - AND `intro`.`datetime` < UTC_TIMESTAMP() - INTERVAL 30 MINUTE ", - dbesc(NETWORK_MAIL2) + AND `intro`.`datetime` < UTC_TIMESTAMP() - INTERVAL 30 MINUTE " ); if (DBM::is_result($r)) { foreach ($r as $rr) { @@ -315,32 +312,6 @@ function dfrn_request_post(App $a) { } } - /* - * - * Cleanup any old email intros - which will have a greater lifetime - */ - - $r = q("SELECT `intro`.*, `intro`.`id` AS `iid`, `contact`.`id` AS `cid`, `contact`.`rel` - FROM `intro` LEFT JOIN `contact` on `intro`.`contact-id` = `contact`.`id` - WHERE `intro`.`blocked` = 1 AND `contact`.`self` = 0 - AND `contact`.`network` = '%s' - AND `intro`.`datetime` < UTC_TIMESTAMP() - INTERVAL 3 DAY ", - dbesc(NETWORK_MAIL2) - ); - if (DBM::is_result($r)) { - foreach ($r as $rr) { - if(! $rr['rel']) { - q("DELETE FROM `contact` WHERE `id` = %d AND NOT `self`", - intval($rr['cid']) - ); - } - q("DELETE FROM `intro` WHERE `id` = %d", - intval($rr['iid']) - ); - } - } - - $email_follow = (x($_POST,'email_follow') ? intval($_POST['email_follow']) : 0); $real_name = (x($_POST,'realname') ? notags(trim($_POST['realname'])) : ''); $url = trim($_POST['dfrn_url']); @@ -351,125 +322,25 @@ function dfrn_request_post(App $a) { $hcard = ''; - if($email_follow) { + // Detect the network + $data = Probe::uri($url); + $network = $data["network"]; - if(! validate_email($url)) { - notice( t('Invalid email address.') . EOL); - return; + // Canonicalise email-style profile locator + $url = Probe::webfingerDfrn($url,$hcard); + + if (substr($url,0,5) === 'stat:') { + + // Every time we detect the remote subscription we define this as OStatus. + // We do this even if it is not OStatus. + // we only need to pass this through another section of the code. + if ($network != NETWORK_DIASPORA) { + $network = NETWORK_OSTATUS; } - $addr = $url; - $name = ($realname) ? $realname : $addr; - $nick = substr($addr,0,strpos($addr,'@')); - $url = 'http://' . substr($addr,strpos($addr,'@') + 1); - $nurl = normalise_url($host); - $poll = 'email ' . random_string(); - $notify = 'smtp ' . random_string(); - $network = NETWORK_MAIL2; - $rel = CONTACT_IS_FOLLOWER; - - $mail_disabled = ((function_exists('imap_open') && (! Config::get('system','imap_disabled'))) ? 0 : 1); - if(Config::get('system','dfrn_only')) - $mail_disabled = 1; - - if(! $mail_disabled) { - $failed = false; - $r = q("SELECT * FROM `mailacct` WHERE `uid` = %d LIMIT 1", - intval($uid) - ); - - if (! DBM::is_result($r)) { - notice( t('This account has not been configured for email. Request failed.') . EOL); - return; - } - } - - $r = q("insert into contact ( uid, created, addr, name, nick, url, nurl, poll, notify, blocked, pending, network, rel ) - values( %d, '%s', '%s', '%s', '%s', '%s', '%s', '%s', %d, %d, '%s', %d ) ", - intval($uid), - dbesc(datetime_convert()), - dbesc($addr), - dbesc($name), - dbesc($nick), - dbesc($url), - dbesc($nurl), - dbesc($poll), - dbesc($notify), - intval($blocked), - intval($pending), - dbesc($network), - intval($rel) - ); - - $r = q("SELECT `id`, `network` FROM `contact` WHERE `poll` = '%s' AND `uid` = %d LIMIT 1", - dbesc($poll), - intval($uid) - ); - if (DBM::is_result($r)) { - $contact_id = $r[0]['id']; - - $def_gid = get_default_group($uid, $r[0]["network"]); - if (intval($def_gid)) - group_add_member($uid, '', $contact_id, $def_gid); - - $photo = avatar_img($addr); - - $r = q("UPDATE `contact` SET - `photo` = '%s', - `thumb` = '%s', - `micro` = '%s', - `name-date` = '%s', - `uri-date` = '%s', - `avatar-date` = '%s', - `hidden` = 0, - WHERE `id` = %d - ", - dbesc($photos[0]), - dbesc($photos[1]), - dbesc($photos[2]), - dbesc(datetime_convert()), - dbesc(datetime_convert()), - dbesc(datetime_convert()), - intval($contact_id) - ); - } - - // contact is created. Now create an introduction - - $hash = random_string(); - - $r = q("INSERT INTO `intro` ( `uid`, `contact-id`, knowyou, note, hash, datetime, blocked ) - VALUES( %d , %d, %d, '%s', '%s', '%s', %d ) ", - intval($uid), - intval($contact_id), - ((x($_POST,'knowyou') && ($_POST['knowyou'] == 1)) ? 1 : 0), - dbesc(notags(trim($_POST['dfrn-request-message']))), - dbesc($hash), - dbesc(datetime_convert()), - 1 - ); - - // Next send an email verify form to the requestor. - + $url = substr($url,5); } else { - // Detect the network - $data = Probe::uri($url); - $network = $data["network"]; - - // Canonicalise email-style profile locator - $url = Probe::webfingerDfrn($url,$hcard); - - if (substr($url,0,5) === 'stat:') { - - // Every time we detect the remote subscription we define this as OStatus. - // We do this even if it is not OStatus. - // we only need to pass this through another section of the code. - if ($network != NETWORK_DIASPORA) - $network = NETWORK_OSTATUS; - - $url = substr($url,5); - } else - $network = NETWORK_DFRN; + $network = NETWORK_DFRN; } logger('dfrn_request: url: ' . $url . ',network=' . $network, LOGGER_DEBUG); @@ -849,27 +720,6 @@ function dfrn_request_content(App $a) { $page_desc = t("Please enter your 'Identity Address' from one of the following supported communications networks:"); - // see if we are allowed to have NETWORK_MAIL2 contacts - - $mail_disabled = ((function_exists('imap_open') && (! Config::get('system','imap_disabled'))) ? 0 : 1); - - if (Config::get('system','dfrn_only')) { - $mail_disabled = 1; - } - - if (! $mail_disabled) { - $r = q("SELECT * FROM `mailacct` WHERE `uid` = %d LIMIT 1", - intval($a->profile['uid']) - ); - if (! DBM::is_result($r)) { - $mail_disabled = 1; - } - } - - // "coming soon" is disabled for now - //$emailnet = (($mail_disabled) ? '' : t("Connect as an email follower \x28Coming soon\x29")); - $emailnet = ""; - $invite_desc = sprintf( t('If you are not yet a member of the free social web, follow this link to find a public Friendica site and join us today.'), get_server() @@ -877,7 +727,7 @@ function dfrn_request_content(App $a) { $o = replace_macros($tpl,array( '$header' => t('Friend/Connection Request'), - '$desc' => t('Examples: jojo@demo.friendica.com, http://demo.friendica.com/profile/jojo, testuser@identi.ca'), + '$desc' => t('Examples: jojo@demo.friendica.com, http://demo.friendica.com/profile/jojo, testuser@gnusocial.de'), '$pls_answer' => t('Please answer the following:'), '$does_know_you' => array('knowyou', sprintf(t('Does %s know you?'),$a->profile['name']), false, '', array(t('No'), t('Yes'))), /*'$does_know' => sprintf( t('Does %s know you?'),$a->profile['name']), @@ -886,12 +736,11 @@ function dfrn_request_content(App $a) { '$add_note' => t('Add a personal note:'), '$page_desc' => $page_desc, '$friendica' => t('Friendica'), - '$statusnet' => t('StatusNet/Federated Social Web'), - '$diaspora' => t('Diaspora'), + '$statusnet' => t('GNU Social (Pleroma, Mastodon)'), + '$diaspora' => t('Diaspora (Socialhome, Hubzilla)'), '$diasnote' => sprintf (t(' - please do not use this form. Instead, enter %s into your Diaspora search bar.'),$target_addr), '$your_address' => t('Your Identity Address:'), '$invite_desc' => $invite_desc, - '$emailnet' => $emailnet, '$submit' => t('Submit Request'), '$cancel' => t('Cancel'), '$nickname' => $a->argv[1], diff --git a/mod/install.php b/mod/install.php index 803d7f196..0da8ec040 100755 --- a/mod/install.php +++ b/mod/install.php @@ -318,7 +318,7 @@ function check_php(&$phpath, &$checks) { $help = ""; if (!$passed) { $help .= t('Could not find a command line version of PHP in the web server PATH.'). EOL; - $help .= t("If you don't have a command line version of PHP installed on server, you will not be able to run the background processing. See 'Setup the worker'") . EOL; + $help .= t("If you don't have a command line version of PHP installed on your server, you will not be able to run the background processing. See 'Setup the worker'") . EOL; $help .= EOL . EOL; $tpl = get_markup_template('field_input.tpl'); $help .= replace_macros($tpl, array( diff --git a/mod/notice.php b/mod/notice.php index 54618bdf8..95d16f2dd 100644 --- a/mod/notice.php +++ b/mod/notice.php @@ -1,6 +1,6 @@ friendica items permanent-url compatibility */ +/* GNU Social -> friendica items permanent-url compatibility */ use Friendica\App; use Friendica\Core\System; diff --git a/src/Worker/Cron.php b/src/Worker/Cron.php index 1a7a5784d..43c33103b 100644 --- a/src/Worker/Cron.php +++ b/src/Worker/Cron.php @@ -158,7 +158,7 @@ Class Cron { FROM `user` STRAIGHT_JOIN `contact` ON `contact`.`uid` = `user`.`uid` AND `contact`.`rel` IN (%d, %d) AND `contact`.`poll` != '' - AND `contact`.`network` IN ('%s', '%s', '%s', '%s', '%s', '%s') $sql_extra + AND `contact`.`network` IN ('%s', '%s', '%s', '%s', '%s') $sql_extra AND NOT `contact`.`self` AND NOT `contact`.`blocked` AND NOT `contact`.`readonly` AND NOT `contact`.`archive` WHERE NOT `user`.`account_expired` AND NOT `user`.`account_removed` $abandon_sql", @@ -168,8 +168,7 @@ Class Cron { dbesc(NETWORK_OSTATUS), dbesc(NETWORK_DIASPORA), dbesc(NETWORK_FEED), - dbesc(NETWORK_MAIL), - dbesc(NETWORK_MAIL2) + dbesc(NETWORK_MAIL) ); if (!DBM::is_result($contacts)) { diff --git a/src/Worker/Delivery.php b/src/Worker/Delivery.php index f17aa5507..bb30fc3bf 100644 --- a/src/Worker/Delivery.php +++ b/src/Worker/Delivery.php @@ -376,7 +376,6 @@ class Delivery { break; case NETWORK_MAIL: - case NETWORK_MAIL2: if (Config::get('system','dfrn_only')) { break; diff --git a/src/Worker/Notifier.php b/src/Worker/Notifier.php index 4404b879b..a3a03055e 100644 --- a/src/Worker/Notifier.php +++ b/src/Worker/Notifier.php @@ -447,7 +447,7 @@ class Notifier { // It only makes sense to distribute answers to OStatus messages to Friendica and OStatus - but not Diaspora $sql_extra = " AND `network` IN ('".NETWORK_OSTATUS."', '".NETWORK_DFRN."')"; } else { - $sql_extra = " AND `network` IN ('".NETWORK_OSTATUS."', '".NETWORK_DFRN."', '".NETWORK_DIASPORA."', '".NETWORK_MAIL."', '".NETWORK_MAIL2."')"; + $sql_extra = " AND `network` IN ('".NETWORK_OSTATUS."', '".NETWORK_DFRN."', '".NETWORK_DIASPORA."', '".NETWORK_MAIL."')"; } } else { $public_message = false; @@ -537,9 +537,8 @@ class Notifier { } $r2 = q("SELECT `id`, `name`,`network` FROM `contact` - WHERE `network` in ('%s', '%s') AND `uid` = %d AND NOT `blocked` AND NOT `pending` AND NOT `archive` AND `rel` != %d", + WHERE `network` in ('%s') AND `uid` = %d AND NOT `blocked` AND NOT `pending` AND NOT `archive` AND `rel` != %d", dbesc(NETWORK_DFRN), - dbesc(NETWORK_MAIL2), intval($owner['uid']), intval(CONTACT_IS_SHARING) ); diff --git a/src/Worker/OnePoll.php b/src/Worker/OnePoll.php index c5a62e982..64c533f82 100644 --- a/src/Worker/OnePoll.php +++ b/src/Worker/OnePoll.php @@ -345,7 +345,7 @@ Class OnePoll $xml = $ret['body']; unlink($cookiejar); - } elseif ($contact['network'] === NETWORK_MAIL || $contact['network'] === NETWORK_MAIL2) { + } elseif ($contact['network'] === NETWORK_MAIL) { logger("Mail: Fetching for ".$contact['addr'], LOGGER_DEBUG); diff --git a/update.php b/update.php index 7fbdec707..326c08414 100644 --- a/update.php +++ b/update.php @@ -1484,9 +1484,6 @@ function update_1164() { $r = q("UPDATE `item` SET `network`='%s' WHERE `contact-id` IN (SELECT `id` FROM`contact` WHERE `network` = '%s' AND `contact`.`uid` = `item`.`uid`)", NETWORK_MAIL, NETWORK_MAIL); - $r = q("UPDATE `item` SET `network`='%s' WHERE `contact-id` IN (SELECT `id` FROM`contact` WHERE `network` = '%s' AND `contact`.`uid` = `item`.`uid`)", - NETWORK_MAIL2, NETWORK_MAIL2); - $r = q("UPDATE `item` SET `network`='%s' WHERE `contact-id` IN (SELECT `id` FROM`contact` WHERE `network` = '%s' AND `contact`.`uid` = `item`.`uid`)", NETWORK_FACEBOOK, NETWORK_FACEBOOK); diff --git a/view/templates/auto_request.tpl b/view/templates/auto_request.tpl index d6abde030..c7e10482e 100644 --- a/view/templates/auto_request.tpl +++ b/view/templates/auto_request.tpl @@ -4,10 +4,9 @@

{{$page_desc}}

diff --git a/view/templates/dfrn_request.tpl b/view/templates/dfrn_request.tpl index 5225bd60b..8e686c33d 100644 --- a/view/templates/dfrn_request.tpl +++ b/view/templates/dfrn_request.tpl @@ -5,10 +5,9 @@

{{$page_desc}}

{{$invite_desc}}

diff --git a/view/theme/vier/plusminus.css b/view/theme/vier/plusminus.css index 77e8d3895..0b694c95f 100644 --- a/view/theme/vier/plusminus.css +++ b/view/theme/vier/plusminus.css @@ -1,5 +1,7 @@ /* Modifications by https://horche.demkontinuum.de/profile/hoergen */ +body { background-color: whitesmoke; } + h1 { font-size: 18px; color: blue; @@ -247,16 +249,22 @@ div.pager, ul.tabs { /* Post content */ .wall-item-content blockquote { - border-left: 2px solid #D2D2D2; + border-left: 0px; margin-top: 10px; margin-bottom:10px; padding-left: 5px; } +.wall-item-container .wall-item-content { + font-size: 14px; +} + .wall-item-content strong { color:#565656; } .wall-item-network { font-size:10px; } +.shared-time { font-size: 10px; } + .mention { font-size:12px;} .tag { font-size:12px; } @@ -268,16 +276,31 @@ div.pager, ul.tabs { padding-top: 5px; padding-bottom: 5px; margin-top: 20px; + margin-bottom: 20px; } .type-link blockquote{ - border-left: 2px solid #D2D2D2; + border-left: 0px; margin-top: 10px; margin-bottom:10px; - padding-left: 5px; + padding-left: 0px; font-size:12px; } +.type-link .oembed, .type-video .oembed { + font-size: 14px; + font-weight: 300; + line-height: normal; +} + +.shared_header { + min-height: 32px;; + color: #999; + border-top: 0px; + padding-top: 5px; + margin-top: 5px; +} + /* Post footer */ .wall-item-like { font-size:12px; } @@ -314,6 +337,10 @@ div.pager, ul.tabs { .wall-item-bottom { font-size: 14px; } +.icon::before { + width: 10px; +} + /* comments */ .wall-item-like { font-size:10px; } @@ -421,5 +448,16 @@ select { } .field label { - width: 300px; + width: 300px; } + +/* popup */ + +ul.menu-popup { + width: 16em; +} + +ul.menu-popup a { + padding: 0 0 0 5px; +} +