Иконка ресурса

File Cleanup 1.0.3

Нет прав для скачивания
Сообщения
1,698
Реакции
1,510
Помог
26 раз(а)
Какие мусорные, а какие нет?
 
Сообщения
207
Реакции
420
Помог
10 раз(а)
fl0wer, для некоторых "мусорными" считаются логи и крашдампы старее трёх дней.
Видимо, места на диске у кого-то очень мало...

Я не стал это как-либо хардкодить, оставил право выбора за конечным пользователем и вынес в конфиг.
 
Последнее редактирование:
Сообщения
48
Реакции
151
CrazyHackGUT,
C++:
public Plugin myinfo = {
  description = "Deletes obsolete files. Based on Demo Cleanup.",
  version     = "1.0",
  author      = "CrazyHackGUT aka Kruzya",
  name        = "[ANY] File Cleanup",
  url         = "https://kruzya.me"
};
C++:
public Plugin myinfo = {
  description = "",
  version     = "1.0",
  author      = "CrazyHackGUT aka Kruzya",
  name        = "Demo Cleanup",
  url         = "https://kruzya.me"
};
А зачем два раза?
 
Сообщения
207
Реакции
420
Помог
10 раз(а)
Kaido Ren, честно - не заметил myinfo от оригинала. Написал ж, базируется на другом плагине.
Удивительно то, что компилятор-то не ругается и компилирует о_О
 
Сообщения
48
Реакции
151
CrazyHackGUT, ну, потому что это обычный глобальный массив со структурой, можешь хоть тысячу раз его менять. :)
 
Сообщения
1,698
Реакции
1,510
Помог
26 раз(а)
CrazyHackGUT, я к тому, что не понятно из описания, уже увидел в настройках. А почему в папке дата, а не конфигс?
27 Мар 2019
Что за "..." в #define Log(%0) LogToFileEx(g_szLog, "[File Cleanup] " ... %0) ?
 
Сообщения
207
Реакции
420
Помог
10 раз(а)
А почему в папке дата, а не конфигс?
Некоторые конфиги такого технического плана, всё же, проще держать отдельно от всех. И потому чтобы не делать отдельную папку, я использую и так пустующую папку.

Конкатенация строк. На уровне компилятора. Работает только с константными строками.
 
Сообщения
207
Реакции
420
Помог
10 раз(а)
Понаблюдав за комментариями и вопросами на всех форумах по составлению конфигурации, решил перевести файл на русский, и привести пару простых примеров, которые могут быть полезно.
Код:
/**
* Конфигурационный файл для плагина [ANY] File Cleanup.
*/

// Корневая секция. НЕ ВИДОИЗМЕНЯЙТЕ ЕЁ!
"FileCleanup"
{
  /**
   * Здесь Вы можете создавать свои собственные секции-правила для удаления файлов.
   * К примеру, в этой секции мы привели в качестве примера:
   * -> Удаление всех логов движка/мода (.../csgo/logs - для CS:GO).
   * -> Описали ВСЕ ДОСТУПНЫЕ параметры (включая опциональные).
   *
   * Имя секции-правила используется для записи в логах всех ошибок и состояний, если что-то заполнено неверно.
   * ЗАМЕТКА: Имя секции может быть названо на русском, но не рекомендуется.
   */
  "Game Logs"
  {
    /**
     * Путь к папке, которую плагин должен обрабатывать.
     * Путь заполняется от корня мода (csgo/cstrike/tf/l4d2/hl2mp).
     * ЗАМЕТКА: путь обязательно должен заканчиваться слешем ("/")!
     */
    "path"                      "logs/"

    /**
     * Максимальное время жизни для файла.
     * Представлено в виде строки, описывающее время.
     *
     * i - минута.
     * h - час.
     * d - день.
     * m - месяц.
     * y - год.
     *
     * К примеру, запись "3i5h1d" будет прочитана как "1 день, 5 часов и 3 минуты", или 104580 секунд.
     */
    "lifetime"                  "3d"

    /**
     * Используемый вид времени для проверки.
     *
     * 0 - с момента последнего доступа (не будет работать на файловых системах FAT)
     * 1 - с момента создания (не будет работать на файловых системах FAT)
     * 2 - с момента последнего изменения
     *
     * ПАРАМЕТР НЕОБЯЗАТЕЛЕН. Если он не указан явно, используется режим "с момента последнего изменения".
     */
    "timemode"                  "2"

    /**
     * Просматривать подпапки при поиске файлов на удаление?
     *
     * 0 - нет.
     * 1 - да.
     *
     * ПАРАМЕТР НЕОБЯЗАТЕЛЕН. Если он не указан явно, используется значение "нет" (подпапки не просматриваются).
     */
    "include_subdirectories"    "1"

    /**
     * Добавляет правило "с чего имя файла должно начинаться".
     *
     * ПАРАМЕТР НЕОБЯЗАТЕЛЕН. Если Вы оставите его пустым, или удалите полностью - плагин не будет проверять, с чего начинается имя файла.
     */
    "starts_with"               ""

    /**
     * Добавляет правило "как имя файла должно заканчиваться".
     * Как правило, может использоваться для удаления файлов со специальными расширениями (вроде .dem или .log).
     *
     * ПАРАМЕТР НЕОБЯЗАТЕЛЕН. Если Вы оставите его пустым, или удалите полностью - плагин не будет проверять окончание имени файла.
     */
    "ends_with"                 ""

    /**
     * ЗАМЕТКА: если Вы укажете и "starts_with" и "ends_with", плагин будет удалять только те файлы, которые УДОВЛЕТВОРЯЮТ ДВУМ УСЛОВИЯМ ОДНОВРЕМЕННО.
     */
  }

  /**
   * И, для примера, простой набор правил для:
   * -> Удаления файлов демок в корне сервера (.../csgo)
   * -> Не проверяет подпапки
   * -> Производит удаление, только если прошло 3 дня с момента последнего доступа
   */
  "Recorded games (.dem)"
  {
    "path"                      "/"
    "lifetime"                  "3d"
    "timemode"                  "0"
    "ends_with"                 ".dem"
  }
}
Секций с набором правил в конфигурационном файле может быть сколько угодно (лимит есть, но не явный: это кол-во Вашей оперативной памяти).

Разберём каждый параметр чуть подробнее (выделенное красным - обязательно, зелёным - опционально):
  • Имя секции. Не совсем параметр, но почему бы и не рассмотреть и его. По сути, используется только при записи в логах ошибок и отладочной информации. В общем, заполняете его для себя.
  • Путь к файлам. Путь к папке, которая должна обрабатываться плагином. Обязательно должен заканчиваться на слеш (/). Корневой точкой считается папка мода (на примере LGSM и CSGO - .../serverfiles/csgo).
  • Максимальное время жизни файлов. Промежуток времени, в течении которого файлы должны жить. Указывается в виде строки с перечислением чисел и типа времени. К примеру, можно дать жить файлам целый год записью 1y, а можно и полгода + 2 недели (6m14d).
  • Тип времени. Указывается вид времени, с которого начинается отсчёт жизни файла. По-умолчанию, используется кроссплатформенный, гарантированно работающий везде режим - "С момента последнего изменения".
  • Проверять подпапки. По-умолчанию, плагин не проверяет подпапки. Можно явно указать запрет/разрешение на выполнение этой операции.
  • Подстрока, с которой имя файла должно начинаться. Если указано, проверяется, начинается ли имя "подозреваемого файла" с этой подстроки.
  • Подстрока, на которую имя файла должно заканчиваться. Если указано, проверяется, заканчивается ли имя "подозреваемого файла" на эту подстроку.
Если указывается сразу и подстрока начала, и подстрока конца - ожидается выполнение двух условий сразу.

И пару примеров для закрепления.
  1. Если мы хотим удалять все логи SourceMod, которые старше 7 дней:
    Код:
     "SourceMod logs"
      {
        "path" "addons/sourcemod/logs"
        "lifetime" "7d"
        "timemode" "2"
        "ends_with" ".log" // необязательно
      }
  2. Если мы хотим удалять файлы от плагина автозаписи демок старше суток:
    Код:
     "AutoDemo recorder :: Temporary files"
      {
        "path" "addons/sourcemod/data/demos"
        "lifetime" "1d"
        "timemode" "2"
      }
 

Пользователи, просматривающие эту тему

Сейчас на форуме нет ни одного пользователя.
Сверху Снизу