Emulecollection

From AMule Project FAQ
Revision as of 22:12, 9 March 2007 by Wuischke (Talk | contribs)

(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to: navigation, search

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:
 	FT_FILENAME					0x01
 		TAGTYPE_STRING					0x02
 		uint16_t					string length
 		std::string					string value
 	FT_COLLECTIONAUTHOR	 			0x31
 		TAGTYPE_STRING					0x02
 		uint16_t					string length
 		std::string					string value
 	FT_COLLECTIONAUTHORKEY				0x32
 		TAGTYPE_BLOB					0x07
 		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)