Updated structs in import.go. Added jsonReader function (WIP).
This commit is contained in:
parent
5e4d5ba0ee
commit
54d82eb01f
2 changed files with 76 additions and 28 deletions
101
import.go
101
import.go
|
@ -1,16 +1,23 @@
|
|||
package writefreely
|
||||
|
||||
import (
|
||||
"archive/zip"
|
||||
"encoding/json"
|
||||
"fmt"
|
||||
"io"
|
||||
"log"
|
||||
"io/ioutil"
|
||||
"os"
|
||||
)
|
||||
|
||||
type userInfo struct {
|
||||
Username string `json:"username"`
|
||||
HasPass bool `json:"has_pass"`
|
||||
Email string `json:"email"`
|
||||
Created string `json:"created"`
|
||||
Collections []importCollection `json:"collections"`
|
||||
}
|
||||
|
||||
type importCollection struct {
|
||||
Alias string `json: "alias"`
|
||||
Title string `json: "title"`
|
||||
Alias string `json:"alias"`
|
||||
Title string `json:"title"`
|
||||
Description string `json:"description"`
|
||||
StyleSheet string `json:"style_sheet"`
|
||||
Public bool `json:"public"`
|
||||
|
@ -21,7 +28,7 @@ type importCollection struct {
|
|||
}
|
||||
|
||||
type post struct {
|
||||
Id string `json:"id"`
|
||||
ID string `json:"id"`
|
||||
Slug string `json:"slug"`
|
||||
Appearance string `json:"appearance"`
|
||||
Language string `json:"language"`
|
||||
|
@ -34,28 +41,68 @@ type post struct {
|
|||
Views int `json:"views"`
|
||||
}
|
||||
|
||||
func zipreader(src string) ([]string, error) {
|
||||
|
||||
// Open a zip archive for reading.
|
||||
r, err := zip.OpenReader("testdata/readme.zip")
|
||||
func jsonReader() {
|
||||
// Open our jsonFile
|
||||
jsonFile, err := os.Open("skye-201905250022.json")
|
||||
// if we os.Open returns an error then handle it
|
||||
if err != nil {
|
||||
log.Fatal(err)
|
||||
fmt.Println(err)
|
||||
}
|
||||
defer r.Close()
|
||||
fmt.Println("Successfully Opened users.json")
|
||||
// defer the closing of our jsonFile so that we can parse it later on
|
||||
defer jsonFile.Close()
|
||||
|
||||
// Iterate through the files in the archive,
|
||||
// printing some of their contents.
|
||||
for _, f := range r.File {
|
||||
fmt.Printf("Contents of %s:\n", f.Name)
|
||||
rc, err := f.Open()
|
||||
if err != nil {
|
||||
log.Fatal(err)
|
||||
}
|
||||
_, err = io.CopyN(os.Stdout, rc, 68)
|
||||
if err != nil {
|
||||
log.Fatal(err)
|
||||
}
|
||||
rc.Close()
|
||||
fmt.Println()
|
||||
}
|
||||
// read our opened xmlFile as a byte array.
|
||||
byteValue, _ := ioutil.ReadAll(jsonFile)
|
||||
|
||||
// we initialize our collections array
|
||||
var u userInfo
|
||||
|
||||
// we unmarshal our byteArray which contains our
|
||||
// jsonFile's content into 'users' which we defined above
|
||||
json.Unmarshal(byteValue, &u)
|
||||
fmt.Println(u.Collections[0].Posts)
|
||||
|
||||
return
|
||||
// for _, p := range u.Collections[0].Posts {
|
||||
// fmt.Println(p.ID)
|
||||
// }
|
||||
|
||||
// we iterate through every user within our users array and
|
||||
// print out the user Type, their name, and their facebook url
|
||||
// as just an example
|
||||
// for i := 0; i < len(users.Users); i++ {
|
||||
// fmt.Println("User Type: " + users.Users[i].Type)
|
||||
// fmt.Println("User Age: " + strconv.Itoa(users.Users[i].Age))
|
||||
// fmt.Println("User Name: " + users.Users[i].Name)
|
||||
// fmt.Println("Facebook Url: " + users.Users[i].Social.Facebook)
|
||||
// }
|
||||
}
|
||||
|
||||
// func zipreader(src string) ([]string, error) {
|
||||
|
||||
// // Open a zip archive for reading.
|
||||
// r, err := zip.OpenReader("testdata/readme.zip")
|
||||
// if err != nil {
|
||||
// log.Fatal(err)
|
||||
// }
|
||||
// defer r.Close()
|
||||
|
||||
// // Iterate through the files in the archive,
|
||||
// // printing some of their contents.
|
||||
// for _, f := range r.File {
|
||||
// fmt.Printf("Contents of %s:\n", f.Name)
|
||||
// rc, err := f.Open()
|
||||
// if err != nil {
|
||||
// log.Fatal(err)
|
||||
// }
|
||||
// _, err = io.CopyN(os.Stdout, rc, 68)
|
||||
// if err != nil {
|
||||
// log.Fatal(err)
|
||||
// }
|
||||
// rc.Close()
|
||||
// fmt.Println()
|
||||
// }
|
||||
|
||||
// return
|
||||
// }
|
||||
|
|
|
@ -3,7 +3,7 @@
|
|||
|
||||
<div class="snug content-container">
|
||||
<h2 id="posts-header">Import</h2>
|
||||
<p>You may import your data from another instance at any time here.</p>
|
||||
<p>You may import your data from another instance here.</p>
|
||||
|
||||
<table class="classy export">
|
||||
<tr>
|
||||
|
@ -17,6 +17,7 @@
|
|||
</tr>
|
||||
<tr>
|
||||
<th>User + Blogs + Posts</th>
|
||||
<!-- TODO: Add inputs like: <td><input type="file" accept="text/JSON">JSON<input/></td> -->
|
||||
<td><p class="text-cta"><a href="">JSON</a></p></td>
|
||||
<td><p class="text-cta"><a href="">Prettified</a></p></td>
|
||||
</tr>
|
||||
|
|
Loading…
Add table
Reference in a new issue