mirror of
				https://github.com/superseriousbusiness/gotosocial.git
				synced 2025-10-31 01:42:25 -05:00 
			
		
		
		
	Import export (#194)
* start with export/import code * messing about with decoding/encoding * some more fiddling * stuff is WORKING * working pretty alright! * go fmt * fix up tests, add docs * start backup/restore doc * tweaks * credits * update advancedVisibility settings * update bun library -> v1.0.4 Signed-off-by: kim (grufwub) <grufwub@gmail.com> * update oauth library -> v4.3.1-SSB Signed-off-by: kim (grufwub) <grufwub@gmail.com> * handle oauth token scope, fix user.SigninCount + token.UserID Signed-off-by: kim (grufwub) <grufwub@gmail.com> * update oauth library --> v4.3.2-SSB Signed-off-by: kim (grufwub) <grufwub@gmail.com> * update sqlite library -> v1.13.0 Signed-off-by: kim (grufwub) <grufwub@gmail.com> * review changes * start with export/import code * messing about with decoding/encoding * some more fiddling * stuff is WORKING * working pretty alright! * go fmt * fix up tests, add docs * start backup/restore doc * tweaks * credits * update advancedVisibility settings * review changes Co-authored-by: kim (grufwub) <grufwub@gmail.com> Co-authored-by: kim <89579420+NyaaaWhatsUpDoc@users.noreply.github.com>
This commit is contained in:
		
					parent
					
						
							
								a027da0ac9
							
						
					
				
			
			
				commit
				
					
						555ea8edfb
					
				
			
		
					 61 changed files with 4031 additions and 250 deletions
				
			
		
							
								
								
									
										46
									
								
								vendor/github.com/mitchellh/mapstructure/README.md
									
										
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										46
									
								
								vendor/github.com/mitchellh/mapstructure/README.md
									
										
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							|  | @ -0,0 +1,46 @@ | |||
| # mapstructure [](https://godoc.org/github.com/mitchellh/mapstructure) | ||||
| 
 | ||||
| mapstructure is a Go library for decoding generic map values to structures | ||||
| and vice versa, while providing helpful error handling. | ||||
| 
 | ||||
| This library is most useful when decoding values from some data stream (JSON, | ||||
| Gob, etc.) where you don't _quite_ know the structure of the underlying data | ||||
| until you read a part of it. You can therefore read a `map[string]interface{}` | ||||
| and use this library to decode it into the proper underlying native Go | ||||
| structure. | ||||
| 
 | ||||
| ## Installation | ||||
| 
 | ||||
| Standard `go get`: | ||||
| 
 | ||||
| ``` | ||||
| $ go get github.com/mitchellh/mapstructure | ||||
| ``` | ||||
| 
 | ||||
| ## Usage & Example | ||||
| 
 | ||||
| For usage and examples see the [Godoc](http://godoc.org/github.com/mitchellh/mapstructure). | ||||
| 
 | ||||
| The `Decode` function has examples associated with it there. | ||||
| 
 | ||||
| ## But Why?! | ||||
| 
 | ||||
| Go offers fantastic standard libraries for decoding formats such as JSON. | ||||
| The standard method is to have a struct pre-created, and populate that struct | ||||
| from the bytes of the encoded format. This is great, but the problem is if | ||||
| you have configuration or an encoding that changes slightly depending on | ||||
| specific fields. For example, consider this JSON: | ||||
| 
 | ||||
| ```json | ||||
| { | ||||
|   "type": "person", | ||||
|   "name": "Mitchell" | ||||
| } | ||||
| ``` | ||||
| 
 | ||||
| Perhaps we can't populate a specific structure without first reading | ||||
| the "type" field from the JSON. We could always do two passes over the | ||||
| decoding of the JSON (reading the "type" first, and the rest later). | ||||
| However, it is much simpler to just decode this into a `map[string]interface{}` | ||||
| structure, read the "type" key, then use something like this library | ||||
| to decode it into the proper structure. | ||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue