diff --git a/Code/Daemon/Cron_daily.php b/Code/Daemon/Cron_daily.php index bdbc01fd5..86723f52c 100644 --- a/Code/Daemon/Cron_daily.php +++ b/Code/Daemon/Cron_daily.php @@ -5,7 +5,6 @@ namespace Code\Daemon; use Code\Lib\ServiceClass; use Code\Lib\Libzotdir; use Code\Lib\Libzot; -use Code\Lib\Statistics; use Code\Extend\Hook; class Cron_daily @@ -56,15 +55,6 @@ class Cron_daily db_quoteinterval('1 YEAR') ); - - // update statistics counters (ignore values, they will be stored in config) - - Statistics::get_channels_all(); - Statistics::get_channels_6mo(); - Statistics::get_channels_1mo(); - Statistics::get_posts(); - Statistics::get_comments(); - // expire old delivery reports $keep_reports = intval(get_config('system', 'expire_delivery_reports')); diff --git a/Code/Lib/Activity.php b/Code/Lib/Activity.php index b42e8eeda..1cb597dbb 100644 --- a/Code/Lib/Activity.php +++ b/Code/Lib/Activity.php @@ -3057,7 +3057,7 @@ class Activity } // We shouldn't need to store collection contents which could be large. We will often only require the meta-data if (isset($s['tgt_type']) && strpos($s['tgt_type'], 'Collection') !== false) { - $s['target'] = ['id' => $act->tgt['id'], 'type' => $s['tgt_type'], 'attributedTo' => ((isset($act->tgt['attributedTo'])) ? $act->tgt['attributedTo'] : $act->tgt['actor'])]; + $s['target'] = ['id' => $act->tgt['id'], 'type' => $s['tgt_type'], 'attributedTo' => ((isset($act->tgt['attributedTo'])) ? $act->get_actor('attributedTo', $act->tgt) : $act->get_actor('actor', $act->tgt)]; } } @@ -4029,7 +4029,7 @@ class Activity } - // This function is designed to work with Zot attachments and item body + // This function is designed to work with Nomad attachments and item body public static function bb_attach($item) { @@ -4049,6 +4049,8 @@ class Activity if (self::media_not_in_body($a['href'], $item['body'])) { if (isset($a['name']) && $a['name']) { $alt = htmlspecialchars($a['name'], ENT_QUOTES); + // Escape brackets by converting to unicode full-width bracket since regular brackets will confuse multicode/bbcode parsing. + // The full width bracket isn't quite as alien looking as most other unicode bracket replacements. $alt = str_replace(['[', ']'], ['[', ']'], $alt); $item['body'] .= "\n\n" . '[img alt="' . $alt . '"]' . $a['href'] . '[/img]'; } else { diff --git a/Code/Module/Siteinfo.php b/Code/Module/Siteinfo.php index f5092dd2f..d9a10d57a 100644 --- a/Code/Module/Siteinfo.php +++ b/Code/Module/Siteinfo.php @@ -12,14 +12,6 @@ use Code\Render\Theme; class Siteinfo extends Controller { - public function init() - { - if (argv(1) === 'json' || $_REQUEST['module_format'] === 'json') { - $data = get_site_info(); - json_return_and_die($data); - } - } - public function get() { diff --git a/README.md b/README.md index 51dcdb88e..3fe202f6d 100644 --- a/README.md +++ b/README.md @@ -1,4 +1,4 @@ -TL;DR An open source fediverse server with a long history of innovation based on privacy, resilience, and ethics. +TL;DR An open source fediverse server with a long history of innovation based on privacy, resilience, and ethics. A communications platform which puts you in control. This repository first went public in 2010 and spawned a number of fediverse-related projects. Friendica, Hubzilla, Zap and many others. Those became branches of this tree. Some turned into independent open source communities. Some withered and sputtered out. This is the main development trunk. @@ -7,7 +7,7 @@ My name is Mike. I'm retired from open source now, but building decentralised co From day one the question was how to build a federated/decentralised communication stack that provides more control over your privacy, and respects all people and cultures - including those which have a different political bias; while allowing them to all co-exist in the same space (and without killing each other). We've come up with lots of creative soutions to the thorniest of decentralisation problems over the intervening years. -I'll highlight the most important ones: we implement cross-domain granular permissions and cross-domain (nomadic) identity and cross-domain single sign-on. All of these work together to provide a social platform which is probably unlike any you have used before. It is fully decentralised, but provides many features that were previously only available from monolithic centralised systems. This is a huge distinction from many/most other fediverse projects and could represent a killer app for both the fediverse and the internet at large once adopted at scale. This is all coming to the internet anyway as it is a natural progression, except in our vision, your online existence belongs to you and not to Facebook, Twitter, Microsoft, and Google. +I'll highlight the most important ones: we implement cross-domain granular permissions and cross-domain (nomadic) identity and cross-domain single sign-on. All of these work together to provide a communications platform which is probably unlike any you have used before. It is fully decentralised, but provides many features that were previously only available from monolithic centralised systems. This is a huge distinction from many/most other fediverse projects and could represent a killer app for both the fediverse and the internet at large once adopted at scale. This is all coming to the internet anyway as it is a natural progression, except in our vision, your online existence belongs to you and not to Facebook, Twitter, Microsoft, and Google. Permissions are your gate-keeper. This is how you free yourself from trolls and abuse and spam. You can also block those you don't wish to see, but you'll rarely (if ever) need to do so if your platform just provides sensible permissions to begin with. You also control the visibility and distribution of your communications to any desired audience; either individuals, sharable collections of individuals, ad-hoc communities, topical interest groups, or to the world if you desire. @@ -17,7 +17,7 @@ Single sign-on works with permissions to provide access to private media content There are hundreds of other features available; but these are the defining features which have been constant for about the last decade. At one point there were so many features that we couldn't manage them all, so we simplified. Now the interface is much more sleek and basic; and you can add apps from our free app store to provide any advanced features you desire or require. -Since 2017, every branch of this repository evolved to support communications over ActivityPub, the current web standard for social communications. This provides immediate access to (currently) around 5 million people across (currently) around a hundred different software applications. There are Twitter clones and Facebook clones and Instagram clones and YouTube clones - and we interact with all of them. In the interests of full disclosure, this repository first went public in 2010 as a decentralised Facebook alternative, but we've since turned it into something completely different and no longer care about emulating anybody or anything. We provide a social experience and privacy mechanisms and features you simply won't find elsewhere. +Since 2017, every branch of this repository evolved to support communications over ActivityPub, the current web standard for social communications. This provides immediate access to (currently) around 5 million people across (currently) around a hundred different software applications. There are Twitter clones and Facebook clones and Instagram clones and YouTube clones - and we interact with all of them. In the interests of full disclosure, this repository first went public in 2010 as a decentralised Facebook alternative, but we've since turned it into something completely different and no longer care about emulating anybody or anything. We provide a communications experience with privacy mechanisms and features you simply won't find elsewhere. This software will install as a fediverse server using the LAMP stack. There are also containerised installations available. It is regularly maintained and updated and you are welcome to help - if you want. There is no formal organisation here. Either help out or don't. Many/most of our sites are privately run on small devices for family and friends and we don't know and don't care how many exist or how many "users" are on our systems. The servers themselves require very little ongoing maintenance and we spend a lot of effort providing a level playing field for all. You have the same features and abilities no matter how big (or small) your server is. diff --git a/include/api_zot.php b/include/api_zot.php index 9f7211928..744c149c8 100644 --- a/include/api_zot.php +++ b/include/api_zot.php @@ -1,14 +1,11 @@