initialize_notice_to_status.php 1.8 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152
  1. #!/usr/bin/env php
  2. <?php
  3. /*
  4. * StatusNet - the distributed open-source microblogging tool
  5. * Copyright (C) 2010, 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. define('INSTALLDIR', realpath(dirname(__FILE__) . '/../../..'));
  21. $helptext = <<<ENDOFHELP
  22. USAGE: initialize_notice_to_status.php
  23. Initializes the notice_to_status table with existing Twitter synch
  24. data. Only necessary if you've had the Twitter bridge enabled before
  25. version 0.9.5.
  26. ENDOFHELP;
  27. require_once INSTALLDIR.'/scripts/commandline.inc';
  28. // We update any notices that may have come in from
  29. // Twitter that we don't have a status_id for. Note that
  30. // this won't catch notices that originated at this StatusNet site.
  31. $n = new Notice();
  32. $n->query('SELECT notice.id, notice.uri ' .
  33. 'FROM notice LEFT JOIN notice_to_status ' .
  34. 'ON notice.id = notice_to_status.notice_id ' .
  35. 'WHERE notice.source = "twitter"' .
  36. 'AND notice_to_status.status_id IS NULL');
  37. while ($n->fetch()) {
  38. if (preg_match('/^http://twitter.com(/#!)?/[\w_.]+/status/(\d+)$/', $n->uri, $match)) {
  39. $status_id = $match[1];
  40. Notice_to_status::saveNew($n->id, $status_id);
  41. }
  42. }