use Friendica\Model\Post;
use Friendica\Model\Profile;
use Friendica\Model\User;
+use Friendica\Protocol\Activity;
use Friendica\Protocol\Delivery;
use Friendica\Security\PermissionSet\Repository\PermissionSet;
$a = new \stdClass();
$a->strings = [];
- // First we get the the localizations
+ // First we get the localizations
if (file_exists('view/lang/$lang/strings.php')) {
include 'view/lang/$lang/strings.php';
}
{
$config = DBA::selectToArray('config');
- $newConfig = DI::config()->transactional();
+ $newConfig = DI::config()->beginTransaction();
foreach ($config as $entry) {
$newConfig->set($entry['cat'], $entry['k'], $entry['v']);
}
- $newConfig->save();
+ $newConfig->commit();
- DBA::e("DELETE FROM `config`");
+ return Update::SUCCESS;
+}
+
+function update_1509()
+{
+ $addons = DBA::selectToArray('addon');
+
+ $newConfig = DI::config()->beginTransaction();
+
+ foreach ($addons as $addon) {
+ $newConfig->set('addons', $addon['name'], [
+ 'last_update' => $addon['timestamp'],
+ 'admin' => (bool)$addon['plugin_admin'],
+ ]);
+ }
+
+ $newConfig->commit();
+
+ return Update::SUCCESS;
+}
+
+function update_1510()
+{
+ $blocks = DBA::select('pconfig', ['uid', 'v'], ['cat' => 'blockem', 'k' => 'words']);
+ while ($block = DBA::fetch($blocks)) {
+ foreach (explode(',', $block['v']) as $account) {
+ $id = Contact::getIdForURL(trim($account), 0, false);
+ if (empty($id)) {
+ continue;
+ }
+ Contact\User::setCollapsed($id, $block['uid'], true);
+ }
+ }
+ return Update::SUCCESS;
+}
+
+function update_1512()
+{
+ DI::keyValue()->set('nodeinfo_total_users', DI::config()->get('nodeinfo', 'total_users'));
+ DI::keyValue()->set('nodeinfo_active_users_halfyear', DI::config()->get('nodeinfo', 'active_users_halfyear'));
+ DI::keyValue()->set('nodeinfo_active_users_monthly', DI::config()->get('nodeinfo', 'active_users_monthly'));
+ DI::keyValue()->set('nodeinfo_active_users_weekly', DI::config()->get('nodeinfo', 'active_users_weekly'));
+ DI::keyValue()->set('nodeinfo_local_posts', DI::config()->get('nodeinfo', 'local_posts'));
+ DI::keyValue()->set('nodeinfo_local_comments', DI::config()->get('nodeinfo', 'local_comments'));
+
+ DI::config()->delete('nodeinfo', 'total_users');
+ DI::config()->delete('nodeinfo', 'active_users_halfyear');
+ DI::config()->delete('nodeinfo', 'active_users_monthly');
+ DI::config()->delete('nodeinfo', 'active_users_weekly');
+ DI::config()->delete('nodeinfo', 'local_posts');
+ DI::config()->delete('nodeinfo', 'local_comments');
+}
+
+function update_1513()
+{
+ DI::keyValue()->set('git_friendica_version', DI::config()->get('system', 'git_friendica_version'));
+ DI::keyValue()->set('twitter_application_name', DI::config()->get('twitter', 'application_name'));
+
+ DI::config()->delete('system', 'git_friendica_version');
+ DI::config()->delete('twitter', 'application_name');
+}
+
+function update_1514()
+{
+ if (file_exists(dirname(__FILE__) . '/config/node.config.php')) {
+
+ $transactionalConfig = DI::config()->beginTransaction();
+ $oldConfig = include dirname(__FILE__) . '/config/node.config.php';
+
+ if (is_array($oldConfig)) {
+ $categories = array_keys($oldConfig);
+
+ foreach ($categories as $category) {
+ if (is_array($oldConfig[$category])) {
+ $keys = array_keys($oldConfig[$category]);
+
+ foreach ($keys as $key) {
+ $transactionalConfig->set($category, $key, $oldConfig[$category][$key]);
+ }
+ }
+ }
+ }
+
+ $transactionalConfig->commit();
+
+ // Rename the node.config.php so it won't get used, but it isn't deleted.
+ if (rename(dirname(__FILE__) . '/config/node.config.php', dirname(__FILE__) . '/config/node.config.php.bak')) {
+ return Update::SUCCESS;
+ } else {
+ return Update::FAILED;
+ }
+ }
+
+ return Update::SUCCESS;
+}
+
+function update_1515()
+{
+ DBA::update('verb', ['name' => Activity::READ], ['name' => 'https://www.w3.org/ns/activitystreams#read']);
+ DBA::update('verb', ['name' => Activity::VIEW], ['name' => 'https://joinpeertube.org/view']);
+ return Update::SUCCESS;
+}
+
+function update_1516()
+{
+ // Fixes https://github.com/friendica/friendica/issues/12803
+ // de-serialize multiple serialized values
+ $configTrans = DI::config()->beginTransaction();
+ $configArray = DI::config()->getCache()->getDataBySource(Cache::SOURCE_DATA);
+
+ foreach ($configArray as $category => $keyValues) {
+ if (is_array($keyValues)) {
+ foreach ($keyValues as $key => $value) {
+ $configTrans->set($category, $key, $value);
+ }
+ }
+ }
+
+ $configTrans->commit();
+
+ return Update::SUCCESS;
+}
+
+function update_1518()
+{
+ $users = DBA::select('user', ['uid']);
+ while ($user = DBA::fetch($users)) {
+ Contact::updateSelfFromUserID($user['uid']);
+ }
+ DBA::close($users);
+
+ return Update::SUCCESS;
+}
+
+function update_1520(): int
+{
+ DBA::update('user', ['parent-uid' => null], ['parent-uid' => 0]);
+
+ return Update::SUCCESS;
+}
+
+/**
+ * user-contact.remote_self was wrongly declared as boolean, possibly truncating integer values from contact.remote_self
+ *
+ * @return int
+ * @throws Exception
+ */
+function update_1524(): int
+{
+ $contacts = DBA::select('contact', ['uid', 'uri-id', 'remote_self'], ["`uid` != ?", 0]);
+ while ($contact = DBA::fetch($contacts)) {
+ Contact\User::insertForContactArray($contact);
+ }
+
+ return Update::SUCCESS;
}