fixup_hashtags.php 1.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051
  1. #!/usr/bin/env php
  2. <?php
  3. /*
  4. * StatusNet - the distributed open-source microblogging tool
  5. * Copyright (C) 2008, 2009, StatusNet, Inc.
  6. *
  7. * This program is free software: you can redistribute it and/or modify
  8. * it under the terms of the GNU Affero General Public License as published by
  9. * the Free Software Foundation, either version 3 of the License, or
  10. * (at your option) any later version.
  11. *
  12. * This program is distributed in the hope that it will be useful,
  13. * but WITHOUT ANY WARRANTY; without even the implied warranty of
  14. * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
  15. * GNU Affero General Public License for more details.
  16. *
  17. * You should have received a copy of the GNU Affero General Public License
  18. * along with this program. If not, see <http://www.gnu.org/licenses/>.
  19. */
  20. // Abort if called from a web server
  21. if (isset($_SERVER) && array_key_exists('REQUEST_METHOD', $_SERVER)) {
  22. print "This script must be run from the command line\n";
  23. exit();
  24. }
  25. define('INSTALLDIR', dirname(__DIR__));
  26. define('PUBLICDIR', INSTALLDIR . DIRECTORY_SEPARATOR . 'public');
  27. define('GNUSOCIAL', true);
  28. define('STATUSNET', true); // compatibility
  29. require_once INSTALLDIR . '/lib/util/common.php';
  30. common_log(LOG_INFO, 'Starting to do old notices.');
  31. $notice = new Notice();
  32. $cnt = $notice->find();
  33. while ($notice->fetch()) {
  34. common_log(LOG_INFO, 'Getting tags for notice #' . $notice->id);
  35. $notice->saveTags();
  36. $original = clone($notice);
  37. $notice->rendered = common_render_content($notice->content,
  38. $notice->getProfile(),
  39. $notice->hasParent() ? $notice->getParent() : null);
  40. $result = $notice->update($original);
  41. if (!$result) {
  42. common_log_db_error($notice, 'UPDATE', __FILE__);
  43. }
  44. }