This repository has been archived by the owner on Jun 28, 2022. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 1
/
main.go
69 lines (61 loc) · 1.88 KB
/
main.go
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
package remarkable
import (
"encoding/json"
"fmt"
"io/ioutil"
"github.com/bmaupin/go-epub"
)
type Remarkable struct {
Dir string
Items []RemarkableItem
}
type RemarkableItem struct {
Id string `json:"-"`
Type string `json:"type"`
Parent string `json:"parent"`
VisibleName string `json:"visibleName"`
LastModified string `json:"lastModified"`
Version int64 `json:"version"`
Deleted bool `json:"deleted"`
MetadataModified bool `json:"metadataModified"`
Modified bool `json:"modified"`
Pinned bool `json:"pinned"`
Synced bool `json:"synced"`
ContentType string `json:"-"`
Content []byte `json:"-"`
}
func New(dir string) Remarkable {
var remarkable Remarkable
remarkable.Dir = dir
return remarkable
}
func (Remarkable *Remarkable) AddDir(id string, name string, parent string) RemarkableItem {
var RemarkableItem = RemarkableItem{
Id: id,
Type: "CollectionType",
Parent: parent,
VisibleName: name,
LastModified: "",
Version: 1,
Deleted: false,
MetadataModified: false,
Modified: false,
Pinned: false,
Synced: false,
}
return RemarkableItem
}
func (Remarkable *Remarkable) Write() {
for _, RemarkableItem := range Remarkable.Items {
if RemarkableItem.ContentType == "html" {
RemarkableItem.ContentType = "epub"
e := epub.NewEpub(RemarkableItem.VisibleName)
e.AddSection(string(RemarkableItem.Content), "Section 1", "", "")
e.Write(Remarkable.Dir + RemarkableItem.Id + "." + RemarkableItem.ContentType)
fmt.Println("EPUB of " + RemarkableItem.Id + " writed")
}
j, _ := json.Marshal(RemarkableItem)
_ = ioutil.WriteFile(Remarkable.Dir+RemarkableItem.Id+".metadata", j, 0644)
fmt.Println("Metadata of " + RemarkableItem.Id + " updated")
}
}