user-info.php 2.0 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879
  1. #!/usr/bin/php
  2. <?php
  3. require(__DIR__ . '/_cli.php');
  4. const DATA_FORMAT = "%-7s | %-20s | %-25s | %-15s | %-10s | %-10s | %-10s | %-10s | %-10s | %-10s | %-5s | %-10s\n";
  5. $params = array(
  6. 'user:',
  7. 'header',
  8. );
  9. $options = getopt('h', $params);
  10. if (!validateOptions($argv, $params)) {
  11. fail('Usage: ' . basename(__FILE__) . ' (-h --header --user username --user username …)');
  12. }
  13. if (empty($options['user'])) {
  14. $users = listUsers();
  15. } elseif (is_array($options['user'])) {
  16. $users = $options['user'];
  17. } else {
  18. $users = array($options['user']);
  19. }
  20. sort($users);
  21. if (array_key_exists('header', $options)) {
  22. printf(
  23. DATA_FORMAT,
  24. 'default',
  25. 'user',
  26. 'last user activity',
  27. 'space used',
  28. 'categories',
  29. 'feeds',
  30. 'reads',
  31. 'unreads',
  32. 'favourites',
  33. 'tags',
  34. 'lang',
  35. 'email'
  36. );
  37. }
  38. foreach ($users as $username) {
  39. $username = cliInitUser($username);
  40. $userConfiguration = get_user_configuration($username);
  41. $catDAO = FreshRSS_Factory::createCategoryDao($username);
  42. $feedDAO = FreshRSS_Factory::createFeedDao($username);
  43. $entryDAO = FreshRSS_Factory::createEntryDao($username);
  44. $tagDAO = FreshRSS_Factory::createTagDao($username);
  45. $databaseDAO = FreshRSS_Factory::createDatabaseDAO($username);
  46. $nbEntries = $entryDAO->countUnreadRead();
  47. $nbFavorites = $entryDAO->countUnreadReadFavorites();
  48. $data = array(
  49. 'default' => $username === FreshRSS_Context::$system_conf->default_user ? '*' : '',
  50. 'user' => $username,
  51. 'last_user_activity' => FreshRSS_UserDAO::mtime($username),
  52. 'database_size' => $databaseDAO->size(),
  53. 'categories' => $catDAO->count(),
  54. 'feeds' => count($feedDAO->listFeedsIds()),
  55. 'reads' => $nbEntries['read'],
  56. 'unreads' => $nbEntries['unread'],
  57. 'favourites' => $nbFavorites['all'],
  58. 'tags' => $tagDAO->count(),
  59. 'lang' => $userConfiguration->language,
  60. 'mail_login' => $userConfiguration->mail_login,
  61. );
  62. if (isset($options['h'])) { //Human format
  63. $data['last_user_activity'] = date('c', $data['last_user_activity']);
  64. $data['database_size'] = format_bytes($data['database_size']);
  65. }
  66. vprintf(DATA_FORMAT, $data);
  67. }
  68. done();