initial commit - working code

new file:   .gitignore
	new file:   .idea/.gitignore
	new file:   .idea/Steamworks-Collection-Downloader.iml
	new file:   .idea/modules.xml
	new file:   .idea/vcs.xml
	new file:   downloader/downloadable.go
	new file:   downloader/downloader.go
	new file:   go.mod
	new file:   go.sum
	new file:   main.go
	new file:   manifest/entry.go
	new file:   manifest/manifest.go
	new file:   webapi/publishedFileDetailsResponse.go
This commit is contained in:
Neo committed 2022-10-13 17:37:52 -07:00
1 parent 2a1a8a2adc
commit ec93fc3379
13 files changed
+833

No files matched your search

+19
View File
@@ -0,0 +1,19 @@
package manifest
type Entry struct {
ID string
TimeCreated string
TimeUpdated string
HContentFile string
HContentFileSize string
HContentPreview string
HContentPreviewSize string
}
func (w Entry) FileNamePrefixed(prefix string) string {
return prefix + w.ID + ".vpk"
}
func (w Entry) PreviewFileNamePrefixed(prefix string) string {
return prefix + w.ID + ".jpg"
}
+77
View File
@@ -0,0 +1,77 @@
package manifest
import (
"encoding/json"
"io/ioutil"
"os"
)
type Manifest struct {
filename string
prefix string
Entries map[string]*Entry
*os.File
}
func (m *Manifest) Open(filename string, prefix string) (err error) {
filename = prefix + filename
m.File, err = os.OpenFile(filename, os.O_CREATE|os.O_RDWR, 0664)
if err != nil {
return err
}
buffer, err := ioutil.ReadAll(m)
if err != nil {
return err
}
err = m.Parse(buffer)
if err != nil {
return err
}
return nil
}
func (m *Manifest) Parse(manifest []byte) error {
m.Entries = make(map[string]*Entry)
if len(manifest) == 0 {
return nil
}
err := json.Unmarshal(manifest, &m.Entries)
if err != nil {
return err
}
return nil
}
func (m *Manifest) AddEntry(entry *Entry) error {
m.Entries[entry.ID] = entry
_, err := m.Seek(0, 0)
if err != nil {
return err
}
err = m.Truncate(0)
if err != nil {
return err
}
b, err := json.Marshal(m.Entries)
if err != nil {
return err
}
_, err = m.Write(b)
if err != nil {
return err
}
return nil
}