Henrybk

Storage Info v4

Mar 6th, 2016
225
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Perl 1.88 KB | None | 0 0
  1. package howManyStorages;
  2.  
  3. use strict;
  4. use File::Spec;
  5. use Plugins;
  6. use Globals;
  7. use Log qw(debug message warning error);
  8. use Settings;
  9. use Network;
  10. use Network::Send;
  11. use Utils;
  12. use Misc;
  13.  
  14. Plugins::register('howManyStorages', 'count how many times you use storage', \&Unload);
  15.  
  16. my $hooks = Plugins::addHooks(
  17.     ['packet_storage_close', \&onInfo]
  18. );
  19.  
  20. my $chooks = Commands::register(
  21.     ['howMany', "Calculating", \&commandHandler]
  22. );
  23.  
  24. my $storage_count = 0;
  25. my $last_storage_time;
  26.  
  27. sub on_unload {
  28.     message "Plugin howManyStorages unloading\n", 'success';
  29.     Plugins::delHooks($hooks);
  30.     Commands::unregister($chooks);
  31. }
  32.  
  33. sub onInfo {
  34.     $storage_count++;
  35.     $last_storage_time = time;
  36. }
  37.  
  38. sub commandHandler {
  39.     my $msg;
  40.     my ($running_seconds, $storage_per_hour, $seconds_since_last_storage, $storage_time_estimation);
  41.     $running_seconds = int(time - $startTime_EXP);
  42.     $storage_per_hour = ($storage_count/$running_seconds)*3600;
  43.     if ($storage_count) {
  44.         $seconds_since_last_storage = int(time - $last_storage_time);
  45.         $storage_time_estimation = int((1/($storage_per_hour/3600))-($seconds_since_last_storage));
  46.         if ($storage_time_estimation > 0) {
  47.             $storage_time_estimation = timeConvert($storage_time_estimation);
  48.         } else {
  49.             $storage_time_estimation = "late ".timeConvert(abs($storage_time_estimation));
  50.         }
  51.         $seconds_since_last_storage = timeConvert($seconds_since_last_storage);
  52.     } else {
  53.         $storage_time_estimation = "cannot estimate yet";
  54.         $seconds_since_last_storage = "storage not opened yet";
  55.     }
  56.     $msg .= center(" Storage Report ", 50, '-') ."\n".
  57.     "Number of storages        :   ".$storage_count."\n".
  58.     "Number of Storages/Hour   :   ".$storage_per_hour."\n".
  59.     "Time since last Storage   :   ".$seconds_since_last_storage."\n".
  60.     "Storage Time Estimation   :   ".$storage_time_estimation."\n";
  61.    
  62.     $msg .= ('-'x50) . "\n";
  63.     message $msg, "list";
  64. }
  65.  
  66. return 1;
Advertisement
Add Comment
Please, Sign In to add comment