# padArchiver [![Go Report Card](https://goreportcard.com/badge/github.com/arnaucode/padArchiver)](https://goreportcard.com/report/github.com/arnaucode/padArchiver) 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. 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: ```json { "repoid": "repo01", "pads": [ { "link": "http://board.net/p/pad1", "dir": "Group1", "title": "Pad1" }, { "link": "http://board.net/p/pad2", "dir": "Group1", "title": "Pad2" }, { "link": "http://board.net/p/pad3", "dir": "Group2", "title": "Pad3" } ] } ``` To run, inside 'build' directory: ``` ./importFromList ``` ## 3.- apiServer This is an API to run in localhost. #### Run To run using the compiled binary: - The Git repo needs to be initialized, and with the remote already configured. - The IPFS daemon needs to be running: ``` > ipfs daemon ``` - Edit the file config.json to configure the desired port: ``` { "port": "3080" } ``` - Execute the API server, inside the directory 'build': ``` > ./padArchiver-APIserver ``` #### API Routes ##### - GET /repos this returns: ``` [ 'repo01', 'repo02' ] ``` ##### - GET /repos/{repoid} this returns: ``` [ 'repo01', 'repo01/Group1', 'repo01/Group1/Pad1.md', 'repo01/Group2', 'repo01/Group2/Pad2.md', 'repo01/Group2/Pad3.md', 'repo02/GroupA/Pad1.md' ] ``` ##### - POST /repos/{repoid}/pad data to send: ``` json: { "link": "http://board.net/p/pad1", "dir": "Group1", "title": "Pad1" } ``` this returns: ``` { "link": "http://board.net/p/pad1", "dir": "Group1", "title": "Pad1", "ipfsHash": "QmVyp4JSREK5syLmNRCafkZkhzC7CfvS9qYWKfvfffqK2B" } ``` The IPFS hash is also added to the first line of the document, before adding the document to Git. ## 4.- cli 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)