]> git.mxchange.org Git - quix0rs-gnu-social.git/commitdiff
Merge branch '0.9-release'
authorZach Copley <zach@status.net>
Fri, 20 Nov 2009 04:12:46 +0000 (20:12 -0800)
committerZach Copley <zach@status.net>
Fri, 20 Nov 2009 04:12:46 +0000 (20:12 -0800)
* 0.9-release: (874 commits)
  Removed call to NewDirectMessage() until IE return is fixed i.e.,
  Don't show flag user button your own profile
  Fixed HXR response for flag user
  Using the right form class name
  Using common_redirect
  Left a form_data class of a <ul> in the user admin panel
  Added validation to fields in user admin panel
  Added a user admin panel
  Added mobile logos for default and identica themes
  Changed gif to png
  Changed this to action. THANKS zach!
  Doing content negotiation only once
  Add execute bit to pingqueuehandler
  Localisation updates for !StatusNet from !translatewiki.net
  Use the browser's geolocation API to set the location on the notice form
  Add geometa library, and include it.
  Add location form elements to the noticeform, and save their values on submission
  Use the $user object nickname, as login name doesnt have to == nickname anymore with plugins such as ldap/etc
  Revert "Re added NICKNAME_FMT constant to router.php."
  Moved most path and server settings to a new paths admin panel
  ...

Conflicts:
js/util.js
locale/it_IT/LC_MESSAGES/statusnet.mo
locale/mk_MK/LC_MESSAGES/statusnet.mo
locale/mk_MK/LC_MESSAGES/statusnet.po
locale/pt_BR/LC_MESSAGES/statusnet.mo
locale/vi_VN/LC_MESSAGES/statusnet.mo
plugins/InfiniteScroll/infinitescroll.js
plugins/Realtime/realtimeupdate.js

locale/pt_BR/LC_MESSAGES/statusnet.mo
plugins/InfiniteScroll/infinitescroll.js
plugins/Meteor/meteorupdater.js
plugins/Realtime/RealtimePlugin.php
scripts/updateavatarurl.php [new file with mode: 0644]

index fcec3270e9e53e28edb1e0c64f09a100415ed467..cdad8cc6cd277d5968a46f613369aaa89314f560 100644 (file)
Binary files a/locale/pt_BR/LC_MESSAGES/statusnet.mo and b/locale/pt_BR/LC_MESSAGES/statusnet.mo differ
index 0dafef6d52f2bf68ba08f672c94b20b2cd62f132..0c8edce2b09a9035f720925276621e0677fc2f4a 100644 (file)
@@ -1,6 +1,6 @@
 jQuery(document).ready(function($){
   $('notices_primary').infinitescroll({
-    debug: true,
+    debug: false,
     infiniteScroll  : false,
     nextSelector    : 'body#public li.nav_next a,'+
                       'body#all li.nav_next a,'+
index 9ce68775bf8ba1ebd89efc05f90605a753487231..cdd1d63fabb5f31adaea7da8e2af81b848e3d63b 100644 (file)
@@ -1,6 +1,4 @@
 // Update the local timeline from a Meteor server
-// XXX: If @a is subscribed to @b, @a should get @b's notices in @a's Personal timeline.
-//      Do Replies timeline.
 
 var MeteorUpdater = function()
 {
index c5fb6de038fa7cc83a9f6a367a9c53b01261e914..198cb5ad71395827057ec44e46ac9e7b8d7491e3 100644 (file)
@@ -139,8 +139,8 @@ class RealtimePlugin extends Plugin
 
         // Add to the public timeline
 
-        if ($notice->is_local ||
-            ($notice->is_local == 0 && !common_config('public', 'localonly'))) {
+        if ($notice->is_local == Notice::LOCAL_PUBLIC ||
+            ($notice->is_local == Notice::REMOTE_OMB && !common_config('public', 'localonly'))) {
             $paths[] = array('public');
         }
 
@@ -237,7 +237,6 @@ class RealtimePlugin extends Plugin
         }
 
         $action->showContentBlock();
-        $action->showScripts();
         $action->elementEnd('body');
         return false; // No default processing
     }
@@ -247,13 +246,13 @@ class RealtimePlugin extends Plugin
         // FIXME: this code should be abstracted to a neutral third
         // party, like Notice::asJson(). I'm not sure of the ethics
         // of refactoring from within a plugin, so I'm just abusing
-        // the ApiAction method. Don't do this unless you're me!
+        // the TwitterApiAction method. Don't do this unless you're me!
 
-        require_once(INSTALLDIR.'/lib/api.php');
+        require_once(INSTALLDIR.'/lib/twitterapi.php');
 
-        $act = new ApiAction('/dev/null');
+        $act = new TwitterApiAction('/dev/null');
 
-        $arr = $act->twitterStatusArray($notice, true);
+        $arr = $act->twitter_status_array($notice, true);
         $arr['url'] = $notice->bestUrl();
         $arr['html'] = htmlspecialchars($notice->rendered);
         $arr['source'] = htmlspecialchars($arr['source']);
diff --git a/scripts/updateavatarurl.php b/scripts/updateavatarurl.php
new file mode 100644 (file)
index 0000000..dfcfc11
--- /dev/null
@@ -0,0 +1,128 @@
+#!/usr/bin/env php
+<?php
+/*
+ * StatusNet - a distributed open-source microblogging tool
+ * Copyright (C) 2008, 2009, StatusNet, Inc.
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Affero General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU Affero General Public License for more details.
+ *
+ * You should have received a copy of the GNU Affero General Public License
+ * along with this program.  If not, see <http://www.gnu.org/licenses/>.
+ */
+
+define('INSTALLDIR', realpath(dirname(__FILE__) . '/..'));
+
+$shortoptions = 'i:n:a';
+$longoptions = array('id=', 'nickname=', 'all');
+
+$helptext = <<<END_OF_UPDATEAVATARURL_HELP
+updateavatarurl.php [options]
+update the URLs of all avatars in the system
+
+  -i --id       ID of user to update
+  -n --nickname nickname of the user to update
+  -a --all      update all
+
+END_OF_UPDATEAVATARURL_HELP;
+
+require_once INSTALLDIR.'/scripts/commandline.inc';
+
+try {
+    $user = null;
+
+    if (have_option('i', 'id')) {
+        $id = get_option_value('i', 'id');
+        $user = User::staticGet('id', $id);
+        if (empty($user)) {
+            throw new Exception("Can't find user with id '$id'.");
+        }
+        updateAvatars($user);
+    } else if (have_option('n', 'nickname')) {
+        $nickname = get_option_value('n', 'nickname');
+        $user = User::staticGet('nickname', $nickname);
+        if (empty($user)) {
+            throw new Exception("Can't find user with nickname '$nickname'");
+        }
+        updateAvatars($user);
+    } else if (have_option('a', 'all')) {
+        $user = new User();
+        if ($user->find()) {
+            while ($user->fetch()) {
+                updateAvatars($user);
+            }
+        }
+    } else {
+        throw new Exception("You have to provide an ID or nickname or 'all'.");
+    }
+} catch (Exception $e) {
+    print $e->getMessage()."\n";
+    exit(1);
+}
+
+function updateAvatars($user)
+{
+    $touched = false;
+
+    if (!have_option('q', 'quiet')) {
+        print "Updating avatars for user '".$user->nickname."' (".$user->id.")...";
+    }
+
+    $avatar = new Avatar();
+
+    $avatar->profile_id = $user->id;
+
+    if (!$avatar->find()) {
+        if (have_option('v', 'verbose')) {
+                print "(none found)...";
+        }
+    } else {
+        while ($avatar->fetch()) {
+            if (have_option('v', 'verbose')) {
+                if ($avatar->original) {
+                    print "original...";
+                } else {
+                    print $avatar->width."...";
+                }
+            }
+
+            $orig = clone($avatar);
+
+            $avatar->url = Avatar::url($avatar->filename);
+
+            if ($avatar->url != $orig->url) {
+                $sql =
+                  "UPDATE avatar SET url = '" . $avatar->url . "' ".
+                  "WHERE profile_id = " . $avatar->profile_id . " ".
+                  "AND width = " . $avatar->width . " " .
+                  "AND height = " . $avatar->height . " ";
+
+                if ($avatar->original) {
+                    $sql .= "AND original = 1 ";
+                }
+
+                if (!$avatar->query($sql)) {
+                    throw new Exception("Can't update avatar for user " . $user->nickname . ".");
+                } else {
+                    $touched = true;
+                }
+            }
+        }
+    }
+
+    if ($touched) {
+        $profile = $user->getProfile();
+        common_broadcast_profile($profile);
+    }
+
+    if (have_option('v', 'verbose')) {
+        print "DONE.\n";
+    }
+}