Emulecollection
From AMule Project FAQ
Contents
What is an emulecollection?
An emulecollection is a file which contains various (hence a collection of) ed2k links. This is usually used to group various related files, e.g. a series.
emulecollection file structure
text files
Lines contain either an ed2k link or a comment starting with #.
binary files
uint32_t emulecollection version values: COLLECTION_FILE_VERSION1_INITIAL 0x01 COLLECTION_FILE_VERSION2_LARGEFILES 0x02 version 2 files support files bigger than 4GB (uint64_t file sizes) uint32_t header tag count header tags: TAGTYPE_STRING 0x02 uint16_t 0x0001 FT_FILENAME 0x01 uint16_t string length std::string string value TAGTYPE_STRING 0x02 uint16_t 0x0001 FT_COLLECTIONAUTHOR 0x31 uint16_t string length std::string string value TAGTYPE_BLOB 0x07 uint16_t 0x0001 FT_COLLECTIONAUTHORKEY 0x32 uint32_t blob size (notype) blob data uint32_t collection file count uint32_t file tag count at this point the TAGTYPE 0x01 will appear as 0x81 (uType | 0x80) -> see eMule packets.cpp TAGTYPE_HASH 0x01 FT_FILEHASH 0x28 (notype)[16] hash data TAGTYPE_UINT32 0x03 FT_FILESIZE 0x02 uint32_t file size TAGTYPE_UINT16 0x08 FT_FILESIZE 0x02 uint16_t file size TAGTYPE_UINT8 0x09 FT_FILESIZE 0x02 uint8_t file size TAGTYPE_UINT64 0x0B FT_FILESIZE 0x02 uint64_t file size TAGTYPE_STR3 0x13 FT_FILENAME 0x01 std::string file name (notype) signature (only for signed files)