Merge branch 'develop' into blocks-and-mutes-fixes
Add dislike counts to Mastodon API Statuses in FriendicaExtension
Fix phpcbf style errors in part of code I didn't change
Add Mastodon format compatible (un)dislike endpoint in Friendica API space
Add deleted check to FavouritedBy Mastodon endpoint
Add DislikedBy Mastodon compatible endpoint in the Friendica API space
Merge branch 'develop' into dislike-for-mastodon-endpoints
Merge pull request #12826 from HankG/dislike-for-mastodon-endpoints
Dislike capabilities for Mastodon compatible endpoints
Remove addon table from DB structure
Merge pull request #12829 from Quix0r/fixes/export-to-file-null
Fixed: DomainPatternBlocklist::exportToFile() must be of the type string, null given
Add to Mastodon Status/Context filter for ignored and blocked user's comments
Fix API tests without addon table
Fix database
Merge pull request #12830 from MrPetovan/bug/12828-addon-table
Remove addon table from DB structure
Update json-ld to 1.1.2
Implement time based paging for Mastodon Home Timeline Endpoint
Merge pull request #12832 from nupplaphil/feat/json-ld-1.1.2
Update json-ld to 1.1.2
Fix emoji activities
Merge pull request #12833 from annando/ostatus-like
Fix emoji activities
Simply Timeline Home temporal endpoint to reuse min_id and max_id
Merge branch 'develop' into blocks-and-mutes-fixes
Add dislike counts to Mastodon API Statuses in FriendicaExtension
Fix phpcbf style errors in part of code I didn't change
Add Mastodon format compatible (un)dislike endpoint in Friendica API space
Add deleted check to FavouritedBy Mastodon endpoint
Add DislikedBy Mastodon compatible endpoint in the Friendica API space
Merge branch 'develop' into dislike-for-mastodon-endpoints
Merge pull request #12826 from HankG/dislike-for-mastodon-endpoints
Dislike capabilities for Mastodon compatible endpoints
Fixed:
[Error] Argument 1 passed to Friendica\Moderation\DomainPatternBlocklist::exportToFile() must be of the type string, null given, called in /var/www/.../src/Console/ServerBlock.php on line 110
Remove addon table from DB structure
Merge pull request #12829 from Quix0r/fixes/export-to-file-null
Fixed: DomainPatternBlocklist::exportToFile() must be of the type string, null given
Add to Mastodon Status/Context filter for ignored and blocked user's comments
Fix API tests without addon table
Fix database
Merge pull request #12830 from MrPetovan/bug/12828-addon-table
Remove addon table from DB structure
Update json-ld to 1.1.2
Implement time based paging for Mastodon Home Timeline Endpoint
Merge pull request #12832 from nupplaphil/feat/json-ld-1.1.2
Update json-ld to 1.1.2
Fix emoji activities
Merge pull request #12833 from annando/ostatus-like
Fix emoji activities
I can no longer start RS or I have to clean ~/.retroshare/LOC06_*/config/*
files:
/E 1678181852.842 RsFriendListModel::EntryIndex RsFriendListModel::EntryIndex::parent() const Unknown Entry type for parent.
Caught signal 11 (SIGSEGV)
stack trace:
retroshare(_ZN15CrashStackTrace12abortHandlerEi+0x8b)[0x7f099b]
/lib/x86_64-linux-gnu/libc.so.6(+0x38d60)[0x7fae44fb6d60]
/tmp/.mount_retrosaUXFZQ/usr/lib/libQt5Core.so.5(+0x23ae38)[0x7fae456dce38]
/tmp/.mount_retrosaUXFZQ/usr/lib/libQt5Core.so.5(_ZNK21QSortFilterProxyModel11mapToSourceERK11QModelIndex+0xd)[0x7fae456dcf0d]
/tmp/.mount_retrosaUXFZQ/usr/lib/libQt5Core.so.5(+0x23dbae)[0x7fae456dfbae]
/tmp/.mount_retrosaUXFZQ/usr/lib/libQt5Core.so.5(+0x23dfd0)[0x7fae456dffd0]
/tmp/.mount_retrosaUXFZQ/usr/lib/libQt5Core.so.5(+0x243df3)[0x7fae456e5df3]
/tmp/.mount_retrosaUXFZQ/usr/lib/libQt5Core.so.5(_ZN11QMetaObject8activateEP7QObjectiiPPv+0x2c1)[0x7fae4573d791]
/tmp/.mount_retrosaUXFZQ/usr/lib/libQt5Core.so.5(_ZN18QAbstractItemModel22layoutAboutToBeChangedERK5QListI21QPersistentModelIndexENS_16LayoutChangeHintE+0x36)[0x7fae457b41d6]
retroshare(_ZN17RsFriendListModel7preModsEv+0x1e)[0x9d418e]
retroshare(_ZN17RsFriendListModel18updateInternalDataEv+0x19)[0x9d74b9]
retroshare(_ZN13NewFriendList15processSettingsEb+0x262)[0x9dc7c2]
retroshare(_ZN13FriendsDialog15processSettingsEb+0x112)[0x843182]
retroshare(_ZN13FriendsDialogC1EP7QWidget+0x4aa)[0x843fca]
retroshare(_ZN10MainWindow15initStackedPageEv+0xb9)[0x839179]
retroshare(_ZN10MainWindowC1EP7QWidget6QFlagsIN2Qt10WindowTypeEE+0x4b2)[0x83b6b2]
retroshare(_ZN10MainWindow6CreateEv+0x39)[0x83ce49]
retroshare(main+0x1b7f)[0x78a1af]
/lib/x86_64-linux-gnu/libc.so.6(__libc_start_main+0xea)[0x7fae44fa1d0a]
retroshare(_start+0x29)[0x7c4859]
E 1678181852.860 virtual RsThread::~RsThread() deleting thread: 140385670117120 gxs trans ns that is still running! Something seems very wrong here and RetroShare is likely to crash because of this.
stack trace:
retroshare : RsGxsNetService::~RsGxsNetService()+0x420
retroshare : RsGxsNetService::~RsGxsNetService()+0x9
retroshare : RsGenExchange::~RsGenExchange()+0x43
retroshare : p3GxsTrans::~p3GxsTrans()+0x9
retroshare : RsServer::~RsServer()+0x2f
/lib/x86_64-linux-gnu/libc.so.6 : ()+0x3b4d7
/lib/x86_64-linux-gnu/libc.so.6 : ()+0x3b67a
retroshare : CrashStackTrace::abortHandler(int)+0xb8
/lib/x86_64-linux-gnu/libc.so.6 : ()+0x38d60
/tmp/.mount_retrosaUXFZQ/usr/lib/libQt5Core.so.5 : ()+0x23ae38
/tmp/.mount_retrosaUXFZQ/usr/lib/libQt5Core.so.5 : QSortFilterProxyModel::mapToSource(QModelIndex const&) const+0xd
/tmp/.mount_retrosaUXFZQ/usr/lib/libQt5Core.so.5 : ()+0x23dbae
/tmp/.mount_retrosaUXFZQ/usr/lib/libQt5Core.so.5 : ()+0x23dfd0
/tmp/.mount_retrosaUXFZQ/usr/lib/libQt5Core.so.5 : ()+0x243df3
/tmp/.mount_retrosaUXFZQ/usr/lib/libQt5Core.so.5 : QMetaObject::activate(QObject*, int, int, void**)+0x2c1
/tmp/.mount_retrosaUXFZQ/usr/lib/libQt5Core.so.5 : QAbstractItemModel::layoutAboutToBeChanged(QList<QPersistentModelIndex> const&, QAbstractItemModel::LayoutChangeHint)+0x36
retroshare : RsFriendListModel::preMods()+0x1e
retroshare : RsFriendListModel::updateInternalData()+0x19
retroshare : NewFriendList::processSettings(bool)+0x262
retroshare : FriendsDialog::processSettings(bool)+0x112
retroshare : FriendsDialog::FriendsDialog(QWidget*)+0x4aa
retroshare : MainWindow::initStackedPage()+0xb9
retroshare : MainWindow::MainWindow(QWidget*, QFlags<Qt::WindowType>)+0x4b2
retroshare : MainWindow::Create()+0x39
retroshare : main()+0x1b7f
/lib/x86_64-linux-gnu/libc.so.6 : __libc_start_main()+0xea
retroshare : _start()+0x29
pure virtual method called
terminate called without an active exception
Caught signal 6 (SIGABRT)
stack trace:
retroshare(_ZN15CrashStackTrace12abortHandlerEi+0x8b)[0x7f099b]
/lib/x86_64-linux-gnu/libc.so.6(+0x38d60)[0x7fae44fb6d60]
/lib/x86_64-linux-gnu/libc.so.6(gsignal+0x141)[0x7fae44fb6ce1]
/lib/x86_64-linux-gnu/libc.so.6(abort+0x123)[0x7fae44fa0537]
/usr/lib/x86_64-linux-gnu/libstdc++.so.6(+0x9a7ec)[0x7fae4534b7ec]
/usr/lib/x86_64-linux-gnu/libstdc++.so.6(+0xa5966)[0x7fae45356966]
/usr/lib/x86_64-linux-gnu/libstdc++.so.6(+0xa59d1)[0x7fae453569d1]
/usr/lib/x86_64-linux-gnu/libstdc++.so.6(+0xa669f)[0x7fae4535769f]
retroshare(_ZN13RsGenExchange4tickEv+0xf5)[0xdc98e5]
retroshare(_ZN13RsGenExchange10threadTickEv+0x9)[0xdc9d59]
retroshare(_ZN8RsThread7wrapRunEv+0x29)[0xd799d9]
retroshare(_ZN8RsThread13rsthread_initEPv+0x1e)[0xd79a2e]
/lib/x86_64-linux-gnu/libpthread.so.0(+0x7ea7)[0x7fae45485ea7]
/lib/x86_64-linux-gnu/libc.so.6(clone+0x3f)[0x7fae4507aa2f]
Memory still in use at end of program: 1696 bytes.
Caught signal 11 (SIGSEGV)
stack trace:
retroshare(_ZN15CrashStackTrace12abortHandlerEi+0x8b)[0x7f099b]
/lib/x86_64-linux-gnu/libc.so.6(+0x38d60)[0x7fae44fb6d60]
/lib/x86_64-linux-gnu/libc.so.6(+0x1614ca)[0x7fae450df4ca]
/usr/lib/x86_64-linux-gnu/libstdc++.so.6(_ZNSs6appendERKSs+0x50)[0x7fae453961e0]
retroshare(_ZNK5RsUrl8toStringEv+0x3b)[0xd7fdeb]
retroshare(_Z25sockaddr_storage_tostringRK16sockaddr_storage+0xcd)[0xd75d6d]
retroshare(_ZN14pqissllistener6statusEv+0x45)[0x10b7915]
retroshare(_ZN16pqissllistenbase4tickEv+0xa)[0x10ba88a]
retroshare(_ZN12pqipersongrp4tickEv+0x62)[0x104e792]
retroshare(_ZN8RsServer10threadTickEv+0x9f)[0xcbf40f]
retroshare(_ZN8RsThread7wrapRunEv+0x29)[0xd799d9]
retroshare(_ZN8RsThread13rsthread_initEPv+0x1e)[0xd79a2e]
/lib/x86_64-linux-gnu/libpthread.so.0(+0x7ea7)[0x7fae45485ea7]
/lib/x86_64-linux-gnu/libc.so.6(clone+0x3f)[0x7fae4507aa2f]
If there is anything I can help to fix this? Sure cleaning up that directory but then I start with a new ID and have to setup all over again.
Same here, so far no slow-downs.
Should I enter this in php.ini or how should I raise the loggin lever? Only set
E_ALL
for such scenarios and later please set it back to the recommended productive value.
Since the last update, this type of memory size fatals occurs quite often. the PHP memory_limit is set to 2 gigabytes. Reduce it again. It is a memory-leak that needs to be further investigated. You could assign even 64G or more, still it will come. Or did our software tried to load a whole video? Cannot we put something BEFORE loading the file, e.g. checking if file's size is to large?
My patch is longer fitting with the newer version:
diff --git a/libdino/src/entity/settings.vala b/libdino/src/entity/settings.vala
index 97ea5482..0c3317f2 100644
--- a/libdino/src/entity/settings.vala
+++ b/libdino/src/entity/settings.vala
@@ -12,6 +12,7 @@ public class Settings : Object {
notifications_ = col_to_bool_or_default("notifications", true);
convert_utf8_smileys_ = col_to_bool_or_default("convert_utf8_smileys", true);
check_spelling = col_to_bool_or_default("check_spelling", true);
+ trayicon = col_to_bool_or_default("trayicon", true);
}
private bool col_to_bool_or_default(string key, bool def) {
@@ -78,6 +79,17 @@ public class Settings : Object {
check_spelling_ = value;
}
}
+ private bool trayicon_;
+ public bool trayicon {
+ get { return trayicon_; }
+ set {
+ db.settings.upsert()
+ .value(db.settings.key, "trayicon", true)
+ .value(db.settings.value, value.to_string())
+ .perform();
+ trayicon_ = value;
+ }
+ }
}
}
diff --git a/main/data/settings_dialog.ui b/main/data/settings_dialog.ui
index d5b7ac92..5956c46d 100644
--- a/main/data/settings_dialog.ui
+++ b/main/data/settings_dialog.ui
@@ -77,6 +77,18 @@
<property name="height">1</property>
</packing>
</child>
+ <child>
+ <object class="GtkCheckButton" id="trayicon_checkbutton">
+ <property name="label" translatable="yes">Tray icon</property>
+ <property name="visible">True</property>
+ </object>
+ <packing>
+ <property name="left_attach">0</property>
+ <property name="top_attach">5</property>
+ <property name="width">1</property>
+ <property name="height">1</property>
+ </packing>
+ </child>
</object>
</child>
</object>
diff --git a/main/src/main.vala b/main/src/main.vala
index afa1f52b..393d833a 100644
--- a/main/src/main.vala
+++ b/main/src/main.vala
@@ -1,8 +1,10 @@
+using Gtk;
using Dino.Entities;
using Dino.Ui;
extern const string GETTEXT_PACKAGE;
extern const string LOCALE_INSTALL_DIR;
+StatusIcon trayicon;
namespace Dino {
diff --git a/main/src/ui/application.vala b/main/src/ui/application.vala
index ecbea85e..362a8230 100644
--- a/main/src/ui/application.vala
+++ b/main/src/ui/application.vala
@@ -20,8 +20,45 @@ public class Dino.Ui.Application : Gtk.Application, Dino.Application {
public StreamInteractor stream_interactor { get; set; }
public Plugins.Registry plugin_registry { get; set; default = new Plugins.Registry(); }
public SearchPathGenerator? search_path_generator { get; set; }
-
+ private Gtk.Menu menuSystem;
+ public bool mactive = false;
internal static bool print_version = false;
+
+ private void menuSystem_popup(uint button, uint time) {
+ mactive = window.is_active;
+ menuSystem.popup(null, null, null, button, time);
+ }
+
+ private void tray_clicked_left() {
+ tray_clicked(false);
+ }
+ private void tray_clicked_menu() {
+ tray_clicked(true);
+ }
+ private void tray_clicked(bool from_menu) {
+ if (window == null) {
+ controller = new MainWindowController(this, stream_interactor, db);
+ config = new Config(db);
+ window = new MainWindow(this, stream_interactor, db, config);
+ controller.set_window(window);
+ window.present();
+ }
+ window.delete_event.connect((event) => {
+ window.hide();
+ return true;
+ });
+ if(from_menu==false) mactive = window.is_active;
+ if(window.visible==false) {
+ window.show();
+ } else {
+ if(mactive==false) {
+ window.present();
+ } else {
+ window.hide();
+ }
+ }
+ }
+
private const OptionEntry[] options = {
{ "version", 0, 0, OptionArg.NONE, ref print_version, "Display version number", null },
{ null }
@@ -40,6 +77,57 @@ public class Dino.Ui.Application : Gtk.Application, Dino.Application {
create_actions();
add_main_option_entries(options);
+ if(settings.trayicon) {
+ trayicon = new StatusIcon.from_icon_name("im.dino.Dino");
+ trayicon.set_tooltip_text ("Dino");
+ trayicon.set_visible(true);
+ trayicon.activate.connect(tray_clicked_left);
+
+ menuSystem = new Gtk.Menu();
+
+ var box = new Box (Orientation.HORIZONTAL, 6);
+ var label = new Label ("Show/Hide Dino");
+ var menuItem = new Gtk.MenuItem();
+ box.add (label);
+ menuItem.add (box);
+ menuItem.activate.connect(tray_clicked_menu);
+ menuSystem.append(menuItem);
+
+ box = new Box (Orientation.HORIZONTAL, 6);
+ label = new Label ("Accounts");
+ menuItem = new Gtk.MenuItem();
+ box.add (label);
+ menuItem.add (box);
+ menuItem.activate.connect(show_accounts_window);
+ menuSystem.append(menuItem);
+
+ box = new Box (Orientation.HORIZONTAL, 6);
+ label = new Label ("Settings");
+ menuItem = new Gtk.MenuItem();
+ box.add (label);
+ menuItem.add (box);
+ menuItem.activate.connect(show_settings_window);
+ menuSystem.append(menuItem);
+
+ box = new Box (Orientation.HORIZONTAL, 6);
+ label = new Label ("About");
+ menuItem = new Gtk.MenuItem();
+ box.add (label);
+ menuItem.add (box);
+ menuItem.activate.connect(show_about_window);
+ menuSystem.append(menuItem);
+
+ box = new Box (Orientation.HORIZONTAL, 6);
+ label = new Label ("Quit");
+ menuItem = new Gtk.MenuItem();
+ box.add (label);
+ menuItem.add (box);
+ menuItem.activate.connect(quit);
+ menuSystem.append(menuItem);
+ menuSystem.show_all();
+ trayicon.popup_menu.connect(menuSystem_popup);
+ }
+
startup.connect(() => {
if (print_version) {
print(@"Dino $(Dino.VERSION)\n");
@@ -53,6 +141,7 @@ public class Dino.Ui.Application : Gtk.Application, Dino.Application {
notification_events.register_notification_provider(free_desktop_notifier);
}
notification_events.notify_content_item.connect((content_item, conversation) => {
+ trayicon.set_from_icon_name("dino-emoticon-symbolic");
// Set urgency hint also if (normal) notifications are disabled
// Don't set urgency hint in GNOME, produces "Window is active" notification
var desktop_env = Environment.get_variable("XDG_CURRENT_DESKTOP");
@@ -70,7 +159,10 @@ public class Dino.Ui.Application : Gtk.Application, Dino.Application {
config = new Config(db);
window = new MainWindow(this, stream_interactor, db, config);
controller.set_window(window);
- if ((get_flags() & ApplicationFlags.IS_SERVICE) == ApplicationFlags.IS_SERVICE) window.delete_event.connect(window.hide_on_delete);
+ if ((get_flags() & ApplicationFlags.IS_SERVICE) == ApplicationFlags.IS_SERVICE || settings.trayicon) window.delete_event.connect((event) => {
+ window.hide();
+ return true;
+ });
}
window.present();
});
diff --git a/main/src/ui/main_window_controller.vala b/main/src/ui/main_window_controller.vala
index dceb4094..1c3ba6d2 100644
--- a/main/src/ui/main_window_controller.vala
+++ b/main/src/ui/main_window_controller.vala
@@ -72,6 +72,7 @@ public class MainWindowController : Object {
return false;
});
window.focus_in_event.connect(() => {
+ trayicon.set_from_icon_name("im.dino.Dino");
stream_interactor.get_module(ChatInteraction.IDENTITY).on_window_focus_in(conversation);
window.urgency_hint = false;
return false;
diff --git a/main/src/ui/settings_dialog.vala b/main/src/ui/settings_dialog.vala
index e994e00c..687bffef 100644
--- a/main/src/ui/settings_dialog.vala
+++ b/main/src/ui/settings_dialog.vala
@@ -10,6 +10,7 @@ class SettingsDialog : Dialog {
[GtkChild] private unowned CheckButton notification_checkbutton;
[GtkChild] private unowned CheckButton emoji_checkbutton;
[GtkChild] private unowned CheckButton check_spelling_checkbutton;
+ [GtkChild] private unowned CheckButton trayicon_checkbutton;
Dino.Entities.Settings settings = Dino.Application.get_default().settings;
@@ -21,12 +22,14 @@ class SettingsDialog : Dialog {
notification_checkbutton.active = settings.notifications;
emoji_checkbutton.active = settings.convert_utf8_smileys;
check_spelling_checkbutton.active = settings.check_spelling;
+ trayicon_checkbutton.active = settings.trayicon;
typing_checkbutton.toggled.connect(() => { settings.send_typing = typing_checkbutton.active; } );
marker_checkbutton.toggled.connect(() => { settings.send_marker = marker_checkbutton.active; } );
notification_checkbutton.toggled.connect(() => { settings.notifications = notification_checkbutton.active; } );
emoji_checkbutton.toggled.connect(() => { settings.convert_utf8_smileys = emoji_checkbutton.active; });
check_spelling_checkbutton.toggled.connect(() => { settings.check_spelling = check_spelling_checkbutton.active; });
+ trayicon_checkbutton.toggled.connect(() => { settings.trayicon = trayicon_checkbutton.active; });
}
}
Can someone please try to upgrade it? I don't know Vala.
vendor/michelf/php-markdown/Michelf/MarkdownExtra.php
The above preg_split()
command has failed. Can you please try to reproduce it with a higher logging level in your php.ini
file, check error_reporting
variable. The documentation says:
; Development Value: E_ALL
; Production Value: E_ALL & ~E_DEPRECATED & ~E_STRICT
; http://php.net/error-reporting
error_reporting = E_ALL & ~E_DEPRECATED & ~E_STRICT
That's why I have my own GIT server, very easy to setup today with common Linux distributions. Even an USB stick can be a "server" just clone it from there (it must be initialized with git init --bare e:/repos/myproject.git
: git clone e:/repos/myproject.git
and you can push/merge/pull as usual.
Object of class Friendica\App\BaseURL could not be converted to int in /var/www/.../src/Model/Profile.php on line 337
found eror log of web server.
Fixed:
[Error] Argument 1 passed to Friendica\Moderation\DomainPatternBlocklist::exportToFile() must be of the type string, null given, called in /var/www/.../src/Console/ServerBlock.php on line 110
You can reproduce this by running ./bin/console serverblock export
(omitting the required file name)
Fixed:
[Error] Argument 1 passed to Friendica\Moderation\DomainPatternBlocklist::exportToFile() must be of the type string, null given, called in /var/www/.../src/Console/ServerBlock.php on line 110
The said table gets here recreated each time I run the update procedure. So this is what my script does:
./bin/console dbstructure update
./bin/console postupdate
(this step creates the table addon
)./bin/console dbstructure drop -e
(this step removes it again)Actual Result:
./deploy.sh: post-update ...
Check for pending update actions.
CREATE TABLE IF NOT EXISTS `addon` (
`id` int unsigned NOT NULL auto_increment COMMENT '',
`name` varchar(50) NOT NULL DEFAULT '' COMMENT 'addon base (file)name',
`version` varchar(50) NOT NULL DEFAULT '' COMMENT 'currently unused',
`installed` boolean NOT NULL DEFAULT '0' COMMENT 'currently always 1',
`hidden` boolean NOT NULL DEFAULT '0' COMMENT 'currently unused',
`timestamp` int unsigned NOT NULL DEFAULT 0 COMMENT 'file timestamp to check for reloads',
`plugin_admin` boolean NOT NULL DEFAULT '0' COMMENT '1 = has admin config, 0 = has no admin config',
PRIMARY KEY(`id`),
INDEX `installed_name` (`installed`,`name`),
UNIQUE INDEX `name` (`name`)
) DEFAULT COLLATE utf8mb4_general_ci COMMENT='registered addons';
Done.
Execute pending post updates.
All pending post updates are done.
./deploy.sh: db drop ...
DROP TABLE `addon`;
Expected Result:
The table isn't recreated each update being applied
Friendica Version: 2023.03-dev
Friendica Source: git
PHP version: 7.4.30
SQL version: 10.5.15-mariadb
[various] Adapt BaseURL calls for new UriInterface
Merge pull request '[various] Adapt BaseURL calls for new UriInterface' (#1356) from nupplaPhil/friendica-addons:feat/system_url_handling into develop
Reviewed-on: https://git.friendi.ca/friendica/friendica-addons/pulls/1356
[blockem] Fix syntax error
[blockem] Fix syntax error (#1357)
Changes:
Change Mastodon API documentation URL for V1 Instance type
Add Mastodon Instance V2 API endpoint /api/v2/instance
Fix binary_operator_spaces errors
Add License header to FriendicaExtensions file
Add notifications summary (count only for now) to Mastodon API
Fix whitespace issue on assignment alignment
Config to enable the optimizing of all tables
Merge branch 'develop' into notifications-summary
Remove extraneous ID parameter from Mastodon Blocks Listing API
Fix multiple serialized values
language and static
Update db-version
Merge pull request #12823 from annando/optimize
Config to enable the optimizing of all tables
Merge pull request #12814 from nupplaphil/bug/config_multi_serialize
Fix multiple serialized values
Merge branch 'develop' into fix-blocks-listing
Merge pull request #12821 from HankG/notifications-summary
Add Notifications summary poption to Mastodon API Endpoint
Refactor Mastodon API InstanceV2 so objects are simple and BI in API layer
Merge branch 'develop' into mastodon-instance-v2-implementation
Merge branch 'develop' into fix-blocks-listing
Merge branch 'develop' into mastodon-instance-v2-implementation
Change FollowRequest to return the user ID so is compatible with POST endpoint
Allows @ in query on statuses when resolving since Mastodon links have it
Fix style error
Change FollowRequest return type to be Account
Delete unused Mastodon FollowRequest object (can just use Account now)
Cleanup unused imports, excessive line length in Mastodon FollowRequest factory
Add blocked/ignored filters to Mastodon Timeline API Home and Tags endpoints
Add blocked/ignored filters to Mastodon Timeline API Direct and List endpoints
Some loglevels are adjusted to more reasonablöe levels
Remove explicit block filtering for results that go through selectViewForUser
Add support to Mastodon Tag Trends for paging, local tags, and faster refresh = with phpcbf format auto-correction
Allow @-symbols in Mastodon status searches under all conditions
Remove FollowRequest type and use mstdnAccount->createFromContactId instead
Add documentation to new trending tags endpoint QPs
Add offset parameter to Mastodon trending Links and Statuses endpoints
Merge pull request #12801 from HankG/fix-mastodon-api-search
Fix mastodon api search
Fix offset is absolute in set not a page to be consistent with SQL
Add Link headers by offset/limit capability to BaseApi
Add link headers to Mastodon trending endpoints
Add extension to Mastodon Status object for Friendica-specific things
Trying to access array offset on value of type bool in .../src/Factory/Api/Mastodon/Attachment.php on line 117
`Photo::selectFirst() has returned no result and that one wasn't captured/stopped.
I also came across this one and the temporary solution was tor recreate the views. After that, the granted permissions were gone and an error message about this came. I then granted access to these individual views (I only have 2 users, including myself). I still feel that this might not be the best, flexible solution, but the subscriptions view works again.
GRANT SELECT, INSERT, UPDATE, DELETE ON subscriptions_<ID_HERE> TO kemal;