File: Emulecollection_File_Structure.txt

package info (click to toggle)
amule-emc 0.5.2-2
  • links: PTS
  • area: main
  • in suites: squeeze, wheezy
  • size: 440 kB
  • ctags: 86
  • sloc: sh: 994; cpp: 499; makefile: 9
file content (88 lines) | stat: -rw-r--r-- 2,042 bytes parent folder | download | duplicates (3)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
Emulecollection File Structure
==============================

Here below you can find some technical information about emulecollection
file structure.

From: http://code.google.com/p/amule-emc/wiki/emulecollection

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
	FT_FILERATING and FT_FILECOMMENT are optional tags
 	
 	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_STR1 to 16					0x11 to 0x20
		FT_FILENAME					0x01
		std::string					file name
	
	string length is TAGTYPE_STRx - 0x11 + 0x01 [1 to 16]

	TAGTYPE_STRING					0x02
		FT_FILENAME					0x01
		uint16_t					string length
		std::string					string value  	  	

	TAGTYPE_STRING					0x02
		FT_FILECOMMENT					0xF6
		uint16_t					string length
		std::string					string value  	  	

	TAGTYPE_UINT8					0x09
		FT_FILERATING					0xF7
		uint8_t						file rating 	

(notype) signature (only for signed files)