Compare commits
693 commits
mat/develo
...
develop
Author | SHA1 | Date | |
---|---|---|---|
Hypolite Petovan | 2b8126b780 | ||
26f4532d47 | |||
Hypolite Petovan | 16b12e1545 | ||
Michael | 4e1263c1f8 | ||
Michael | 93dd1b5973 | ||
Michael | 31b88da9d5 | ||
Michael | da3d390187 | ||
Hypolite Petovan | 67a9f6269e | ||
foss- | bc67be2b91 | ||
Hypolite Petovan | 4132e7a468 | ||
Hypolite Petovan | 25fecc1945 | ||
Hypolite Petovan | a077418af0 | ||
Hypolite Petovan | 2e81803a52 | ||
Hypolite Petovan | fe39ead790 | ||
d385296e0d | |||
Michael | 7ecf143e4c | ||
Tobias Diekershoff | ffad9c523b | ||
Hypolite Petovan | 21b16ef822 | ||
Hypolite Petovan | 80103bef38 | ||
Hypolite Petovan | 6c023f832b | ||
Michael | 73df36ca72 | ||
Michael | 523247f0fe | ||
Michael | 89e7420237 | ||
Michael | 16d0d17169 | ||
9592292dba | |||
bf80001c80 | |||
hoergen | 4e7f0f9f04 | ||
foss- | 85eb09806f | ||
8fc96477e7 | |||
0c68a53e1e | |||
ad1389b20a | |||
1564c297bb | |||
Hypolite Petovan | 5b516b1dbb | ||
Michael | e88cd16644 | ||
Michael | 40a1263066 | ||
Hypolite Petovan | 2588ac1a16 | ||
Hypolite Petovan | 8d4a16a71c | ||
Michael | ba760bb340 | ||
Michael | 86a27b51ad | ||
Hypolite Petovan | ac1ebac112 | ||
Hypolite Petovan | f4fddb2921 | ||
b26a5ce0fa | |||
6c1df6471a | |||
53c7da87a6 | |||
a609e545b6 | |||
4e3302ea0d | |||
4faa43766d | |||
bfc11495f3 | |||
46d34c53e6 | |||
2bb5785dfa | |||
cc5711b2df | |||
243bcba726 | |||
Michael | cb816bde66 | ||
Hypolite Petovan | 04cdd3e8ec | ||
f23ecaff6a | |||
Tobias Diekershoff | d2feade9cf | ||
Tobias Diekershoff | 9b62ba6dfe | ||
Tobias Diekershoff | d4a5a8051a | ||
Tobias Diekershoff | b6e52849ca | ||
Tobias Diekershoff | 6a9cea4e78 | ||
Tobias Diekershoff | 1d5eda8d25 | ||
Hypolite Petovan | 1f9536694c | ||
6bad4754e2 | |||
9d4a515571 | |||
Hypolite Petovan | 82ab0c8504 | ||
Michael | 5b169c908b | ||
Hypolite Petovan | 2d73a4bc58 | ||
Michael | e38a699324 | ||
0426dacfad | |||
Hypolite Petovan | a0f6f2e73e | ||
Hypolite Petovan | bb2eda5c28 | ||
Michael | d1a28b4c20 | ||
Michael | b4a380e9de | ||
d7c757d63e | |||
Michael | 1b13c76d2e | ||
Hypolite Petovan | 1cc76937d7 | ||
Michael | da65f0bea7 | ||
Michael | a86cd93fb8 | ||
e15e17732d | |||
Hypolite Petovan | 9024fc1226 | ||
Hypolite Petovan | 8fbcdd371e | ||
Michael | fbcfa46beb | ||
6f1fcc9357 | |||
Hypolite Petovan | 1f1cad322c | ||
Hypolite Petovan | 769b73e8a3 | ||
Hypolite Petovan | 3cfe7d61fc | ||
Hypolite Petovan | 47b0302811 | ||
Hypolite Petovan | 02dded6caa | ||
Hypolite Petovan | 02a76cfcfd | ||
Hypolite Petovan | cbe6e1dbb3 | ||
c1b649af94 | |||
571339f530 | |||
Michael | 7c7ebd9b86 | ||
7eb5a0775c | |||
d9c9ab6cee | |||
7c56cb3132 | |||
Michael | 8de58aa39d | ||
Michael | 0a0d2c98e8 | ||
Michael | 62386e4c9e | ||
Michael | b88c557c6b | ||
Hypolite Petovan | 0ec7991a20 | ||
Michael | 7e6cdaf025 | ||
ed2f4fdcc2 | |||
Tobias Diekershoff | d47335ccad | ||
Hypolite Petovan | d275760596 | ||
Hypolite Petovan | 08eaedede1 | ||
Michael | 303c9fb23f | ||
fb362f91ac | |||
Michael | 0a4f0d616a | ||
Hypolite Petovan | 33102a76da | ||
Michael | 250ad8843d | ||
Hypolite Petovan | c2e4c0e1fa | ||
Michael | 1cd729531d | ||
Michael | eae1affb21 | ||
Michael | f81192b4c3 | ||
Hypolite Petovan | 747a15f0e0 | ||
Michael | 14266a1ca4 | ||
Hypolite Petovan | 541208a6bd | ||
Michael | 113d72f59f | ||
b561f6ffd3 | |||
2643ca11e6 | |||
Hypolite Petovan | 35e3e912df | ||
Hypolite Petovan | 0b95f39c22 | ||
Hypolite Petovan | 67f57a7f90 | ||
dc9658f532 | |||
b1e6a53692 | |||
Hypolite Petovan | 9743d2f40c | ||
Hypolite Petovan | 7d69d1b402 | ||
708d3892a7 | |||
Hypolite Petovan | b16e8fdb58 | ||
Hypolite Petovan | dc7cdc3252 | ||
Hypolite Petovan | e22e58f5b8 | ||
Michael | a120debac6 | ||
Michael | 1301730ed8 | ||
Michael | 4f37f68bd7 | ||
Hypolite Petovan | 0d6974a6d2 | ||
Michael | 5a844cd31e | ||
Hypolite Petovan | e0686ac1d9 | ||
Michael | 914d4506e2 | ||
Michael | 0df88fd5a0 | ||
Hypolite Petovan | 085fb95ce3 | ||
f430e06f80 | |||
Michael | 8827d4c142 | ||
Michael | 9b73189e1d | ||
Michael | 0aa49510b2 | ||
Michael | 691e0dd44a | ||
Michael | 8e91db7fb1 | ||
Michael | 2e0c550ee7 | ||
Michael | be2e715eb1 | ||
Michael | 7b1b3fe8cf | ||
Hypolite Petovan | 49819b64db | ||
Michael | 5e27b5790c | ||
Tobias Diekershoff | be64528b4f | ||
Michael | 8db7343dda | ||
Hypolite Petovan | ce06f7d783 | ||
Michael | cb91800088 | ||
Michael | 8386768708 | ||
3b96690d0c | |||
Michael | c4c3976c8c | ||
Michael | 5cd85d9bb7 | ||
Hypolite Petovan | f2e90e91e0 | ||
Hypolite Petovan | 5971334ec7 | ||
Hypolite Petovan | 6c7dee4bcd | ||
Michael | a3bfaf6336 | ||
Michael | e99c916df1 | ||
Michael | c09d794ed8 | ||
05ffc8b0d7 | |||
Michael | 7bf7744efb | ||
Michael | e87c79780a | ||
Philipp Holzer | cfff24518e | ||
Michael | 6e523beec3 | ||
Michael | f93192bc28 | ||
Hypolite Petovan | e0fb149466 | ||
Michael | 46bd4d71d0 | ||
Michael | 32651f7811 | ||
Michael | c666cebe60 | ||
Hypolite Petovan | f3e47bd899 | ||
Michael | 09d72ffb16 | ||
Michael | 120b60c5ee | ||
Michael | f5337904e4 | ||
Hypolite Petovan | 9fb493bf18 | ||
Michael | c6221872e2 | ||
Michael | 752172ab54 | ||
Hypolite Petovan | d52d6a9e41 | ||
Hypolite Petovan | 61035d5007 | ||
Michael | 405db86750 | ||
Michael | b8b1b7bb84 | ||
Michael | c56b915dee | ||
Michael | 43fa4b457d | ||
Michael | 1ca7118027 | ||
Michael | 364a5e99db | ||
Michael | a4c36afcc2 | ||
Michael | 62f3598c25 | ||
bb97539a28 | |||
Michael | 46b1b66dbf | ||
Hypolite Petovan | cbe4b60a90 | ||
Hypolite Petovan | de807e6378 | ||
Michael | 67f727e3b3 | ||
8ff54c2eba | |||
Michael | 74990093fd | ||
Michael | 077c9ff0c9 | ||
Hypolite Petovan | 3b3d0231bc | ||
Hypolite Petovan | fb19176201 | ||
Hypolite Petovan | 838c73cbba | ||
Hypolite Petovan | 332ab6641c | ||
Hypolite Petovan | 3c35dbcb5f | ||
Michael | f514c2caf0 | ||
Michael | 281dd91e6a | ||
Hypolite Petovan | 045085c92c | ||
Hypolite Petovan | 56cfc57641 | ||
Michael | 3f971f6dec | ||
37188c76b8 | |||
Hypolite Petovan | c649230982 | ||
Hypolite Petovan | 5c6ac25945 | ||
Michael | 4a5014eab5 | ||
Michael | 4d7c5f5672 | ||
Michael | b3d7dfb9a5 | ||
Michael | ca366e5437 | ||
Hypolite Petovan | 5c3227ac4c | ||
Hypolite Petovan | a569068fb0 | ||
Michael | 27c8990aea | ||
Hank Grabowski | f3f0859e0b | ||
Hank Grabowski | 379c84b7ab | ||
Hypolite Petovan | ce5aa016e1 | ||
Michael | 199ac64202 | ||
Michael | 4277b0c3aa | ||
Hypolite Petovan | 02afde3eec | ||
Michael | 0279b3dee9 | ||
Hypolite Petovan | 6fa7b45294 | ||
Michael | c07ce083d1 | ||
Michael | 08d06064ce | ||
Hypolite Petovan | 2b8a71231e | ||
Michael | ffbab95c20 | ||
Hypolite Petovan | 5479618f1c | ||
Hypolite Petovan | ced14a73d7 | ||
Michael | 3f6760dc0d | ||
Michael | e0d992f452 | ||
Hypolite Petovan | 676ce83dab | ||
Hypolite Petovan | fc00bf13bf | ||
777d0d45c6 | |||
Michael | ba3dacdbde | ||
Hypolite Petovan | 80796a87c7 | ||
571f95546a | |||
bcb75d65a3 | |||
118d736aa9 | |||
98f99c536e | |||
Hypolite Petovan | dcd47c391c | ||
Michael | c8a3fea091 | ||
Michael | 6adf76c689 | ||
Hypolite Petovan | 9901d82fea | ||
Michael | 170998da1a | ||
Hypolite Petovan | 5cf71baf55 | ||
Michael | 64e56fd97c | ||
2db2f280d5 | |||
cad4b2f7b8 | |||
Hypolite Petovan | 518c463761 | ||
Hypolite Petovan | 21227453e5 | ||
d493946ba4 | |||
Michael | 581b96c32f | ||
Hypolite Petovan | 27f3f62082 | ||
Michael | 500feedc43 | ||
Hypolite Petovan | fc0703005d | ||
Michael | 57020d406f | ||
Michael | 1dfb0ce81c | ||
d45e9d6af2 | |||
Michael | 43f9be367f | ||
Hypolite Petovan | e2891a660a | ||
Michael | 7345e3af69 | ||
2cb0027f56 | |||
Hypolite Petovan | 64cdb6ee80 | ||
98f26cb9d6 | |||
72817daa3b | |||
dbc9efd62b | |||
e088bb722b | |||
917b801eb6 | |||
0dbb864d7d | |||
9bf7529dda | |||
3d97170ad0 | |||
Hypolite Petovan | dc69116572 | ||
Michael | 58a8ce0420 | ||
Michael | dbda317c6d | ||
Hypolite Petovan | 2f1ec8e144 | ||
Michael | 00395118f9 | ||
Hypolite Petovan | c261bf8759 | ||
Michael | 5afa4fa838 | ||
Hypolite Petovan | a1b5ec94fb | ||
Michael | f5f18518da | ||
Hypolite Petovan | 9d93eaf810 | ||
Hank Grabowski | 4ae78e7ed6 | ||
Hank Grabowski | 35a726a961 | ||
Hypolite Petovan | 89e105afbe | ||
Hypolite Petovan | 9692f0614d | ||
Michael | b58cabdc41 | ||
0ba3fe3b2a | |||
Michael | 246acb8646 | ||
Hypolite Petovan | da9baf2be8 | ||
Hypolite Petovan | 35de254bd2 | ||
Hypolite Petovan | 58e5f0d9c5 | ||
Michael | 5b2b73da92 | ||
Michael | f5091110c2 | ||
Michael | 9e47cde90c | ||
Michael | ec16e7c0e6 | ||
Michael | 5ae0331993 | ||
0f33c53d5c | |||
Hypolite Petovan | e75a87a581 | ||
Hypolite Petovan | 44b53fd00b | ||
99bab9881d | |||
aa8b02caf8 | |||
Hypolite Petovan | 19c5667d9f | ||
Michael | c88267f858 | ||
Michael | 6de1676337 | ||
d6c54badb8 | |||
Michael | 21cb18fb4b | ||
Michael | 1972762500 | ||
Michael | 1dd48e4a8b | ||
Raroun | 04cb1b130a | ||
Hypolite Petovan | c5306dcec8 | ||
Michael | 7c0b5be70f | ||
Hypolite Petovan | 8b02c28547 | ||
Hypolite Petovan | c222775bdb | ||
Michael | 5a79111fab | ||
Michael | d77bebe843 | ||
1208163ba0 | |||
acf8049327 | |||
202e86199e | |||
746ffe1cef | |||
Raroun | cca29aab4a | ||
Raroun | 8d3389aebd | ||
Raroun | 38ff790bef | ||
Michael | eaff54c4e3 | ||
Michael | 7ae59a53ed | ||
Michael | a7ab14b3b3 | ||
Michael | 90e05fd835 | ||
Michael | 4e6719c586 | ||
Michael | 3f2b0b9422 | ||
Hypolite Petovan | c98fcaeebb | ||
Raroun | c05b7fe60f | ||
Raroun | 7562ff0e64 | ||
Raroun | b660e312b7 | ||
Hypolite Petovan | 74b4eddcf7 | ||
Raroun | cb99227569 | ||
29cd461132 | |||
Hypolite Petovan | 2abae3d273 | ||
Tobias Diekershoff | e584d3188c | ||
1ede164450 | |||
cb7643a74e | |||
67a6bc3ea9 | |||
Hypolite Petovan | 094b219581 | ||
Tobias Diekershoff | 58b119250a | ||
Tobias Diekershoff | 994e9cf346 | ||
Michael | 404e937872 | ||
Michael | 20b095c7c5 | ||
Tobias Diekershoff | 104ce7c64f | ||
Michael | 7371070cde | ||
Michael | b0978d0e37 | ||
Tobias Diekershoff | 77ccd7201b | ||
Michael | 308401b9e5 | ||
Michael | 9faad72ec0 | ||
31c1928789 | |||
Tobias Diekershoff | a7c985a590 | ||
Tobias Diekershoff | dd3a61c725 | ||
Tobias Diekershoff | d7d3dc679c | ||
Michael | 8e05c282b1 | ||
Raroun | 40eb9578e7 | ||
Raroun | 30d2d93494 | ||
Raroun | b4121cb6fd | ||
Raroun | 4d4f352ed9 | ||
Raroun | 4eea232581 | ||
Raroun | 5b8f307d4c | ||
Raroun | 4e5041af13 | ||
Raroun | c664907dbf | ||
Raroun | bb69b916a8 | ||
Tobias Diekershoff | 999c56a284 | ||
Michael | 7e22b7090e | ||
Tobias Diekershoff | f5837b77d6 | ||
Michael | c7739ef9c4 | ||
Michael | 35cf140cb2 | ||
Michael | 8ce516ae9f | ||
Michael | a1947d2bb1 | ||
Tobias Diekershoff | 2468a3736d | ||
foss- | d454aafe7e | ||
Tobias Diekershoff | 9648d88fb1 | ||
Hypolite Petovan | 7ebf4d51ca | ||
Hypolite Petovan | 4a90394c38 | ||
Hypolite Petovan | 309844e6d8 | ||
foss- | d063bc3ed3 | ||
foss- | e0304d2999 | ||
foss- | 7feeffb245 | ||
Tobias Diekershoff | f4dd54a808 | ||
Hypolite Petovan | 3e8f977ef0 | ||
Hypolite Petovan | 4c9417ff70 | ||
Hypolite Petovan | c6348a2e4a | ||
Hypolite Petovan | c88b1c0197 | ||
Michael | 004e87c986 | ||
Hypolite Petovan | f56054ecc1 | ||
Michael | e4a37f344e | ||
Hypolite Petovan | d05fbe6e45 | ||
foss- | 03839fc0fe | ||
foss- | a20cdbd5c7 | ||
Hypolite Petovan | 3dd34619ec | ||
Hypolite Petovan | df791c7e54 | ||
foss- | 1cd4f705fd | ||
Michael | 1c67be8db0 | ||
foss- | eee0a32d03 | ||
Hypolite Petovan | 2cd18fd4bf | ||
Tobias Diekershoff | 45c63baa5c | ||
b85a2709e8 | |||
Hypolite Petovan | bc4b036c76 | ||
Hypolite Petovan | d03506df51 | ||
Michael | 4de03b0c11 | ||
Philipp Holzer | 32c60bf2d0 | ||
Philipp Holzer | 32ac54d830 | ||
Philipp Holzer | 4bcf5e07c0 | ||
Philipp Holzer | 3ca277e2b2 | ||
Philipp Holzer | f3f148a0db | ||
Hypolite Petovan | c711208237 | ||
Michael | 3a7fc22f51 | ||
Michael | 54b9a0320b | ||
a5fb1e53a9 | |||
Hypolite Petovan | a1fb0f848c | ||
Michael | 3f9783f288 | ||
e99fcfddb5 | |||
Hypolite Petovan | f19cd54195 | ||
Hypolite Petovan | 938b2bae23 | ||
Hypolite Petovan | 4a67771bfa | ||
Michael | b1cf8ee4df | ||
Michael | fce82deabc | ||
e0d4646c18 | |||
Michael | be394b573d | ||
Hypolite Petovan | 7ca25b7297 | ||
Hypolite Petovan | b29a68d467 | ||
Hypolite Petovan | 1f7b6a63bb | ||
Hypolite Petovan | 3a42849759 | ||
Hypolite Petovan | e6855d3125 | ||
c98a0a99a6 | |||
Hypolite Petovan | a0da13cf6b | ||
8bf4408e64 | |||
Tobias Diekershoff | bf5e2facb4 | ||
Michael | e558a83783 | ||
Michael | d1eb1ec0f4 | ||
Michael | 19529e2aa1 | ||
Hypolite Petovan | 71ec402adc | ||
Michael | aeba70f2a6 | ||
47c15d330f | |||
Michael | 407f46c043 | ||
Michael | 35991bc0e1 | ||
Michael | d658908abe | ||
Michael | 12337be827 | ||
Michael | 38c599d681 | ||
Hypolite Petovan | 2eb7de84df | ||
Michael | 42919a2be3 | ||
Michael | 6459614f34 | ||
Michael | 89adffe72e | ||
Michael | 9e11b0e317 | ||
Michael | e6f8f8520c | ||
Michael | a6bbbd738f | ||
62012286a0 | |||
Michael | f4591b2cc7 | ||
c7f1c30f89 | |||
1031bc1801 | |||
b864d87344 | |||
9526daa5b7 | |||
Hypolite Petovan | 5d428ac8af | ||
035c9dbfa7 | |||
Hypolite Petovan | 1b9ec3a214 | ||
Hypolite Petovan | eb583330df | ||
Hypolite Petovan | 0a91484fa0 | ||
Hypolite Petovan | 696c56b6be | ||
Hypolite Petovan | 6a2ca1a6b6 | ||
Hypolite Petovan | 7486ebdc10 | ||
Hypolite Petovan | 7f846f153d | ||
Hypolite Petovan | 9e71610711 | ||
Hypolite Petovan | f70a64891c | ||
de28a375c8 | |||
4ce3b27e65 | |||
Hypolite Petovan | 48be5a534d | ||
dd851c8eeb | |||
Tobias Diekershoff | ee6061d3dd | ||
67a6899ed7 | |||
9898e5483a | |||
08b45a32a5 | |||
Hypolite Petovan | 1723aa0697 | ||
19e3e49fdc | |||
1d49fdbd8d | |||
Hypolite Petovan | 2673c667b5 | ||
Hypolite Petovan | b4afb5fa5b | ||
Hypolite Petovan | 6736187be6 | ||
4b2e920957 | |||
45efa4ec87 | |||
947ad55185 | |||
c5506577d0 | |||
622cdeaad6 | |||
Michael | cd9fc0ddec | ||
Tobias Diekershoff | bffbde4639 | ||
Hypolite Petovan | 36eced28b8 | ||
Hypolite Petovan | 2eab25e7c1 | ||
Hypolite Petovan | 298973a7e3 | ||
Hypolite Petovan | 1506068f7c | ||
Hypolite Petovan | c31c264b0b | ||
Tobias Diekershoff | 2c297da755 | ||
Michael | f37dd2cbc6 | ||
Michael | 51ad2f522a | ||
Michael | 0c82974986 | ||
8968c63fcc | |||
Hypolite Petovan | e22df99abd | ||
Hypolite Petovan | 6ec6c6e317 | ||
c4870a16d4 | |||
302eed95f7 | |||
Hypolite Petovan | 560e297274 | ||
Hypolite Petovan | 35e15a13fb | ||
Tobias Diekershoff | d1e6a16cde | ||
Hypolite Petovan | b8ead0539f | ||
Hypolite Petovan | 182a3a4663 | ||
6c9d3d42d3 | |||
Hypolite Petovan | 710f9eecb2 | ||
df48ae8e00 | |||
Hypolite Petovan | 8ac6d0ef04 | ||
Hypolite Petovan | ee0f8cd3c9 | ||
e63092c708 | |||
2636b19171 | |||
Michael | 30587f09b5 | ||
dd504f522f | |||
Hypolite Petovan | af3151d4db | ||
Hypolite Petovan | ec9345efa6 | ||
Hypolite Petovan | 5bc466de55 | ||
695fc58187 | |||
c6af5266cd | |||
02b26f5969 | |||
4ab03594cb | |||
fc3dad8cea | |||
099141e0e5 | |||
f1f92ccc29 | |||
3c7725183e | |||
f42861c58d | |||
5747518ada | |||
4796bafafe | |||
Michael | b5df3cb104 | ||
Tobias Diekershoff | b3097da6f9 | ||
Philipp Holzer | 31c8256bc6 | ||
Michael | 97fbf70fa6 | ||
Michael | 3f6480c127 | ||
Michael | 134cbacf31 | ||
Michael | 36a83d13f8 | ||
428884c621 | |||
Michael | 22e0bb58d9 | ||
7e0923d53f | |||
Tobias Diekershoff | 3e7c1f0bd7 | ||
5b6e29b70a | |||
Philipp Holzer | 9003bcf981 | ||
Michael | ed24d06e0c | ||
Michael | bc3bdf3cb0 | ||
Tobias Diekershoff | b60bbca8e4 | ||
Michael | 174fa49b23 | ||
a82127092b | |||
63df9ffe2f | |||
eda9ea962d | |||
Michael | fbded95f65 | ||
36f8162793 | |||
268d441c48 | |||
Michael | aae5f006f9 | ||
Michael | 6a86eeda10 | ||
Michael | 5d6e02bef3 | ||
Michael | 73e9190ce7 | ||
Tobias Diekershoff | eb50618fe8 | ||
Hypolite Petovan | ec61cdac83 | ||
6adbdfc107 | |||
3596b5e165 | |||
Michael | b8208974a4 | ||
Tobias Diekershoff | 0a13d7625f | ||
Tobias Diekershoff | 2911895cdb | ||
e81d775791 | |||
Tobias Diekershoff | e45dbc9f6d | ||
Hypolite Petovan | 705b2d4c41 | ||
Hypolite Petovan | 1df5003643 | ||
Hypolite Petovan | 753702da0e | ||
Hypolite Petovan | 163a85c78f | ||
Hypolite Petovan | e01040a2e8 | ||
Hypolite Petovan | 6d009a3e0f | ||
Hypolite Petovan | 3333d4af88 | ||
Hypolite Petovan | 5004471770 | ||
Hypolite Petovan | 4462ad6bf0 | ||
Hypolite Petovan | 1052f6fde0 | ||
Hypolite Petovan | 86cba639fc | ||
Hypolite Petovan | 8640afc82e | ||
Hypolite Petovan | 4376eedb96 | ||
b42373d834 | |||
f95f846ef8 | |||
9cbad559a1 | |||
Michael | 557ef9acc9 | ||
3a90e0f7f2 | |||
93a3c6ee59 | |||
51905cee45 | |||
409f27c058 | |||
Tobias Diekershoff | eea07a8e6d | ||
Hypolite Petovan | cb7b92282c | ||
Hypolite Petovan | cf5beafec0 | ||
Michael | 008c8dbf36 | ||
Hypolite Petovan | 3c20ffc22b | ||
cfe159235a | |||
Hypolite Petovan | 5704a433f0 | ||
Hypolite Petovan | 0c83cbffe3 | ||
05f2cf9202 | |||
cc61f7b160 | |||
6197ae3fe0 | |||
Tobias Diekershoff | 298cf77a57 | ||
22e960d8f8 | |||
8378edc95f | |||
58a8169189 | |||
Hypolite Petovan | 1b72a1e72d | ||
6422892efc | |||
2ee28e2db2 | |||
f8a1b7ea56 | |||
0183d33261 | |||
1abd9d2ee2 | |||
bb654d6e34 | |||
4b161b0d65 | |||
a06e6c7f47 | |||
17d7432f0e | |||
405161998e | |||
78e9ee651f | |||
9dfe39b83d | |||
ed9d20b291 | |||
9f2d2d4ac1 | |||
e6a4467557 | |||
Michael | 34521c228b | ||
Hypolite Petovan | 6503016676 | ||
Michael | 0840086a0a | ||
Michael | afb6913a2f | ||
Michael | e7d65f2d12 | ||
Michael | e84a7e8c2a | ||
Hypolite Petovan | ad414f33c9 | ||
foss- | bb64d08eaf | ||
Hypolite Petovan | 6057146a41 | ||
e9f2b828d8 | |||
9d86ef767a | |||
Hypolite Petovan | 9a4f2a4492 | ||
a3fa8ec29a | |||
Hypolite Petovan | 70aacc8a5e | ||
Michael | b54005c540 | ||
Michael | badf0dd57f | ||
a2a1d852e9 | |||
Michael | 5e1c292927 | ||
Michael | ae33a6bce1 | ||
Michael | 82684cd6cd | ||
Michael | 84b38beb9a | ||
Michael | b2758f2cdd | ||
Hypolite Petovan | e014729206 | ||
Michael | 6ba26e65b8 | ||
Hypolite Petovan | ea4c597ac4 | ||
Hypolite Petovan | 56fb9be0f7 | ||
Hypolite Petovan | 642baa1f2a | ||
Hypolite Petovan | 960171c4e0 | ||
Hypolite Petovan | d165a96220 | ||
Hypolite Petovan | 46180d7d5b | ||
Hypolite Petovan | 81279dad9e | ||
Hypolite Petovan | e424b7bacb | ||
Hypolite Petovan | da1416c07f | ||
Hypolite Petovan | 94e3dde2e3 | ||
Tobias Diekershoff | dd7bea4bd1 | ||
Tobias Diekershoff | ce16cd12ec | ||
Hypolite Petovan | d081f8e80c | ||
Hypolite Petovan | 06818a96c3 | ||
Michael | 1dbc9bd472 | ||
Hypolite Petovan | c4657c4661 | ||
Hypolite Petovan | 86141eb363 | ||
Hypolite Petovan | fad760f46a | ||
Hypolite Petovan | 3cc469c0b7 | ||
Hypolite Petovan | fc5e60e97b | ||
3e314d2fc6 | |||
Michael | 9f23bee6e4 | ||
Hypolite Petovan | c822baa9c6 | ||
Michael | 2164787499 | ||
Michael | 7c6d872964 | ||
Michael | aa429be4d9 | ||
Michael | a8a9f93e09 | ||
Michael | c66e841c38 | ||
Michael | 508d84b2b7 | ||
Michael | fac76a33df | ||
Michael | 073da9735d | ||
Michael | c9f74cc55f | ||
Michael | 42e22ed91b | ||
Michael | 1ec8b62b58 | ||
Michael | 63921ccfca | ||
Michael | 5056c95d60 | ||
Michael | 00eb6b01ff | ||
Michael | a2f119e18e | ||
Michael | d68572ea44 | ||
Hypolite Petovan | 64b5f93a6a | ||
Hypolite Petovan | 059a111282 | ||
6ed440718d | |||
Michael | 7ee07535f5 | ||
Michael | 9066a6133c | ||
Michael | 4dbb7dd3da |
|
@ -1,7 +1,7 @@
|
||||||
name: my-friendica
|
name: my-friendica
|
||||||
type: php
|
type: php
|
||||||
docroot: ""
|
docroot: ""
|
||||||
php_version: "7.3"
|
php_version: "7.4"
|
||||||
webserver_type: apache-fpm
|
webserver_type: apache-fpm
|
||||||
router_http_port: "80"
|
router_http_port: "80"
|
||||||
router_https_port: "443"
|
router_https_port: "443"
|
||||||
|
@ -17,7 +17,7 @@ use_dns_when_possible: true
|
||||||
composer_version: "1"
|
composer_version: "1"
|
||||||
web_environment: []
|
web_environment: []
|
||||||
nodejs_version: "16"
|
nodejs_version: "16"
|
||||||
webimage_extra_packages: [php7.3-gmp]
|
webimage_extra_packages: [php7.4-gmp]
|
||||||
|
|
||||||
# Key features of ddev's config.yaml:
|
# Key features of ddev's config.yaml:
|
||||||
|
|
||||||
|
|
|
@ -1,15 +1,13 @@
|
||||||
matrix:
|
matrix:
|
||||||
include:
|
include:
|
||||||
- PHP_MAJOR_VERSION: 7.3
|
|
||||||
PHP_VERSION: 7.3.33
|
|
||||||
- PHP_MAJOR_VERSION: 7.4
|
- PHP_MAJOR_VERSION: 7.4
|
||||||
PHP_VERSION: 7.4.33
|
PHP_VERSION: 7.4.33
|
||||||
- PHP_MAJOR_VERSION: 8.0
|
- PHP_MAJOR_VERSION: 8.0
|
||||||
PHP_VERSION: 8.0.29
|
PHP_VERSION: 8.0.30
|
||||||
- PHP_MAJOR_VERSION: 8.1
|
- PHP_MAJOR_VERSION: 8.1
|
||||||
PHP_VERSION: 8.1.21
|
PHP_VERSION: 8.1.23
|
||||||
- PHP_MAJOR_VERSION: 8.2
|
- PHP_MAJOR_VERSION: 8.2
|
||||||
PHP_VERSION: 8.2.8
|
PHP_VERSION: 8.2.11
|
||||||
|
|
||||||
# This forces PHP Unit executions at the "opensocial" labeled location (because of much more power...)
|
# This forces PHP Unit executions at the "opensocial" labeled location (because of much more power...)
|
||||||
labels:
|
labels:
|
||||||
|
@ -69,9 +67,9 @@ steps:
|
||||||
- if [ "${PHP_MAJOR_VERSION}" = "7.4" -a "${CI_REPO}" = "friendica/friendica" ]; then
|
- if [ "${PHP_MAJOR_VERSION}" = "7.4" -a "${CI_REPO}" = "friendica/friendica" ]; then
|
||||||
phpenmod xdebug;
|
phpenmod xdebug;
|
||||||
export XDEBUG_MODE=coverage;
|
export XDEBUG_MODE=coverage;
|
||||||
phpunit --configuration tests/phpunit.xml --coverage-clover clover.xml;
|
phpunit --configuration tests/phpunit.xml -d memory_limit=-1 --coverage-clover clover.xml;
|
||||||
else
|
else
|
||||||
phpunit --configuration tests/phpunit.xml;
|
phpunit --configuration tests/phpunit.xml -d memory_limit=-1;
|
||||||
fi
|
fi
|
||||||
codecov:
|
codecov:
|
||||||
image: friendicaci/codecov
|
image: friendicaci/codecov
|
||||||
|
|
121
CHANGELOG
121
CHANGELOG
|
@ -1,10 +1,129 @@
|
||||||
Version 2023.09 (unreleased)
|
Version 2024.03 (unreleased)
|
||||||
Friendica Core
|
Friendica Core
|
||||||
|
|
||||||
Friendica Addons
|
Friendica Addons
|
||||||
|
|
||||||
Closed Issues
|
Closed Issues
|
||||||
|
|
||||||
|
Version 2023.12 (2023-12-24)
|
||||||
|
Friendica Core
|
||||||
|
Raised minimal PHP version to 7.4
|
||||||
|
Updates to the translations AR, BG, CA, CS, DE, EN GB, EN US, EO, ES, ET, FI, FR, GD, HU, IS, IT, JA, NL, PL, RO, RU, SV
|
||||||
|
Updates to the themes (frio, vier) [AlfredSK, annando, anubis2814, haheute, foss-, MrPetovan, Raroun, xundeenergie]
|
||||||
|
Updates to the documentation [AndyHee, BirdboyBolu, foss-, MrPetovan]
|
||||||
|
Fixed a bug in notification links [annando, keithhacks]
|
||||||
|
Fixed a bug in content negotiation [GidiKroon]
|
||||||
|
Fixed the link in invitations [Raroun]
|
||||||
|
Fixed 0Auth connection with Buffer and redirection problems [annando, HankG]
|
||||||
|
Fixed a visibility bug with Calendar entries [MrPetovan]
|
||||||
|
Fixed a JsonLD parsing issue [annando]
|
||||||
|
Fixed confusion about nickname and username [MrPetovan, Raroun]
|
||||||
|
Fixed a problem with viewing remote contact profiles [MrPetovan]
|
||||||
|
Fixed a bug with previewing linked postings [annando]
|
||||||
|
Fixed a problem parsing Mastodon WebFingers [MrPetovan]
|
||||||
|
Fixed a bug that could lead to deleting your own account unintended [MrPetovan]
|
||||||
|
Fixed redirection in 2FA settings page [MrPetovan]
|
||||||
|
Fixed a problem with distributing some comments [annando]
|
||||||
|
Fixed a bug that caused public groups not being able to hide members [annando]
|
||||||
|
Fixed RSS/Atom feed of group accounts [MrPetovan]
|
||||||
|
Fixed a bug that prevented bi-directional delivery of DMs [annando]
|
||||||
|
Fixed a bug in privacy settings for remote-self [annando]
|
||||||
|
Fixed a bug that prevented the selection of photos with captions [Raroun]
|
||||||
|
Fixed a bug in Magic Auth [git-marijus]
|
||||||
|
Fixed a bug convertig local tags to external on receiving updates to the post [annando]
|
||||||
|
Improved Bluesky connector core [annando]
|
||||||
|
Improved SSL handling of reverse http proxies [MrPetovan]
|
||||||
|
Improved performance [annando]
|
||||||
|
Improved language detection [annando]
|
||||||
|
Improved display of contact relationships [annando]
|
||||||
|
Improved display of notifications [annando, MrPetovan]
|
||||||
|
Improved Mastodon compatible API [annando, gudzpoz, HankG, MrPetovan, Quix0r]
|
||||||
|
Improved federation with Diaspora, Firefish, GoToSocial, Lemmy, Pixelfed, Threads [annando]
|
||||||
|
Improved display of quoted posts [annando]
|
||||||
|
Improved BBCode conversion [annando]
|
||||||
|
Improved addon hook loading [annando, nupplaphil]
|
||||||
|
Improved handling of relay servers [annando]
|
||||||
|
Improved blocked users feature [MrPetovan]
|
||||||
|
Improved robots.txt to include ChatGPT and Google Extended [annando, haheute]
|
||||||
|
Improved handling of resizing images [annando]
|
||||||
|
Improved the image grid at the end of postings [MrPetovan]
|
||||||
|
Improved raw content output [annando]
|
||||||
|
Improved handling of smileys [gudzpoz]
|
||||||
|
Improved the admin panel [annando]
|
||||||
|
Improved handling of the background worker [annando]
|
||||||
|
Improved the processing of relayed posts [annando]
|
||||||
|
Improved compatibility with Mastodon Clients [annando]
|
||||||
|
Improved nodeinfo [MrPetovan]
|
||||||
|
Improved the federation statistics in the admin panel [annando]
|
||||||
|
General code cleanup [AlfredSK, annando, jlamothe, mexon, MrPetovan, nupplaphil, Quix0r, toddy15]
|
||||||
|
Renamed "group" to "circle"
|
||||||
|
Renamed "forum" to "group"
|
||||||
|
Added possibility to hide the server block list [MrPetovan, Quix0r]
|
||||||
|
Added creation of moderation reports [AlfredSK, annando, MrPetovan]
|
||||||
|
Added user controlled ignore server functionality [MrPetovan]
|
||||||
|
Added support for Unix domain sockets to Redis [MrPetovan]
|
||||||
|
Added user controlled channels for the network stream [annando]
|
||||||
|
Added support of MacOS emoji picker in text fields [MrPetovan]
|
||||||
|
Added lazy loading for images [FarisKarim, xundeenergie]
|
||||||
|
Added image caption display in Fancybox gallery [MrPetovan]
|
||||||
|
Added shortcut (ctrl+enter) to send postings using Frio theme [xundeenergie]
|
||||||
|
Added support for CORS requests to nodeinfo [palant]
|
||||||
|
Added setting for servers that should only receive limited profile information [annando]
|
||||||
|
|
||||||
|
Friendica Addons
|
||||||
|
Updates to the translation AR, CS, DE, ES, ET, FR, HU, IT, JA, NL, PL, RU, SV, ZH CN
|
||||||
|
Advancedcontentfilter
|
||||||
|
General code cleanup [MrPetovan]
|
||||||
|
Audon
|
||||||
|
Added audon addon [loma-one]
|
||||||
|
Blockem
|
||||||
|
Deprecated the addon [AndyHee]
|
||||||
|
Bluesky
|
||||||
|
Added bidirectional communication to the Bluesky connector [annando]
|
||||||
|
Added support for pinned postings [annando]
|
||||||
|
Added support for transmitted language [annando]
|
||||||
|
Improved thread handling [annando]
|
||||||
|
Improved handling of hashtags [annando]
|
||||||
|
Improved image uploading [annando]
|
||||||
|
CLD
|
||||||
|
Added addon for detection of the language of postings using CLD2 library [annando]
|
||||||
|
invidious
|
||||||
|
Added addon [loma-one]
|
||||||
|
langfilter
|
||||||
|
Use two letter codes for detected languages [annando]
|
||||||
|
Mailstream
|
||||||
|
Improved error handling [mexon]
|
||||||
|
Monolog
|
||||||
|
General code cleanup [nupplaphil]
|
||||||
|
NSFW
|
||||||
|
General code cleanup [MrPetovan]
|
||||||
|
pageheader
|
||||||
|
Improved styling of message box [loma-one]
|
||||||
|
s3_storage
|
||||||
|
Bumped library version [MrPetovan]
|
||||||
|
Showmore Dyn
|
||||||
|
Improved styling on mobile devices [csolisr]
|
||||||
|
Smileybutton
|
||||||
|
Improved conversation from float to int [MrPetovan]
|
||||||
|
Tumblr
|
||||||
|
Improved the import of feeds [annando]
|
||||||
|
Twitter
|
||||||
|
Improved image uploading [annando]
|
||||||
|
Removed the import of postings from Twitter [annando]
|
||||||
|
|
||||||
|
Closed Issues
|
||||||
|
8542, 10369, 12530, 12743, 12815, 13020, 13039, 13114, 13129,
|
||||||
|
13173, 13174, 13180, 13182, 13184, 13195, 13201, 13209, 13216,
|
||||||
|
13217, 13221, 13228, 13240, 13288, 13232, 13240, 13265, 13277,
|
||||||
|
13286, 13287, 13289, 13304, 13311, 13312, 13316, 13318, 13332,
|
||||||
|
13333, 13334, 13343, 13352, 13353, 13355, 13359, 13363, 13365,
|
||||||
|
13367, 13369, 13370, 13378, 13389, 13398, 13403, 13439, 13440,
|
||||||
|
13455, 13457, 13462, 13467, 13471, 13478, 13486, 13506, 13511,
|
||||||
|
13515, 13520, 13524, 13534, 13535, 13542, 13554, 13556, 13560,
|
||||||
|
13566, 13573, 13577, 13588, 13603, 13607, 13615, 13617, 13621,
|
||||||
|
13624, 13625, 13627, 13637, 13639, 13649, 13662, 13665, 13673,
|
||||||
|
13693, 13699, 13719, 13720, 13731, 13748
|
||||||
|
|
||||||
Version 2023.05 (2023-05-23)
|
Version 2023.05 (2023-05-23)
|
||||||
Friendica Core
|
Friendica Core
|
||||||
Updates to the translations HU, PL
|
Updates to the translations HU, PL
|
||||||
|
|
18
CREDITS.txt
18
CREDITS.txt
|
@ -31,6 +31,7 @@ Angristan
|
||||||
Anthronaut
|
Anthronaut
|
||||||
Anton
|
Anton
|
||||||
Antron Samurai
|
Antron Samurai
|
||||||
|
Anubis2814
|
||||||
Arian - Cazare Muncitori
|
Arian - Cazare Muncitori
|
||||||
Asher Pen
|
Asher Pen
|
||||||
atjn
|
atjn
|
||||||
|
@ -51,6 +52,7 @@ BinkaDroid
|
||||||
Bjoessi
|
Bjoessi
|
||||||
bkil
|
bkil
|
||||||
bob lebonche
|
bob lebonche
|
||||||
|
Boluwatife Victor
|
||||||
Boris Daniel Martinez Millàn
|
Boris Daniel Martinez Millàn
|
||||||
bufalo1973
|
bufalo1973
|
||||||
ButterflyOfFire
|
ButterflyOfFire
|
||||||
|
@ -69,8 +71,8 @@ Christian Wiwie
|
||||||
Cohan Robinson
|
Cohan Robinson
|
||||||
Colby Sollars
|
Colby Sollars
|
||||||
Copiis
|
Copiis
|
||||||
Copiis Praeesse
|
|
||||||
CrystalStiletto
|
CrystalStiletto
|
||||||
|
csolisr
|
||||||
Cyboulette
|
Cyboulette
|
||||||
Cyryl Sochacki
|
Cyryl Sochacki
|
||||||
czarnystokrotek
|
czarnystokrotek
|
||||||
|
@ -98,6 +100,7 @@ Eelco Maljaars
|
||||||
effex7
|
effex7
|
||||||
Elena
|
Elena
|
||||||
emilia.krawczyk
|
emilia.krawczyk
|
||||||
|
Entropy Engineer
|
||||||
Eric Côté
|
Eric Côté
|
||||||
Erich
|
Erich
|
||||||
erik
|
erik
|
||||||
|
@ -108,10 +111,12 @@ F1per 3y
|
||||||
Fabian Dost
|
Fabian Dost
|
||||||
Fabio Comuni
|
Fabio Comuni
|
||||||
Farida Khalaf
|
Farida Khalaf
|
||||||
|
Faris
|
||||||
felixgilles
|
felixgilles
|
||||||
Filip Bugaj
|
Filip Bugaj
|
||||||
Filip H.F. "FiXato" Slagter
|
Filip H.F. "FiXato" Slagter
|
||||||
Finn Dean
|
Finn Dean
|
||||||
|
Florent C.
|
||||||
FlxAlbroscheit
|
FlxAlbroscheit
|
||||||
foss-
|
foss-
|
||||||
Francesco Apruzzese
|
Francesco Apruzzese
|
||||||
|
@ -121,10 +126,12 @@ Gerhard Seeber
|
||||||
gerhard6380
|
gerhard6380
|
||||||
Gert Cauwenberg
|
Gert Cauwenberg
|
||||||
Gidi Kroon
|
Gidi Kroon
|
||||||
|
git-marijus
|
||||||
GLComo
|
GLComo
|
||||||
greeneyedred
|
greeneyedred
|
||||||
Gregory Smith
|
Gregory Smith
|
||||||
Grischa Brockhaus
|
Grischa Brockhaus
|
||||||
|
groen
|
||||||
gudzpoz
|
gudzpoz
|
||||||
GunChleoc
|
GunChleoc
|
||||||
guzzisti
|
guzzisti
|
||||||
|
@ -134,6 +141,7 @@ Hannes Heute
|
||||||
Hans Meine
|
Hans Meine
|
||||||
Hauke
|
Hauke
|
||||||
Hauke Altmann
|
Hauke Altmann
|
||||||
|
Henrik Härkönen
|
||||||
Herbert Thielen
|
Herbert Thielen
|
||||||
hlad
|
hlad
|
||||||
hoergen
|
hoergen
|
||||||
|
@ -156,6 +164,7 @@ Johannes Schwab
|
||||||
John Brazil
|
John Brazil
|
||||||
John Mortensen
|
John Mortensen
|
||||||
Jonatan Nyberg
|
Jonatan Nyberg
|
||||||
|
Jonathan Lamothe
|
||||||
Jonny Tischbein
|
Jonny Tischbein
|
||||||
Josef Moravek
|
Josef Moravek
|
||||||
Josh Soref
|
Josh Soref
|
||||||
|
@ -168,11 +177,13 @@ Karolina
|
||||||
Kastal András
|
Kastal András
|
||||||
Keenan Pepper
|
Keenan Pepper
|
||||||
Keith Fernie
|
Keith Fernie
|
||||||
|
keithhacks
|
||||||
Klaus Weidenbach
|
Klaus Weidenbach
|
||||||
Koyu Berteon
|
Koyu Berteon
|
||||||
kPherox
|
kPherox
|
||||||
Kris
|
Kris
|
||||||
Kristoffer Grundström
|
Kristoffer Grundström
|
||||||
|
ktlinux
|
||||||
KulikAlex
|
KulikAlex
|
||||||
Lea1995polish
|
Lea1995polish
|
||||||
Leberwurscht
|
Leberwurscht
|
||||||
|
@ -254,6 +265,7 @@ Rain Hawk
|
||||||
Rainulf Pineda
|
Rainulf Pineda
|
||||||
Ralf Thees
|
Ralf Thees
|
||||||
ralph van der honing
|
ralph van der honing
|
||||||
|
Raroun
|
||||||
Ratten
|
Ratten
|
||||||
rcmaniac
|
rcmaniac
|
||||||
RealKinetix
|
RealKinetix
|
||||||
|
@ -269,6 +281,7 @@ Roland Häder
|
||||||
Ruud Schilders
|
Ruud Schilders
|
||||||
rwa
|
rwa
|
||||||
Ryan Voots
|
Ryan Voots
|
||||||
|
S. Brusch
|
||||||
S.Krumbholz
|
S.Krumbholz
|
||||||
Sakałoŭ Alaksiej
|
Sakałoŭ Alaksiej
|
||||||
Sam
|
Sam
|
||||||
|
@ -314,6 +327,7 @@ TiMESPLiNTER
|
||||||
Tino
|
Tino
|
||||||
Tobias Diekershoff
|
Tobias Diekershoff
|
||||||
Tobias Hößl
|
Tobias Hößl
|
||||||
|
Tobias Quathamer
|
||||||
Tom
|
Tom
|
||||||
Tom Aurlund
|
Tom Aurlund
|
||||||
Tom Hu
|
Tom Hu
|
||||||
|
@ -324,6 +338,7 @@ Torbjörn Andersson
|
||||||
TORminator
|
TORminator
|
||||||
trebor
|
trebor
|
||||||
tschlotfeldt
|
tschlotfeldt
|
||||||
|
tslmuun
|
||||||
Tubuntu
|
Tubuntu
|
||||||
Tupambae.org
|
Tupambae.org
|
||||||
U-SOUND\mike
|
U-SOUND\mike
|
||||||
|
@ -345,6 +360,7 @@ Waldemar Stoczkowski
|
||||||
Walter Bulbazor
|
Walter Bulbazor
|
||||||
Wanting Chen
|
Wanting Chen
|
||||||
Wil Tur
|
Wil Tur
|
||||||
|
Wladimir Palant
|
||||||
Wouter Broers
|
Wouter Broers
|
||||||
Xiaofei Xu
|
Xiaofei Xu
|
||||||
XMPPはいいぞ
|
XMPPはいいぞ
|
||||||
|
|
54
README.md
54
README.md
|
@ -1,46 +1,30 @@
|
||||||
Friendica Social Communications Server
|
Friendica - your open and free social network
|
||||||
======================================
|
=============================================
|
||||||
|
|
||||||
Welcome to the free social web.
|
Welcome to the free social web. Friendica is a platform for decentralised social communication linking to other independent social and corporate services.
|
||||||
|
|
||||||
Friendica is a decentralised communications platform that integrates social communication. Our platform links to independent social projects 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 control the privacy scope of your content.
|
||||||
|
|
||||||
Our mission is to free friends, family and colleagues from data-harvesting corporations; we aim for social communication to be free and open, while flowing between any provider as easily as email does.
|
Being part of the Fediverse allows you to be free from data-harvesting corporations.
|
||||||
|
Enjoy open social communication, independent of any specific provider.
|
||||||
|
|
||||||
Friendica connects you effortlessly to a federated communications network of several thousand servers, with more than half a million user registrations. You can directly connect to anyone on [Friendica]( https://friendi.ca), [Mastodon](https://joinmastodon.org/), [Diaspora](https://diasporafoundation.org/), [GnuSocial](https://gnu.io/social/), [Pleroma](https://pleroma.social/), or [Hubzilla](https://hubzilla.org/), regardless where each user profile is hosted.
|
[Join Friendica](https://dir.friendica.social/servers) today or set up [your own Friendica instance](doc/Install.md).
|
||||||
|
|
||||||
With Friendica, you can also fully interact with anyone on Twitter and receive any content from Tumblr, Wordpress or RSS. Friendica allows you to integrate most things on the web via a range of addons such as ITTT, Buffer; you will be able to easily control your own data as you decide.
|
### Friendica on desktop
|
||||||
|
|
||||||
Join today and [get your Friendica profile!](https://dir.friendica.social/servers 'Join Friendica today!')
|
![Frio theme in desktop browser](images/screenshots/friendica-2023-12-frio-desktop.png?raw=true "Frio theme in desktop browser")
|
||||||
|
|
||||||
Have a look at the [installation documentation](doc/Install.md) for further information about installing and using Friendica.
|
### Friendica on mobile
|
||||||
|
|
||||||
### Friendica Screenshots
|
<p float="left">
|
||||||
|
<img src="images/screenshots/friendica-2023-10-frio-mobile-timeline-dark-blue.png" width="370" alt="frio on mobile, dark color scheme">
|
||||||
| ![Frio theme in mobile browser](images/screenshots/friendica-frio-mobile-profile-1.png?raw=true "Frio theme in mobile browser") ![Frio theme in mobile browser](images/screenshots/friendica-frio-mobile-profile-2.png?raw=true "Frio theme in mobile browser") |
|
<img src="images/screenshots/friendica-2023-10-frio-mobile-options-light-blue.png" width="370" alt="frio on mobile, light color scheme">
|
||||||
|:---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------:|
|
</p>
|
||||||
| *Frio theme, mobile browser. Timeline and composer view.* |
|
|
||||||
| ![Frio theme in desktop browser](images/screenshots/friendica-frio-green-profile-1.png?raw=true "Frio theme in desktop browser") |
|
|
||||||
| *Frio theme, desktop browser. Timeline view, contact info popped up, control menu open.* |
|
|
||||||
| ![Frio theme in desktop browser](images/screenshots/friendica-frio-green-profile-2.png?raw=true "Frio theme in desktop browser") |
|
|
||||||
| *Frio theme, desktop browser. Menu open for controlling individual posts.* |
|
|
||||||
| ![Frio theme in desktop browser](images/screenshots/friendica-frio-red-profile-3.png?raw=true "Frio theme in desktop browser") |
|
|
||||||
| *Frio theme, desktop browser. Profile view, notification menu open.* |
|
|
||||||
| ![Frio theme in desktop browser](images/screenshots/friendica-frio-red-profile-2.png?raw=true "Frio theme in desktop browser") |
|
|
||||||
| *Number of new posts, in total and by circle.* |
|
|
||||||
| ![Frio theme in desktop browser](images/screenshots/friendica-frio-red-profile-1.png?raw=true "Frio theme in desktop browser") |
|
|
||||||
| *Calendar with popup of event.* |
|
|
||||||
| ![Frio theme default colour in standard browser on tablet](images/screenshots/friendica-frio-default-profile-1.png?raw=true "Frio theme default colour in standard browser on tablet") |
|
|
||||||
| *Notifications menu and private messages counter, standard browser on tablet.* |
|
|
||||||
| ![Frio theme in desktop browser](images/screenshots/friendica-frio-brown-profile-2.png?raw=true "Frio theme in desktop browser") |
|
|
||||||
| *Number of visible contacts, standard browser.* |
|
|
||||||
| ![Frio theme in desktop browser](images/screenshots/friendica-frio-brown-profile-1.png?raw=true "Frio theme in desktop browser") |
|
|
||||||
| *Network posts chronologically ordered, standard browser.* |
|
|
||||||
| ![Vier theme in desktop browser](images/screenshots/friendica-vier-profile.png?raw=true "Vier theme in desktop browser") |
|
|
||||||
| *Vier theme, desktop browser. Public timeline view.* |
|
|
||||||
| ![Vier theme in desktop browser](images/screenshots/friendica-vier-community.png?raw=true "Vier theme in desktop browser") |
|
|
||||||
| *Vier theme, desktop browser. Community post displayed.* |
|
|
||||||
|
|
||||||
## Endorsements
|
## Endorsements
|
||||||
|
|
||||||
- [![Awesome Humane Tech](images/humane-tech-badge.svg)](https://github.com/humanetech-community/awesome-humane-tech) On August 12th 2020, Friendica was added to [the curated Awesome Humane Tech directory](https://github.com/humanetech-community/awesome-humane-tech) in [the "Fediverse" category](https://github.com/humanetech-community/awesome-humane-tech#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).
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
#!/usr/bin/env php
|
#!/usr/bin/env php
|
||||||
<?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
|
* @license GNU AGPL version 3 or any later version
|
||||||
*
|
*
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
#!/usr/bin/env php
|
#!/usr/bin/env php
|
||||||
<?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
|
* @license GNU AGPL version 3 or any later version
|
||||||
*
|
*
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
#!/usr/bin/env php
|
#!/usr/bin/env php
|
||||||
<?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
|
* @license GNU AGPL version 3 or any later version
|
||||||
*
|
*
|
||||||
|
@ -163,9 +163,14 @@ if (!$foreground) {
|
||||||
exit(1);
|
exit(1);
|
||||||
} elseif ($pid) {
|
} elseif ($pid) {
|
||||||
// The parent process continues here
|
// The parent process continues here
|
||||||
|
if (!file_put_contents($pidfile, $pid)) {
|
||||||
|
echo "Pid file wasn't written.\n";
|
||||||
|
Logger::warning('Could not store pid file');
|
||||||
|
posix_kill($pid, SIGTERM);
|
||||||
|
exit(1);
|
||||||
|
}
|
||||||
echo 'Child process started with pid ' . $pid . ".\n";
|
echo 'Child process started with pid ' . $pid . ".\n";
|
||||||
Logger::notice('Child process started', ['pid' => $pid]);
|
Logger::notice('Child process started', ['pid' => $pid]);
|
||||||
file_put_contents($pidfile, $pid);
|
|
||||||
exit(0);
|
exit(0);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
<?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
|
* @license GNU AGPL version 3 or any later version
|
||||||
*
|
*
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
#!/usr/bin/php
|
#!/usr/bin/php
|
||||||
<?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
|
* @license GNU AGPL version 3 or any later version
|
||||||
*
|
*
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
#!/usr/bin/env php
|
#!/usr/bin/env php
|
||||||
<?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
|
* @license GNU AGPL version 3 or any later version
|
||||||
*
|
*
|
||||||
|
|
|
@ -13,7 +13,7 @@
|
||||||
"issues": "https://github.com/friendica/friendica/issues"
|
"issues": "https://github.com/friendica/friendica/issues"
|
||||||
},
|
},
|
||||||
"require": {
|
"require": {
|
||||||
"php": ">=7.3",
|
"php": ">=7.4",
|
||||||
"ext-ctype": "*",
|
"ext-ctype": "*",
|
||||||
"ext-curl": "*",
|
"ext-curl": "*",
|
||||||
"ext-dom": "*",
|
"ext-dom": "*",
|
||||||
|
@ -44,7 +44,7 @@
|
||||||
"mattwright/urlresolver": "^2.0",
|
"mattwright/urlresolver": "^2.0",
|
||||||
"michelf/php-markdown": "^1.7",
|
"michelf/php-markdown": "^1.7",
|
||||||
"minishlink/web-push": "^6.0",
|
"minishlink/web-push": "^6.0",
|
||||||
"mobiledetect/mobiledetectlib": "^2.8",
|
"mobiledetect/mobiledetectlib": "^3.74",
|
||||||
"nikic/fast-route": "^1.3",
|
"nikic/fast-route": "^1.3",
|
||||||
"paragonie/hidden-string": "^1.0",
|
"paragonie/hidden-string": "^1.0",
|
||||||
"patrickschur/language-detection": "^5.0.0",
|
"patrickschur/language-detection": "^5.0.0",
|
||||||
|
@ -53,7 +53,7 @@
|
||||||
"pragmarx/google2fa": "^5.0",
|
"pragmarx/google2fa": "^5.0",
|
||||||
"pragmarx/recovery": "^0.2",
|
"pragmarx/recovery": "^0.2",
|
||||||
"psr/clock": "^1.0",
|
"psr/clock": "^1.0",
|
||||||
"psr/container": "^1.0",
|
"psr/container": "^2.0",
|
||||||
"psr/log": "^1.1",
|
"psr/log": "^1.1",
|
||||||
"seld/cli-prompt": "^1.0",
|
"seld/cli-prompt": "^1.0",
|
||||||
"smarty/smarty": "^4",
|
"smarty/smarty": "^4",
|
||||||
|
@ -102,7 +102,7 @@
|
||||||
},
|
},
|
||||||
"config": {
|
"config": {
|
||||||
"platform": {
|
"platform": {
|
||||||
"php": "7.3"
|
"php": "7.4"
|
||||||
},
|
},
|
||||||
"autoloader-suffix": "Friendica",
|
"autoloader-suffix": "Friendica",
|
||||||
"optimize-autoloader": true,
|
"optimize-autoloader": true,
|
||||||
|
|
320
composer.lock
generated
320
composer.lock
generated
|
@ -4,7 +4,7 @@
|
||||||
"Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies",
|
"Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies",
|
||||||
"This file is @generated automatically"
|
"This file is @generated automatically"
|
||||||
],
|
],
|
||||||
"content-hash": "c208d7f5176358ea157f109c1c7d68dd",
|
"content-hash": "082b16e2c88895f1a03d5b0ffe678ba7",
|
||||||
"packages": [
|
"packages": [
|
||||||
{
|
{
|
||||||
"name": "asika/simple-console",
|
"name": "asika/simple-console",
|
||||||
|
@ -123,16 +123,16 @@
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "bower-asset/base64",
|
"name": "bower-asset/base64",
|
||||||
"version": "1.2.0",
|
"version": "1.3.0",
|
||||||
"source": {
|
"source": {
|
||||||
"type": "git",
|
"type": "git",
|
||||||
"url": "https://github.com/davidchambers/Base64.js.git",
|
"url": "https://github.com/davidchambers/Base64.js.git",
|
||||||
"reference": "0048721faa641f1519c4c081725f42da2ada5e9a"
|
"reference": "22192690552ba07bf035f95a5d2d1a0e2f0ced46"
|
||||||
},
|
},
|
||||||
"dist": {
|
"dist": {
|
||||||
"type": "zip",
|
"type": "zip",
|
||||||
"url": "https://api.github.com/repos/davidchambers/Base64.js/zipball/0048721faa641f1519c4c081725f42da2ada5e9a",
|
"url": "https://api.github.com/repos/davidchambers/Base64.js/zipball/22192690552ba07bf035f95a5d2d1a0e2f0ced46",
|
||||||
"reference": "0048721faa641f1519c4c081725f42da2ada5e9a",
|
"reference": "22192690552ba07bf035f95a5d2d1a0e2f0ced46",
|
||||||
"shasum": ""
|
"shasum": ""
|
||||||
},
|
},
|
||||||
"type": "bower-asset-library",
|
"type": "bower-asset-library",
|
||||||
|
@ -150,7 +150,7 @@
|
||||||
"WTFPL"
|
"WTFPL"
|
||||||
],
|
],
|
||||||
"description": "Base64 encoding and decoding",
|
"description": "Base64 encoding and decoding",
|
||||||
"time": "2023-02-22T16:04:49+00:00"
|
"time": "2023-09-18T21:37:26+00:00"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "bower-asset/dompurify",
|
"name": "bower-asset/dompurify",
|
||||||
|
@ -299,16 +299,16 @@
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "composer/ca-bundle",
|
"name": "composer/ca-bundle",
|
||||||
"version": "1.3.5",
|
"version": "1.4.0",
|
||||||
"source": {
|
"source": {
|
||||||
"type": "git",
|
"type": "git",
|
||||||
"url": "https://github.com/composer/ca-bundle.git",
|
"url": "https://github.com/composer/ca-bundle.git",
|
||||||
"reference": "74780ccf8c19d6acb8d65c5f39cd72110e132bbd"
|
"reference": "b66d11b7479109ab547f9405b97205640b17d385"
|
||||||
},
|
},
|
||||||
"dist": {
|
"dist": {
|
||||||
"type": "zip",
|
"type": "zip",
|
||||||
"url": "https://api.github.com/repos/composer/ca-bundle/zipball/74780ccf8c19d6acb8d65c5f39cd72110e132bbd",
|
"url": "https://api.github.com/repos/composer/ca-bundle/zipball/b66d11b7479109ab547f9405b97205640b17d385",
|
||||||
"reference": "74780ccf8c19d6acb8d65c5f39cd72110e132bbd",
|
"reference": "b66d11b7479109ab547f9405b97205640b17d385",
|
||||||
"shasum": ""
|
"shasum": ""
|
||||||
},
|
},
|
||||||
"require": {
|
"require": {
|
||||||
|
@ -320,7 +320,7 @@
|
||||||
"phpstan/phpstan": "^0.12.55",
|
"phpstan/phpstan": "^0.12.55",
|
||||||
"psr/log": "^1.0",
|
"psr/log": "^1.0",
|
||||||
"symfony/phpunit-bridge": "^4.2 || ^5",
|
"symfony/phpunit-bridge": "^4.2 || ^5",
|
||||||
"symfony/process": "^2.5 || ^3.0 || ^4.0 || ^5.0 || ^6.0"
|
"symfony/process": "^2.5 || ^3.0 || ^4.0 || ^5.0 || ^6.0 || ^7.0"
|
||||||
},
|
},
|
||||||
"type": "library",
|
"type": "library",
|
||||||
"extra": {
|
"extra": {
|
||||||
|
@ -366,20 +366,20 @@
|
||||||
"type": "tidelift"
|
"type": "tidelift"
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"time": "2023-01-11T08:27:00+00:00"
|
"time": "2023-12-18T12:05:55+00:00"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "dasprid/enum",
|
"name": "dasprid/enum",
|
||||||
"version": "1.0.4",
|
"version": "1.0.5",
|
||||||
"source": {
|
"source": {
|
||||||
"type": "git",
|
"type": "git",
|
||||||
"url": "https://github.com/DASPRiD/Enum.git",
|
"url": "https://github.com/DASPRiD/Enum.git",
|
||||||
"reference": "8e6b6ea76eabbf19ea2bf5b67b98e1860474012f"
|
"reference": "6faf451159fb8ba4126b925ed2d78acfce0dc016"
|
||||||
},
|
},
|
||||||
"dist": {
|
"dist": {
|
||||||
"type": "zip",
|
"type": "zip",
|
||||||
"url": "https://api.github.com/repos/DASPRiD/Enum/zipball/8e6b6ea76eabbf19ea2bf5b67b98e1860474012f",
|
"url": "https://api.github.com/repos/DASPRiD/Enum/zipball/6faf451159fb8ba4126b925ed2d78acfce0dc016",
|
||||||
"reference": "8e6b6ea76eabbf19ea2bf5b67b98e1860474012f",
|
"reference": "6faf451159fb8ba4126b925ed2d78acfce0dc016",
|
||||||
"shasum": ""
|
"shasum": ""
|
||||||
},
|
},
|
||||||
"require": {
|
"require": {
|
||||||
|
@ -412,7 +412,7 @@
|
||||||
"enum",
|
"enum",
|
||||||
"map"
|
"map"
|
||||||
],
|
],
|
||||||
"time": "2023-03-01T18:44:03+00:00"
|
"time": "2023-08-25T16:18:39+00:00"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "divineomega/do-file-cache",
|
"name": "divineomega/do-file-cache",
|
||||||
|
@ -591,20 +591,20 @@
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "ezyang/htmlpurifier",
|
"name": "ezyang/htmlpurifier",
|
||||||
"version": "v4.16.0",
|
"version": "v4.17.0",
|
||||||
"source": {
|
"source": {
|
||||||
"type": "git",
|
"type": "git",
|
||||||
"url": "https://github.com/ezyang/htmlpurifier.git",
|
"url": "https://github.com/ezyang/htmlpurifier.git",
|
||||||
"reference": "523407fb06eb9e5f3d59889b3978d5bfe94299c8"
|
"reference": "bbc513d79acf6691fa9cf10f192c90dd2957f18c"
|
||||||
},
|
},
|
||||||
"dist": {
|
"dist": {
|
||||||
"type": "zip",
|
"type": "zip",
|
||||||
"url": "https://api.github.com/repos/ezyang/htmlpurifier/zipball/523407fb06eb9e5f3d59889b3978d5bfe94299c8",
|
"url": "https://api.github.com/repos/ezyang/htmlpurifier/zipball/bbc513d79acf6691fa9cf10f192c90dd2957f18c",
|
||||||
"reference": "523407fb06eb9e5f3d59889b3978d5bfe94299c8",
|
"reference": "bbc513d79acf6691fa9cf10f192c90dd2957f18c",
|
||||||
"shasum": ""
|
"shasum": ""
|
||||||
},
|
},
|
||||||
"require": {
|
"require": {
|
||||||
"php": "~5.6.0 || ~7.0.0 || ~7.1.0 || ~7.2.0 || ~7.3.0 || ~7.4.0 || ~8.0.0 || ~8.1.0 || ~8.2.0"
|
"php": "~5.6.0 || ~7.0.0 || ~7.1.0 || ~7.2.0 || ~7.3.0 || ~7.4.0 || ~8.0.0 || ~8.1.0 || ~8.2.0 || ~8.3.0"
|
||||||
},
|
},
|
||||||
"require-dev": {
|
"require-dev": {
|
||||||
"cerdic/css-tidy": "^1.7 || ^2.0",
|
"cerdic/css-tidy": "^1.7 || ^2.0",
|
||||||
|
@ -644,7 +644,7 @@
|
||||||
"keywords": [
|
"keywords": [
|
||||||
"html"
|
"html"
|
||||||
],
|
],
|
||||||
"time": "2022-09-18T07:06:19+00:00"
|
"time": "2023-11-17T15:01:25+00:00"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "fgrosse/phpasn1",
|
"name": "fgrosse/phpasn1",
|
||||||
|
@ -1037,16 +1037,16 @@
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "guzzlehttp/promises",
|
"name": "guzzlehttp/promises",
|
||||||
"version": "1.5.2",
|
"version": "1.5.3",
|
||||||
"source": {
|
"source": {
|
||||||
"type": "git",
|
"type": "git",
|
||||||
"url": "https://github.com/guzzle/promises.git",
|
"url": "https://github.com/guzzle/promises.git",
|
||||||
"reference": "b94b2807d85443f9719887892882d0329d1e2598"
|
"reference": "67ab6e18aaa14d753cc148911d273f6e6cb6721e"
|
||||||
},
|
},
|
||||||
"dist": {
|
"dist": {
|
||||||
"type": "zip",
|
"type": "zip",
|
||||||
"url": "https://api.github.com/repos/guzzle/promises/zipball/b94b2807d85443f9719887892882d0329d1e2598",
|
"url": "https://api.github.com/repos/guzzle/promises/zipball/67ab6e18aaa14d753cc148911d273f6e6cb6721e",
|
||||||
"reference": "b94b2807d85443f9719887892882d0329d1e2598",
|
"reference": "67ab6e18aaa14d753cc148911d273f6e6cb6721e",
|
||||||
"shasum": ""
|
"shasum": ""
|
||||||
},
|
},
|
||||||
"require": {
|
"require": {
|
||||||
|
@ -1056,11 +1056,6 @@
|
||||||
"symfony/phpunit-bridge": "^4.4 || ^5.1"
|
"symfony/phpunit-bridge": "^4.4 || ^5.1"
|
||||||
},
|
},
|
||||||
"type": "library",
|
"type": "library",
|
||||||
"extra": {
|
|
||||||
"branch-alias": {
|
|
||||||
"dev-master": "1.5-dev"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"autoload": {
|
"autoload": {
|
||||||
"files": [
|
"files": [
|
||||||
"src/functions_include.php"
|
"src/functions_include.php"
|
||||||
|
@ -1113,7 +1108,7 @@
|
||||||
"type": "tidelift"
|
"type": "tidelift"
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"time": "2022-08-28T14:55:35+00:00"
|
"time": "2023-05-21T12:31:43+00:00"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "guzzlehttp/psr7",
|
"name": "guzzlehttp/psr7",
|
||||||
|
@ -1322,24 +1317,6 @@
|
||||||
"html",
|
"html",
|
||||||
"markdown"
|
"markdown"
|
||||||
],
|
],
|
||||||
"funding": [
|
|
||||||
{
|
|
||||||
"url": "https://www.colinodell.com/sponsor",
|
|
||||||
"type": "custom"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"url": "https://www.paypal.me/colinpodell/10.00",
|
|
||||||
"type": "custom"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"url": "https://github.com/colinodell",
|
|
||||||
"type": "github"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"url": "https://www.patreon.com/colinodell",
|
|
||||||
"type": "patreon"
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"time": "2020-07-01T00:34:03+00:00"
|
"time": "2020-07-01T00:34:03+00:00"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
|
@ -1624,31 +1601,33 @@
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "mobiledetect/mobiledetectlib",
|
"name": "mobiledetect/mobiledetectlib",
|
||||||
"version": "2.8.41",
|
"version": "3.74.3",
|
||||||
"source": {
|
"source": {
|
||||||
"type": "git",
|
"type": "git",
|
||||||
"url": "https://github.com/serbanghita/Mobile-Detect.git",
|
"url": "https://github.com/serbanghita/Mobile-Detect.git",
|
||||||
"reference": "fc9cccd4d3706d5a7537b562b59cc18f9e4c0cb1"
|
"reference": "39582ab62f86b40e4edb698159f895929a29c346"
|
||||||
},
|
},
|
||||||
"dist": {
|
"dist": {
|
||||||
"type": "zip",
|
"type": "zip",
|
||||||
"url": "https://api.github.com/repos/serbanghita/Mobile-Detect/zipball/fc9cccd4d3706d5a7537b562b59cc18f9e4c0cb1",
|
"url": "https://api.github.com/repos/serbanghita/Mobile-Detect/zipball/39582ab62f86b40e4edb698159f895929a29c346",
|
||||||
"reference": "fc9cccd4d3706d5a7537b562b59cc18f9e4c0cb1",
|
"reference": "39582ab62f86b40e4edb698159f895929a29c346",
|
||||||
"shasum": ""
|
"shasum": ""
|
||||||
},
|
},
|
||||||
"require": {
|
"require": {
|
||||||
"php": ">=5.0.0"
|
"php": ">=7.4"
|
||||||
},
|
},
|
||||||
"require-dev": {
|
"require-dev": {
|
||||||
"phpunit/phpunit": "~4.8.35||~5.7"
|
"friendsofphp/php-cs-fixer": "^3.14",
|
||||||
|
"phpunit/phpunit": "^9.6",
|
||||||
|
"squizlabs/php_codesniffer": "^3.7"
|
||||||
},
|
},
|
||||||
"type": "library",
|
"type": "library",
|
||||||
"autoload": {
|
"autoload": {
|
||||||
"psr-0": {
|
"psr-4": {
|
||||||
"Detection": "namespaced/"
|
"Detection\\": "src/"
|
||||||
},
|
},
|
||||||
"classmap": [
|
"classmap": [
|
||||||
"Mobile_Detect.php"
|
"src/MobileDetect.php"
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
"notification-url": "https://packagist.org/downloads/",
|
"notification-url": "https://packagist.org/downloads/",
|
||||||
|
@ -1659,7 +1638,7 @@
|
||||||
{
|
{
|
||||||
"name": "Serban Ghita",
|
"name": "Serban Ghita",
|
||||||
"email": "serbanghita@gmail.com",
|
"email": "serbanghita@gmail.com",
|
||||||
"homepage": "http://mobiledetect.net",
|
"homepage": "https://mobiledetect.net",
|
||||||
"role": "Developer"
|
"role": "Developer"
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
|
@ -1672,7 +1651,13 @@
|
||||||
"mobile detector",
|
"mobile detector",
|
||||||
"php mobile detect"
|
"php mobile detect"
|
||||||
],
|
],
|
||||||
"time": "2022-11-08T18:31:26+00:00"
|
"funding": [
|
||||||
|
{
|
||||||
|
"url": "https://github.com/serbanghita",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"time": "2023-10-27T16:28:04+00:00"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "nikic/fast-route",
|
"name": "nikic/fast-route",
|
||||||
|
@ -2915,16 +2900,16 @@
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "paragonie/sodium_compat",
|
"name": "paragonie/sodium_compat",
|
||||||
"version": "v1.19.0",
|
"version": "v1.20.0",
|
||||||
"source": {
|
"source": {
|
||||||
"type": "git",
|
"type": "git",
|
||||||
"url": "https://github.com/paragonie/sodium_compat.git",
|
"url": "https://github.com/paragonie/sodium_compat.git",
|
||||||
"reference": "cb15e403ecbe6a6cc515f855c310eb6b1872a933"
|
"reference": "e592a3e06d1fa0d43988c7c7d9948ca836f644b6"
|
||||||
},
|
},
|
||||||
"dist": {
|
"dist": {
|
||||||
"type": "zip",
|
"type": "zip",
|
||||||
"url": "https://api.github.com/repos/paragonie/sodium_compat/zipball/cb15e403ecbe6a6cc515f855c310eb6b1872a933",
|
"url": "https://api.github.com/repos/paragonie/sodium_compat/zipball/e592a3e06d1fa0d43988c7c7d9948ca836f644b6",
|
||||||
"reference": "cb15e403ecbe6a6cc515f855c310eb6b1872a933",
|
"reference": "e592a3e06d1fa0d43988c7c7d9948ca836f644b6",
|
||||||
"shasum": ""
|
"shasum": ""
|
||||||
},
|
},
|
||||||
"require": {
|
"require": {
|
||||||
|
@ -2993,26 +2978,26 @@
|
||||||
"secret-key cryptography",
|
"secret-key cryptography",
|
||||||
"side-channel resistant"
|
"side-channel resistant"
|
||||||
],
|
],
|
||||||
"time": "2022-09-26T03:40:35+00:00"
|
"time": "2023-04-30T00:54:53+00:00"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "patrickschur/language-detection",
|
"name": "patrickschur/language-detection",
|
||||||
"version": "v5.1.0",
|
"version": "v5.3.0",
|
||||||
"source": {
|
"source": {
|
||||||
"type": "git",
|
"type": "git",
|
||||||
"url": "https://github.com/patrickschur/language-detection.git",
|
"url": "https://github.com/patrickschur/language-detection.git",
|
||||||
"reference": "728f1434dcf126ce3ed7118567c014d80d7fdd9c"
|
"reference": "b8da335336c09fa6814fe0ca0d6d506c357cd7b9"
|
||||||
},
|
},
|
||||||
"dist": {
|
"dist": {
|
||||||
"type": "zip",
|
"type": "zip",
|
||||||
"url": "https://api.github.com/repos/patrickschur/language-detection/zipball/728f1434dcf126ce3ed7118567c014d80d7fdd9c",
|
"url": "https://api.github.com/repos/patrickschur/language-detection/zipball/b8da335336c09fa6814fe0ca0d6d506c357cd7b9",
|
||||||
"reference": "728f1434dcf126ce3ed7118567c014d80d7fdd9c",
|
"reference": "b8da335336c09fa6814fe0ca0d6d506c357cd7b9",
|
||||||
"shasum": ""
|
"shasum": ""
|
||||||
},
|
},
|
||||||
"require": {
|
"require": {
|
||||||
"ext-json": "*",
|
"ext-json": "*",
|
||||||
"ext-mbstring": "*",
|
"ext-mbstring": "*",
|
||||||
"php": "^7.3 || ^8.0"
|
"php": "^7.4 || ^8.0"
|
||||||
},
|
},
|
||||||
"require-dev": {
|
"require-dev": {
|
||||||
"phpunit/phpunit": "^9.5.0"
|
"phpunit/phpunit": "^9.5.0"
|
||||||
|
@ -3040,7 +3025,7 @@
|
||||||
"detection",
|
"detection",
|
||||||
"language"
|
"language"
|
||||||
],
|
],
|
||||||
"time": "2021-03-05T22:18:57+00:00"
|
"time": "2023-08-18T22:46:39+00:00"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "pear/console_table",
|
"name": "pear/console_table",
|
||||||
|
@ -3099,16 +3084,16 @@
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "phpseclib/phpseclib",
|
"name": "phpseclib/phpseclib",
|
||||||
"version": "3.0.19",
|
"version": "3.0.34",
|
||||||
"source": {
|
"source": {
|
||||||
"type": "git",
|
"type": "git",
|
||||||
"url": "https://github.com/phpseclib/phpseclib.git",
|
"url": "https://github.com/phpseclib/phpseclib.git",
|
||||||
"reference": "cc181005cf548bfd8a4896383bb825d859259f95"
|
"reference": "56c79f16a6ae17e42089c06a2144467acc35348a"
|
||||||
},
|
},
|
||||||
"dist": {
|
"dist": {
|
||||||
"type": "zip",
|
"type": "zip",
|
||||||
"url": "https://api.github.com/repos/phpseclib/phpseclib/zipball/cc181005cf548bfd8a4896383bb825d859259f95",
|
"url": "https://api.github.com/repos/phpseclib/phpseclib/zipball/56c79f16a6ae17e42089c06a2144467acc35348a",
|
||||||
"reference": "cc181005cf548bfd8a4896383bb825d859259f95",
|
"reference": "56c79f16a6ae17e42089c06a2144467acc35348a",
|
||||||
"shasum": ""
|
"shasum": ""
|
||||||
},
|
},
|
||||||
"require": {
|
"require": {
|
||||||
|
@ -3201,7 +3186,7 @@
|
||||||
"type": "tidelift"
|
"type": "tidelift"
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"time": "2023-03-05T17:13:09+00:00"
|
"time": "2023-11-27T11:13:31+00:00"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "pragmarx/google2fa",
|
"name": "pragmarx/google2fa",
|
||||||
|
@ -3478,22 +3463,27 @@
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "psr/container",
|
"name": "psr/container",
|
||||||
"version": "1.1.1",
|
"version": "2.0.2",
|
||||||
"source": {
|
"source": {
|
||||||
"type": "git",
|
"type": "git",
|
||||||
"url": "https://github.com/php-fig/container.git",
|
"url": "https://github.com/php-fig/container.git",
|
||||||
"reference": "8622567409010282b7aeebe4bb841fe98b58dcaf"
|
"reference": "c71ecc56dfe541dbd90c5360474fbc405f8d5963"
|
||||||
},
|
},
|
||||||
"dist": {
|
"dist": {
|
||||||
"type": "zip",
|
"type": "zip",
|
||||||
"url": "https://api.github.com/repos/php-fig/container/zipball/8622567409010282b7aeebe4bb841fe98b58dcaf",
|
"url": "https://api.github.com/repos/php-fig/container/zipball/c71ecc56dfe541dbd90c5360474fbc405f8d5963",
|
||||||
"reference": "8622567409010282b7aeebe4bb841fe98b58dcaf",
|
"reference": "c71ecc56dfe541dbd90c5360474fbc405f8d5963",
|
||||||
"shasum": ""
|
"shasum": ""
|
||||||
},
|
},
|
||||||
"require": {
|
"require": {
|
||||||
"php": ">=7.2.0"
|
"php": ">=7.4.0"
|
||||||
},
|
},
|
||||||
"type": "library",
|
"type": "library",
|
||||||
|
"extra": {
|
||||||
|
"branch-alias": {
|
||||||
|
"dev-master": "2.0.x-dev"
|
||||||
|
}
|
||||||
|
},
|
||||||
"autoload": {
|
"autoload": {
|
||||||
"psr-4": {
|
"psr-4": {
|
||||||
"Psr\\Container\\": "src/"
|
"Psr\\Container\\": "src/"
|
||||||
|
@ -3518,20 +3508,20 @@
|
||||||
"container-interop",
|
"container-interop",
|
||||||
"psr"
|
"psr"
|
||||||
],
|
],
|
||||||
"time": "2021-03-05T17:36:06+00:00"
|
"time": "2021-11-05T16:47:00+00:00"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "psr/http-client",
|
"name": "psr/http-client",
|
||||||
"version": "1.0.2",
|
"version": "1.0.3",
|
||||||
"source": {
|
"source": {
|
||||||
"type": "git",
|
"type": "git",
|
||||||
"url": "https://github.com/php-fig/http-client.git",
|
"url": "https://github.com/php-fig/http-client.git",
|
||||||
"reference": "0955afe48220520692d2d09f7ab7e0f93ffd6a31"
|
"reference": "bb5906edc1c324c9a05aa0873d40117941e5fa90"
|
||||||
},
|
},
|
||||||
"dist": {
|
"dist": {
|
||||||
"type": "zip",
|
"type": "zip",
|
||||||
"url": "https://api.github.com/repos/php-fig/http-client/zipball/0955afe48220520692d2d09f7ab7e0f93ffd6a31",
|
"url": "https://api.github.com/repos/php-fig/http-client/zipball/bb5906edc1c324c9a05aa0873d40117941e5fa90",
|
||||||
"reference": "0955afe48220520692d2d09f7ab7e0f93ffd6a31",
|
"reference": "bb5906edc1c324c9a05aa0873d40117941e5fa90",
|
||||||
"shasum": ""
|
"shasum": ""
|
||||||
},
|
},
|
||||||
"require": {
|
"require": {
|
||||||
|
@ -3567,7 +3557,7 @@
|
||||||
"psr",
|
"psr",
|
||||||
"psr-18"
|
"psr-18"
|
||||||
],
|
],
|
||||||
"time": "2023-04-10T20:12:12+00:00"
|
"time": "2023-09-23T14:17:50+00:00"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "psr/http-factory",
|
"name": "psr/http-factory",
|
||||||
|
@ -3811,16 +3801,16 @@
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "smarty/smarty",
|
"name": "smarty/smarty",
|
||||||
"version": "v4.3.1",
|
"version": "v4.3.4",
|
||||||
"source": {
|
"source": {
|
||||||
"type": "git",
|
"type": "git",
|
||||||
"url": "https://github.com/smarty-php/smarty.git",
|
"url": "https://github.com/smarty-php/smarty.git",
|
||||||
"reference": "e28cb0915b4e3749bf57d4ebae2984e25395cfe5"
|
"reference": "3931d8f54b8f7a4ffab538582d34d4397ba8daa5"
|
||||||
},
|
},
|
||||||
"dist": {
|
"dist": {
|
||||||
"type": "zip",
|
"type": "zip",
|
||||||
"url": "https://api.github.com/repos/smarty-php/smarty/zipball/e28cb0915b4e3749bf57d4ebae2984e25395cfe5",
|
"url": "https://api.github.com/repos/smarty-php/smarty/zipball/3931d8f54b8f7a4ffab538582d34d4397ba8daa5",
|
||||||
"reference": "e28cb0915b4e3749bf57d4ebae2984e25395cfe5",
|
"reference": "3931d8f54b8f7a4ffab538582d34d4397ba8daa5",
|
||||||
"shasum": ""
|
"shasum": ""
|
||||||
},
|
},
|
||||||
"require": {
|
"require": {
|
||||||
|
@ -3868,7 +3858,7 @@
|
||||||
"keywords": [
|
"keywords": [
|
||||||
"templating"
|
"templating"
|
||||||
],
|
],
|
||||||
"time": "2023-03-28T19:47:03+00:00"
|
"time": "2023-09-14T10:59:08+00:00"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "spomky-labs/base64url",
|
"name": "spomky-labs/base64url",
|
||||||
|
@ -3933,16 +3923,16 @@
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "symfony/polyfill-intl-idn",
|
"name": "symfony/polyfill-intl-idn",
|
||||||
"version": "v1.27.0",
|
"version": "v1.28.0",
|
||||||
"source": {
|
"source": {
|
||||||
"type": "git",
|
"type": "git",
|
||||||
"url": "https://github.com/symfony/polyfill-intl-idn.git",
|
"url": "https://github.com/symfony/polyfill-intl-idn.git",
|
||||||
"reference": "639084e360537a19f9ee352433b84ce831f3d2da"
|
"reference": "ecaafce9f77234a6a449d29e49267ba10499116d"
|
||||||
},
|
},
|
||||||
"dist": {
|
"dist": {
|
||||||
"type": "zip",
|
"type": "zip",
|
||||||
"url": "https://api.github.com/repos/symfony/polyfill-intl-idn/zipball/639084e360537a19f9ee352433b84ce831f3d2da",
|
"url": "https://api.github.com/repos/symfony/polyfill-intl-idn/zipball/ecaafce9f77234a6a449d29e49267ba10499116d",
|
||||||
"reference": "639084e360537a19f9ee352433b84ce831f3d2da",
|
"reference": "ecaafce9f77234a6a449d29e49267ba10499116d",
|
||||||
"shasum": ""
|
"shasum": ""
|
||||||
},
|
},
|
||||||
"require": {
|
"require": {
|
||||||
|
@ -3956,7 +3946,7 @@
|
||||||
"type": "library",
|
"type": "library",
|
||||||
"extra": {
|
"extra": {
|
||||||
"branch-alias": {
|
"branch-alias": {
|
||||||
"dev-main": "1.27-dev"
|
"dev-main": "1.28-dev"
|
||||||
},
|
},
|
||||||
"thanks": {
|
"thanks": {
|
||||||
"name": "symfony/polyfill",
|
"name": "symfony/polyfill",
|
||||||
|
@ -4013,20 +4003,20 @@
|
||||||
"type": "tidelift"
|
"type": "tidelift"
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"time": "2022-11-03T14:55:06+00:00"
|
"time": "2023-01-26T09:30:37+00:00"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "symfony/polyfill-intl-normalizer",
|
"name": "symfony/polyfill-intl-normalizer",
|
||||||
"version": "v1.27.0",
|
"version": "v1.28.0",
|
||||||
"source": {
|
"source": {
|
||||||
"type": "git",
|
"type": "git",
|
||||||
"url": "https://github.com/symfony/polyfill-intl-normalizer.git",
|
"url": "https://github.com/symfony/polyfill-intl-normalizer.git",
|
||||||
"reference": "19bd1e4fcd5b91116f14d8533c57831ed00571b6"
|
"reference": "8c4ad05dd0120b6a53c1ca374dca2ad0a1c4ed92"
|
||||||
},
|
},
|
||||||
"dist": {
|
"dist": {
|
||||||
"type": "zip",
|
"type": "zip",
|
||||||
"url": "https://api.github.com/repos/symfony/polyfill-intl-normalizer/zipball/19bd1e4fcd5b91116f14d8533c57831ed00571b6",
|
"url": "https://api.github.com/repos/symfony/polyfill-intl-normalizer/zipball/8c4ad05dd0120b6a53c1ca374dca2ad0a1c4ed92",
|
||||||
"reference": "19bd1e4fcd5b91116f14d8533c57831ed00571b6",
|
"reference": "8c4ad05dd0120b6a53c1ca374dca2ad0a1c4ed92",
|
||||||
"shasum": ""
|
"shasum": ""
|
||||||
},
|
},
|
||||||
"require": {
|
"require": {
|
||||||
|
@ -4038,7 +4028,7 @@
|
||||||
"type": "library",
|
"type": "library",
|
||||||
"extra": {
|
"extra": {
|
||||||
"branch-alias": {
|
"branch-alias": {
|
||||||
"dev-main": "1.27-dev"
|
"dev-main": "1.28-dev"
|
||||||
},
|
},
|
||||||
"thanks": {
|
"thanks": {
|
||||||
"name": "symfony/polyfill",
|
"name": "symfony/polyfill",
|
||||||
|
@ -4094,7 +4084,7 @@
|
||||||
"type": "tidelift"
|
"type": "tidelift"
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"time": "2022-11-03T14:55:06+00:00"
|
"time": "2023-01-26T09:26:14+00:00"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "symfony/polyfill-php56",
|
"name": "symfony/polyfill-php56",
|
||||||
|
@ -4163,16 +4153,16 @@
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "symfony/polyfill-php72",
|
"name": "symfony/polyfill-php72",
|
||||||
"version": "v1.27.0",
|
"version": "v1.28.0",
|
||||||
"source": {
|
"source": {
|
||||||
"type": "git",
|
"type": "git",
|
||||||
"url": "https://github.com/symfony/polyfill-php72.git",
|
"url": "https://github.com/symfony/polyfill-php72.git",
|
||||||
"reference": "869329b1e9894268a8a61dabb69153029b7a8c97"
|
"reference": "70f4aebd92afca2f865444d30a4d2151c13c3179"
|
||||||
},
|
},
|
||||||
"dist": {
|
"dist": {
|
||||||
"type": "zip",
|
"type": "zip",
|
||||||
"url": "https://api.github.com/repos/symfony/polyfill-php72/zipball/869329b1e9894268a8a61dabb69153029b7a8c97",
|
"url": "https://api.github.com/repos/symfony/polyfill-php72/zipball/70f4aebd92afca2f865444d30a4d2151c13c3179",
|
||||||
"reference": "869329b1e9894268a8a61dabb69153029b7a8c97",
|
"reference": "70f4aebd92afca2f865444d30a4d2151c13c3179",
|
||||||
"shasum": ""
|
"shasum": ""
|
||||||
},
|
},
|
||||||
"require": {
|
"require": {
|
||||||
|
@ -4181,7 +4171,7 @@
|
||||||
"type": "library",
|
"type": "library",
|
||||||
"extra": {
|
"extra": {
|
||||||
"branch-alias": {
|
"branch-alias": {
|
||||||
"dev-main": "1.27-dev"
|
"dev-main": "1.28-dev"
|
||||||
},
|
},
|
||||||
"thanks": {
|
"thanks": {
|
||||||
"name": "symfony/polyfill",
|
"name": "symfony/polyfill",
|
||||||
|
@ -4232,7 +4222,7 @@
|
||||||
"type": "tidelift"
|
"type": "tidelift"
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"time": "2022-11-03T14:55:06+00:00"
|
"time": "2023-01-26T09:26:14+00:00"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "ua-parser/uap-php",
|
"name": "ua-parser/uap-php",
|
||||||
|
@ -4903,38 +4893,38 @@
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "mockery/mockery",
|
"name": "mockery/mockery",
|
||||||
"version": "1.5.1",
|
"version": "1.6.7",
|
||||||
"source": {
|
"source": {
|
||||||
"type": "git",
|
"type": "git",
|
||||||
"url": "https://github.com/mockery/mockery.git",
|
"url": "https://github.com/mockery/mockery.git",
|
||||||
"reference": "e92dcc83d5a51851baf5f5591d32cb2b16e3684e"
|
"reference": "0cc058854b3195ba21dc6b1f7b1f60f4ef3a9c06"
|
||||||
},
|
},
|
||||||
"dist": {
|
"dist": {
|
||||||
"type": "zip",
|
"type": "zip",
|
||||||
"url": "https://api.github.com/repos/mockery/mockery/zipball/e92dcc83d5a51851baf5f5591d32cb2b16e3684e",
|
"url": "https://api.github.com/repos/mockery/mockery/zipball/0cc058854b3195ba21dc6b1f7b1f60f4ef3a9c06",
|
||||||
"reference": "e92dcc83d5a51851baf5f5591d32cb2b16e3684e",
|
"reference": "0cc058854b3195ba21dc6b1f7b1f60f4ef3a9c06",
|
||||||
"shasum": ""
|
"shasum": ""
|
||||||
},
|
},
|
||||||
"require": {
|
"require": {
|
||||||
"hamcrest/hamcrest-php": "^2.0.1",
|
"hamcrest/hamcrest-php": "^2.0.1",
|
||||||
"lib-pcre": ">=7.0",
|
"lib-pcre": ">=7.0",
|
||||||
"php": "^7.3 || ^8.0"
|
"php": ">=7.3"
|
||||||
},
|
},
|
||||||
"conflict": {
|
"conflict": {
|
||||||
"phpunit/phpunit": "<8.0"
|
"phpunit/phpunit": "<8.0"
|
||||||
},
|
},
|
||||||
"require-dev": {
|
"require-dev": {
|
||||||
"phpunit/phpunit": "^8.5 || ^9.3"
|
"phpunit/phpunit": "^8.5 || ^9.6.10",
|
||||||
|
"symplify/easy-coding-standard": "^12.0.8"
|
||||||
},
|
},
|
||||||
"type": "library",
|
"type": "library",
|
||||||
"extra": {
|
|
||||||
"branch-alias": {
|
|
||||||
"dev-master": "1.4.x-dev"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"autoload": {
|
"autoload": {
|
||||||
"psr-0": {
|
"files": [
|
||||||
"Mockery": "library/"
|
"library/helpers.php",
|
||||||
|
"library/Mockery.php"
|
||||||
|
],
|
||||||
|
"psr-4": {
|
||||||
|
"Mockery\\": "library/Mockery"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"notification-url": "https://packagist.org/downloads/",
|
"notification-url": "https://packagist.org/downloads/",
|
||||||
|
@ -4945,12 +4935,20 @@
|
||||||
{
|
{
|
||||||
"name": "Pádraic Brady",
|
"name": "Pádraic Brady",
|
||||||
"email": "padraic.brady@gmail.com",
|
"email": "padraic.brady@gmail.com",
|
||||||
"homepage": "http://blog.astrumfutura.com"
|
"homepage": "https://github.com/padraic",
|
||||||
|
"role": "Author"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "Dave Marshall",
|
"name": "Dave Marshall",
|
||||||
"email": "dave.marshall@atstsolutions.co.uk",
|
"email": "dave.marshall@atstsolutions.co.uk",
|
||||||
"homepage": "http://davedevelopment.co.uk"
|
"homepage": "https://davedevelopment.co.uk",
|
||||||
|
"role": "Developer"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "Nathanael Esayeas",
|
||||||
|
"email": "nathanael.esayeas@protonmail.com",
|
||||||
|
"homepage": "https://github.com/ghostwriter",
|
||||||
|
"role": "Lead Developer"
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"description": "Mockery is a simple yet flexible PHP mock object framework",
|
"description": "Mockery is a simple yet flexible PHP mock object framework",
|
||||||
|
@ -4967,7 +4965,7 @@
|
||||||
"test double",
|
"test double",
|
||||||
"testing"
|
"testing"
|
||||||
],
|
],
|
||||||
"time": "2022-09-07T15:32:08+00:00"
|
"time": "2023-12-10T02:24:34+00:00"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "myclabs/deep-copy",
|
"name": "myclabs/deep-copy",
|
||||||
|
@ -5026,16 +5024,16 @@
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "nikic/php-parser",
|
"name": "nikic/php-parser",
|
||||||
"version": "v4.15.4",
|
"version": "v4.18.0",
|
||||||
"source": {
|
"source": {
|
||||||
"type": "git",
|
"type": "git",
|
||||||
"url": "https://github.com/nikic/PHP-Parser.git",
|
"url": "https://github.com/nikic/PHP-Parser.git",
|
||||||
"reference": "6bb5176bc4af8bcb7d926f88718db9b96a2d4290"
|
"reference": "1bcbb2179f97633e98bbbc87044ee2611c7d7999"
|
||||||
},
|
},
|
||||||
"dist": {
|
"dist": {
|
||||||
"type": "zip",
|
"type": "zip",
|
||||||
"url": "https://api.github.com/repos/nikic/PHP-Parser/zipball/6bb5176bc4af8bcb7d926f88718db9b96a2d4290",
|
"url": "https://api.github.com/repos/nikic/PHP-Parser/zipball/1bcbb2179f97633e98bbbc87044ee2611c7d7999",
|
||||||
"reference": "6bb5176bc4af8bcb7d926f88718db9b96a2d4290",
|
"reference": "1bcbb2179f97633e98bbbc87044ee2611c7d7999",
|
||||||
"shasum": ""
|
"shasum": ""
|
||||||
},
|
},
|
||||||
"require": {
|
"require": {
|
||||||
|
@ -5074,7 +5072,7 @@
|
||||||
"parser",
|
"parser",
|
||||||
"php"
|
"php"
|
||||||
],
|
],
|
||||||
"time": "2023-03-05T19:49:14+00:00"
|
"time": "2023-12-10T21:03:43+00:00"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "phar-io/manifest",
|
"name": "phar-io/manifest",
|
||||||
|
@ -5181,16 +5179,16 @@
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "phpunit/php-code-coverage",
|
"name": "phpunit/php-code-coverage",
|
||||||
"version": "9.2.26",
|
"version": "9.2.29",
|
||||||
"source": {
|
"source": {
|
||||||
"type": "git",
|
"type": "git",
|
||||||
"url": "https://github.com/sebastianbergmann/php-code-coverage.git",
|
"url": "https://github.com/sebastianbergmann/php-code-coverage.git",
|
||||||
"reference": "443bc6912c9bd5b409254a40f4b0f4ced7c80ea1"
|
"reference": "6a3a87ac2bbe33b25042753df8195ba4aa534c76"
|
||||||
},
|
},
|
||||||
"dist": {
|
"dist": {
|
||||||
"type": "zip",
|
"type": "zip",
|
||||||
"url": "https://api.github.com/repos/sebastianbergmann/php-code-coverage/zipball/443bc6912c9bd5b409254a40f4b0f4ced7c80ea1",
|
"url": "https://api.github.com/repos/sebastianbergmann/php-code-coverage/zipball/6a3a87ac2bbe33b25042753df8195ba4aa534c76",
|
||||||
"reference": "443bc6912c9bd5b409254a40f4b0f4ced7c80ea1",
|
"reference": "6a3a87ac2bbe33b25042753df8195ba4aa534c76",
|
||||||
"shasum": ""
|
"shasum": ""
|
||||||
},
|
},
|
||||||
"require": {
|
"require": {
|
||||||
|
@ -5250,7 +5248,7 @@
|
||||||
"type": "github"
|
"type": "github"
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"time": "2023-03-06T12:58:08+00:00"
|
"time": "2023-09-19T04:57:46+00:00"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "phpunit/php-file-iterator",
|
"name": "phpunit/php-file-iterator",
|
||||||
|
@ -5479,16 +5477,16 @@
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "phpunit/phpunit",
|
"name": "phpunit/phpunit",
|
||||||
"version": "9.6.7",
|
"version": "9.6.15",
|
||||||
"source": {
|
"source": {
|
||||||
"type": "git",
|
"type": "git",
|
||||||
"url": "https://github.com/sebastianbergmann/phpunit.git",
|
"url": "https://github.com/sebastianbergmann/phpunit.git",
|
||||||
"reference": "c993f0d3b0489ffc42ee2fe0bd645af1538a63b2"
|
"reference": "05017b80304e0eb3f31d90194a563fd53a6021f1"
|
||||||
},
|
},
|
||||||
"dist": {
|
"dist": {
|
||||||
"type": "zip",
|
"type": "zip",
|
||||||
"url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/c993f0d3b0489ffc42ee2fe0bd645af1538a63b2",
|
"url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/05017b80304e0eb3f31d90194a563fd53a6021f1",
|
||||||
"reference": "c993f0d3b0489ffc42ee2fe0bd645af1538a63b2",
|
"reference": "05017b80304e0eb3f31d90194a563fd53a6021f1",
|
||||||
"shasum": ""
|
"shasum": ""
|
||||||
},
|
},
|
||||||
"require": {
|
"require": {
|
||||||
|
@ -5503,7 +5501,7 @@
|
||||||
"phar-io/manifest": "^2.0.3",
|
"phar-io/manifest": "^2.0.3",
|
||||||
"phar-io/version": "^3.0.2",
|
"phar-io/version": "^3.0.2",
|
||||||
"php": ">=7.3",
|
"php": ">=7.3",
|
||||||
"phpunit/php-code-coverage": "^9.2.13",
|
"phpunit/php-code-coverage": "^9.2.28",
|
||||||
"phpunit/php-file-iterator": "^3.0.5",
|
"phpunit/php-file-iterator": "^3.0.5",
|
||||||
"phpunit/php-invoker": "^3.1.1",
|
"phpunit/php-invoker": "^3.1.1",
|
||||||
"phpunit/php-text-template": "^2.0.3",
|
"phpunit/php-text-template": "^2.0.3",
|
||||||
|
@ -5573,7 +5571,7 @@
|
||||||
"type": "tidelift"
|
"type": "tidelift"
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"time": "2023-04-14T08:58:40+00:00"
|
"time": "2023-12-01T16:55:19+00:00"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "sebastian/cli-parser",
|
"name": "sebastian/cli-parser",
|
||||||
|
@ -5855,16 +5853,16 @@
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "sebastian/diff",
|
"name": "sebastian/diff",
|
||||||
"version": "4.0.4",
|
"version": "4.0.5",
|
||||||
"source": {
|
"source": {
|
||||||
"type": "git",
|
"type": "git",
|
||||||
"url": "https://github.com/sebastianbergmann/diff.git",
|
"url": "https://github.com/sebastianbergmann/diff.git",
|
||||||
"reference": "3461e3fccc7cfdfc2720be910d3bd73c69be590d"
|
"reference": "74be17022044ebaaecfdf0c5cd504fc9cd5a7131"
|
||||||
},
|
},
|
||||||
"dist": {
|
"dist": {
|
||||||
"type": "zip",
|
"type": "zip",
|
||||||
"url": "https://api.github.com/repos/sebastianbergmann/diff/zipball/3461e3fccc7cfdfc2720be910d3bd73c69be590d",
|
"url": "https://api.github.com/repos/sebastianbergmann/diff/zipball/74be17022044ebaaecfdf0c5cd504fc9cd5a7131",
|
||||||
"reference": "3461e3fccc7cfdfc2720be910d3bd73c69be590d",
|
"reference": "74be17022044ebaaecfdf0c5cd504fc9cd5a7131",
|
||||||
"shasum": ""
|
"shasum": ""
|
||||||
},
|
},
|
||||||
"require": {
|
"require": {
|
||||||
|
@ -5913,7 +5911,7 @@
|
||||||
"type": "github"
|
"type": "github"
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"time": "2020-10-26T13:10:38+00:00"
|
"time": "2023-05-07T05:35:17+00:00"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "sebastian/environment",
|
"name": "sebastian/environment",
|
||||||
|
@ -6049,16 +6047,16 @@
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "sebastian/global-state",
|
"name": "sebastian/global-state",
|
||||||
"version": "5.0.5",
|
"version": "5.0.6",
|
||||||
"source": {
|
"source": {
|
||||||
"type": "git",
|
"type": "git",
|
||||||
"url": "https://github.com/sebastianbergmann/global-state.git",
|
"url": "https://github.com/sebastianbergmann/global-state.git",
|
||||||
"reference": "0ca8db5a5fc9c8646244e629625ac486fa286bf2"
|
"reference": "bde739e7565280bda77be70044ac1047bc007e34"
|
||||||
},
|
},
|
||||||
"dist": {
|
"dist": {
|
||||||
"type": "zip",
|
"type": "zip",
|
||||||
"url": "https://api.github.com/repos/sebastianbergmann/global-state/zipball/0ca8db5a5fc9c8646244e629625ac486fa286bf2",
|
"url": "https://api.github.com/repos/sebastianbergmann/global-state/zipball/bde739e7565280bda77be70044ac1047bc007e34",
|
||||||
"reference": "0ca8db5a5fc9c8646244e629625ac486fa286bf2",
|
"reference": "bde739e7565280bda77be70044ac1047bc007e34",
|
||||||
"shasum": ""
|
"shasum": ""
|
||||||
},
|
},
|
||||||
"require": {
|
"require": {
|
||||||
|
@ -6105,7 +6103,7 @@
|
||||||
"type": "github"
|
"type": "github"
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"time": "2022-02-14T08:28:10+00:00"
|
"time": "2023-08-02T09:26:13+00:00"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "sebastian/lines-of-code",
|
"name": "sebastian/lines-of-code",
|
||||||
|
@ -6477,16 +6475,16 @@
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "theseer/tokenizer",
|
"name": "theseer/tokenizer",
|
||||||
"version": "1.2.1",
|
"version": "1.2.2",
|
||||||
"source": {
|
"source": {
|
||||||
"type": "git",
|
"type": "git",
|
||||||
"url": "https://github.com/theseer/tokenizer.git",
|
"url": "https://github.com/theseer/tokenizer.git",
|
||||||
"reference": "34a41e998c2183e22995f158c581e7b5e755ab9e"
|
"reference": "b2ad5003ca10d4ee50a12da31de12a5774ba6b96"
|
||||||
},
|
},
|
||||||
"dist": {
|
"dist": {
|
||||||
"type": "zip",
|
"type": "zip",
|
||||||
"url": "https://api.github.com/repos/theseer/tokenizer/zipball/34a41e998c2183e22995f158c581e7b5e755ab9e",
|
"url": "https://api.github.com/repos/theseer/tokenizer/zipball/b2ad5003ca10d4ee50a12da31de12a5774ba6b96",
|
||||||
"reference": "34a41e998c2183e22995f158c581e7b5e755ab9e",
|
"reference": "b2ad5003ca10d4ee50a12da31de12a5774ba6b96",
|
||||||
"shasum": ""
|
"shasum": ""
|
||||||
},
|
},
|
||||||
"require": {
|
"require": {
|
||||||
|
@ -6519,7 +6517,7 @@
|
||||||
"type": "github"
|
"type": "github"
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"time": "2021-07-28T10:34:58+00:00"
|
"time": "2023-11-20T00:12:19+00:00"
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"aliases": [],
|
"aliases": [],
|
||||||
|
@ -6530,7 +6528,7 @@
|
||||||
"prefer-stable": false,
|
"prefer-stable": false,
|
||||||
"prefer-lowest": false,
|
"prefer-lowest": false,
|
||||||
"platform": {
|
"platform": {
|
||||||
"php": ">=7.3",
|
"php": ">=7.4",
|
||||||
"ext-ctype": "*",
|
"ext-ctype": "*",
|
||||||
"ext-curl": "*",
|
"ext-curl": "*",
|
||||||
"ext-dom": "*",
|
"ext-dom": "*",
|
||||||
|
@ -6547,7 +6545,7 @@
|
||||||
},
|
},
|
||||||
"platform-dev": [],
|
"platform-dev": [],
|
||||||
"platform-overrides": {
|
"platform-overrides": {
|
||||||
"php": "7.3"
|
"php": "7.4"
|
||||||
},
|
},
|
||||||
"plugin-api-version": "1.1.0"
|
"plugin-api-version": "1.1.0"
|
||||||
}
|
}
|
||||||
|
|
129
database.sql
129
database.sql
|
@ -1,6 +1,6 @@
|
||||||
-- ------------------------------------------
|
-- ------------------------------------------
|
||||||
-- Friendica 2023.09-dev (Giant Rhubarb)
|
-- Friendica 2024.03-dev (Yellow Archangel)
|
||||||
-- DB_UPDATE_VERSION 1534
|
-- DB_UPDATE_VERSION 1545
|
||||||
-- ------------------------------------------
|
-- ------------------------------------------
|
||||||
|
|
||||||
|
|
||||||
|
@ -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',
|
`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',
|
`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',
|
`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',
|
`notify-flags` smallint unsigned NOT NULL DEFAULT 65535 COMMENT 'email notification options',
|
||||||
`page-flags` tinyint unsigned NOT NULL DEFAULT 0 COMMENT 'page/profile type',
|
`page-flags` tinyint unsigned NOT NULL DEFAULT 0 COMMENT 'page/profile type',
|
||||||
`account-type` tinyint unsigned NOT NULL DEFAULT 0 COMMENT '',
|
`account-type` tinyint unsigned NOT NULL DEFAULT 0 COMMENT '',
|
||||||
|
@ -492,6 +490,26 @@ CREATE TABLE IF NOT EXISTS `cache` (
|
||||||
INDEX `k_expires` (`k`,`expires`)
|
INDEX `k_expires` (`k`,`expires`)
|
||||||
) DEFAULT COLLATE utf8mb4_general_ci COMMENT='Stores temporary data';
|
) DEFAULT COLLATE utf8mb4_general_ci COMMENT='Stores temporary data';
|
||||||
|
|
||||||
|
--
|
||||||
|
-- TABLE channel
|
||||||
|
--
|
||||||
|
CREATE TABLE IF NOT EXISTS `channel` (
|
||||||
|
`id` int unsigned NOT NULL auto_increment COMMENT '',
|
||||||
|
`uid` mediumint unsigned NOT NULL COMMENT 'User id',
|
||||||
|
`label` varchar(64) NOT NULL COMMENT 'Channel label',
|
||||||
|
`description` varchar(64) COMMENT 'Channel description',
|
||||||
|
`circle` int COMMENT 'Circle or channel that this channel is based on',
|
||||||
|
`access-key` varchar(1) COMMENT 'Access key',
|
||||||
|
`include-tags` varchar(1023) COMMENT 'Comma separated list of tags that will be included in the 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',
|
||||||
|
PRIMARY KEY(`id`),
|
||||||
|
INDEX `uid` (`uid`),
|
||||||
|
FOREIGN KEY (`uid`) REFERENCES `user` (`uid`) ON UPDATE RESTRICT ON DELETE CASCADE
|
||||||
|
) DEFAULT COLLATE utf8mb4_general_ci COMMENT='User defined Channels';
|
||||||
|
|
||||||
--
|
--
|
||||||
-- TABLE config
|
-- TABLE config
|
||||||
--
|
--
|
||||||
|
@ -1217,6 +1235,23 @@ CREATE TABLE IF NOT EXISTS `post-category` (
|
||||||
FOREIGN KEY (`tid`) REFERENCES `tag` (`id`) ON UPDATE RESTRICT ON DELETE RESTRICT
|
FOREIGN KEY (`tid`) REFERENCES `tag` (`id`) ON UPDATE RESTRICT ON DELETE RESTRICT
|
||||||
) DEFAULT COLLATE utf8mb4_general_ci COMMENT='post relation to categories';
|
) 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
|
-- TABLE post-collection
|
||||||
--
|
--
|
||||||
|
@ -1309,6 +1344,7 @@ CREATE TABLE IF NOT EXISTS `post-engagement` (
|
||||||
`contact-type` tinyint NOT NULL DEFAULT 0 COMMENT 'Person, organisation, news, community, relay',
|
`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',
|
`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` varbinary(128) COMMENT 'Language information about this post',
|
||||||
|
`searchtext` mediumtext COMMENT 'Simplified text for the full text search',
|
||||||
`created` datetime COMMENT '',
|
`created` datetime COMMENT '',
|
||||||
`restricted` boolean NOT NULL DEFAULT '0' COMMENT 'If true, this post is either unlisted or not from a federated network',
|
`restricted` boolean NOT NULL DEFAULT '0' COMMENT 'If true, this post is either unlisted or not from a federated network',
|
||||||
`comments` mediumint unsigned COMMENT 'Number of comments',
|
`comments` mediumint unsigned COMMENT 'Number of comments',
|
||||||
|
@ -1316,6 +1352,7 @@ CREATE TABLE IF NOT EXISTS `post-engagement` (
|
||||||
PRIMARY KEY(`uri-id`),
|
PRIMARY KEY(`uri-id`),
|
||||||
INDEX `owner-id` (`owner-id`),
|
INDEX `owner-id` (`owner-id`),
|
||||||
INDEX `created` (`created`),
|
INDEX `created` (`created`),
|
||||||
|
FULLTEXT INDEX `searchtext` (`searchtext`),
|
||||||
FOREIGN KEY (`uri-id`) REFERENCES `item-uri` (`id`) ON UPDATE RESTRICT ON DELETE CASCADE,
|
FOREIGN KEY (`uri-id`) REFERENCES `item-uri` (`id`) ON UPDATE RESTRICT ON DELETE CASCADE,
|
||||||
FOREIGN KEY (`owner-id`) REFERENCES `contact` (`id`) ON UPDATE RESTRICT ON DELETE CASCADE
|
FOREIGN KEY (`owner-id`) REFERENCES `contact` (`id`) ON UPDATE RESTRICT ON DELETE CASCADE
|
||||||
) DEFAULT COLLATE utf8mb4_general_ci COMMENT='Engagement data per post';
|
) DEFAULT COLLATE utf8mb4_general_ci COMMENT='Engagement data per post';
|
||||||
|
@ -1513,7 +1550,8 @@ CREATE TABLE IF NOT EXISTS `post-user` (
|
||||||
INDEX `event-id` (`event-id`),
|
INDEX `event-id` (`event-id`),
|
||||||
INDEX `psid` (`psid`),
|
INDEX `psid` (`psid`),
|
||||||
INDEX `author-id_uid` (`author-id`,`uid`),
|
INDEX `author-id_uid` (`author-id`,`uid`),
|
||||||
INDEX `author-id_received` (`author-id`,`received`),
|
INDEX `author-id_created` (`author-id`,`created`),
|
||||||
|
INDEX `owner-id_created` (`owner-id`,`created`),
|
||||||
INDEX `parent-uri-id_uid` (`parent-uri-id`,`uid`),
|
INDEX `parent-uri-id_uid` (`parent-uri-id`,`uid`),
|
||||||
INDEX `uid_wall_received` (`uid`,`wall`,`received`),
|
INDEX `uid_wall_received` (`uid`,`wall`,`received`),
|
||||||
INDEX `uid_contactid` (`uid`,`contact-id`),
|
INDEX `uid_contactid` (`uid`,`contact-id`),
|
||||||
|
@ -1574,11 +1612,17 @@ CREATE TABLE IF NOT EXISTS `post-thread-user` (
|
||||||
INDEX `post-user-id` (`post-user-id`),
|
INDEX `post-user-id` (`post-user-id`),
|
||||||
INDEX `commented` (`commented`),
|
INDEX `commented` (`commented`),
|
||||||
INDEX `received` (`received`),
|
INDEX `received` (`received`),
|
||||||
|
INDEX `author-id_created` (`author-id`,`created`),
|
||||||
|
INDEX `owner-id_created` (`owner-id`,`created`),
|
||||||
INDEX `uid_received` (`uid`,`received`),
|
INDEX `uid_received` (`uid`,`received`),
|
||||||
INDEX `uid_wall_received` (`uid`,`wall`,`received`),
|
INDEX `uid_wall_received` (`uid`,`wall`,`received`),
|
||||||
INDEX `uid_commented` (`uid`,`commented`),
|
INDEX `uid_commented` (`uid`,`commented`),
|
||||||
|
INDEX `uid_created` (`uid`,`created`),
|
||||||
INDEX `uid_starred` (`uid`,`starred`),
|
INDEX `uid_starred` (`uid`,`starred`),
|
||||||
INDEX `uid_mention` (`uid`,`mention`),
|
INDEX `uid_mention` (`uid`,`mention`),
|
||||||
|
INDEX `contact-id_commented` (`contact-id`,`commented`),
|
||||||
|
INDEX `contact-id_received` (`contact-id`,`received`),
|
||||||
|
INDEX `contact-id_created` (`contact-id`,`created`),
|
||||||
FOREIGN KEY (`uri-id`) REFERENCES `item-uri` (`id`) ON UPDATE RESTRICT ON DELETE CASCADE,
|
FOREIGN KEY (`uri-id`) REFERENCES `item-uri` (`id`) ON UPDATE RESTRICT ON DELETE CASCADE,
|
||||||
FOREIGN KEY (`conversation-id`) REFERENCES `item-uri` (`id`) ON UPDATE RESTRICT ON DELETE CASCADE,
|
FOREIGN KEY (`conversation-id`) REFERENCES `item-uri` (`id`) ON UPDATE RESTRICT ON DELETE CASCADE,
|
||||||
FOREIGN KEY (`owner-id`) REFERENCES `contact` (`id`) ON UPDATE RESTRICT ON DELETE RESTRICT,
|
FOREIGN KEY (`owner-id`) REFERENCES `contact` (`id`) ON UPDATE RESTRICT ON DELETE RESTRICT,
|
||||||
|
@ -1846,6 +1890,16 @@ CREATE TABLE IF NOT EXISTS `subscription` (
|
||||||
FOREIGN KEY (`uid`) REFERENCES `user` (`uid`) ON UPDATE RESTRICT ON DELETE CASCADE
|
FOREIGN KEY (`uid`) REFERENCES `user` (`uid`) ON UPDATE RESTRICT ON DELETE CASCADE
|
||||||
) DEFAULT COLLATE utf8mb4_general_ci COMMENT='Push Subscription for the API';
|
) DEFAULT COLLATE utf8mb4_general_ci COMMENT='Push Subscription for the API';
|
||||||
|
|
||||||
|
--
|
||||||
|
-- TABLE check-full-text-search
|
||||||
|
--
|
||||||
|
CREATE TABLE IF NOT EXISTS `check-full-text-search` (
|
||||||
|
`pid` int unsigned NOT NULL COMMENT 'The ID of the process',
|
||||||
|
`searchtext` mediumtext COMMENT 'Simplified text for the full text search',
|
||||||
|
PRIMARY KEY(`pid`),
|
||||||
|
FULLTEXT INDEX `searchtext` (`searchtext`)
|
||||||
|
) DEFAULT COLLATE utf8mb4_general_ci COMMENT='Check for a full text search match in user defined channels before storing the message in the system';
|
||||||
|
|
||||||
--
|
--
|
||||||
-- TABLE userd
|
-- TABLE userd
|
||||||
--
|
--
|
||||||
|
@ -1970,6 +2024,65 @@ CREATE VIEW `circle-member-view` AS SELECT
|
||||||
INNER JOIN `contact` ON `group_member`.`contact-id` = `contact`.`id`
|
INNER JOIN `contact` ON `group_member`.`contact-id` = `contact`.`id`
|
||||||
INNER JOIN `group` ON `group_member`.`gid` = `group`.`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
|
||||||
|
--
|
||||||
|
DROP VIEW IF EXISTS `post-timeline-view`;
|
||||||
|
CREATE VIEW `post-timeline-view` AS SELECT
|
||||||
|
`post-user`.`uid` AS `uid`,
|
||||||
|
`post-user`.`uri-id` AS `uri-id`,
|
||||||
|
`post-user`.`gravity` AS `gravity`,
|
||||||
|
`post-user`.`created` AS `created`,
|
||||||
|
`post-user`.`edited` AS `edited`,
|
||||||
|
`post-thread-user`.`commented` AS `commented`,
|
||||||
|
`post-user`.`received` AS `received`,
|
||||||
|
`post-thread-user`.`changed` AS `changed`,
|
||||||
|
`post-user`.`private` AS `private`,
|
||||||
|
`post-user`.`visible` AS `visible`,
|
||||||
|
`post-user`.`deleted` AS `deleted`,
|
||||||
|
`post-user`.`origin` AS `origin`,
|
||||||
|
`post-user`.`global` AS `global`,
|
||||||
|
`post-user`.`network` AS `network`,
|
||||||
|
`post-user`.`protocol` AS `protocol`,
|
||||||
|
`post-user`.`vid` AS `vid`,
|
||||||
|
`post-user`.`contact-id` AS `contact-id`,
|
||||||
|
`contact`.`blocked` AS `contact-blocked`,
|
||||||
|
`contact`.`readonly` AS `contact-readonly`,
|
||||||
|
`contact`.`pending` AS `contact-pending`,
|
||||||
|
`contact`.`rel` AS `contact-rel`,
|
||||||
|
`contact`.`uid` AS `contact-uid`,
|
||||||
|
`contact`.`self` AS `self`,
|
||||||
|
`post-user`.`author-id` AS `author-id`,
|
||||||
|
`author`.`blocked` AS `author-blocked`,
|
||||||
|
`author`.`hidden` AS `author-hidden`,
|
||||||
|
`author`.`gsid` AS `author-gsid`,
|
||||||
|
`post-user`.`owner-id` AS `owner-id`,
|
||||||
|
`owner`.`blocked` AS `owner-blocked`,
|
||||||
|
`owner`.`gsid` AS `owner-gsid`,
|
||||||
|
`post-user`.`causer-id` AS `causer-id`,
|
||||||
|
`causer`.`blocked` AS `causer-blocked`,
|
||||||
|
`causer`.`gsid` AS `causer-gsid`
|
||||||
|
FROM `post-user`
|
||||||
|
LEFT JOIN `post-thread-user` ON `post-thread-user`.`uri-id` = `post-user`.`parent-uri-id` AND `post-thread-user`.`uid` = `post-user`.`uid`
|
||||||
|
STRAIGHT_JOIN `contact` ON `contact`.`id` = `post-user`.`contact-id`
|
||||||
|
STRAIGHT_JOIN `contact` AS `author` ON `author`.`id` = `post-user`.`author-id`
|
||||||
|
STRAIGHT_JOIN `contact` AS `owner` ON `owner`.`id` = `post-user`.`owner-id`
|
||||||
|
LEFT JOIN `contact` AS `causer` ON `causer`.`id` = `post-user`.`causer-id`;
|
||||||
|
|
||||||
--
|
--
|
||||||
-- VIEW post-user-view
|
-- VIEW post-user-view
|
||||||
--
|
--
|
||||||
|
@ -2070,6 +2183,7 @@ CREATE VIEW `post-user-view` AS SELECT
|
||||||
`author`.`blocked` AS `author-blocked`,
|
`author`.`blocked` AS `author-blocked`,
|
||||||
`author`.`hidden` AS `author-hidden`,
|
`author`.`hidden` AS `author-hidden`,
|
||||||
`author`.`updated` AS `author-updated`,
|
`author`.`updated` AS `author-updated`,
|
||||||
|
`author`.`contact-type` AS `author-contact-type`,
|
||||||
`author`.`gsid` AS `author-gsid`,
|
`author`.`gsid` AS `author-gsid`,
|
||||||
`author`.`baseurl` AS `author-baseurl`,
|
`author`.`baseurl` AS `author-baseurl`,
|
||||||
`post-user`.`owner-id` AS `owner-id`,
|
`post-user`.`owner-id` AS `owner-id`,
|
||||||
|
@ -2254,6 +2368,7 @@ CREATE VIEW `post-thread-user-view` AS SELECT
|
||||||
`author`.`blocked` AS `author-blocked`,
|
`author`.`blocked` AS `author-blocked`,
|
||||||
`author`.`hidden` AS `author-hidden`,
|
`author`.`hidden` AS `author-hidden`,
|
||||||
`author`.`updated` AS `author-updated`,
|
`author`.`updated` AS `author-updated`,
|
||||||
|
`author`.`contact-type` AS `author-contact-type`,
|
||||||
`author`.`gsid` AS `author-gsid`,
|
`author`.`gsid` AS `author-gsid`,
|
||||||
`post-thread-user`.`owner-id` AS `owner-id`,
|
`post-thread-user`.`owner-id` AS `owner-id`,
|
||||||
`owner`.`uri-id` AS `owner-uri-id`,
|
`owner`.`uri-id` AS `owner-uri-id`,
|
||||||
|
@ -2422,6 +2537,7 @@ CREATE VIEW `post-view` AS SELECT
|
||||||
`author`.`blocked` AS `author-blocked`,
|
`author`.`blocked` AS `author-blocked`,
|
||||||
`author`.`hidden` AS `author-hidden`,
|
`author`.`hidden` AS `author-hidden`,
|
||||||
`author`.`updated` AS `author-updated`,
|
`author`.`updated` AS `author-updated`,
|
||||||
|
`author`.`contact-type` AS `author-contact-type`,
|
||||||
`author`.`gsid` AS `author-gsid`,
|
`author`.`gsid` AS `author-gsid`,
|
||||||
`post`.`owner-id` AS `owner-id`,
|
`post`.`owner-id` AS `owner-id`,
|
||||||
`owner`.`uri-id` AS `owner-uri-id`,
|
`owner`.`uri-id` AS `owner-uri-id`,
|
||||||
|
@ -2567,6 +2683,7 @@ CREATE VIEW `post-thread-view` AS SELECT
|
||||||
`author`.`blocked` AS `author-blocked`,
|
`author`.`blocked` AS `author-blocked`,
|
||||||
`author`.`hidden` AS `author-hidden`,
|
`author`.`hidden` AS `author-hidden`,
|
||||||
`author`.`updated` AS `author-updated`,
|
`author`.`updated` AS `author-updated`,
|
||||||
|
`author`.`contact-type` AS `author-contact-type`,
|
||||||
`author`.`gsid` AS `author-gsid`,
|
`author`.`gsid` AS `author-gsid`,
|
||||||
`post-thread`.`owner-id` AS `owner-id`,
|
`post-thread`.`owner-id` AS `owner-id`,
|
||||||
`owner`.`uri-id` AS `owner-uri-id`,
|
`owner`.`uri-id` AS `owner-uri-id`,
|
||||||
|
@ -2849,8 +2966,6 @@ CREATE VIEW `owner-view` AS SELECT
|
||||||
`user`.`blockwall` AS `blockwall`,
|
`user`.`blockwall` AS `blockwall`,
|
||||||
`user`.`hidewall` AS `hidewall`,
|
`user`.`hidewall` AS `hidewall`,
|
||||||
`user`.`blocktags` AS `blocktags`,
|
`user`.`blocktags` AS `blocktags`,
|
||||||
`user`.`unkmail` AS `unkmail`,
|
|
||||||
`user`.`cntunkmail` AS `cntunkmail`,
|
|
||||||
`user`.`notify-flags` AS `notify-flags`,
|
`user`.`notify-flags` AS `notify-flags`,
|
||||||
`user`.`page-flags` AS `page-flags`,
|
`user`.`page-flags` AS `page-flags`,
|
||||||
`user`.`account-type` AS `account-type`,
|
`user`.`account-type` AS `account-type`,
|
||||||
|
|
|
@ -23,10 +23,10 @@ If you do not have an OpenID address or do not wish to use OpenID, leave this fi
|
||||||
If you have an OpenID account elsewhere and wish to use it, enter the address into this field and click 'Register'.
|
If you have an OpenID account elsewhere and wish to use it, enter the address into this field and click 'Register'.
|
||||||
Friendica will attempt to extract as much information as possible from your OpenID provider and return to this page with those items already filled in.
|
Friendica will attempt to extract as much information as possible from your OpenID provider and return to this page with those items already filled in.
|
||||||
|
|
||||||
### Your Full Name
|
### Your Display Name
|
||||||
|
|
||||||
Please provide your full name **as you would like it to be displayed on this system**.
|
Please provide your display name **as you would like it to be displayed on this system**.
|
||||||
Most people use their real name for this, but you're under no obligation to do so yourself.
|
Some people use their real name for this, but you're under no obligation to do so yourself.
|
||||||
|
|
||||||
### Email Address
|
### Email Address
|
||||||
|
|
||||||
|
|
|
@ -221,6 +221,15 @@ Please note: body contents are bbcode - not HTML
|
||||||
Called when receiving a post from another source. This may also be used to post local activity or system generated messages.
|
Called when receiving a post from another source. This may also be used to post local activity or system generated messages.
|
||||||
`$b` is the item array of information to be stored in the database and the item body is bbcode.
|
`$b` is the item array of information to be stored in the database and the item body is bbcode.
|
||||||
|
|
||||||
|
### detect_languages
|
||||||
|
Called after the language detection. This can be used for alternative language detection methods.
|
||||||
|
`$data` is an array:
|
||||||
|
|
||||||
|
- **text**: The text that is analyzed.
|
||||||
|
- **detected**: (input/output) Array of language codes detected in the related text. The array key is the language code, the array value the probability.
|
||||||
|
- **uri-id**: The Uri-Id of the item.
|
||||||
|
- **author-id**: The id of the author contact.
|
||||||
|
|
||||||
### addon_settings
|
### addon_settings
|
||||||
Called when generating the HTML for the addon settings page.
|
Called when generating the HTML for the addon settings page.
|
||||||
`$data` is an array containing:
|
`$data` is an array containing:
|
||||||
|
@ -800,6 +809,7 @@ Here is a complete list of all hook callbacks with file locations (as of 24-Sep-
|
||||||
|
|
||||||
### src/Model/Item.php
|
### src/Model/Item.php
|
||||||
|
|
||||||
|
Hook::callAll('detect_languages', $item);
|
||||||
Hook::callAll('post_local', $item);
|
Hook::callAll('post_local', $item);
|
||||||
Hook::callAll('post_remote', $item);
|
Hook::callAll('post_remote', $item);
|
||||||
Hook::callAll('post_local_end', $posted_item);
|
Hook::callAll('post_local_end', $posted_item);
|
||||||
|
|
85
doc/Channels.md
Normal file
85
doc/Channels.md
Normal file
|
@ -0,0 +1,85 @@
|
||||||
|
Channels
|
||||||
|
=====
|
||||||
|
|
||||||
|
* [Home](help)
|
||||||
|
|
||||||
|
Channels are a way to discover new content or to display content that you might have missed otherwise.
|
||||||
|
There are several predefined channels, additionally you can create your own channels, based on some rules.
|
||||||
|
Channels only display posts from the last 24 hours (this value can be changed by the admin).
|
||||||
|
|
||||||
|
In the display settings in the section "Timelines" you can define which channels and other timelines you want to see in the "Channels" widget on the network page and which channels should appear in the menu bar at the top of the page.
|
||||||
|
|
||||||
|
Also in the display settings in the section "Channels" you can define all the languages that you want to see in your channels. Here you can select more than one language.
|
||||||
|
|
||||||
|
On the contact page you can define the channel frequency for every contact. The options are:
|
||||||
|
|
||||||
|
* Default frequency: Posts by this contact are displayed in the "for you" channel if you interact often with this contact or if a post reached some level of interaction.
|
||||||
|
* Display all posts of this contact: All posts from this contact will appear on the "for you" channel.
|
||||||
|
* Display only few posts: When a contact creates a lot of posts in a short period, this setting reduces the number of displayed posts in every channel.
|
||||||
|
* Never display posts: Posts from this contact will never be displayed in any channel.
|
||||||
|
|
||||||
|
Predefined Channels
|
||||||
|
---
|
||||||
|
|
||||||
|
* For you: Posts from contacts you interact with and who interact with you. In detail, it consists of:
|
||||||
|
* Posts from people you interact with on a more than average level.
|
||||||
|
* Posts from the accounts that you follow with a more than average number of interactions-
|
||||||
|
* Posts from accounts where you activated "notify on new posts" or where you have set the channel frequency accordingly.
|
||||||
|
* What's Hot: Posts with a more than average number of interactions.
|
||||||
|
* Language: Posts in your language.
|
||||||
|
* Followers: Posts from your followers that you don't follow.
|
||||||
|
* Sharers of sharers: Posts from accounts that are followed by accounts that you follow.
|
||||||
|
* Images: Posts with images.
|
||||||
|
* Audio: Posts with audio.
|
||||||
|
* Videos: Posts with videos.
|
||||||
|
|
||||||
|
User defined Channels
|
||||||
|
---
|
||||||
|
|
||||||
|
In the "Channels" settings you can create your own channels.
|
||||||
|
|
||||||
|
Each channel is defined by these values:
|
||||||
|
|
||||||
|
* Label: This value is mandatory and is used for the menu label.
|
||||||
|
* Description: A short description of the content. This can help to keep the overview, when you have got a lot of channels.
|
||||||
|
* Access Key: When you want to access this channel via an access key, you can define it here. Pay attention to not use an already used one.
|
||||||
|
* Circle: This defines the data source for this channel. By default it is set to the public timeline. There are some predefined values, like the accounts that you follow or the accounts that follow you. Also all of your circles can be selected.
|
||||||
|
* Include Tags: Comma separated list of tags. A post will be used when it contains any of the listed tags.
|
||||||
|
* Exclude Tags: Comma separated list of tags. If a post contain any of these tags, then it will not be part of nthis channel.
|
||||||
|
* Full Text Search: This can be used to include or exclude content, based on the content and some additional keywords. It uses the "boolean mode" operators from MariaDB: https://mariadb.com/kb/en/full-text-index-overview/#in-boolean-mode
|
||||||
|
* Images, Videos, Audio: When selected, you will see content with the selected media type. This can be combined. If none of these fields are checked, you will see any content, with or without attacked media.
|
||||||
|
|
||||||
|
Additional keywords for the full text search
|
||||||
|
---
|
||||||
|
|
||||||
|
Additionally to the search for content, there are additional keywords that can be used in the full text search:
|
||||||
|
|
||||||
|
* from - Use "from:nickname" or "from:nickname@domain.tld" to search for posts from a specific author.
|
||||||
|
* to - Use "from:nickname" or "from:nickname@domain.tld" to search for posts with the given contact as receiver.
|
||||||
|
* group - Use "from:nickname" or "from:nickname@domain.tld" to search for group post of the given group.
|
||||||
|
* server - Use "server:hostname" to search for posts from a specific server. In the case of group postings, the search text contains both the hostname of the group server and the author's hostname.
|
||||||
|
* source - The ActivityPub type of the post source. Use this for example to include or exclude group posts or posts from services (aka bots).
|
||||||
|
* source:person - The post is created by a regular user account.
|
||||||
|
* source:organization - The post is created by an organisation.
|
||||||
|
* source:group - The post is created by or distributed via a group.
|
||||||
|
* source:service - The posts originates from a service account. This source type is often used to mark bot accounts.
|
||||||
|
* source:application - The post is created by an application. This is most likely unused in the fediverse for post creation.
|
||||||
|
* tag - Use "tag:tagname" to search for a specific tag.
|
||||||
|
* network - Use this to include or exclude some networks from your channel.
|
||||||
|
* network:apub - ActivityPub (Used by the systems in the Fediverse)
|
||||||
|
* network:dfrn - Legacy Friendica protocol. Nowayday Friendica mostly uses ActivityPub.
|
||||||
|
* network:dspr - The Diaspora protocol is mainly used by Diaspora itself. Some other systems support the protocol as well like Hubzilla, Socialhome or Ganggo.
|
||||||
|
* network:feed - RSS/Atom feeds
|
||||||
|
* network:mail - Mails that had been imported via IMAP.
|
||||||
|
* network:stat - The OStatus protocol is mainly used by old GNU Social installations.
|
||||||
|
* network:dscs - Posts that are received by the Discourse connector.
|
||||||
|
* network:tmbl - Posts that are received by the Tumblr connector.
|
||||||
|
* network:bsky - Posts that are received by the Bluesky connector.
|
||||||
|
* platform - Use this to include or exclude some platforms from your channel, e.g. "+platform:friendica". In the case of group postings, the search text contains both the platform of the group server and the author's platform.
|
||||||
|
* visibility - You have the choice between different visibilities. You can only see unlisted or private posts that you have the access for.
|
||||||
|
* visibility:public
|
||||||
|
* visibility:unlisted
|
||||||
|
* visibility:private
|
||||||
|
|
||||||
|
Remember that you can combine these kerywords.
|
||||||
|
So for example you can create a channel with all posts that talk about the Fediverse - that aren't posted in the Fediverse with the search terms: "fediverse -network:apub -network:dfrn"
|
|
@ -17,6 +17,7 @@ Friendica Documentation and Resources
|
||||||
* [Circles and Privacy](help/Circles-and-Privacy)
|
* [Circles and Privacy](help/Circles-and-Privacy)
|
||||||
* [Tags and Mentions](help/Tags-and-Mentions)
|
* [Tags and Mentions](help/Tags-and-Mentions)
|
||||||
* [Community Groups](help/Groups)
|
* [Community Groups](help/Groups)
|
||||||
|
* [Channels](help/Channels)
|
||||||
* [Chats](help/Chats)
|
* [Chats](help/Chats)
|
||||||
* Further information
|
* Further information
|
||||||
* [Move your account](help/Move-Account)
|
* [Move your account](help/Move-Account)
|
||||||
|
|
|
@ -28,9 +28,9 @@ Due to the large variety of operating systems and PHP platforms in existence we
|
||||||
### Requirements
|
### Requirements
|
||||||
|
|
||||||
* Apache with mod-rewrite enabled and "Options All" so you can use a local `.htaccess` file
|
* Apache with mod-rewrite enabled and "Options All" so you can use a local `.htaccess` file
|
||||||
* PHP 7.3+ (PHP8 is not fully supported yet)
|
* PHP 7.4+
|
||||||
* PHP *command line* access with register_argc_argv set to true in the php.ini file
|
* PHP *command line* access with register_argc_argv set to true in the php.ini file
|
||||||
* Curl, GD, GMP, PDO, mbstrings, MySQLi, hash, xml, zip and OpenSSL extensions
|
* Curl, GD, GMP, PDO, mbstrings, MySQLi, hash, xml, zip, IntlChar and OpenSSL extensions
|
||||||
* The POSIX module of PHP needs to be activated (e.g. [RHEL, CentOS](http://www.bigsoft.co.uk/blog/index.php/2014/12/08/posix-php-commands-not-working-under-centos-7) have disabled it)
|
* The POSIX module of PHP needs to be activated (e.g. [RHEL, CentOS](http://www.bigsoft.co.uk/blog/index.php/2014/12/08/posix-php-commands-not-working-under-centos-7) have disabled it)
|
||||||
* Some form of email server or email gateway such that PHP mail() works.
|
* Some form of email server or email gateway such that PHP mail() works.
|
||||||
If you cannot set up your own email server, you can use the [phpmailer](https://github.com/friendica/friendica-addons/tree/develop/phpmailer) addon and use a remote SMTP server.
|
If you cannot set up your own email server, you can use the [phpmailer](https://github.com/friendica/friendica-addons/tree/develop/phpmailer) addon and use a remote SMTP server.
|
||||||
|
|
|
@ -77,11 +77,11 @@ Additionally to the setting in the admin panel, you can decide if registrations
|
||||||
To enable invitation based registration, you have to set the `invitation_only` setting to `true` in the `system` section of the [config/local.config.php](/help/Config) file.
|
To enable invitation based registration, you have to set the `invitation_only` setting to `true` in the `system` section of the [config/local.config.php](/help/Config) file.
|
||||||
If you want to use this method, the registration policy has to be set to either *open* or *requires approval*.
|
If you want to use this method, the registration policy has to be set to either *open* or *requires approval*.
|
||||||
|
|
||||||
#### Check Full Names
|
#### Check Display Names
|
||||||
|
|
||||||
You may find a lot of spammers trying to register on your site.
|
You may find a lot of spammers trying to register on your site.
|
||||||
During testing we discovered that since these registrations were automatic, the "Full Name" field was often set to just an account name with no space between first and last name.
|
During testing we discovered that since these registrations were automatic, the "Display Name" field was often set to just an account name with no space between first and last name.
|
||||||
If you would like to support people with only one name as their full name, you may change this setting to true.
|
If you would like to support people with only one name as their display name, you can leave this setting set to false.
|
||||||
Default is false.
|
Default is false.
|
||||||
|
|
||||||
#### OpenID
|
#### OpenID
|
||||||
|
|
|
@ -17,6 +17,8 @@ Database Tables
|
||||||
| [arrived-activity](help/database/db_arrived-activity) | Id of arrived activities |
|
| [arrived-activity](help/database/db_arrived-activity) | Id of arrived activities |
|
||||||
| [attach](help/database/db_attach) | file attachments |
|
| [attach](help/database/db_attach) | file attachments |
|
||||||
| [cache](help/database/db_cache) | Stores temporary data |
|
| [cache](help/database/db_cache) | Stores temporary data |
|
||||||
|
| [channel](help/database/db_channel) | User defined Channels |
|
||||||
|
| [check-full-text-search](help/database/db_check-full-text-search) | Check for a full text search match in user defined channels before storing the message in the system |
|
||||||
| [config](help/database/db_config) | main configuration storage |
|
| [config](help/database/db_config) | main configuration storage |
|
||||||
| [contact](help/database/db_contact) | contact table |
|
| [contact](help/database/db_contact) | contact table |
|
||||||
| [contact-relation](help/database/db_contact-relation) | Contact relations |
|
| [contact-relation](help/database/db_contact-relation) | Contact relations |
|
||||||
|
@ -59,6 +61,7 @@ Database Tables
|
||||||
| [post-category](help/database/db_post-category) | post relation to categories |
|
| [post-category](help/database/db_post-category) | post relation to categories |
|
||||||
| [post-collection](help/database/db_post-collection) | Collection of posts |
|
| [post-collection](help/database/db_post-collection) | Collection of posts |
|
||||||
| [post-content](help/database/db_post-content) | Content for all 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](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-delivery-data](help/database/db_post-delivery-data) | Delivery data for items |
|
||||||
| [post-engagement](help/database/db_post-engagement) | Engagement data per post |
|
| [post-engagement](help/database/db_post-engagement) | Engagement data per post |
|
||||||
|
|
38
doc/database/db_channel.md
Normal file
38
doc/database/db_channel.md
Normal file
|
@ -0,0 +1,38 @@
|
||||||
|
Table channel
|
||||||
|
===========
|
||||||
|
|
||||||
|
User defined Channels
|
||||||
|
|
||||||
|
Fields
|
||||||
|
------
|
||||||
|
|
||||||
|
| Field | Description | Type | Null | Key | Default | Extra |
|
||||||
|
| ---------------- | ------------------------------------------------------------------------------------------------- | ------------------ | ---- | --- | ------- | -------------- |
|
||||||
|
| id | | int unsigned | NO | PRI | NULL | auto_increment |
|
||||||
|
| uid | User id | mediumint unsigned | NO | | NULL | |
|
||||||
|
| label | Channel label | varchar(64) | NO | | NULL | |
|
||||||
|
| description | Channel description | varchar(64) | YES | | NULL | |
|
||||||
|
| circle | Circle or channel that this channel is based on | int | YES | | NULL | |
|
||||||
|
| access-key | Access key | varchar(1) | YES | | NULL | |
|
||||||
|
| include-tags | Comma separated list of tags that will be included in the channel | varchar(1023) | YES | | NULL | |
|
||||||
|
| 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 | |
|
||||||
|
|
||||||
|
Indexes
|
||||||
|
------------
|
||||||
|
|
||||||
|
| Name | Fields |
|
||||||
|
| ------- | ------ |
|
||||||
|
| PRIMARY | id |
|
||||||
|
| uid | uid |
|
||||||
|
|
||||||
|
Foreign Keys
|
||||||
|
------------
|
||||||
|
|
||||||
|
| Field | Target Table | Target Field |
|
||||||
|
|-------|--------------|--------------|
|
||||||
|
| uid | [user](help/database/db_user) | uid |
|
||||||
|
|
||||||
|
Return to [database documentation](help/database)
|
23
doc/database/db_check-full-text-search.md
Normal file
23
doc/database/db_check-full-text-search.md
Normal file
|
@ -0,0 +1,23 @@
|
||||||
|
Table check-full-text-search
|
||||||
|
===========
|
||||||
|
|
||||||
|
Check for a full text search match in user defined channels before storing the message in the system
|
||||||
|
|
||||||
|
Fields
|
||||||
|
------
|
||||||
|
|
||||||
|
| Field | Description | Type | Null | Key | Default | Extra |
|
||||||
|
| ---------- | ---------------------------------------- | ------------ | ---- | --- | ------- | ----- |
|
||||||
|
| pid | The ID of the process | int unsigned | NO | PRI | NULL | |
|
||||||
|
| searchtext | Simplified text for the full text search | mediumtext | YES | | NULL | |
|
||||||
|
|
||||||
|
Indexes
|
||||||
|
------------
|
||||||
|
|
||||||
|
| Name | Fields |
|
||||||
|
| ---------- | -------------------- |
|
||||||
|
| PRIMARY | pid |
|
||||||
|
| searchtext | FULLTEXT, searchtext |
|
||||||
|
|
||||||
|
|
||||||
|
Return to [database documentation](help/database)
|
35
doc/database/db_post-counts.md
Normal file
35
doc/database/db_post-counts.md
Normal 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)
|
|
@ -13,6 +13,7 @@ Fields
|
||||||
| contact-type | Person, organisation, news, community, relay | tinyint | 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 | |
|
| 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 | varbinary(128) | YES | | NULL | |
|
||||||
|
| searchtext | Simplified text for the full text search | mediumtext | YES | | NULL | |
|
||||||
| created | | datetime | YES | | NULL | |
|
| created | | datetime | YES | | NULL | |
|
||||||
| restricted | If true, this post is either unlisted or not from a federated network | boolean | NO | | 0 | |
|
| restricted | If true, this post is either unlisted or not from a federated network | boolean | NO | | 0 | |
|
||||||
| comments | Number of comments | mediumint unsigned | YES | | NULL | |
|
| comments | Number of comments | mediumint unsigned | YES | | NULL | |
|
||||||
|
@ -22,10 +23,11 @@ Indexes
|
||||||
------------
|
------------
|
||||||
|
|
||||||
| Name | Fields |
|
| Name | Fields |
|
||||||
| -------- | -------- |
|
| ---------- | -------------------- |
|
||||||
| PRIMARY | uri-id |
|
| PRIMARY | uri-id |
|
||||||
| owner-id | owner-id |
|
| owner-id | owner-id |
|
||||||
| created | created |
|
| created | created |
|
||||||
|
| searchtext | FULLTEXT, searchtext |
|
||||||
|
|
||||||
Foreign Keys
|
Foreign Keys
|
||||||
------------
|
------------
|
||||||
|
|
|
@ -37,7 +37,7 @@ Indexes
|
||||||
------------
|
------------
|
||||||
|
|
||||||
| Name | Fields |
|
| Name | Fields |
|
||||||
| ----------------- | ------------------- |
|
| -------------------- | --------------------- |
|
||||||
| PRIMARY | uid, uri-id |
|
| PRIMARY | uid, uri-id |
|
||||||
| uri-id | uri-id |
|
| uri-id | uri-id |
|
||||||
| conversation-id | conversation-id |
|
| conversation-id | conversation-id |
|
||||||
|
@ -50,11 +50,17 @@ Indexes
|
||||||
| post-user-id | post-user-id |
|
| post-user-id | post-user-id |
|
||||||
| commented | commented |
|
| commented | commented |
|
||||||
| received | received |
|
| received | received |
|
||||||
|
| author-id_created | author-id, created |
|
||||||
|
| owner-id_created | owner-id, created |
|
||||||
| uid_received | uid, received |
|
| uid_received | uid, received |
|
||||||
| uid_wall_received | uid, wall, received |
|
| uid_wall_received | uid, wall, received |
|
||||||
| uid_commented | uid, commented |
|
| uid_commented | uid, commented |
|
||||||
|
| uid_created | uid, created |
|
||||||
| uid_starred | uid, starred |
|
| uid_starred | uid, starred |
|
||||||
| uid_mention | uid, mention |
|
| uid_mention | uid, mention |
|
||||||
|
| contact-id_commented | contact-id, commented |
|
||||||
|
| contact-id_received | contact-id, received |
|
||||||
|
| contact-id_created | contact-id, created |
|
||||||
|
|
||||||
Foreign Keys
|
Foreign Keys
|
||||||
------------
|
------------
|
||||||
|
|
|
@ -58,7 +58,8 @@ Indexes
|
||||||
| event-id | event-id |
|
| event-id | event-id |
|
||||||
| psid | psid |
|
| psid | psid |
|
||||||
| author-id_uid | author-id, uid |
|
| author-id_uid | author-id, uid |
|
||||||
| author-id_received | author-id, received |
|
| author-id_created | author-id, created |
|
||||||
|
| owner-id_created | owner-id, created |
|
||||||
| parent-uri-id_uid | parent-uri-id, uid |
|
| parent-uri-id_uid | parent-uri-id, uid |
|
||||||
| uid_wall_received | uid, wall, received |
|
| uid_wall_received | uid, wall, received |
|
||||||
| uid_contactid | uid, contact-id |
|
| uid_contactid | uid, contact-id |
|
||||||
|
|
|
@ -34,8 +34,6 @@ Fields
|
||||||
| blockwall | Prohibit contacts to post to the profile page of the user | boolean | NO | | 0 | |
|
| 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 | |
|
| hidewall | Hide profile details from unknown viewers | boolean | NO | | 0 | |
|
||||||
| blocktags | Prohibit contacts to tag the post of this user | 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 | |
|
| notify-flags | email notification options | smallint unsigned | NO | | 65535 | |
|
||||||
| page-flags | page/profile type | tinyint unsigned | NO | | 0 | |
|
| page-flags | page/profile type | tinyint unsigned | NO | | 0 | |
|
||||||
| account-type | | tinyint unsigned | NO | | 0 | |
|
| account-type | | tinyint unsigned | NO | | 0 | |
|
||||||
|
|
|
@ -103,6 +103,15 @@ Derzeitige Hooks
|
||||||
$b ist das Item-Array einer Information, die in der Datenbank und im Item gespeichert ist.
|
$b ist das Item-Array einer Information, die in der Datenbank und im Item gespeichert ist.
|
||||||
{Bitte beachte: der Seiteninhalt ist bbcode - nicht HTML)
|
{Bitte beachte: der Seiteninhalt ist bbcode - nicht HTML)
|
||||||
|
|
||||||
|
**'detect_languages'**
|
||||||
|
Wird nach der Sprachenerkennung aufgerufen.
|
||||||
|
Dieser Hook kann dafür verwendet werden, alternative Erkennungsfunktionen einzubinden.
|
||||||
|
`$data` ist ein Array:
|
||||||
|
'text' => Der analysierte Text.
|
||||||
|
'detected' => (Eingabe/Ausgabe) Das Array mit den erkannten Sprachen. Der Sprachcode ist der Array-Schlüssel, der Array-Wert ist der dezimale Wert für die Wahrscheinlichkeit.
|
||||||
|
'uri-id' => Die Uri-Id des Beitrags
|
||||||
|
'author-id' => Die Contact-id des Autors.
|
||||||
|
|
||||||
**'addon_settings'** - wird aufgerufen, wenn die HTML-Ausgabe der Addon-Einstellungsseite generiert wird.
|
**'addon_settings'** - wird aufgerufen, wenn die HTML-Ausgabe der Addon-Einstellungsseite generiert wird.
|
||||||
$b ist die HTML-Ausgabe (String) der Addon-Einstellungsseite vor dem finalen "</form>"-Tag.
|
$b ist die HTML-Ausgabe (String) der Addon-Einstellungsseite vor dem finalen "</form>"-Tag.
|
||||||
|
|
||||||
|
@ -316,6 +325,7 @@ Eine komplette Liste aller Hook-Callbacks mit den zugehörigen Dateien (am 01-Ap
|
||||||
|
|
||||||
### src/Model/Item.php
|
### src/Model/Item.php
|
||||||
|
|
||||||
|
Hook::callAll('detect_languages', $item);
|
||||||
Hook::callAll('post_local', $item);
|
Hook::callAll('post_local', $item);
|
||||||
Hook::callAll('post_remote', $item);
|
Hook::callAll('post_remote', $item);
|
||||||
Hook::callAll('post_local_end', $posted_item);
|
Hook::callAll('post_local_end', $posted_item);
|
||||||
|
|
|
@ -17,6 +17,7 @@ Friendica - Dokumentation und Ressourcen
|
||||||
* [Circles und Privatsphäre](help/Circles-and-Privacy)
|
* [Circles und Privatsphäre](help/Circles-and-Privacy)
|
||||||
* [Tags und Erwähnungen](help/Tags-and-Mentions)
|
* [Tags und Erwähnungen](help/Tags-and-Mentions)
|
||||||
* [Community-Gruppen](help/Groups)
|
* [Community-Gruppen](help/Groups)
|
||||||
|
* [Channels](help/Channels)
|
||||||
* [Chats](help/Chats)
|
* [Chats](help/Chats)
|
||||||
* Weiterführende Informationen
|
* Weiterführende Informationen
|
||||||
* [Account umziehen](help/Move-Account)
|
* [Account umziehen](help/Move-Account)
|
||||||
|
|
|
@ -25,9 +25,9 @@ Requirements
|
||||||
---
|
---
|
||||||
|
|
||||||
* Apache mit einer aktiverten mod-rewrite-Funktion und dem Eintrag "Options All", so dass du die lokale .htaccess-Datei nutzen kannst
|
* Apache mit einer aktiverten mod-rewrite-Funktion und dem Eintrag "Options All", so dass du die lokale .htaccess-Datei nutzen kannst
|
||||||
* PHP 7.3+ (PHP 8 wird noch nicht komplett unterstützt)
|
* PHP 7.4+
|
||||||
* PHP *Kommandozeilen*-Zugang mit register_argc_argv auf "true" gesetzt in der php.ini-Datei
|
* PHP *Kommandozeilen*-Zugang mit register_argc_argv auf "true" gesetzt in der php.ini-Datei
|
||||||
* Curl, GD, GMP, PDO, MySQLi, xml, zip und OpenSSL-Erweiterung
|
* Curl, GD, GMP, PDO, mbstrings, MySQLi, hash, xml, zip, IntlChar and OpenSSL-Erweiterung
|
||||||
* Das POSIX Modul muss aktiviert sein ([CentOS, RHEL](http://www.bigsoft.co.uk/blog/index.php/2014/12/08/posix-php-commands-not-working-under-centos-7http://www.bigsoft.co.uk/blog/index.php/2014/12/08/posix-php-commands-not-working-under-centos-7) haben dies z.B. deaktiviert)
|
* Das POSIX Modul muss aktiviert sein ([CentOS, RHEL](http://www.bigsoft.co.uk/blog/index.php/2014/12/08/posix-php-commands-not-working-under-centos-7http://www.bigsoft.co.uk/blog/index.php/2014/12/08/posix-php-commands-not-working-under-centos-7) haben dies z.B. deaktiviert)
|
||||||
* Einen E-Mail Server, so dass PHP `mail()` funktioniert.
|
* Einen E-Mail Server, so dass PHP `mail()` funktioniert.
|
||||||
Wenn kein eigener E-Mail Server zur Verfügung steht, kann alternativ das [phpmailer](https://github.com/friendica/friendica-addons/tree/develop/phpmailer) Addon mit einem externen SMTP Account verwendet werden.
|
Wenn kein eigener E-Mail Server zur Verfügung steht, kann alternativ das [phpmailer](https://github.com/friendica/friendica-addons/tree/develop/phpmailer) Addon mit einem externen SMTP Account verwendet werden.
|
||||||
|
|
Binary file not shown.
After Width: | Height: | Size: 185 KiB |
Binary file not shown.
After Width: | Height: | Size: 166 KiB |
Binary file not shown.
After Width: | Height: | Size: 400 KiB |
BIN
images/screenshots/friendica-2023-12-frio-desktop.png
Normal file
BIN
images/screenshots/friendica-2023-12-frio-desktop.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 1,011 KiB |
|
@ -1,6 +1,6 @@
|
||||||
<?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
|
* @license GNU AGPL version 3 or any later version
|
||||||
*
|
*
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
<?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
|
* @license GNU AGPL version 3 or any later version
|
||||||
*
|
*
|
||||||
|
@ -221,6 +221,10 @@ function item_insert(int $uid, array $request, bool $preview, string $return_pat
|
||||||
|
|
||||||
DI::contentItem()->postProcessPost($post, $recipients);
|
DI::contentItem()->postProcessPost($post, $recipients);
|
||||||
|
|
||||||
|
if (($post['private'] == Item::PRIVATE) && ($post['thr-parent-id'] != $post['uri-id'])) {
|
||||||
|
DI::contentItem()->copyPermissions($post['thr-parent-id'], $post['uri-id'], $post['parent-uri-id']);
|
||||||
|
}
|
||||||
|
|
||||||
Logger::debug('post_complete');
|
Logger::debug('post_complete');
|
||||||
|
|
||||||
item_post_return(DI::baseUrl(), $return_path);
|
item_post_return(DI::baseUrl(), $return_path);
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
<?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
|
* @license GNU AGPL version 3 or any later version
|
||||||
*
|
*
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
<?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
|
* @license GNU AGPL version 3 or any later version
|
||||||
*
|
*
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
<?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
|
* @license GNU AGPL version 3 or any later version
|
||||||
*
|
*
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
<?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
|
* @license GNU AGPL version 3 or any later version
|
||||||
*
|
*
|
||||||
|
@ -312,16 +312,16 @@ function photos_post(App $a)
|
||||||
|
|
||||||
Photo::update(['height' => $height, 'width' => $width], ['resource-id' => $resource_id, 'uid' => $page_owner_uid, 'scale' => 0], $image);
|
Photo::update(['height' => $height, 'width' => $width], ['resource-id' => $resource_id, 'uid' => $page_owner_uid, 'scale' => 0], $image);
|
||||||
|
|
||||||
if ($width > 640 || $height > 640) {
|
if ($width > \Friendica\Util\Proxy::PIXEL_MEDIUM || $height > \Friendica\Util\Proxy::PIXEL_MEDIUM) {
|
||||||
$image->scaleDown(640);
|
$image->scaleDown(\Friendica\Util\Proxy::PIXEL_MEDIUM);
|
||||||
$width = $image->getWidth();
|
$width = $image->getWidth();
|
||||||
$height = $image->getHeight();
|
$height = $image->getHeight();
|
||||||
|
|
||||||
Photo::update(['height' => $height, 'width' => $width], ['resource-id' => $resource_id, 'uid' => $page_owner_uid, 'scale' => 1], $image);
|
Photo::update(['height' => $height, 'width' => $width], ['resource-id' => $resource_id, 'uid' => $page_owner_uid, 'scale' => 1], $image);
|
||||||
}
|
}
|
||||||
|
|
||||||
if ($width > 320 || $height > 320) {
|
if ($width > \Friendica\Util\Proxy::PIXEL_SMALL || $height > \Friendica\Util\Proxy::PIXEL_SMALL) {
|
||||||
$image->scaleDown(320);
|
$image->scaleDown(\Friendica\Util\Proxy::PIXEL_SMALL);
|
||||||
$width = $image->getWidth();
|
$width = $image->getWidth();
|
||||||
$height = $image->getHeight();
|
$height = $image->getHeight();
|
||||||
|
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
<?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
|
* @license GNU AGPL version 3 or any later version
|
||||||
*
|
*
|
||||||
|
@ -31,7 +31,7 @@ use Friendica\Model\Contact;
|
||||||
function update_contact_content(App $a)
|
function update_contact_content(App $a)
|
||||||
{
|
{
|
||||||
if (!empty(DI::args()->get(1)) && !empty($_GET['force'])) {
|
if (!empty(DI::args()->get(1)) && !empty($_GET['force'])) {
|
||||||
$contact = Contact::getById(DI::args()->get(1), ['id', 'deleted']);
|
$contact = DBA::selectFirst('account-user-view', ['pid', 'deleted'], ['id' => DI::args()->get(1)]);
|
||||||
if (DBA::isResult($contact) && empty($contact['deleted'])) {
|
if (DBA::isResult($contact) && empty($contact['deleted'])) {
|
||||||
DI::page()['aside'] = '';
|
DI::page()['aside'] = '';
|
||||||
|
|
||||||
|
@ -39,7 +39,7 @@ function update_contact_content(App $a)
|
||||||
$item = Post::selectFirst(['parent'], ['id' => $_GET['item']]);
|
$item = Post::selectFirst(['parent'], ['id' => $_GET['item']]);
|
||||||
}
|
}
|
||||||
|
|
||||||
$text = Contact::getPostsFromId($contact['id'], true, true, $item['parent'] ?? 0);
|
$text = Contact::getThreadsFromId($contact['pid'], DI::userSession()->getLocalUserId(), true, $item['parent'] ?? 0, $_GET['last_received'] ?? '');
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
<?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
|
* @license GNU AGPL version 3 or any later version
|
||||||
*
|
*
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
<?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
|
* @license GNU AGPL version 3 or any later version
|
||||||
*
|
*
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
<?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
|
* @license GNU AGPL version 3 or any later version
|
||||||
*
|
*
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
Contact: mailto:info@friendi.ca
|
Contact: mailto:info@friendi.ca
|
||||||
|
|
||||||
Expires: 2024-04-30T23:59:59Z
|
Expires: 2024-10-30T23:59:59Z
|
||||||
|
|
||||||
Preferred-Languages: en
|
Preferred-Languages: en
|
||||||
|
|
||||||
|
|
13
src/App.php
13
src/App.php
|
@ -1,6 +1,6 @@
|
||||||
<?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
|
* @license GNU AGPL version 3 or any later version
|
||||||
*
|
*
|
||||||
|
@ -63,8 +63,8 @@ use Psr\Log\LoggerInterface;
|
||||||
class App
|
class App
|
||||||
{
|
{
|
||||||
const PLATFORM = 'Friendica';
|
const PLATFORM = 'Friendica';
|
||||||
const CODENAME = 'Giant Rhubarb';
|
const CODENAME = 'Yellow Archangel';
|
||||||
const VERSION = '2023.09-dev';
|
const VERSION = '2024.03-dev';
|
||||||
|
|
||||||
// Allow themes to control internal parameters
|
// Allow themes to control internal parameters
|
||||||
// by changing App values in theme.php
|
// by changing App values in theme.php
|
||||||
|
@ -567,6 +567,7 @@ class App
|
||||||
{
|
{
|
||||||
$requeststring = ($_SERVER['REQUEST_METHOD'] ?? '') . ' ' . ($_SERVER['REQUEST_URI'] ?? '') . ' ' . ($_SERVER['SERVER_PROTOCOL'] ?? '');
|
$requeststring = ($_SERVER['REQUEST_METHOD'] ?? '') . ' ' . ($_SERVER['REQUEST_URI'] ?? '') . ' ' . ($_SERVER['SERVER_PROTOCOL'] ?? '');
|
||||||
$this->logger->debug('Request received', ['address' => $_SERVER['REMOTE_ADDR'] ?? '', 'request' => $requeststring, 'referer' => $_SERVER['HTTP_REFERER'] ?? '', 'user-agent' => $_SERVER['HTTP_USER_AGENT'] ?? '']);
|
$this->logger->debug('Request received', ['address' => $_SERVER['REMOTE_ADDR'] ?? '', 'request' => $requeststring, 'referer' => $_SERVER['HTTP_REFERER'] ?? '', 'user-agent' => $_SERVER['HTTP_USER_AGENT'] ?? '']);
|
||||||
|
$request_start = microtime(true);
|
||||||
|
|
||||||
$this->profiler->set($start_time, 'start');
|
$this->profiler->set($start_time, 'start');
|
||||||
$this->profiler->set(microtime(true), 'classinit');
|
$this->profiler->set(microtime(true), 'classinit');
|
||||||
|
@ -715,10 +716,10 @@ class App
|
||||||
$response = $page->run($this, $this->baseURL, $this->args, $this->mode, $response, $this->l10n, $this->profiler, $this->config, $pconfig, $nav, $this->session->getLocalUserId());
|
$response = $page->run($this, $this->baseURL, $this->args, $this->mode, $response, $this->l10n, $this->profiler, $this->config, $pconfig, $nav, $this->session->getLocalUserId());
|
||||||
}
|
}
|
||||||
|
|
||||||
$this->logger->debug('Request processed sucessfully', ['response' => $response->getStatusCode(), 'address' => $_SERVER['REMOTE_ADDR'] ?? '', 'request' => $requeststring, 'referer' => $_SERVER['HTTP_REFERER'] ?? '', 'user-agent' => $_SERVER['HTTP_USER_AGENT'] ?? '']);
|
$this->logger->debug('Request processed sucessfully', ['response' => $response->getStatusCode(), 'address' => $_SERVER['REMOTE_ADDR'] ?? '', 'request' => $requeststring, 'referer' => $_SERVER['HTTP_REFERER'] ?? '', 'user-agent' => $_SERVER['HTTP_USER_AGENT'] ?? '', 'duration' => number_format(microtime(true) - $request_start, 3)]);
|
||||||
$page->exit($response);
|
System::echoResponse($response);
|
||||||
} catch (HTTPException $e) {
|
} catch (HTTPException $e) {
|
||||||
$this->logger->debug('Request processed with exception', ['response' => $e->getCode(), 'address' => $_SERVER['REMOTE_ADDR'] ?? '', 'request' => $requeststring, 'referer' => $_SERVER['HTTP_REFERER'] ?? '', 'user-agent' => $_SERVER['HTTP_USER_AGENT'] ?? '']);
|
$this->logger->debug('Request processed with exception', ['response' => $e->getCode(), 'address' => $_SERVER['REMOTE_ADDR'] ?? '', 'request' => $requeststring, 'referer' => $_SERVER['HTTP_REFERER'] ?? '', 'user-agent' => $_SERVER['HTTP_USER_AGENT'] ?? '', 'duration' => number_format(microtime(true) - $request_start, 3)]);
|
||||||
$httpException->rawContent($e);
|
$httpException->rawContent($e);
|
||||||
}
|
}
|
||||||
$page->logRuntime($this->config, 'runFrontend');
|
$page->logRuntime($this->config, 'runFrontend');
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
<?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
|
* @license GNU AGPL version 3 or any later version
|
||||||
*
|
*
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
<?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
|
* @license GNU AGPL version 3 or any later version
|
||||||
*
|
*
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
<?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
|
* @license GNU AGPL version 3 or any later version
|
||||||
*
|
*
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
<?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
|
* @license GNU AGPL version 3 or any later version
|
||||||
*
|
*
|
||||||
|
@ -36,6 +36,7 @@ use Friendica\Core\System;
|
||||||
use Friendica\Core\Theme;
|
use Friendica\Core\Theme;
|
||||||
use Friendica\Module\Response;
|
use Friendica\Module\Response;
|
||||||
use Friendica\Network\HTTPException;
|
use Friendica\Network\HTTPException;
|
||||||
|
use Friendica\Util\Images;
|
||||||
use Friendica\Util\Network;
|
use Friendica\Util\Network;
|
||||||
use Friendica\Util\Profiler;
|
use Friendica\Util\Profiler;
|
||||||
use Friendica\Util\Strings;
|
use Friendica\Util\Strings;
|
||||||
|
@ -282,7 +283,7 @@ class Page implements ArrayAccess
|
||||||
'$stylesheets' => $this->stylesheets,
|
'$stylesheets' => $this->stylesheets,
|
||||||
|
|
||||||
// Dropzone
|
// Dropzone
|
||||||
'$max_imagesize' => round(\Friendica\Util\Strings::getBytesFromShorthand($config->get('system', 'maximagesize')) / 1000000, 1),
|
'$max_imagesize' => round(Images::getMaxUploadBytes() / 1000000, 0),
|
||||||
|
|
||||||
]) . $this->page['htmlhead'];
|
]) . $this->page['htmlhead'];
|
||||||
}
|
}
|
||||||
|
@ -401,36 +402,6 @@ class Page implements ArrayAccess
|
||||||
$this->footerScripts[] = trim($url, '/');
|
$this->footerScripts[] = trim($url, '/');
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* Directly exit with the current response (include setting all headers)
|
|
||||||
*
|
|
||||||
* @param ResponseInterface $response
|
|
||||||
*/
|
|
||||||
public function exit(ResponseInterface $response)
|
|
||||||
{
|
|
||||||
header(sprintf("HTTP/%s %s %s",
|
|
||||||
$response->getProtocolVersion(),
|
|
||||||
$response->getStatusCode(),
|
|
||||||
$response->getReasonPhrase())
|
|
||||||
);
|
|
||||||
|
|
||||||
foreach ($response->getHeaders() as $key => $header) {
|
|
||||||
if (is_array($header)) {
|
|
||||||
$header_str = implode(',', $header);
|
|
||||||
} else {
|
|
||||||
$header_str = $header;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (empty($key)) {
|
|
||||||
header($header_str);
|
|
||||||
} else {
|
|
||||||
header("$key: $header_str");
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
echo $response->getBody();
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Executes the creation of the current page and prints it to the screen
|
* Executes the creation of the current page and prints it to the screen
|
||||||
*
|
*
|
||||||
|
@ -526,7 +497,9 @@ class Page implements ArrayAccess
|
||||||
}
|
}
|
||||||
|
|
||||||
if ($_GET["mode"] == "raw") {
|
if ($_GET["mode"] == "raw") {
|
||||||
System::httpExit(substr($target->saveHTML(), 6, -8), Response::TYPE_HTML);
|
$response->withBody(Utils::streamFor($target->saveHTML()));
|
||||||
|
System::echoResponse($response);
|
||||||
|
System::exit();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
<?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
|
* @license GNU AGPL version 3 or any later version
|
||||||
*
|
*
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
<?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
|
* @license GNU AGPL version 3 or any later version
|
||||||
*
|
*
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
<?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
|
* @license GNU AGPL version 3 or any later version
|
||||||
*
|
*
|
||||||
|
@ -129,6 +129,24 @@ class BaseCollection extends \ArrayIterator
|
||||||
return new static(array_reverse($this->getArrayCopy()), $this->getTotalCount());
|
return new static(array_reverse($this->getArrayCopy()), $this->getTotalCount());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Split the collection in smaller collections no bigger than the provided length
|
||||||
|
*
|
||||||
|
* @param int $length
|
||||||
|
* @return static[]
|
||||||
|
*/
|
||||||
|
public function chunk(int $length): array
|
||||||
|
{
|
||||||
|
if ($length < 1) {
|
||||||
|
throw new \RangeException('BaseCollection->chunk(): Size parameter expected to be greater than 0');
|
||||||
|
}
|
||||||
|
|
||||||
|
return array_map(function ($array) {
|
||||||
|
return new static($array);
|
||||||
|
}, array_chunk($this->getArrayCopy(), $length));
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @inheritDoc
|
* @inheritDoc
|
||||||
*
|
*
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
<?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
|
* @license GNU AGPL version 3 or any later version
|
||||||
*
|
*
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
<?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
|
* @license GNU AGPL version 3 or any later version
|
||||||
*
|
*
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
<?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
|
* @license GNU AGPL version 3 or any later version
|
||||||
*
|
*
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
<?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
|
* @license GNU AGPL version 3 or any later version
|
||||||
*
|
*
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
<?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
|
* @license GNU AGPL version 3 or any later version
|
||||||
*
|
*
|
||||||
|
@ -27,6 +27,7 @@ use Friendica\Capabilities\ICanCreateResponses;
|
||||||
use Friendica\Core\Hook;
|
use Friendica\Core\Hook;
|
||||||
use Friendica\Core\L10n;
|
use Friendica\Core\L10n;
|
||||||
use Friendica\Core\Logger;
|
use Friendica\Core\Logger;
|
||||||
|
use Friendica\Core\System;
|
||||||
use Friendica\Model\User;
|
use Friendica\Model\User;
|
||||||
use Friendica\Module\Response;
|
use Friendica\Module\Response;
|
||||||
use Friendica\Module\Special\HTTPException as ModuleHTTPException;
|
use Friendica\Module\Special\HTTPException as ModuleHTTPException;
|
||||||
|
@ -106,8 +107,7 @@ abstract class BaseModule implements ICanHandleRequests
|
||||||
*/
|
*/
|
||||||
protected function rawContent(array $request = [])
|
protected function rawContent(array $request = [])
|
||||||
{
|
{
|
||||||
// echo '';
|
// $this->httpExit(...);
|
||||||
// exit;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -189,6 +189,11 @@ abstract class BaseModule implements ICanHandleRequests
|
||||||
$this->response->setHeader('*', 'Access-Control-Allow-Headers');
|
$this->response->setHeader('*', 'Access-Control-Allow-Headers');
|
||||||
$this->response->setHeader(Router::GET, 'Access-Control-Allow-Methods');
|
$this->response->setHeader(Router::GET, 'Access-Control-Allow-Methods');
|
||||||
$this->response->setHeader('false', 'Access-Control-Allow-Credentials');
|
$this->response->setHeader('false', 'Access-Control-Allow-Credentials');
|
||||||
|
} elseif (substr($this->args->getQueryString(), 0, 9) == 'nodeinfo/') {
|
||||||
|
$this->response->setHeader('*', 'Access-Control-Allow-Origin');
|
||||||
|
$this->response->setHeader('*', 'Access-Control-Allow-Headers');
|
||||||
|
$this->response->setHeader(Router::GET, 'Access-Control-Allow-Methods');
|
||||||
|
$this->response->setHeader('false', 'Access-Control-Allow-Credentials');
|
||||||
} elseif (substr($this->args->getQueryString(), 0, 8) == 'profile/') {
|
} elseif (substr($this->args->getQueryString(), 0, 8) == 'profile/') {
|
||||||
$this->response->setHeader('*', 'Access-Control-Allow-Origin');
|
$this->response->setHeader('*', 'Access-Control-Allow-Origin');
|
||||||
$this->response->setHeader('*', 'Access-Control-Allow-Headers');
|
$this->response->setHeader('*', 'Access-Control-Allow-Headers');
|
||||||
|
@ -234,7 +239,8 @@ abstract class BaseModule implements ICanHandleRequests
|
||||||
|
|
||||||
$timestamp = microtime(true);
|
$timestamp = microtime(true);
|
||||||
// "rawContent" is especially meant for technical endpoints.
|
// "rawContent" is especially meant for technical endpoints.
|
||||||
// This endpoint doesn't need any theme initialization or other comparable stuff.
|
// This endpoint doesn't need any theme initialization or
|
||||||
|
// templating and is expected to exit on its own if it is set.
|
||||||
$this->rawContent($request);
|
$this->rawContent($request);
|
||||||
|
|
||||||
try {
|
try {
|
||||||
|
@ -456,4 +462,76 @@ abstract class BaseModule implements ICanHandleRequests
|
||||||
|
|
||||||
return $tabs;
|
return $tabs;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* This function adds the content and a content-type HTTP header to the output.
|
||||||
|
* After finishing the process is getting killed.
|
||||||
|
*
|
||||||
|
* @param string $content
|
||||||
|
* @param string $type
|
||||||
|
* @param string|null $content_type
|
||||||
|
* @return void
|
||||||
|
* @throws HTTPException\InternalServerErrorException
|
||||||
|
*/
|
||||||
|
public function httpExit(string $content, string $type = Response::TYPE_HTML, ?string $content_type = null)
|
||||||
|
{
|
||||||
|
$this->response->setType($type, $content_type);
|
||||||
|
$this->response->addContent($content);
|
||||||
|
System::echoResponse($this->response->generate());
|
||||||
|
|
||||||
|
System::exit();
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Send HTTP status header and exit.
|
||||||
|
*
|
||||||
|
* @param integer $httpCode HTTP status result value
|
||||||
|
* @param string $message Error message. Optional.
|
||||||
|
* @param mixed $content Response body. Optional.
|
||||||
|
* @throws \Exception
|
||||||
|
*/
|
||||||
|
public function httpError(int $httpCode, string $message = '', $content = '')
|
||||||
|
{
|
||||||
|
if ($httpCode >= 400) {
|
||||||
|
$this->logger->debug('Exit with error', ['code' => $httpCode, 'message' => $message, 'method' => $this->args->getMethod(), 'agent' => $this->server['HTTP_USER_AGENT'] ?? '']);
|
||||||
|
}
|
||||||
|
|
||||||
|
$this->response->setStatus($httpCode, $message);
|
||||||
|
|
||||||
|
$this->httpExit($content);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Display the response using JSON to encode the content
|
||||||
|
*
|
||||||
|
* @param mixed $content
|
||||||
|
* @param string $content_type
|
||||||
|
* @param int $options A combination of json_encode() binary flags
|
||||||
|
* @return void
|
||||||
|
* @throws HTTPException\InternalServerErrorException
|
||||||
|
* @see json_encode()
|
||||||
|
*/
|
||||||
|
public function jsonExit($content, string $content_type = 'application/json', int $options = JSON_UNESCAPED_SLASHES | JSON_UNESCAPED_UNICODE | JSON_PRETTY_PRINT)
|
||||||
|
{
|
||||||
|
$this->httpExit(json_encode($content, $options), ICanCreateResponses::TYPE_JSON, $content_type);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Display a non-200 HTTP code response using JSON to encode the content and exit
|
||||||
|
*
|
||||||
|
* @param int $httpCode
|
||||||
|
* @param mixed $content
|
||||||
|
* @param string $content_type
|
||||||
|
* @return void
|
||||||
|
* @throws HTTPException\InternalServerErrorException
|
||||||
|
*/
|
||||||
|
public function jsonError(int $httpCode, $content, string $content_type = 'application/json')
|
||||||
|
{
|
||||||
|
if ($httpCode >= 400) {
|
||||||
|
$this->logger->debug('Exit with error', ['code' => $httpCode, 'content_type' => $content_type, 'method' => $this->args->getMethod(), 'agent' => $this->server['HTTP_USER_AGENT'] ?? '']);
|
||||||
|
}
|
||||||
|
|
||||||
|
$this->response->setStatus($httpCode);
|
||||||
|
$this->jsonExit($content, $content_type);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
<?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
|
* @license GNU AGPL version 3 or any later version
|
||||||
*
|
*
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
<?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
|
* @license GNU AGPL version 3 or any later version
|
||||||
*
|
*
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
<?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
|
* @license GNU AGPL version 3 or any later version
|
||||||
*
|
*
|
||||||
|
@ -70,7 +70,7 @@ interface ICanCreateResponses
|
||||||
*
|
*
|
||||||
* @throws InternalServerErrorException
|
* @throws InternalServerErrorException
|
||||||
*/
|
*/
|
||||||
public function setType(string $type, ?string $content_type = null): void;
|
public function setType(string $type = ICanCreateResponses::TYPE_HTML, ?string $content_type = null): void;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Sets the status and the reason for the response
|
* Sets the status and the reason for the response
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
<?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
|
* @license GNU AGPL version 3 or any later version
|
||||||
*
|
*
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
<?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
|
* @license GNU AGPL version 3 or any later version
|
||||||
*
|
*
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
<?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
|
* @license GNU AGPL version 3 or any later version
|
||||||
*
|
*
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
<?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
|
* @license GNU AGPL version 3 or any later version
|
||||||
*
|
*
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
<?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
|
* @license GNU AGPL version 3 or any later version
|
||||||
*
|
*
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
<?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
|
* @license GNU AGPL version 3 or any later version
|
||||||
*
|
*
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
<?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
|
* @license GNU AGPL version 3 or any later version
|
||||||
*
|
*
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
<?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
|
* @license GNU AGPL version 3 or any later version
|
||||||
*
|
*
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
<?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
|
* @license GNU AGPL version 3 or any later version
|
||||||
*
|
*
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
<?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
|
* @license GNU AGPL version 3 or any later version
|
||||||
*
|
*
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
<?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
|
* @license GNU AGPL version 3 or any later version
|
||||||
*
|
*
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
<?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
|
* @license GNU AGPL version 3 or any later version
|
||||||
*
|
*
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
<?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
|
* @license GNU AGPL version 3 or any later version
|
||||||
*
|
*
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
<?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
|
* @license GNU AGPL version 3 or any later version
|
||||||
*
|
*
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
<?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
|
* @license GNU AGPL version 3 or any later version
|
||||||
*
|
*
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
<?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
|
* @license GNU AGPL version 3 or any later version
|
||||||
*
|
*
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
<?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
|
* @license GNU AGPL version 3 or any later version
|
||||||
*
|
*
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
<?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
|
* @license GNU AGPL version 3 or any later version
|
||||||
*
|
*
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
<?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
|
* @license GNU AGPL version 3 or any later version
|
||||||
*
|
*
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
<?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
|
* @license GNU AGPL version 3 or any later version
|
||||||
*
|
*
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
<?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
|
* @license GNU AGPL version 3 or any later version
|
||||||
*
|
*
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
<?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
|
* @license GNU AGPL version 3 or any later version
|
||||||
*
|
*
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
<?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
|
* @license GNU AGPL version 3 or any later version
|
||||||
*
|
*
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
<?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
|
* @license GNU AGPL version 3 or any later version
|
||||||
*
|
*
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
<?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
|
* @license GNU AGPL version 3 or any later version
|
||||||
*
|
*
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
<?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
|
* @license GNU AGPL version 3 or any later version
|
||||||
*
|
*
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
<?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
|
* @license GNU AGPL version 3 or any later version
|
||||||
*
|
*
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
<?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
|
* @license GNU AGPL version 3 or any later version
|
||||||
*
|
*
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
<?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
|
* @license GNU AGPL version 3 or any later version
|
||||||
*
|
*
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
<?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
|
* @license GNU AGPL version 3 or any later version
|
||||||
*
|
*
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
<?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
|
* @license GNU AGPL version 3 or any later version
|
||||||
*
|
*
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
<?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
|
* @license GNU AGPL version 3 or any later version
|
||||||
*
|
*
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
<?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
|
* @license GNU AGPL version 3 or any later version
|
||||||
*
|
*
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
<?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
|
* @license GNU AGPL version 3 or any later version
|
||||||
*
|
*
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
<?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
|
* @license GNU AGPL version 3 or any later version
|
||||||
*
|
*
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
<?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
|
* @license GNU AGPL version 3 or any later version
|
||||||
*
|
*
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
<?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
|
* @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
Loading…
Reference in a new issue