MediaInfo выводит строку:
Truncated: Yes
если файл не завершен, как ожидается спецификациями формата.
Поскольку технически нет никакой разницы между файлом, неправильно (не соответствующим спецификациям о границах файла) смонтированным и частично загруженным, технически невозможно сделать разницу между глючным файлом и частично загруженным.
Можно сделать другой (продвинутый) тест, например, прочитать индекс файла .mp4 и проверить, что смещение файла + размер кадра последнего кадра находится в пределах размера файла, который вы получаете, но это не совсем то, что вы ищете (если в исходном файле есть метаданные, например, постеры в конце файла, и файл обрезается прямо перед этим постером, частичная загрузка все равно не будет обнаружена в каждом случае). Это не реализовано в MediaInfo, но вы можете добавить MediaInfo feature request.
Во всех случаях очень трудно обнаружить все частичные загрузки, потому что общий размер файла не указывается в большинстве форматов видеофайлов, поэтому вы можете быть уверены, что файл обрезан, но не можете быть уверены, что файл не обрезан. Единственный способ убедиться, что вы скачали полный файл, - это получить размер файла откуда-нибудь еще (а лучше: иметь его хэш, например MD5).
PS: этот вопрос не относится к какой-либо операционной системе.
Если вы хотите использовать имя оконного менеджера, используйте title
вместо className
. В вашем случае это то, что вы ищете.
myManageHook = composeAll
[ className =? "MPlayer" --> doFloat
, className =? "Gimp" --> doFloat
, className =? "Udiskie" --> doFloat
, className =? "XClock" --> doFloat
, className =? "Xmessage" --> doFloat
, title =? "Event Tester" --> doFloat
]