Skip to content

Search file-type filter: fix miscategorised extensions and add modern (2026) formats #842

Description

@ngosang

Search file-type filter: fix miscategorised extensions and add modern (2026) formats

Summary

The file-type filter in the search window (the Any / Archives / Audio / CD-Images / Pictures / Programs / Texts / Videos dropdown) maps each category to a list of file extensions in src/OtherFunctions.cpp (CED2KFileTypes, the ED2KFileTypesMap inserts, ~lines 656–895). This list dates from the eMule era and has two issues:

  1. A few extensions are in the wrong category.
  2. Many file formats that have become mainstream since ~2010 are missing, so files with those extensions are not matched by the corresponding filter (and Audio/Video/Image/Document/Program types are not detected for them elsewhere either).

This affects local filtering of search results and file-type detection in general (see note about the ED2K protocol at the end).

Part 1 — Incorrect classifications

Extension Current category Issue Suggested fix
.m4b Video (ED2KFT_VIDEO, line 732, comment "MPEG-4 Video File") .m4b is an MPEG-4 audiobook (audio/x-m4b — M4A/AAC audio with chapters and bookmarking, as used by iTunes/Audible/LibriVox). It is audio, not video. Move to Audio (ED2KFT_AUDIO)
.dmz CD-Image (ED2KFT_CDIMAGE, line 851, no comment) There is no known disc-image format with this extension; .dmz is documented only as an (obsolete) DMesh 3D-model file. Looks like a stray entry. Remove (or confirm against the original eMule source)
.msi Archive (ED2KFT_ARCHIVE, line 813, comment "Microsoft Installer File") A Windows Installer package interacts exclusively with the Windows Installer; it is a software-installation format, not a general-purpose archive. Move to Programs (ED2KFT_PROGRAM)
.xpi Archive (ED2KFT_ARCHIVE, line 825, comment "Mozilla Installer Package") A browser-extension package. Zip-based, but a software/add-on package rather than a general-purpose archive. Move to Programs (ED2KFT_PROGRAM)

Minor / comment-only (no category change needed, listed for completeness):

  • .sub (line 857) is correctly under CD-Image as CloneCD subchannel data (the .ccd/.img/.sub set), but its source comment says "Subtitle File", which is misleading.
  • A few descriptive comments are wrong even though the category is correct: .mp1v ("QuickTime Movie File" → MPEG-1 video), .mp4 ("MPEG-2 Video File" → MPEG-4), .mpe ("MPEG-4 Video File" → MPEG-1).

Part 2 — Missing modern formats

Suggested additions per category, with a short description usable as the source comment. Some extensions fit more than one category — see the cross-category note.

Audio

  • .opus — Opus Audio File
  • .oga — Ogg Audio File
  • .weba — WebM Audio File
  • .wv — WavPack Lossless Audio File
  • .dsf — DSD Stream Audio File (high-res)
  • .dff — DSDIFF Audio File (high-res)
  • .caf — Apple Core Audio Format File
  • .aa — Audible Audiobook File
  • .aax — Audible Enhanced Audiobook File

Video

  • .mts — AVCHD Video File (note .m2ts is present but .mts is not)
  • .f4v — Flash MP4 Video File
  • .mxf — Material Exchange Format File
  • .h264 — H.264 Raw Video Stream
  • .h265 — H.265 Raw Video Stream
  • .hevc — HEVC Raw Video Stream

Pictures

  • .heic — High Efficiency Image File
  • .heif — High Efficiency Image Format File
  • .avif — AV1 Image File
  • .jxl — JPEG XL Image File
  • .svg — Scalable Vector Graphics File
  • .jp2 — JPEG 2000 Image File
  • .j2k — JPEG 2000 Code Stream
  • .xcf — GIMP Image File
  • .apng — Animated PNG File
  • .dng — Digital Negative RAW Image
  • .cr2 — Canon RAW 2 Image
  • .cr3 — Canon RAW 3 Image
  • .nef — Nikon Electronic Format RAW Image
  • .arw — Sony Alpha RAW Image
  • .orf — Olympus RAW Image
  • .raf — Fujifilm RAW Image
  • .rw2 — Panasonic RAW Image

Archives

  • .zst — Zstandard Compressed File
  • .xz — XZ Compressed File
  • .txz — Tar XZ Compressed File
  • .lz4 — LZ4 Compressed File
  • .lzma — LZMA Compressed File
  • .lz — Lzip Compressed File
  • .tlz — Tar LZMA Compressed File
  • .cb7 — Comic Book 7-Zip Archive
  • .cba — Comic Book ACE Archive

Programs

  • .ps1 — PowerShell Script
  • .psm1 — PowerShell Module File
  • .psd1 — PowerShell Data File
  • .sh — Unix Shell Script
  • .app — macOS Application Bundle
  • .appx — Windows App Package
  • .msix — Windows App Package
  • .appimage — Linux AppImage Application
  • .flatpak — Flatpak Application Package
  • .snap — Snap Application Package
  • .scr — Windows Screensaver Executable
  • .cpl — Windows Control Panel Applet
  • .deb — Debian Software Package
  • .rpm — RPM Software Package
  • .apk — Android Application Package
  • .jar — Java Archive (application/library)

CD-Images

  • .vhd — Virtual Hard Disk Image
  • .vhdx — Hyper-V Virtual Hard Disk Image
  • .vmdk — VMware Virtual Disk Image
  • .vdi — VirtualBox Virtual Disk Image
  • .qcow2 — QEMU Copy-On-Write Disk Image
  • .wim — Windows Imaging Format File
  • .mdx — DAEMON Tools Disc Image
  • .daa — PowerISO Disc Image
  • .isz — Compressed ISO Disc Image
  • .uif — MagicISO Disc Image
  • .cdi — DiscJuggler Disc Image
  • .b5t — BlindWrite 5 Disc Image
  • .b6t — BlindWrite 6 Disc Image
  • .vcd — Virtual CD Disc Image

Texts (Documents)

OOXML — Office 2007+ is entirely absent:

  • .docx — Microsoft Word Document (OOXML)
  • .docm — Microsoft Word Macro-Enabled Document
  • .dotx — Microsoft Word Template (OOXML)
  • .xlsx — Microsoft Excel Spreadsheet (OOXML)
  • .xlsm — Microsoft Excel Macro-Enabled Spreadsheet
  • .xltx — Microsoft Excel Template (OOXML)
  • .pptx — Microsoft PowerPoint Presentation (OOXML)
  • .pptm — Microsoft PowerPoint Macro-Enabled Presentation
  • .potx — Microsoft PowerPoint Template (OOXML)
  • .ppsx — Microsoft PowerPoint Slide Show (OOXML)

Other:

  • .md — Markdown Document
  • .markdown — Markdown Document
  • .csv — Comma-Separated Values File
  • .json — JSON File
  • .yaml — YAML File
  • .yml — YAML File
  • .tex — LaTeX Source Document
  • .djvu — DjVu Document
  • .xps — XML Paper Specification Document
  • .oxps — OpenXPS Document
  • .fb2 — FictionBook 2 E-Book
  • .azw3 — Amazon Kindle KF8 E-Book
  • .kfx — Amazon Kindle KFX E-Book
  • .pages — Apple Pages Document
  • .numbers — Apple Numbers Spreadsheet
  • .key — Apple Keynote Presentation

Notes

  • Archive vs. Program (guiding principle): Archives is for general-purpose compressed file containers; an extension whose purpose is to package/deliver/run software belongs in Programs, even when it is internally a zip/compressed container. By this rule the software packages .msi, .xpi, .jar, .deb, .rpm, .apk, .appx/.msix, .appimage/.flatpak/.snap all go under Programs, while general compression (.zip, .7z, .rar, .tar, .gz, .xz, .zst, the comic-book archives, …) stays under Archives.
  • ED2K protocol: Archive and CD-Image are not native ED2K file types — they are published/queried on servers as Pro (see GetED2KFileTypeSearchTerm in OtherFunctions.cpp). Adding extensions to those two categories therefore only affects aMule's local filtering, not server-side search.

Affected code

  • src/OtherFunctions.cppCED2KFileTypes constructor / ED2KFileTypesMap inserts (~lines 656–895)

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions