diff --git a/README.md b/README.md
index 92de6d0..69446d6 100644
--- a/README.md
+++ b/README.md
@@ -1,7 +1,14 @@
-# padArchiver
-Tool to store a pad (from the link) into IPFS and Git.
+# padArchiver [![Go Report Card](https://goreportcard.com/badge/github.com/arnaucode/padArchiver)](https://goreportcard.com/report/github.com/arnaucode/padArchiver)
-All the necessary files are in the /build directory.
+Tool to store pads (from url) into local directory and IPFS.
+
+The tool is composed by different tools around the library:
+- webServer
+- listPadsImporter
+- apiServer
+- cli
+
+All the necessary files are in the /build directory. Can be build using the 'bash build.sh' script.
## 1.- webServer
This is a webserver that automatically generates a web from the pads directories and files stored.
@@ -10,6 +17,10 @@ To run, inside 'build' directory:
./webServer
```
+![padArchiver-webServer](https://raw.githubusercontent.com/arnaucode/padArchiver/master/padArchiver-webServer.gif)
+
+The html template can be easily changed.
+
## 2.- listPadsImporter
This is to import all pads from the json file 'list.json'.
Just need to edit the json file, for example:
@@ -116,3 +127,5 @@ To run the CLI, just need to run inside the directory 'build':
./padArchiver-cli
```
And follow the instructions.
+
+![padArchiver-cli](https://raw.githubusercontent.com/arnaucode/padArchiver/master/padArchiver-cli.png)
diff --git a/apiServer/apiServer b/apiServer/apiServer
index 653fb4b..42d7885 100755
Binary files a/apiServer/apiServer and b/apiServer/apiServer differ
diff --git a/apiServer/main.go b/apiServer/main.go
index 6398a75..6f5ff62 100644
--- a/apiServer/main.go
+++ b/apiServer/main.go
@@ -13,12 +13,15 @@ import (
"github.com/gorilla/mux"
)
+//PadModel is the data structure for each pad
type PadModel struct {
Link string `json:"link"`
Dir string `json:"dir"`
Title string `json:"title"`
IpfsHash string `json:"ipfsHash"`
}
+
+//Repo contains all the pads --currently not used--
type Repo struct {
Pads []string `json:"pads"`
}
@@ -37,6 +40,7 @@ func main() {
log.Fatal(http.ListenAndServe(":"+config.Port, router))
}
+//GetReposList is the endpoint to get the list of current repos
func GetReposList(w http.ResponseWriter, r *http.Request) {
file, err := os.Open(padArchiver.Storage)
if err != nil {
@@ -56,6 +60,7 @@ func GetReposList(w http.ResponseWriter, r *http.Request) {
fmt.Fprintln(w, string(jResp))
}
+//GetRepoIDList is the endpoint to get one repo by id
func GetRepoIDList(w http.ResponseWriter, r *http.Request) {
vars := mux.Vars(r)
repoid := vars["repoid"]
@@ -74,6 +79,8 @@ func GetRepoIDList(w http.ResponseWriter, r *http.Request) {
check(err)
fmt.Fprintln(w, string(jResp))
}
+
+//PostStorePad is the endpoint to post the signal to store one pad
func PostStorePad(w http.ResponseWriter, r *http.Request) {
vars := mux.Vars(r)
repoid := vars["repoid"]
diff --git a/apiServer/readConfig.go b/apiServer/readConfig.go
index 14fd1ad..c604ace 100644
--- a/apiServer/readConfig.go
+++ b/apiServer/readConfig.go
@@ -5,6 +5,7 @@ import (
"io/ioutil"
)
+//Config is the configuration of the API server
type Config struct {
Port string `json:"port"`
}
diff --git a/build/apiServer b/build/apiServer
index 653fb4b..42d7885 100755
Binary files a/build/apiServer and b/build/apiServer differ
diff --git a/build/cli b/build/cli
index 8829e45..17eb60e 100755
Binary files a/build/cli and b/build/cli differ
diff --git a/build/listPadsImporter b/build/listPadsImporter
index 13459ac..5b6f9ac 100755
Binary files a/build/listPadsImporter and b/build/listPadsImporter differ
diff --git a/build/templates/menuTemplate.html b/build/templates/menuTemplate.html
index 05f1567..9a2b338 100644
--- a/build/templates/menuTemplate.html
+++ b/build/templates/menuTemplate.html
@@ -1,6 +1,6 @@
{{range .Items}} {{if .IsDir}}
-
+
-
+
diff --git a/build/templates/wellcome.md b/build/templates/wellcome.md
index ea67dbf..9a5501a 100644
--- a/build/templates/wellcome.md
+++ b/build/templates/wellcome.md
@@ -1,7 +1,9 @@
### Wellcome to the padArchiver.
Select one pad from the side menu to visualize.
-![golang logo](https://seeklogo.com/images/G/go-logo-046185B647-seeklogo.com.png)
+![golang logo](data:image/jpeg;base64,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)
This is the wellcome message, from the 'templates/wellcome.md' file.
+
+The complete code can be found in https://github.com/arnaucode/padArchiver
diff --git a/build/webServer b/build/webServer
index 94ad0f6..53a2ff4 100755
Binary files a/build/webServer and b/build/webServer differ
diff --git a/cli/cli b/cli/cli
index 8829e45..17eb60e 100755
Binary files a/cli/cli and b/cli/cli differ
diff --git a/cli/main.go b/cli/main.go
index 8bb8e70..4339c68 100644
--- a/cli/main.go
+++ b/cli/main.go
@@ -35,7 +35,7 @@ func main() {
newcommand := bufio.NewReader(os.Stdin)
fmt.Print("Please select command number")
options := `
- 1 - Store Pad (to IPFS, Git, and send Telegram notification)
+ 1 - Store Pad (to local directory and IPFS)
2 - IPFS hash to file
0 - Exit cli
option to select: `
@@ -47,7 +47,7 @@ option to select: `
switch option {
case "1":
- fmt.Println("selected 1 - Store Pad (to IPFS and Git)")
+ fmt.Println("selected 1 - Store Pad (to local directory and IPFS)")
option1()
break
case "2":
diff --git a/etherpad.go b/etherpad.go
index 71a25d7..e07e2f2 100644
--- a/etherpad.go
+++ b/etherpad.go
@@ -8,6 +8,7 @@ import (
"os"
)
+//GetPad gets the pad from the link, and stores it into local directory
func (repo *Repo) GetPad(link string, extension string, directory string, title string) (string, error) {
if extension != "md" && extension != "txt" && extension != "html" && extension != "pdf" && extension != "odt" {
return "", errors.New("No valid extension")
diff --git a/file.go b/file.go
index afdc668..7df3058 100644
--- a/file.go
+++ b/file.go
@@ -4,6 +4,7 @@ import (
"io/ioutil"
)
+//AddLineToFile adds a line in the beginning of the file
func AddLineToFile(path string, line string) error {
fileBytes, err := ioutil.ReadFile(path)
if err != nil {
diff --git a/git.go b/git.go
index 42836c4..8c7ca59 100644
--- a/git.go
+++ b/git.go
@@ -5,8 +5,9 @@ import (
"os/exec"
)
-//TODO this is not finished
+//GitUpdate updates the git
func (repo *Repo) GitUpdate(commitMsg string) error {
+ //TODO this is not finished
_, err := exec.Command("bash", "-c", "git pull origin master").Output()
if err != nil {
fmt.Println(err)
diff --git a/ipfs.go b/ipfs.go
index 9fef6c1..da8eb5e 100644
--- a/ipfs.go
+++ b/ipfs.go
@@ -7,11 +7,13 @@ import (
sh "github.com/ipfs/go-ipfs-api"
)
-//GettedPads is the directory where are stored the pads that are getted from IPFS
+//IpfsStorage is the directory where are stored the pads that are getted from IPFS
const IpfsStorage = "ipfsStorage"
+
+//GettedPads is the directory where are stored the pads that are getted from the links
const GettedPads = "ipfsStorage/gettedPads"
-//Add gets the content from the etherpad specified in the link, and downloads it in the format of the specified extension, and then, puts it into IPFS
+//IpfsAdd gets the content from the etherpad specified in the link, and downloads it in the format of the specified extension, and then, puts it into IPFS
func IpfsAdd(path string) (string, error) {
//connect to ipfs shell
s := sh.NewShell("localhost:5001")
@@ -24,7 +26,7 @@ func IpfsAdd(path string) (string, error) {
return ipfsHash, nil
}
-//Get gets the content from IPFS for a given hash, and saves it into a file
+//IpfsGet gets the content from IPFS for a given hash, and saves it into a file
func IpfsGet(hash string, filename string) error { //create the pads directory
//create the pads directory
_ = os.Mkdir(IpfsStorage, os.ModePerm)
diff --git a/listPadsImporter/listPadsImporter b/listPadsImporter/listPadsImporter
index 13459ac..5b6f9ac 100755
Binary files a/listPadsImporter/listPadsImporter and b/listPadsImporter/listPadsImporter differ
diff --git a/listPadsImporter/main.go b/listPadsImporter/main.go
index 89d90b3..890940c 100644
--- a/listPadsImporter/main.go
+++ b/listPadsImporter/main.go
@@ -9,11 +9,14 @@ import (
"github.com/fatih/color"
)
+//PadModel is the data struct of each pad in the list.json file
type PadModel struct {
Link string `json:"link"`
Dir string `json:"dir"`
Title string `json:"title"`
}
+
+//ListModel is the struct of the data from the list.json file
type ListModel struct {
RepoID string `json:"repoid"`
Pads []PadModel `json:"pads"`
diff --git a/padArchiver-cli.png b/padArchiver-cli.png
new file mode 100644
index 0000000..475b6e6
Binary files /dev/null and b/padArchiver-cli.png differ
diff --git a/padArchiver-webServer.gif b/padArchiver-webServer.gif
new file mode 100644
index 0000000..9e01c51
Binary files /dev/null and b/padArchiver-webServer.gif differ
diff --git a/padArchiver.go b/padArchiver.go
index 1a7fc18..25b72a1 100644
--- a/padArchiver.go
+++ b/padArchiver.go
@@ -6,12 +6,15 @@ import (
"github.com/fatih/color"
)
+//Storage is the directory where are stored the repos
const Storage = "reposStorage"
+//Repo is the directory where is placed the repository of pads
type Repo struct {
Dir string
}
+//OpenRepo opens a repo from the directory
func OpenRepo(directory string) Repo {
//if not exist create the repos directory
_ = os.Mkdir(Storage, os.ModePerm)
@@ -23,6 +26,7 @@ func OpenRepo(directory string) Repo {
return repo
}
+//StorePad gets a pad from the link, and stores it into local directory. Then also, adds the file to IPFS.
func (repo *Repo) StorePad(link string, directory string, title string, ipfsActive bool) (string, error) {
path, err := repo.GetPad(link, "md", directory, title)
if err != nil {
diff --git a/webServer/main.go b/webServer/main.go
index 54976f0..43ac786 100644
--- a/webServer/main.go
+++ b/webServer/main.go
@@ -13,15 +13,20 @@ import (
"github.com/gorilla/mux"
)
+//ItemModel is the model for each one of the files and directories in the directory of the pads
type ItemModel struct {
Name string
Path string
IsDir bool
}
+
+//MenuModel is the struct for all the menu, containing Items
type MenuModel struct {
PageTitle string
Items []ItemModel
}
+
+//PageModel is the data model used in the html templates
type PageModel struct {
Title string
MenuContent template.HTML
@@ -100,7 +105,7 @@ func getPage(w http.ResponseWriter, r *http.Request) {
check(err)
var page PageModel
- page.Title = path
+ page.Title = strings.Replace(path, padArchiver.Storage, "", -1)
page.Content = template.HTML(content)
page.MenuContent = generateMenuHTML("")
diff --git a/webServer/templates/menuTemplate.html b/webServer/templates/menuTemplate.html
index 05f1567..9a2b338 100644
--- a/webServer/templates/menuTemplate.html
+++ b/webServer/templates/menuTemplate.html
@@ -1,6 +1,6 @@
{{range .Items}} {{if .IsDir}}
-
+
-
+
diff --git a/webServer/templates/wellcome.md b/webServer/templates/wellcome.md
index ea67dbf..9a5501a 100644
--- a/webServer/templates/wellcome.md
+++ b/webServer/templates/wellcome.md
@@ -1,7 +1,9 @@
### Wellcome to the padArchiver.
Select one pad from the side menu to visualize.
-![golang logo](https://seeklogo.com/images/G/go-logo-046185B647-seeklogo.com.png)
+![golang logo](data:image/jpeg;base64,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)
This is the wellcome message, from the 'templates/wellcome.md' file.
+
+The complete code can be found in https://github.com/arnaucode/padArchiver
diff --git a/webServer/webServer b/webServer/webServer
index 94ad0f6..53a2ff4 100755
Binary files a/webServer/webServer and b/webServer/webServer differ