char *tr_strlsize(char *buf, guint64 bytes, size_t buflen)
{
    if (!bytes)
        g_strlcpy(buf, Q_("None"), buflen);
    else
        tr_formatter_size_B(buf, bytes, buflen);

    return buf;
}
Пример #2
0
static void
showInfo (const tr_info * inf)
{
  unsigned int i;
  char buf[128];
  tr_file ** files;
  int prevTier = -1;

  /**
  ***  General Info
  **/

  printf ("GENERAL\n\n");
  printf ("  Name: %s\n", inf->name);
  printf ("  Hash: %s\n", inf->hashString);
  printf ("  Created by: %s\n", inf->creator ? inf->creator : "Unknown");
  if (!inf->dateCreated)
    {
      printf ("  Created on: Unknown\n");
    }
  else
    {
      struct tm tm = *localtime (&inf->dateCreated);
      printf ("  Created on: %s", asctime (&tm));
    }
  if (inf->comment && *inf->comment)
    printf ("  Comment: %s\n", inf->comment);
  printf ("  Piece Count: %d\n", inf->pieceCount);
  printf ("  Piece Size: %s\n", tr_formatter_mem_B (buf, inf->pieceSize, sizeof (buf)));
  printf ("  Total Size: %s\n", tr_formatter_size_B (buf, inf->totalSize, sizeof (buf)));
  printf ("  Privacy: %s\n", inf->isPrivate ? "Private torrent" : "Public torrent");

  /**
  ***  Trackers
  **/

  printf ("\nTRACKERS\n");
  for (i=0; i<inf->trackerCount; ++i)
    {
      if (prevTier != inf->trackers[i].tier)
        {
          prevTier = inf->trackers[i].tier;
          printf ("\n  Tier #%d\n", prevTier + 1);
        }

      printf ("  %s\n", inf->trackers[i].announce);
    }

  /**
  ***
  **/

  if (inf->webseedCount > 0)
    {
      printf ("\nWEBSEEDS\n\n");

      for (i=0; i<inf->webseedCount; ++i)
        printf ("  %s\n", inf->webseeds[i]);
    }

  /**
  ***  Files
  **/

  printf ("\nFILES\n\n");
  files = tr_new (tr_file*, inf->fileCount);
  for (i=0; i<inf->fileCount; ++i)
    files[i] = &inf->files[i];
  qsort (files, inf->fileCount, sizeof (tr_file*), compare_files_by_name);
  for (i=0; i<inf->fileCount; ++i)
    printf ("  %s (%s)\n", files[i]->name, tr_formatter_size_B (buf, files[i]->length, sizeof (buf)));
  tr_free (files);
}