1 // meta4ra -- Metalink 4.0 utilities
2 // Copyright (C) 2021-2024 Sergey Matveev <stargrave@stargrave.org>
4 // This program is free software: you can redistribute it and/or modify
5 // it under the terms of the GNU General Public License as published by
6 // the Free Software Foundation, version 3 of the License.
8 // This program is distributed in the hope that it will be useful,
9 // but WITHOUT ANY WARRANTY; without even the implied warranty of
10 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11 // GNU General Public License for more details.
13 // You should have received a copy of the GNU General Public License
14 // along with this program. If not, see <http://www.gnu.org/licenses/>.
23 type Metalink struct {
24 XMLName xml.Name `xml:"urn:ietf:params:xml:ns:metalink metalink"`
25 Files []File `xml:"file"`
26 Generator string `xml:"generator,,omitempty"`
27 Published *time.Time `xml:"published,,omitempty"`
31 XMLName xml.Name `xml:"file"`
32 Name string `xml:"name,attr"`
33 Description string `xml:"description,,omitempty"`
34 Hashes []Hash `xml:"hash,,omitempty"`
35 MetaURLs []MetaURL `xml:"metaurl,,omitempty"`
36 Signature []Signature `xml:"signature"`
37 Size uint64 `xml:"size,,omitempty"`
38 URLs []URL `xml:"url,,omitempty"`
42 XMLName xml.Name `xml:"url"`
43 URL string `xml:",chardata"`
46 type Signature struct {
47 XMLName xml.Name `xml:"signature"`
48 MediaType string `xml:"mediatype,attr"`
49 Signature string `xml:",cdata"`
53 XMLName xml.Name `xml:"hash"`
54 Type string `xml:"type,attr"`
55 Hash string `xml:",chardata"`
59 XMLName xml.Name `xml:"metaurl"`
60 MediaType string `xml:"mediatype,attr"`
61 URL string `xml:",chardata"`