Compare commits

...

119 commits

Author SHA1 Message Date
Hypolite Petovan
3a2461322d
Merge pull request #13836 from Quix0r/fixes/configurable-file-size
Make hard-coded max response configurable
2024-01-16 22:35:08 -05:00
Roland Häder
550b4ce420
Added note 2024-01-17 01:51:13 +01:00
Hypolite Petovan
28a7884ad9
Merge pull request #13806 from annando/channel-relay
New user account type "Channel Relay"
2024-01-16 19:49:59 -05:00
Roland Häder
a7bdcc1216
Better description (@MrPetovan) 2024-01-17 01:11:59 +01:00
Roland Häder
7d3723592b
Renamed 'http_client' -> 'performance' 2024-01-16 20:32:53 +01:00
Roland Häder
075915e3b7
Continued:
- moved to new configuration category 'http_client' (thanks to @MrPetovan)
2024-01-16 20:13:53 +01:00
Roland Häder
931c73d3c1
Continued:
- added max_response_data_size to default configuration with hard-coded value
  from code
2024-01-16 20:04:23 +01:00
Roland Häder
3263a0b98e
Make hard-coded max response configurable:
- see discussion started by @schmaker@schmaker.eu at https://schmaker.eu/display/c83e3896-1265-a3d6-0ab5-a78119129626
- this allows servers with lower RAM amount to still run without OOMs (or much lesser)
2024-01-16 19:52:06 +01:00
Michael
586a221eb9 Merge branch 'channel-relay' of https://github.com/annando/friendica into channel-relay 2024-01-15 22:28:46 +00:00
Michael
63b958dcc6 Centralized functionality to store and delete the check-full-text-search table 2024-01-15 22:28:42 +00:00
Michael
976ec30417 Merge branch 'channel-relay' of https://github.com/annando/friendica into channel-relay 2024-01-15 19:53:07 +00:00
Michael
0c8c03153b Merge remote-tracking branch 'upstream/develop' into channel-relay 2024-01-15 19:51:20 +00:00
Michael
23b247d1c3 Merge remote-tracking branch 'upstream/develop' into channel-relay 2024-01-15 19:41:26 +00:00
Hypolite Petovan
dd534919d7
Merge pull request #13831 from friendica/warning
Fix warning concerning a missing "created" field
2024-01-15 14:17:06 -05:00
Hypolite Petovan
8fc51cf63e
Merge pull request #13835 from annando/no-any-value
"ANY_VALUE" is removed
2024-01-15 14:16:12 -05:00
Michael
f6335590c5 Improve query 2024-01-15 17:00:32 +00:00
Michael
a60910be69 Updated messages.po 2024-01-15 16:53:24 +00:00
Michael
f83f61f7ac "ANY_VALUE" is removed 2024-01-15 16:45:24 +00:00
Hypolite Petovan
4c402f6af4
Merge pull request #13824 from toddy15/php-cs-fixer
Update and install PHP-CS-Fixer
2024-01-15 07:53:39 -05:00
Hypolite Petovan
a0dec23f2d
Merge pull request #13832 from mexon/console-set-password
Update use of PasswordExposed API
2024-01-15 07:43:23 -05:00
Dr. Tobias Quathamer
591f54f64d Add license header to php-cs-fixer configuration file 2024-01-15 13:31:29 +01:00
Dr. Tobias Quathamer
5a89cecc5e Regenerate composer.lock 2024-01-15 13:24:46 +01:00
Dr. Tobias Quathamer
540b2b74cc Do not reformat addon directory 2024-01-15 13:24:46 +01:00
Dr. Tobias Quathamer
d19181016f Update .gitignore for new php-cs-fixer filename 2024-01-15 13:24:46 +01:00
Dr. Tobias Quathamer
13d1576dad Remove unneeded requirement of autoload file 2024-01-15 12:05:51 +01:00
Dr. Tobias Quathamer
6cea1c3472 Copy php-cs-fixer configuration file to currently expected name 2024-01-15 12:05:38 +01:00
Dr. Tobias Quathamer
893c2e4fd3 Add new script commands for php-cs-fixer 2024-01-15 12:04:30 +01:00
Dr. Tobias Quathamer
9daf83ce9b Add friendsofphp/php-cs-fixer to development packages 2024-01-15 11:59:17 +01:00
Michael
9075d7f37d Constant for undeterminded language 2024-01-15 06:20:49 +00:00
Michael
7a13d8b8ac Merge remote-tracking branch 'upstream/develop' into channel-relay 2024-01-15 06:14:55 +00:00
Hypolite Petovan
60b81bb6ca
Merge pull request #13833 from mexon/create-user-photo
Allow setting user avatar in the console at creation
2024-01-15 01:09:01 -05:00
Hypolite Petovan
faa1cbeaf6
Merge pull request #13827 from annando/ocr
Use OCR to fetch text in images
2024-01-15 01:06:50 -05:00
Michael
a12fbf7ff3 Move to addon 2024-01-14 19:18:41 +00:00
Michael
a2f4b4cd3d Composer 2024-01-14 18:40:32 +00:00
Michael
7150faa09c Composer 2024-01-14 18:38:22 +00:00
Michael
5acfff1152 Merge remote-tracking branch 'upstream/develop' into ocr 2024-01-14 18:33:02 +00:00
Matthew Exon
921bf15419 Update use of PasswordExposed API 2024-01-14 18:40:40 +01:00
Matthew Exon
36c37e0c62 Allow setting user avatar in the console at creation 2024-01-14 16:19:20 +01:00
Michael
3b1d636322 Merge remote-tracking branch 'upstream/develop' into warning 2024-01-14 12:13:10 +00:00
Michael
d4c16b8704 Fix warning concerning a missing "created" field 2024-01-14 11:58:06 +00:00
Michael Vogel
02123bda98
Issue 13828: Use the alias as profile link if present (#13829)
* Issue 13828: Use the alias as profile link if present

* Updated messages.po
2024-01-14 10:08:00 +01:00
Michael Vogel
5dc49352e8
Merge pull request #13826 from MrPetovan/bug/deprecated
[Composer] Bump guzzlehttp/guzzle to version 7 to suppress deprecation notices
2024-01-13 21:38:22 +01:00
Michael
1fc1e478f8 Improved config description 2024-01-13 19:37:24 +00:00
Michael
3a60229e5c Use OCR to fetch text in images 2024-01-13 19:30:20 +00:00
Michael
98de6ad464 Fix regexp for search text generation 2024-01-13 19:20:45 +00:00
Michael
1eeef896fe Link preview text and description added to search text. 2024-01-13 15:46:37 +00:00
Hypolite Petovan
e8c256bcff [Composer] Bump guzzlehttp/guzzle to version 7 to suppress deprecation notices
- Bump divineomega/password_exposed to version 3 to remove dependency on Guzzle version 6
- Add new ICanHandleHttpResponses->getBodyString method to solve inheritance mismatch with GuzzleHttp\Psr7\ResponseInterface->getBody return type
2024-01-12 08:42:46 -05:00
Michael
a30b9e6927 Improved handling of empty default languages 2024-01-12 09:58:16 +00:00
Hypolite Petovan
728130908e
Merge pull request #13825 from toddy15/undefined-array-key
Fix Undefined array key.
2024-01-12 00:19:48 -05:00
Dr. Tobias Quathamer
5cd5fa8403 Fix Undefined array key.
- Address https://github.com/friendica/friendica/issues/13761#issuecomment-1878806230
2024-01-11 23:38:29 +01:00
Michael
62975b0ef2 Simplify SQL check 2024-01-11 20:40:24 +00:00
Michael
cc0b16c0ae Fix a problem with MySQL 2024-01-11 07:01:48 +00:00
Michael
43d5409937 Property added 2024-01-11 06:49:15 +00:00
Michael
ad15b7b256 Fix warning: E_WARNING: Undefined array key "publish" 2024-01-10 22:04:02 +00:00
Michael
61555657c3 Code clean up 2024-01-10 21:51:34 +00:00
Michael
dfce85a09f Improved performance with full text search 2024-01-10 21:17:21 +00:00
Michael
b48467c3f8 Validate full search text 2024-01-10 20:17:44 +00:00
Michael Vogel
b515292b1c
Merge pull request #13820 from haheute/remove-01
remove a superfluous '01' that appeared next to checkboxes from templ…
2024-01-10 18:09:33 +01:00
Hannes Heute
60e1427ffe remove a superfluous '01' that appeared next to checkboxes from template file 2024-01-10 17:41:53 +01:00
Michael
b2dd95affa Language check added 2024-01-10 10:55:18 +00:00
Michael
a04dc06aab Handle reshares / improved code 2024-01-09 22:55:47 +00:00
Michael
0b84e0d056 Compare with lowered tags 2024-01-09 06:40:07 +00:00
Hypolite Petovan
83c187e3ac
Merge pull request #13807 from toddy15/develop
Clean up smarty templates.
2024-01-08 10:12:07 -05:00
Michael
7a680dd9b7 Take language from quoted post 2024-01-08 06:48:49 +00:00
Michael
5dedf5e500 Execute the language detection all the time 2024-01-08 06:23:28 +00:00
Michael
43fa22470c Fix warning, when the language is invalid 2024-01-07 23:10:28 +00:00
Dr. Tobias Quathamer
6fd057fd00 Use double quotes where possible 2024-01-07 21:48:22 +01:00
Dr. Tobias Quathamer
e6036b8266 Clean up smarty templates.
This simplifies some logic in if-conditions, because
smarty just returns an empty string for undefined
variables.

Also, this commit removes unnecessary values from
HTML input attributes.
2024-01-07 21:40:01 +01:00
Michael
7e8aee61ba Updated messages.po 2024-01-07 19:57:53 +00:00
Michael
d2a74d1936 New option to disallow 2024-01-07 19:22:56 +00:00
Michael
c4b85ef25a New field "publish" for channels 2024-01-07 18:36:47 +00:00
Michael
08738e6551 Improved handling of undetected languages 2024-01-07 12:45:08 +00:00
Michael
da02df20c3 Simplified language check 2024-01-07 12:09:13 +00:00
Michael
6e830f7774 Improved handling for undeterminded languages 2024-01-07 10:11:52 +00:00
Hypolite Petovan
bbd3e75399
Merge pull request #13808 from mexon/allow-ipv6-failure
allow hosts to be validated even if ipv6 fails
2024-01-06 21:03:52 -05:00
Michael
6cd0e1e35f Use owner instead of author 2024-01-07 01:08:59 +00:00
Matthew Exon
1550ce2764 allow hosts to be validated even if ipv6 fails 2024-01-06 23:56:11 +01:00
Michael
4aedf7f650 Improved code / updated messages.po 2024-01-06 22:04:30 +00:00
Michael
aba4a482f0 Limited settings for the relay account type 2024-01-06 21:52:28 +00:00
Michael
811a9f01bc New user account type "Channel Relay" 2024-01-06 17:27:42 +00:00
Hypolite Petovan
2b8126b780
Merge pull request #13805 from toddy15/develop
Enable HTML attributes in all form fields.
2024-01-06 11:13:54 -05:00
Dr. Tobias Quathamer
26f4532d47 Enable HTML attributes in all form fields.
Closes #13804
2024-01-06 16:28:48 +01:00
Hypolite Petovan
16b12e1545
Merge pull request #13800 from annando/channel-languages
User defined channels can now have got individual language definitions
2024-01-03 18:48:51 -05:00
Michael
4e1263c1f8 Fixed indentation 2024-01-03 19:22:53 +00:00
Michael
93dd1b5973 Updated messages.po / database.sql 2024-01-03 19:20:56 +00:00
Michael
31b88da9d5 Merge remote-tracking branch 'upstream/develop' into channel-languages 2024-01-03 19:17:58 +00:00
Michael
da3d390187 User defined channels can now have got individual language definitions 2024-01-03 19:17:14 +00:00
Hypolite Petovan
67a9f6269e
Merge pull request #13799 from foss-/patch-12
Update README.md: fixing links for mobile screenshots
2024-01-03 10:13:05 -05:00
foss-
bc67be2b91
Update README.md: fixing links for mobile screenshots 2024-01-03 16:08:18 +01:00
Hypolite Petovan
4132e7a468
Merge pull request #13798 from annando/unkmail2
The "unkmail" functionality is removed
2024-01-03 10:02:31 -05:00
Hypolite Petovan
25fecc1945
Merge pull request #13785 from foss-/patch-11
Update README.md
2024-01-03 09:59:01 -05:00
Hypolite Petovan
a077418af0 Fix formatting and wording in README 2024-01-03 09:58:20 -05:00
Hypolite Petovan
2e81803a52 Fix absolute image paths in README 2024-01-03 09:56:11 -05:00
Hypolite Petovan
fe39ead790 Update README screenshot 2024-01-03 09:55:51 -05:00
Michael Vogel
d385296e0d
Merge pull request #13797 from tobiasd/20240103-lang
DE, FR, RO translation updates
2024-01-03 11:44:49 +01:00
Michael
7ecf143e4c The "unkmail" functionality is removed 2024-01-03 10:23:11 +00:00
Tobias Diekershoff
ffad9c523b DE, FR, RO translation updates 2024-01-03 10:39:42 +01:00
Hypolite Petovan
21b16ef822
Merge pull request #13795 from annando/copyright
Friendica copyright changed from 2023 to 2034
2024-01-02 21:28:02 -05:00
Hypolite Petovan
80103bef38
Merge pull request #13794 from annando/simplified-group-display
There is now a single way to display group postings
2024-01-02 21:27:31 -05:00
Hypolite Petovan
6c023f832b
Merge pull request #13796 from annando/discoverable
Don't set a profile to "discoverable" for restricted hosts
2024-01-02 21:25:17 -05:00
Michael
73df36ca72 Don't set a profile to "discoverable" for restricted hosts 2024-01-03 00:55:21 +00:00
Michael
523247f0fe Updated messages.po 2024-01-02 20:59:23 +00:00
Michael
89e7420237 Friendica copyright changed from 2023 to 2034 2024-01-02 20:57:26 +00:00
Michael
16d0d17169 There is now a single way to display group postings 2024-01-02 20:45:02 +00:00
Michael Vogel
9592292dba
Improved server detection / new servers added to federation statistics (#13793)
* Improved server detection / new servers added to federation statistics

* Fix wrong color code
2024-01-02 20:12:37 +01:00
Michael Vogel
bf80001c80
Fixed detection for empty server data in apcontact (#13791) 2024-01-02 14:56:08 +01:00
hoergen
4e7f0f9f04
added jit and preload explanation in comment
added information to identify which parameter causes which result
2024-01-01 18:01:22 +01:00
foss-
85eb09806f
Update README.md
- updated main screenshot (changed post action icons, text no longer shown)
- fixed path for mobile screenshots
- removed vier screenshot (it as not seen any development for ages, is not the default and thus not representative or needed for a first impression)
- tweaked humane tech mention text
2023-12-31 14:51:14 +01:00
Michael Vogel
8fc96477e7
Use the post-counts table to display content (#13781)
* Use the post-counts table to display content

* Use verb instead of vid

* Use verb

* Update counter on delete
2023-12-31 12:50:07 +01:00
Michael Vogel
0c68a53e1e
Remove 'blocklist' pconfig functionality (#13780)
* Cache blocklist

* Remove 'blocklist' pconfig functionality

* The blocklist variable isn't used anymore
2023-12-30 00:51:41 +01:00
Michael Vogel
ad1389b20a
Transmitting events to Diaspora does work again (#13777) 2023-12-30 00:43:14 +01:00
Michael Vogel
1564c297bb
Cache blocklist (#13779) 2023-12-30 00:27:57 +01:00
Hypolite Petovan
5b516b1dbb
Merge pull request #13778 from annando/post-counts
New table "post-counts" to precalculate the counts
2023-12-28 13:13:44 -05:00
Michael
e88cd16644 Code standards 2023-12-28 17:50:11 +00:00
Michael
40a1263066 New table "post-counts" to precalculate the counts 2023-12-28 17:42:39 +00:00
Hypolite Petovan
2588ac1a16
Merge pull request #13774 from annando/no-blubb
Unneeded logging removed
2023-12-28 12:06:09 -05:00
Hypolite Petovan
8d4a16a71c
Merge pull request #13773 from annando/user-self
"User::" is changed to "self::"
2023-12-28 12:05:31 -05:00
Michael
ba760bb340 Unneeded logging removed 2023-12-28 10:25:22 +00:00
Michael
86a27b51ad "User::" is changed to "self::" 2023-12-28 10:23:01 +00:00
1313 changed files with 6766 additions and 4501 deletions

3
.gitignore vendored
View file

@ -83,8 +83,9 @@ venv/
#Ignore temporary installed phpunit
/bin/phpunit
#Ignore cache file
#Ignore cache files
.php_cs.cache
.php-cs-fixer.cache
#ignore avatar picture cache path
/avatar

93
.php-cs-fixer.dist.php Normal file
View file

@ -0,0 +1,93 @@
<?php
/**
* @copyright Copyright (C) 2010-2024, the Friendica project
*
* @license GNU AGPL version 3 or any later version
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU Affero General Public License as
* published by the Free Software Foundation, either version 3 of the
* License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Affero General Public License for more details.
*
* You should have received a copy of the GNU Affero General Public License
* along with this program. If not, see <https://www.gnu.org/licenses/>.
*/
declare(strict_types=1);
$finder = PhpCsFixer\Finder::create()
->in(__DIR__)
->notPath('addon')
->notPath('bin/dev')
->notPath('config')
->notPath('doc')
->notPath('images')
->notPath('mods')
->notPath('spec')
->notPath('vendor')
->notPath('view/asset')
->notPath('lang')
->notPath('view/smarty3/compiled');
$config = new PhpCsFixer\Config();
return $config
->setRules([
'@PSR1' => true,
'@PSR2' => true,
'@PSR12' => true,
'align_multiline_comment' => true,
'array_indentation' => true,
'array_syntax' => [
'syntax' => 'short',
],
'binary_operator_spaces' => [
'default' => 'single_space',
'operators' => [
'=>' => 'align_single_space_minimal',
'=' => 'align_single_space_minimal',
'??' => 'align_single_space_minimal',
],
],
'blank_line_after_namespace' => true,
'braces' => [
'position_after_anonymous_constructs' => 'same',
'position_after_control_structures' => 'same',
'position_after_functions_and_oop_constructs' => 'next',
],
'elseif' => true,
'encoding' => true,
'full_opening_tag' => true,
'function_declaration' => [
'closure_function_spacing' => 'one',
],
'indentation_type' => true,
'line_ending' => true,
'list_syntax' => [
'syntax' => 'long',
],
'lowercase_keywords' => true,
'method_argument_space' => [],
'no_closing_tag' => true,
'no_spaces_after_function_name' => true,
'no_spaces_inside_parenthesis' => true,
'no_trailing_whitespace' => true,
'no_trailing_whitespace_in_comment' => true,
'no_unused_imports' => true,
'single_blank_line_at_eof' => true,
'single_class_element_per_statement' => true,
'single_import_per_statement' => true,
'single_line_after_imports' => true,
'switch_case_space' => true,
'ternary_operator_spaces' => false,
'visibility_required' => [
'elements' => ['property', 'method']
],
'new_with_braces' => true,
])
->setFinder($finder)
->setIndent("\t");

View file

@ -6,6 +6,7 @@ require_once __DIR__ . '/bin/dev/php-cs-fixer/vendor/autoload.php';
$finder = PhpCsFixer\Finder::create()
->in(__DIR__)
->notPath('addon')
->notPath('bin/dev')
->notPath('config')
->notPath('doc')

View file

@ -3,27 +3,28 @@ Friendica - your open and free social network
Welcome to the free social web. Friendica is a platform for decentralised social communication linking to other independent social and corporate services.
Friendica connects you to a federated communications network of thousands of servers called the Fediverse. Through various protocols you can interact with anyone on [Friendica]( https://friendi.ca), [Mastodon](https://joinmastodon.org), [Lemmy](https://join-lemmy.org/), [Diaspora](https://diasporafoundation.org), [Misskey](https://join.misskey.page), [Peertube](https://joinpeertube.org/), [Pixelfed](https://pixelfed.org/), [Pleroma](https://pleroma.social) and many more. Receiving content from Tumblr, Wordpress and RSS is also possible. Friendica allows to import and mirror your content via add-ons such as ITTT and Buffer. You can customize and control how publicly or privately you want to share your content.
Friendica connects you to a federated communications network of thousands of servers called the Fediverse.
Through various protocols you can interact with anyone on [Friendica]( https://friendi.ca), [Mastodon](https://joinmastodon.org), [Lemmy](https://join-lemmy.org/), [Diaspora](https://diasporafoundation.org), [Misskey](https://join.misskey.page), [Peertube](https://joinpeertube.org/), [Pixelfed](https://pixelfed.org/), [Pleroma](https://pleroma.social) and many more.
Receiving content from Tumblr, WordPress and RSS is also possible.
Friendica allows to import and mirror your content via add-ons such as ITTT and Buffer.
You can control the privacy scope of your content.
Being part of the Fediverse allows you to be free from data-harvesting corporations. Enjoy open social communication, independent of any specific provider.
Being part of the Fediverse allows you to be free from data-harvesting corporations.
Enjoy open social communication, independent of any specific provider.
[Join Friendica](https://dir.friendica.social/servers) today or setup [your own Friendica instance](doc/Install.md).
[Join Friendica](https://dir.friendica.social/servers) today or set up [your own Friendica instance](doc/Install.md).
### Friendica on desktop
![Frio theme in desktop browser](images/screenshots/friendica-2023-10-frio-desktop.png?raw=true "Frio theme in desktop browser")
![Frio theme in desktop browser](images/screenshots/friendica-2023-12-frio-desktop.png?raw=true "Frio theme in desktop browser")
### Friendica on mobile
<p float="left">
<img src ="https://github.com/friendica/friendica/blob/2023.09-rc/images/screenshots/friendica-2023-10-frio-mobile-timeline-dark-blue.png" width="370" alt="frio on mobile, dark color scheme">
<img src="https://github.com/friendica/friendica/blob/2023.09-rc/images/screenshots/friendica-2023-10-frio-mobile-options-light-blue.png" width="370" alt="frio on mobile, light color scheme">
<img src="images/screenshots/friendica-2023-10-frio-mobile-timeline-dark-blue.png" width="370" alt="frio on mobile, dark color scheme">
<img src="images/screenshots/friendica-2023-10-frio-mobile-options-light-blue.png" width="370" alt="frio on mobile, light color scheme">
</p>
### Alternative Theme "Vier"
![Vier theme in desktop browser](images/screenshots/friendica-vier-community.png?raw=true "Vier theme in desktop browser")
## Endorsements
- [![Awesome Humane Tech](images/humane-tech-badge.svg)](https://codeberg.org/teaserbot-labs/delightful-humane-design) In August 2020 Friendica was added to the curated delightful humane design resources in the [Fediverse category](https://codeberg.org/teaserbot-labs/delightful-humane-design#fediverse).
- Friendica is listed on [![Awesome Humane Tech](images/humane-tech-badge.svg)](https://codeberg.org/teaserbot-labs/delightful-humane-design) in the [Fediverse category](https://codeberg.org/teaserbot-labs/delightful-humane-design#fediverse).

View file

@ -1,7 +1,7 @@
#!/usr/bin/env php
<?php
/**
* @copyright Copyright (C) 2010-2023, the Friendica project
* @copyright Copyright (C) 2010-2024, the Friendica project
*
* @license GNU AGPL version 3 or any later version
*

View file

@ -1,7 +1,7 @@
#!/usr/bin/env php
<?php
/**
* @copyright Copyright (C) 2010-2023, the Friendica project
* @copyright Copyright (C) 2010-2024, the Friendica project
*
* @license GNU AGPL version 3 or any later version
*

View file

@ -1,7 +1,7 @@
#!/usr/bin/env php
<?php
/**
* @copyright Copyright (C) 2010-2023, the Friendica project
* @copyright Copyright (C) 2010-2024, the Friendica project
*
* @license GNU AGPL version 3 or any later version
*

View file

@ -1,6 +1,6 @@
<?php
/**
* @copyright Copyright (C) 2010-2023, the Friendica project
* @copyright Copyright (C) 2010-2024, the Friendica project
*
* @license GNU AGPL version 3 or any later version
*

View file

@ -1,7 +1,7 @@
#!/usr/bin/php
<?php
/**
* @copyright Copyright (C) 2010-2023, the Friendica project
* @copyright Copyright (C) 2010-2024, the Friendica project
*
* @license GNU AGPL version 3 or any later version
*

View file

@ -1,7 +1,7 @@
#!/usr/bin/env php
<?php
/**
* @copyright Copyright (C) 2010-2023, the Friendica project
* @copyright Copyright (C) 2010-2024, the Friendica project
*
* @license GNU AGPL version 3 or any later version
*

View file

@ -29,12 +29,12 @@
"ext-xml": "*",
"asika/simple-console": "^1.0",
"bacon/bacon-qr-code": "^2.0.0",
"divineomega/password_exposed": "^2.8",
"divineomega/password_exposed": "^3",
"enyo/dropzone": "^5.9",
"ezyang/htmlpurifier": "^4.7",
"friendica/json-ld": "^1.0",
"geekwright/po": "^2.0",
"guzzlehttp/guzzle": "^6.5",
"guzzlehttp/guzzle": "^7",
"guzzlehttp/oauth-subscriber": "^0.6",
"kornrunner/blurhash": "^1.2",
"league/html-to-markdown": "^4.8",
@ -135,7 +135,8 @@
"mockery/mockery": "^1.3",
"mikey179/vfsstream": "^1.6",
"phpunit/phpunit": "^9",
"dms/phpunit-arraysubset-asserts": "^0.3.1"
"dms/phpunit-arraysubset-asserts": "^0.3.1",
"friendsofphp/php-cs-fixer": "^3.46"
},
"scripts": {
"test": "phpunit",
@ -149,6 +150,8 @@
"cs:fix": [
"@cs:install",
"bin/dev/php-cs-fixer/vendor/bin/php-cs-fixer fix"
]
],
"cs:check-v3": "vendor/bin/php-cs-fixer check --diff",
"cs:fix-v3": "vendor/bin/php-cs-fixer fix"
}
}

2212
composer.lock generated

File diff suppressed because it is too large Load diff

View file

@ -1,6 +1,6 @@
-- ------------------------------------------
-- Friendica 2024.03-dev (Yellow Archangel)
-- DB_UPDATE_VERSION 1542
-- DB_UPDATE_VERSION 1546
-- ------------------------------------------
@ -73,8 +73,6 @@ CREATE TABLE IF NOT EXISTS `user` (
`blockwall` boolean NOT NULL DEFAULT '0' COMMENT 'Prohibit contacts to post to the profile page of the user',
`hidewall` boolean NOT NULL DEFAULT '0' COMMENT 'Hide profile details from unknown viewers',
`blocktags` boolean NOT NULL DEFAULT '0' COMMENT 'Prohibit contacts to tag the post of this user',
`unkmail` boolean NOT NULL DEFAULT '0' COMMENT 'Permit unknown people to send private mails to this user',
`cntunkmail` int unsigned NOT NULL DEFAULT 10 COMMENT '',
`notify-flags` smallint unsigned NOT NULL DEFAULT 65535 COMMENT 'email notification options',
`page-flags` tinyint unsigned NOT NULL DEFAULT 0 COMMENT 'page/profile type',
`account-type` tinyint unsigned NOT NULL DEFAULT 0 COMMENT '',
@ -506,6 +504,9 @@ CREATE TABLE IF NOT EXISTS `channel` (
`exclude-tags` varchar(1023) COMMENT 'Comma separated list of tags that aren\'t allowed in the channel',
`full-text-search` varchar(1023) COMMENT 'Full text search pattern, see https://mariadb.com/kb/en/full-text-index-overview/#in-boolean-mode',
`media-type` smallint unsigned COMMENT 'Filtered media types',
`languages` mediumtext COMMENT 'Desired languages',
`publish` boolean COMMENT 'publish channel content',
`valid` boolean COMMENT 'Set, when the full-text-search is valid',
PRIMARY KEY(`id`),
INDEX `uid` (`uid`),
FOREIGN KEY (`uid`) REFERENCES `user` (`uid`) ON UPDATE RESTRICT ON DELETE CASCADE
@ -1236,6 +1237,23 @@ CREATE TABLE IF NOT EXISTS `post-category` (
FOREIGN KEY (`tid`) REFERENCES `tag` (`id`) ON UPDATE RESTRICT ON DELETE RESTRICT
) DEFAULT COLLATE utf8mb4_general_ci COMMENT='post relation to categories';
--
-- TABLE post-counts
--
CREATE TABLE IF NOT EXISTS `post-counts` (
`uri-id` int unsigned NOT NULL COMMENT 'Id of the item-uri table entry that contains the item uri',
`vid` smallint unsigned NOT NULL COMMENT 'Id of the verb table entry that contains the activity verbs',
`reaction` varchar(1) NOT NULL COMMENT 'Emoji Reaction',
`parent-uri-id` int unsigned COMMENT 'Id of the item-uri table that contains the parent uri',
`count` int unsigned DEFAULT 0 COMMENT 'Number of activities',
PRIMARY KEY(`uri-id`,`vid`,`reaction`),
INDEX `vid` (`vid`),
INDEX `parent-uri-id` (`parent-uri-id`),
FOREIGN KEY (`uri-id`) REFERENCES `item-uri` (`id`) ON UPDATE RESTRICT ON DELETE CASCADE,
FOREIGN KEY (`vid`) REFERENCES `verb` (`id`) ON UPDATE RESTRICT ON DELETE RESTRICT,
FOREIGN KEY (`parent-uri-id`) REFERENCES `item-uri` (`id`) ON UPDATE RESTRICT ON DELETE CASCADE
) DEFAULT COLLATE utf8mb4_general_ci COMMENT='Original remote activity';
--
-- TABLE post-collection
--
@ -1327,7 +1345,7 @@ CREATE TABLE IF NOT EXISTS `post-engagement` (
`owner-id` int unsigned NOT NULL DEFAULT 0 COMMENT 'Item owner',
`contact-type` tinyint NOT NULL DEFAULT 0 COMMENT 'Person, organisation, news, community, relay',
`media-type` tinyint NOT NULL DEFAULT 0 COMMENT 'Type of media in a bit array (1 = image, 2 = video, 4 = audio',
`language` varbinary(128) COMMENT 'Language information about this post',
`language` varchar(128) COMMENT 'Language information about this post',
`searchtext` mediumtext COMMENT 'Simplified text for the full text search',
`created` datetime COMMENT '',
`restricted` boolean NOT NULL DEFAULT '0' COMMENT 'If true, this post is either unlisted or not from a federated network',
@ -2008,6 +2026,20 @@ CREATE VIEW `circle-member-view` AS SELECT
INNER JOIN `contact` ON `group_member`.`contact-id` = `contact`.`id`
INNER JOIN `group` ON `group_member`.`gid` = `group`.`id`;
--
-- VIEW post-counts-view
--
DROP VIEW IF EXISTS `post-counts-view`;
CREATE VIEW `post-counts-view` AS SELECT
`post-counts`.`uri-id` AS `uri-id`,
`post-counts`.`vid` AS `vid`,
`verb`.`name` AS `verb`,
`post-counts`.`reaction` AS `reaction`,
`post-counts`.`parent-uri-id` AS `parent-uri-id`,
`post-counts`.`count` AS `count`
FROM `post-counts`
INNER JOIN `verb` ON `verb`.`id` = `post-counts`.`vid`;
--
-- VIEW post-timeline-view
--
@ -2936,8 +2968,6 @@ CREATE VIEW `owner-view` AS SELECT
`user`.`blockwall` AS `blockwall`,
`user`.`hidewall` AS `hidewall`,
`user`.`blocktags` AS `blocktags`,
`user`.`unkmail` AS `unkmail`,
`user`.`cntunkmail` AS `cntunkmail`,
`user`.`notify-flags` AS `notify-flags`,
`user`.`page-flags` AS `page-flags`,
`user`.`account-type` AS `account-type`,

View file

@ -61,6 +61,7 @@ Database Tables
| [post-category](help/database/db_post-category) | post relation to categories |
| [post-collection](help/database/db_post-collection) | Collection of posts |
| [post-content](help/database/db_post-content) | Content for all posts |
| [post-counts](help/database/db_post-counts) | Original remote activity |
| [post-delivery](help/database/db_post-delivery) | Delivery data for posts for the batch processing |
| [post-delivery-data](help/database/db_post-delivery-data) | Delivery data for items |
| [post-engagement](help/database/db_post-engagement) | Engagement data per post |

View file

@ -18,6 +18,9 @@ Fields
| exclude-tags | Comma separated list of tags that aren't allowed in the channel | varchar(1023) | YES | | NULL | |
| full-text-search | Full text search pattern, see https://mariadb.com/kb/en/full-text-index-overview/#in-boolean-mode | varchar(1023) | YES | | NULL | |
| media-type | Filtered media types | smallint unsigned | YES | | NULL | |
| languages | Desired languages | mediumtext | YES | | NULL | |
| publish | publish channel content | boolean | YES | | NULL | |
| valid | Set, when the full-text-search is valid | boolean | YES | | NULL | |
Indexes
------------

View file

@ -0,0 +1,35 @@
Table post-counts
===========
Original remote activity
Fields
------
| Field | Description | Type | Null | Key | Default | Extra |
| ------------- | ----------------------------------------------------------- | ----------------- | ---- | --- | ------- | ----- |
| uri-id | Id of the item-uri table entry that contains the item uri | int unsigned | NO | PRI | NULL | |
| vid | Id of the verb table entry that contains the activity verbs | smallint unsigned | NO | PRI | NULL | |
| reaction | Emoji Reaction | varchar(1) | NO | PRI | NULL | |
| parent-uri-id | Id of the item-uri table that contains the parent uri | int unsigned | YES | | NULL | |
| count | Number of activities | int unsigned | YES | | 0 | |
Indexes
------------
| Name | Fields |
| ------------- | --------------------- |
| PRIMARY | uri-id, vid, reaction |
| vid | vid |
| parent-uri-id | parent-uri-id |
Foreign Keys
------------
| Field | Target Table | Target Field |
|-------|--------------|--------------|
| uri-id | [item-uri](help/database/db_item-uri) | id |
| vid | [verb](help/database/db_verb) | id |
| parent-uri-id | [item-uri](help/database/db_item-uri) | id |
Return to [database documentation](help/database)

View file

@ -12,7 +12,7 @@ Fields
| owner-id | Item owner | int unsigned | NO | | 0 | |
| contact-type | Person, organisation, news, community, relay | tinyint | NO | | 0 | |
| media-type | Type of media in a bit array (1 = image, 2 = video, 4 = audio | tinyint | NO | | 0 | |
| language | Language information about this post | varbinary(128) | YES | | NULL | |
| language | Language information about this post | varchar(128) | YES | | NULL | |
| searchtext | Simplified text for the full text search | mediumtext | YES | | NULL | |
| created | | datetime | YES | | NULL | |
| restricted | If true, this post is either unlisted or not from a federated network | boolean | NO | | 0 | |

View file

@ -34,8 +34,6 @@ Fields
| blockwall | Prohibit contacts to post to the profile page of the user | boolean | NO | | 0 | |
| hidewall | Hide profile details from unknown viewers | boolean | NO | | 0 | |
| blocktags | Prohibit contacts to tag the post of this user | boolean | NO | | 0 | |
| unkmail | Permit unknown people to send private mails to this user | boolean | NO | | 0 | |
| cntunkmail | | int unsigned | NO | | 10 | |
| notify-flags | email notification options | smallint unsigned | NO | | 65535 | |
| page-flags | page/profile type | tinyint unsigned | NO | | 0 | |
| account-type | | tinyint unsigned | NO | | 0 | |

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.2 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1,011 KiB

View file

@ -1,6 +1,6 @@
<?php
/**
* @copyright Copyright (C) 2010-2023, the Friendica project
* @copyright Copyright (C) 2010-2024, the Friendica project
*
* @license GNU AGPL version 3 or any later version
*

View file

@ -1,6 +1,6 @@
<?php
/**
* @copyright Copyright (C) 2010-2023, the Friendica project
* @copyright Copyright (C) 2010-2024, the Friendica project
*
* @license GNU AGPL version 3 or any later version
*

View file

@ -1,6 +1,6 @@
<?php
/**
* @copyright Copyright (C) 2010-2023, the Friendica project
* @copyright Copyright (C) 2010-2024, the Friendica project
*
* @license GNU AGPL version 3 or any later version
*

View file

@ -1,6 +1,6 @@
<?php
/**
* @copyright Copyright (C) 2010-2023, the Friendica project
* @copyright Copyright (C) 2010-2024, the Friendica project
*
* @license GNU AGPL version 3 or any later version
*

View file

@ -1,6 +1,6 @@
<?php
/**
* @copyright Copyright (C) 2010-2023, the Friendica project
* @copyright Copyright (C) 2010-2024, the Friendica project
*
* @license GNU AGPL version 3 or any later version
*

View file

@ -1,6 +1,6 @@
<?php
/**
* @copyright Copyright (C) 2010-2023, the Friendica project
* @copyright Copyright (C) 2010-2024, the Friendica project
*
* @license GNU AGPL version 3 or any later version
*
@ -215,14 +215,14 @@ function photos_post(App $a)
// get the list of photos we are about to delete
if ($visitor) {
$r = DBA::toArray(DBA::p(
"SELECT distinct(`resource-id`) as `rid` FROM `photo` WHERE `contact-id` = ? AND `uid` = ? AND `album` = ?",
"SELECT distinct(`resource-id`) AS `rid` FROM `photo` WHERE `contact-id` = ? AND `uid` = ? AND `album` = ?",
$visitor,
$page_owner_uid,
$album
));
} else {
$r = DBA::toArray(DBA::p(
"SELECT distinct(`resource-id`) as `rid` FROM `photo` WHERE `uid` = ? AND `album` = ?",
"SELECT distinct(`resource-id`) AS `rid` FROM `photo` WHERE `uid` = ? AND `album` = ?",
DI::userSession()->getLocalUserId(),
$album
));
@ -762,7 +762,7 @@ function photos_content(App $a)
$total = 0;
$r = DBA::toArray(DBA::p(
"SELECT `resource-id`, max(`scale`) AS `scale` FROM `photo` WHERE `uid` = ? AND `album` = ?
"SELECT `resource-id`, MAX(`scale`) AS `scale` FROM `photo` WHERE `uid` = ? AND `album` = ?
AND `scale` <= 4 $sql_extra GROUP BY `resource-id`",
$owner_uid,
$album
@ -782,9 +782,9 @@ function photos_content(App $a)
}
$r = DBA::toArray(DBA::p(
"SELECT `resource-id`, ANY_VALUE(`id`) AS `id`, ANY_VALUE(`filename`) AS `filename`,
ANY_VALUE(`type`) AS `type`, max(`scale`) AS `scale`, ANY_VALUE(`desc`) as `desc`,
ANY_VALUE(`created`) as `created`
"SELECT `resource-id`, MIN(`id`) AS `id`, MIN(`filename`) AS `filename`,
MIN(`type`) AS `type`, MAX(`scale`) AS `scale`, MIN(`desc`) AS `desc`,
MIN(`created`) AS `created`
FROM `photo` WHERE `uid` = ? AND `album` = ?
AND `scale` <= 4 $sql_extra GROUP BY `resource-id` ORDER BY `created` $order LIMIT ? , ?",
intval($owner_uid),
@ -1167,11 +1167,11 @@ function photos_content(App $a)
}
if (!empty($conv_responses['like'][$link_item['uri']])) {
$like = DI::conversation()->formatActivity($conv_responses['like'][$link_item['uri']]['links'], 'like', $link_item['id']);
$like = DI::conversation()->formatActivity($conv_responses['like'][$link_item['uri']]['links'], 'like', $link_item['id'], '', []);
}
if (!empty($conv_responses['dislike'][$link_item['uri']])) {
$dislike = DI::conversation()->formatActivity($conv_responses['dislike'][$link_item['uri']]['links'], 'dislike', $link_item['id']);
$dislike = DI::conversation()->formatActivity($conv_responses['dislike'][$link_item['uri']]['links'], 'dislike', $link_item['id'], '', []);
}
if (($can_post || Security::canWriteToUserWall($owner_uid))) {

View file

@ -1,6 +1,6 @@
<?php
/**
* @copyright Copyright (C) 2010-2023, the Friendica project
* @copyright Copyright (C) 2010-2024, the Friendica project
*
* @license GNU AGPL version 3 or any later version
*

View file

@ -1,6 +1,6 @@
<?php
/**
* @copyright Copyright (C) 2010-2023, the Friendica project
* @copyright Copyright (C) 2010-2024, the Friendica project
*
* @license GNU AGPL version 3 or any later version
*

View file

@ -1,6 +1,6 @@
<?php
/**
* @copyright Copyright (C) 2010-2023, the Friendica project
* @copyright Copyright (C) 2010-2024, the Friendica project
*
* @license GNU AGPL version 3 or any later version
*

View file

@ -1,6 +1,6 @@
<?php
/**
* @copyright Copyright (C) 2010-2023, the Friendica project
* @copyright Copyright (C) 2010-2024, the Friendica project
*
* @license GNU AGPL version 3 or any later version
*

View file

@ -1,6 +1,6 @@
<?php
/**
* @copyright Copyright (C) 2010-2023, the Friendica project
* @copyright Copyright (C) 2010-2024, the Friendica project
*
* @license GNU AGPL version 3 or any later version
*

View file

@ -1,6 +1,6 @@
<?php
/**
* @copyright Copyright (C) 2010-2023, the Friendica project
* @copyright Copyright (C) 2010-2024, the Friendica project
*
* @license GNU AGPL version 3 or any later version
*

View file

@ -1,6 +1,6 @@
<?php
/**
* @copyright Copyright (C) 2010-2023, the Friendica project
* @copyright Copyright (C) 2010-2024, the Friendica project
*
* @license GNU AGPL version 3 or any later version
*

View file

@ -1,6 +1,6 @@
<?php
/**
* @copyright Copyright (C) 2010-2023, the Friendica project
* @copyright Copyright (C) 2010-2024, the Friendica project
*
* @license GNU AGPL version 3 or any later version
*

View file

@ -1,6 +1,6 @@
<?php
/**
* @copyright Copyright (C) 2010-2023, the Friendica project
* @copyright Copyright (C) 2010-2024, the Friendica project
*
* @license GNU AGPL version 3 or any later version
*

View file

@ -1,6 +1,6 @@
<?php
/**
* @copyright Copyright (C) 2010-2023, the Friendica project
* @copyright Copyright (C) 2010-2024, the Friendica project
*
* @license GNU AGPL version 3 or any later version
*

View file

@ -1,6 +1,6 @@
<?php
/**
* @copyright Copyright (C) 2010-2023, the Friendica project
* @copyright Copyright (C) 2010-2024, the Friendica project
*
* @license GNU AGPL version 3 or any later version
*

View file

@ -1,6 +1,6 @@
<?php
/**
* @copyright Copyright (C) 2010-2023, the Friendica project
* @copyright Copyright (C) 2010-2024, the Friendica project
*
* @license GNU AGPL version 3 or any later version
*

View file

@ -1,6 +1,6 @@
<?php
/**
* @copyright Copyright (C) 2010-2023, the Friendica project
* @copyright Copyright (C) 2010-2024, the Friendica project
*
* @license GNU AGPL version 3 or any later version
*

View file

@ -1,6 +1,6 @@
<?php
/**
* @copyright Copyright (C) 2010-2023, the Friendica project
* @copyright Copyright (C) 2010-2024, the Friendica project
*
* @license GNU AGPL version 3 or any later version
*

View file

@ -1,6 +1,6 @@
<?php
/**
* @copyright Copyright (C) 2010-2023, the Friendica project
* @copyright Copyright (C) 2010-2024, the Friendica project
*
* @license GNU AGPL version 3 or any later version
*

View file

@ -1,6 +1,6 @@
<?php
/**
* @copyright Copyright (C) 2010-2023, the Friendica project
* @copyright Copyright (C) 2010-2024, the Friendica project
*
* @license GNU AGPL version 3 or any later version
*

View file

@ -1,6 +1,6 @@
<?php
/**
* @copyright Copyright (C) 2010-2023, the Friendica project
* @copyright Copyright (C) 2010-2024, the Friendica project
*
* @license GNU AGPL version 3 or any later version
*

View file

@ -1,6 +1,6 @@
<?php
/**
* @copyright Copyright (C) 2010-2023, the Friendica project
* @copyright Copyright (C) 2010-2024, the Friendica project
*
* @license GNU AGPL version 3 or any later version
*

View file

@ -1,6 +1,6 @@
<?php
/**
* @copyright Copyright (C) 2010-2023, the Friendica project
* @copyright Copyright (C) 2010-2024, the Friendica project
*
* @license GNU AGPL version 3 or any later version
*

View file

@ -1,6 +1,6 @@
<?php
/**
* @copyright Copyright (C) 2010-2023, the Friendica project
* @copyright Copyright (C) 2010-2024, the Friendica project
*
* @license GNU AGPL version 3 or any later version
*

View file

@ -1,6 +1,6 @@
<?php
/**
* @copyright Copyright (C) 2010-2023, the Friendica project
* @copyright Copyright (C) 2010-2024, the Friendica project
*
* @license GNU AGPL version 3 or any later version
*

View file

@ -1,6 +1,6 @@
<?php
/**
* @copyright Copyright (C) 2010-2023, the Friendica project
* @copyright Copyright (C) 2010-2024, the Friendica project
*
* @license GNU AGPL version 3 or any later version
*

View file

@ -1,6 +1,6 @@
<?php
/**
* @copyright Copyright (C) 2010-2023, the Friendica project
* @copyright Copyright (C) 2010-2024, the Friendica project
*
* @license GNU AGPL version 3 or any later version
*

View file

@ -1,6 +1,6 @@
<?php
/**
* @copyright Copyright (C) 2010-2023, the Friendica project
* @copyright Copyright (C) 2010-2024, the Friendica project
*
* @license GNU AGPL version 3 or any later version
*

View file

@ -1,6 +1,6 @@
<?php
/**
* @copyright Copyright (C) 2010-2023, the Friendica project
* @copyright Copyright (C) 2010-2024, the Friendica project
*
* @license GNU AGPL version 3 or any later version
*

View file

@ -1,6 +1,6 @@
<?php
/**
* @copyright Copyright (C) 2010-2023, the Friendica project
* @copyright Copyright (C) 2010-2024, the Friendica project
*
* @license GNU AGPL version 3 or any later version
*

View file

@ -1,6 +1,6 @@
<?php
/**
* @copyright Copyright (C) 2010-2023, the Friendica project
* @copyright Copyright (C) 2010-2024, the Friendica project
*
* @license GNU AGPL version 3 or any later version
*

View file

@ -1,6 +1,6 @@
<?php
/**
* @copyright Copyright (C) 2010-2023, the Friendica project
* @copyright Copyright (C) 2010-2024, the Friendica project
*
* @license GNU AGPL version 3 or any later version
*

View file

@ -1,6 +1,6 @@
<?php
/**
* @copyright Copyright (C) 2010-2023, the Friendica project
* @copyright Copyright (C) 2010-2024, the Friendica project
*
* @license GNU AGPL version 3 or any later version
*

View file

@ -1,6 +1,6 @@
<?php
/**
* @copyright Copyright (C) 2010-2023, the Friendica project
* @copyright Copyright (C) 2010-2024, the Friendica project
*
* @license GNU AGPL version 3 or any later version
*

View file

@ -1,6 +1,6 @@
<?php
/**
* @copyright Copyright (C) 2010-2023, the Friendica project
* @copyright Copyright (C) 2010-2024, the Friendica project
*
* @license GNU AGPL version 3 or any later version
*

View file

@ -1,6 +1,6 @@
<?php
/**
* @copyright Copyright (C) 2010-2023, the Friendica project
* @copyright Copyright (C) 2010-2024, the Friendica project
*
* @license GNU AGPL version 3 or any later version
*

View file

@ -1,6 +1,6 @@
<?php
/**
* @copyright Copyright (C) 2010-2023, the Friendica project
* @copyright Copyright (C) 2010-2024, the Friendica project
*
* @license GNU AGPL version 3 or any later version
*

View file

@ -1,6 +1,6 @@
<?php
/**
* @copyright Copyright (C) 2010-2023, the Friendica project
* @copyright Copyright (C) 2010-2024, the Friendica project
*
* @license GNU AGPL version 3 or any later version
*

View file

@ -1,6 +1,6 @@
<?php
/**
* @copyright Copyright (C) 2010-2023, the Friendica project
* @copyright Copyright (C) 2010-2024, the Friendica project
*
* @license GNU AGPL version 3 or any later version
*

View file

@ -1,6 +1,6 @@
<?php
/**
* @copyright Copyright (C) 2010-2023, the Friendica project
* @copyright Copyright (C) 2010-2024, the Friendica project
*
* @license GNU AGPL version 3 or any later version
*

View file

@ -1,6 +1,6 @@
<?php
/**
* @copyright Copyright (C) 2010-2023, the Friendica project
* @copyright Copyright (C) 2010-2024, the Friendica project
*
* @license GNU AGPL version 3 or any later version
*

View file

@ -1,6 +1,6 @@
<?php
/**
* @copyright Copyright (C) 2010-2023, the Friendica project
* @copyright Copyright (C) 2010-2024, the Friendica project
*
* @license GNU AGPL version 3 or any later version
*

View file

@ -1,6 +1,6 @@
<?php
/**
* @copyright Copyright (C) 2010-2023, the Friendica project
* @copyright Copyright (C) 2010-2024, the Friendica project
*
* @license GNU AGPL version 3 or any later version
*

View file

@ -1,6 +1,6 @@
<?php
/**
* @copyright Copyright (C) 2010-2023, the Friendica project
* @copyright Copyright (C) 2010-2024, the Friendica project
*
* @license GNU AGPL version 3 or any later version
*

View file

@ -1,6 +1,6 @@
<?php
/**
* @copyright Copyright (C) 2010-2023, the Friendica project
* @copyright Copyright (C) 2010-2024, the Friendica project
*
* @license GNU AGPL version 3 or any later version
*

View file

@ -1,6 +1,6 @@
<?php
/**
* @copyright Copyright (C) 2010-2023, the Friendica project
* @copyright Copyright (C) 2010-2024, the Friendica project
*
* @license GNU AGPL version 3 or any later version
*

View file

@ -1,6 +1,6 @@
<?php
/**
* @copyright Copyright (C) 2010-2023, the Friendica project
* @copyright Copyright (C) 2010-2024, the Friendica project
*
* @license GNU AGPL version 3 or any later version
*

View file

@ -1,6 +1,6 @@
<?php
/**
* @copyright Copyright (C) 2010-2023, the Friendica project
* @copyright Copyright (C) 2010-2024, the Friendica project
*
* @license GNU AGPL version 3 or any later version
*

View file

@ -1,6 +1,6 @@
<?php
/**
* @copyright Copyright (C) 2010-2023, the Friendica project
* @copyright Copyright (C) 2010-2024, the Friendica project
*
* @license GNU AGPL version 3 or any later version
*

View file

@ -1,6 +1,6 @@
<?php
/**
* @copyright Copyright (C) 2010-2023, the Friendica project
* @copyright Copyright (C) 2010-2024, the Friendica project
*
* @license GNU AGPL version 3 or any later version
*

View file

@ -1,6 +1,6 @@
<?php
/**
* @copyright Copyright (C) 2010-2023, the Friendica project
* @copyright Copyright (C) 2010-2024, the Friendica project
*
* @license GNU AGPL version 3 or any later version
*

View file

@ -1,6 +1,6 @@
<?php
/**
* @copyright Copyright (C) 2010-2023, the Friendica project
* @copyright Copyright (C) 2010-2024, the Friendica project
*
* @license GNU AGPL version 3 or any later version
*

View file

@ -1,6 +1,6 @@
<?php
/**
* @copyright Copyright (C) 2010-2023, the Friendica project
* @copyright Copyright (C) 2010-2024, the Friendica project
*
* @license GNU AGPL version 3 or any later version
*

View file

@ -1,6 +1,6 @@
<?php
/**
* @copyright Copyright (C) 2010-2023, the Friendica project
* @copyright Copyright (C) 2010-2024, the Friendica project
*
* @license GNU AGPL version 3 or any later version
*

View file

@ -1,6 +1,6 @@
<?php
/**
* @copyright Copyright (C) 2010-2023, the Friendica project
* @copyright Copyright (C) 2010-2024, the Friendica project
*
* @license GNU AGPL version 3 or any later version
*

View file

@ -1,6 +1,6 @@
<?php
/**
* @copyright Copyright (C) 2010-2023, the Friendica project
* @copyright Copyright (C) 2010-2024, the Friendica project
*
* @license GNU AGPL version 3 or any later version
*
@ -58,7 +58,7 @@ class User extends \Asika\SimpleConsole\Console
console user - Modify user settings per console commands.
Usage
bin/console user password <nickname> [<password>] [-h|--help|-?] [-v]
bin/console user add [<name> [<nickname> [<email> [<language>]]]] [-h|--help|-?] [-v]
bin/console user add [<name> [<nickname> [<email> [<language> [<avatar_url>]]]]] [-h|--help|-?] [-v]
bin/console user delete [<nickname>] [-y] [-h|--help|-?] [-v]
bin/console user allow [<nickname>] [-h|--help|-?] [-v]
bin/console user deny [<nickname>] [-h|--help|-?] [-v]
@ -228,10 +228,11 @@ HELP;
*/
private function addUser()
{
$name = $this->getArgument(1);
$nick = $this->getArgument(2);
$email = $this->getArgument(3);
$lang = $this->getArgument(4);
$name = $this->getArgument(1);
$nick = $this->getArgument(2);
$email = $this->getArgument(3);
$lang = $this->getArgument(4);
$avatar = $this->getArgument(5);
if (empty($name)) {
$this->out($this->l10n->t('Enter user name: '));
@ -262,10 +263,15 @@ HELP;
$lang = CliPrompt::prompt();
}
if (empty($avatar)) {
$this->out($this->l10n->t('Enter URL of an image to use as avatar (optional): '));
$avatar = CliPrompt::prompt();
}
if (empty($lang)) {
return UserModel::createMinimal($name, $email, $nick);
} else {
return UserModel::createMinimal($name, $email, $nick, $lang);
return UserModel::createMinimal($name, $email, $nick, $lang, $avatar);
}
}

View file

@ -1,6 +1,6 @@
<?php
/**
* @copyright Copyright (C) 2010-2023, the Friendica project
* @copyright Copyright (C) 2010-2024, the Friendica project
*
* @license GNU AGPL version 3 or any later version
*
@ -80,7 +80,7 @@ class Avatar
return $fields;
}
$img_str = $fetchResult->getBody();
$img_str = $fetchResult->getBodyString();
if (empty($img_str)) {
Logger::debug('Avatar is invalid', ['avatar' => $avatar]);
return $fields;

View file

@ -1,6 +1,6 @@
<?php
/**
* @copyright Copyright (C) 2010-2023, the Friendica project
* @copyright Copyright (C) 2010-2024, the Friendica project
*
* @license GNU AGPL version 3 or any later version
*

View file

@ -1,6 +1,6 @@
<?php
/**
* @copyright Copyright (C) 2010-2023, the Friendica project
* @copyright Copyright (C) 2010-2024, the Friendica project
*
* @license GNU AGPL version 3 or any later version
*

View file

@ -1,6 +1,6 @@
<?php
/**
* @copyright Copyright (C) 2010-2023, the Friendica project
* @copyright Copyright (C) 2010-2024, the Friendica project
*
* @license GNU AGPL version 3 or any later version
*

View file

@ -1,6 +1,6 @@
<?php
/**
* @copyright Copyright (C) 2010-2023, the Friendica project
* @copyright Copyright (C) 2010-2024, the Friendica project
*
* @license GNU AGPL version 3 or any later version
*

View file

@ -1,6 +1,6 @@
<?php
/**
* @copyright Copyright (C) 2010-2023, the Friendica project
* @copyright Copyright (C) 2010-2024, the Friendica project
*
* @license GNU AGPL version 3 or any later version
*

View file

@ -1,6 +1,6 @@
<?php
/**
* @copyright Copyright (C) 2010-2023, the Friendica project
* @copyright Copyright (C) 2010-2024, the Friendica project
*
* @license GNU AGPL version 3 or any later version
*

View file

@ -1,6 +1,6 @@
<?php
/**
* @copyright Copyright (C) 2010-2023, the Friendica project
* @copyright Copyright (C) 2010-2024, the Friendica project
*
* @license GNU AGPL version 3 or any later version
*

View file

@ -1,6 +1,6 @@
<?php
/**
* @copyright Copyright (C) 2010-2023, the Friendica project
* @copyright Copyright (C) 2010-2024, the Friendica project
*
* @license GNU AGPL version 3 or any later version
*

View file

@ -1,6 +1,6 @@
<?php
/**
* @copyright Copyright (C) 2010-2023, the Friendica project
* @copyright Copyright (C) 2010-2024, the Friendica project
*
* @license GNU AGPL version 3 or any later version
*

View file

@ -1,6 +1,6 @@
<?php
/**
* @copyright Copyright (C) 2010-2023, the Friendica project
* @copyright Copyright (C) 2010-2024, the Friendica project
*
* @license GNU AGPL version 3 or any later version
*

View file

@ -1,6 +1,6 @@
<?php
/**
* @copyright Copyright (C) 2010-2023, the Friendica project
* @copyright Copyright (C) 2010-2024, the Friendica project
*
* @license GNU AGPL version 3 or any later version
*

View file

@ -1,6 +1,6 @@
<?php
/**
* @copyright Copyright (C) 2010-2023, the Friendica project
* @copyright Copyright (C) 2010-2024, the Friendica project
*
* @license GNU AGPL version 3 or any later version
*

View file

@ -1,6 +1,6 @@
<?php
/**
* @copyright Copyright (C) 2010-2023, the Friendica project
* @copyright Copyright (C) 2010-2024, the Friendica project
*
* @license GNU AGPL version 3 or any later version
*

View file

@ -1,6 +1,6 @@
<?php
/**
* @copyright Copyright (C) 2010-2023, the Friendica project
* @copyright Copyright (C) 2010-2024, the Friendica project
*
* @license GNU AGPL version 3 or any later version
*

View file

@ -1,6 +1,6 @@
<?php
/**
* @copyright Copyright (C) 2010-2023, the Friendica project
* @copyright Copyright (C) 2010-2024, the Friendica project
*
* @license GNU AGPL version 3 or any later version
*

View file

@ -1,6 +1,6 @@
<?php
/**
* @copyright Copyright (C) 2010-2023, the Friendica project
* @copyright Copyright (C) 2010-2024, the Friendica project
*
* @license GNU AGPL version 3 or any later version
*

View file

@ -1,6 +1,6 @@
<?php
/**
* @copyright Copyright (C) 2010-2023, the Friendica project
* @copyright Copyright (C) 2010-2024, the Friendica project
*
* @license GNU AGPL version 3 or any later version
*

View file

@ -1,6 +1,6 @@
<?php
/**
* @copyright Copyright (C) 2010-2023, the Friendica project
* @copyright Copyright (C) 2010-2024, the Friendica project
*
* @license GNU AGPL version 3 or any later version
*

View file

@ -1,6 +1,6 @@
<?php
/**
* @copyright Copyright (C) 2010-2023, the Friendica project
* @copyright Copyright (C) 2010-2024, the Friendica project
*
* @license GNU AGPL version 3 or any later version
*

View file

@ -1,6 +1,6 @@
<?php
/**
* @copyright Copyright (C) 2010-2023, the Friendica project
* @copyright Copyright (C) 2010-2024, the Friendica project
*
* @license GNU AGPL version 3 or any later version
*
@ -656,10 +656,6 @@ class Conversation
* But for now, this array respects the old style, just in case
*/
foreach ($items as $item) {
if (in_array($item['author-id'], $this->getBlocklist())) {
continue;
}
// Can we put this after the visibility check?
$this->builtinActivityPuller($item, $conv_responses);
@ -694,29 +690,6 @@ class Conversation
return $threads;
}
private function getBlocklist(): array
{
if (!$this->session->getLocalUserId()) {
return [];
}
$str_blocked = str_replace(["\n", "\r"], ",", $this->pConfig->get($this->session->getLocalUserId(), 'system', 'blocked') ?? '');
if (empty($str_blocked)) {
return [];
}
$blocklist = [];
foreach (explode(',', $str_blocked) as $entry) {
$cid = Contact::getIdForURL(trim($entry), 0, false);
if (!empty($cid)) {
$blocklist[] = $cid;
}
}
return $blocklist;
}
/**
* Adds some information (Causer, post reason, direction) to the fetched post row.
*
@ -893,6 +866,7 @@ class Conversation
$emojis = $this->getEmojis($uriids);
$quoteshares = $this->getQuoteShares($uriids);
$counts = $this->getCounts($uriids);
if (!$this->config->get('system', 'legacy_activities')) {
$condition = DBA::mergeConditions($condition, ["(`gravity` != ? OR `origin`)", ItemModel::GRAVITY_ACTIVITY]);
@ -900,7 +874,7 @@ class Conversation
$condition = DBA::mergeConditions(
$condition,
["`uid` IN (0, ?) AND (NOT `vid` IN (?, ?, ?) OR `vid` IS NULL)", $uid, Verb::getID(Activity::FOLLOW), Verb::getID(Activity::VIEW), Verb::getID(Activity::READ)]
["`uid` IN (0, ?) AND (NOT `verb` IN (?, ?, ?) OR `verb` IS NULL)", $uid, Activity::FOLLOW, Activity::VIEW, Activity::READ]
);
$condition = DBA::mergeConditions($condition, ["(`uid` != ? OR `private` != ?)", 0, ItemModel::PRIVATE]);
@ -1017,6 +991,7 @@ class Conversation
foreach ($items as $key => $row) {
$items[$key]['emojis'] = $emojis[$key] ?? [];
$items[$key]['counts'] = $counts[$key] ?? 0;
$items[$key]['quoteshares'] = $quoteshares[$key] ?? [];
$always_display = in_array($mode, [self::MODE_CONTACTS, self::MODE_CONTACT_POSTS]);
@ -1050,6 +1025,16 @@ class Conversation
*/
private function getEmojis(array $uriids): array
{
$emojis = [];
foreach (Post\Counts::get(['parent-uri-id' => $uriids]) as $count) {
$emojis[$count['uri-id']][$count['reaction']]['emoji'] = $count['reaction'];
$emojis[$count['uri-id']][$count['reaction']]['verb'] = Verb::getByID($count['vid']);
$emojis[$count['uri-id']][$count['reaction']]['total'] = $count['count'];
$emojis[$count['uri-id']][$count['reaction']]['title'] = [];
}
// @todo The following code should be removed, once that we display activity authors on demand
$activity_emoji = [
Activity::LIKE => '👍',
Activity::DISLIKE => '👎',
@ -1058,42 +1043,49 @@ class Conversation
Activity::ATTENDNO => '❌',
Activity::ANNOUNCE => '♻',
Activity::VIEW => '📺',
Activity::READ => '📖',
];
$index_list = array_values($activity_emoji);
$verbs = array_merge(array_keys($activity_emoji), [Activity::EMOJIREACT, Activity::POST]);
$verbs = array_merge(array_keys($activity_emoji), [Activity::EMOJIREACT, Activity::POST]);
$condition = DBA::mergeConditions(['parent-uri-id' => $uriids, 'gravity' => [ItemModel::GRAVITY_ACTIVITY, ItemModel::GRAVITY_COMMENT], 'verb' => $verbs], ["NOT `deleted`"]);
$separator = chr(255) . chr(255) . chr(255);
$sql = "SELECT `thr-parent-id`, `body`, `verb`, `gravity`, COUNT(*) AS `total`, GROUP_CONCAT(REPLACE(`author-name`, '" . $separator . "', ' ') SEPARATOR '" . $separator . "' LIMIT 50) AS `title` FROM `post-view` WHERE " . array_shift($condition) . " GROUP BY `thr-parent-id`, `verb`, `body`, `gravity`";
$emojis = [];
$sql = "SELECT `parent-uri-id`, `thr-parent-id`, `body`, `verb`, `gravity`, GROUP_CONCAT(REPLACE(`author-name`, '" . $separator . "', ' ') SEPARATOR '" . $separator . "' LIMIT 50) AS `title` FROM `post-view` WHERE " . array_shift($condition) . " GROUP BY `parent-uri-id`, `thr-parent-id`, `verb`, `body`, `gravity`";
$rows = DBA::p($sql, $condition);
while ($row = DBA::fetch($rows)) {
if ($row['gravity'] == ItemModel::GRAVITY_ACTIVITY) {
$row['verb'] = $row['body'] ? Activity::EMOJIREACT : $row['verb'];
$emoji = $row['body'] ?: $activity_emoji[$row['verb']];
$emoji = $row['body'] ?: $activity_emoji[$row['verb']];
} else {
$emoji = '';
}
if (!isset($index_list[$emoji])) {
$index_list[] = $emoji;
if (isset($emojis[$row['thr-parent-id']][$emoji]['title'])) {
$emojis[$row['thr-parent-id']][$emoji]['title'] = array_unique(array_merge($emojis[$row['thr-parent-id']][$emoji]['title'] ?? [], explode($separator, $row['title'])));
}
$index = array_search($emoji, $index_list);
$emojis[$row['thr-parent-id']][$index]['emoji'] = $emoji;
$emojis[$row['thr-parent-id']][$index]['verb'] = $row['verb'];
$emojis[$row['thr-parent-id']][$index]['total'] = ($emojis[$row['thr-parent-id']][$index]['total'] ?? 0) + $row['total'];
$emojis[$row['thr-parent-id']][$index]['title'] = array_unique(array_merge($emojis[$row['thr-parent-id']][$index]['title'] ?? [], explode($separator, $row['title'])));
}
DBA::close($rows);
return $emojis;
}
/**
* Fetch comment counts from the conversation
*
* @param array $uriids
* @return array
*/
private function getCounts(array $uriids): array
{
$counts = [];
foreach (Post\Counts::get(['parent-uri-id' => $uriids, 'verb' => Activity::POST]) as $count) {
$counts[$count['parent-uri-id']] = ($counts[$count['parent-uri-id']] ?? 0) + $count['count'];
}
return $counts;
}
/**
* Fetch quote shares from the conversation
*
@ -1274,16 +1266,10 @@ class Conversation
return $parents;
}
$blocklist = $this->getBlocklist();
$item_array = [];
// Dedupes the item list on the uri to prevent infinite loops
foreach ($item_list as $item) {
if (in_array($item['author-id'], $blocklist)) {
continue;
}
$item_array[$item['uri-id']] = $item;
}
@ -1472,10 +1458,6 @@ class Conversation
continue;
}
if (in_array($item['author-id'], $this->getBlocklist())) {
continue;
}
// prevent private email from leaking.
if ($item['network'] === Protocol::MAIL && $this->session->getLocalUserId() != $item['uid']) {
continue;

View file

@ -1,6 +1,6 @@
<?php
/**
* @copyright Copyright (C) 2010-2023, the Friendica project
* @copyright Copyright (C) 2010-2024, the Friendica project
*
* @license GNU AGPL version 3 or any later version
*

Some files were not shown because too many files have changed in this diff Show more