Compare commits
2 Commits
a9362d02ce
...
5119490b3d
Author | SHA1 | Date | |
---|---|---|---|
5119490b3d | |||
cb6dd813f5 |
49
app-cache.go
49
app-cache.go
@ -1,49 +0,0 @@
|
|||||||
package main
|
|
||||||
|
|
||||||
import "federated.computer/wp-sync-slowtwitch/services/wordpress"
|
|
||||||
|
|
||||||
type AppCache struct {
|
|
||||||
UsersCache map[string]wordpress.UserData
|
|
||||||
TagCache map[string]wordpress.TagData
|
|
||||||
CategoryCache map[string]wordpress.CategoryData
|
|
||||||
}
|
|
||||||
|
|
||||||
func (appCache *AppCache) GetUser(username string) (wordpress.UserData, bool) {
|
|
||||||
user, ok := appCache.UsersCache[username]
|
|
||||||
return user, ok
|
|
||||||
}
|
|
||||||
|
|
||||||
func (appCache *AppCache) SetUser(user wordpress.UserData) {
|
|
||||||
if appCache.UsersCache == nil {
|
|
||||||
appCache.UsersCache = make(map[string]wordpress.UserData)
|
|
||||||
}
|
|
||||||
appCache.UsersCache[user.Name] = user
|
|
||||||
}
|
|
||||||
|
|
||||||
func (appCache *AppCache) GetTag(tagName string) (wordpress.TagData, bool) {
|
|
||||||
tag, ok := appCache.TagCache[tagName]
|
|
||||||
return tag, ok
|
|
||||||
}
|
|
||||||
|
|
||||||
func (appCache *AppCache) SetTag(tag wordpress.TagData) {
|
|
||||||
if appCache.TagCache == nil {
|
|
||||||
appCache.TagCache = make(map[string]wordpress.TagData)
|
|
||||||
}
|
|
||||||
appCache.TagCache[tag.Name] = tag
|
|
||||||
}
|
|
||||||
|
|
||||||
func (appCache *AppCache) GetCategory(categoryName string) (wordpress.CategoryData, bool) {
|
|
||||||
if appCache.CategoryCache != nil {
|
|
||||||
category, ok := appCache.CategoryCache[categoryName]
|
|
||||||
return category, ok
|
|
||||||
}
|
|
||||||
|
|
||||||
return wordpress.CategoryData{}, false
|
|
||||||
}
|
|
||||||
|
|
||||||
func (appCache *AppCache) SetCategory(category wordpress.CategoryData) {
|
|
||||||
if appCache.CategoryCache == nil {
|
|
||||||
appCache.CategoryCache = make(map[string]wordpress.CategoryData)
|
|
||||||
}
|
|
||||||
appCache.CategoryCache[category.Name] = category
|
|
||||||
}
|
|
28
main.go
28
main.go
@ -3,6 +3,7 @@ package main
|
|||||||
import (
|
import (
|
||||||
"database/sql"
|
"database/sql"
|
||||||
"federated.computer/wp-sync-slowtwitch/services/migration"
|
"federated.computer/wp-sync-slowtwitch/services/migration"
|
||||||
|
"fmt"
|
||||||
)
|
)
|
||||||
|
|
||||||
const baseUrl = "https://slowtwitch.cloud/"
|
const baseUrl = "https://slowtwitch.cloud/"
|
||||||
@ -16,12 +17,17 @@ const migrationDbName = "slowtwitch_transfer"
|
|||||||
const federatedDbUrl = "slowtwitch.northend.network"
|
const federatedDbUrl = "slowtwitch.northend.network"
|
||||||
const federatedDbPort = "3306"
|
const federatedDbPort = "3306"
|
||||||
|
|
||||||
var appCache AppCache
|
|
||||||
var slowtwitchDB *sql.DB
|
var slowtwitchDB *sql.DB
|
||||||
var resultsDB *sql.DB
|
var resultsDB *sql.DB
|
||||||
|
|
||||||
func main() {
|
func main() {
|
||||||
//Connect to databases
|
connectToDatabases()
|
||||||
|
migrateAuthors()
|
||||||
|
migrateCategories()
|
||||||
|
migratePosts()
|
||||||
|
}
|
||||||
|
|
||||||
|
func connectToDatabases() {
|
||||||
slowtwitchDatabase, slowtwitchDbErr := migration.Connect(slowtwitchAdminUser, slowtwitchAdminPass, federatedDbUrl, federatedDbPort, slowtwitchDbName+"?parseTime=true")
|
slowtwitchDatabase, slowtwitchDbErr := migration.Connect(slowtwitchAdminUser, slowtwitchAdminPass, federatedDbUrl, federatedDbPort, slowtwitchDbName+"?parseTime=true")
|
||||||
if slowtwitchDbErr != nil {
|
if slowtwitchDbErr != nil {
|
||||||
panic("Could not connect to slowtwitch database.")
|
panic("Could not connect to slowtwitch database.")
|
||||||
@ -34,7 +40,10 @@ func main() {
|
|||||||
} else {
|
} else {
|
||||||
resultsDB = resultsDatabase
|
resultsDB = resultsDatabase
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
func migrateAuthors() {
|
||||||
|
fmt.Println("Migrating Authors and Editors")
|
||||||
editorMigration := migration.MigrateAuthors{
|
editorMigration := migration.MigrateAuthors{
|
||||||
SlowtwitchDatabase: slowtwitchDB,
|
SlowtwitchDatabase: slowtwitchDB,
|
||||||
ResultsDatabase: resultsDB,
|
ResultsDatabase: resultsDB,
|
||||||
@ -42,7 +51,12 @@ func main() {
|
|||||||
WordpressUser: wordpressKey,
|
WordpressUser: wordpressKey,
|
||||||
WordpressPassword: wordpressSecret,
|
WordpressPassword: wordpressSecret,
|
||||||
}
|
}
|
||||||
editorMigration.Execute()
|
editorResults := editorMigration.Execute()
|
||||||
|
fmt.Println("Migrated", len(editorResults), "Editors and Authors")
|
||||||
|
}
|
||||||
|
|
||||||
|
func migrateCategories() {
|
||||||
|
fmt.Println("Migrating Categories")
|
||||||
categoryMigration := migration.MigrateCategories{
|
categoryMigration := migration.MigrateCategories{
|
||||||
SlowtwitchDatabase: slowtwitchDB,
|
SlowtwitchDatabase: slowtwitchDB,
|
||||||
ResultsDatabase: resultsDB,
|
ResultsDatabase: resultsDB,
|
||||||
@ -50,7 +64,12 @@ func main() {
|
|||||||
WordpressUser: wordpressKey,
|
WordpressUser: wordpressKey,
|
||||||
WordpressPassword: wordpressSecret,
|
WordpressPassword: wordpressSecret,
|
||||||
}
|
}
|
||||||
categoryMigration.Execute()
|
categoryResults := categoryMigration.Execute()
|
||||||
|
fmt.Println("Migrated", len(categoryResults), "Categories")
|
||||||
|
}
|
||||||
|
|
||||||
|
func migratePosts() {
|
||||||
|
fmt.Println("Migrating Posts")
|
||||||
postMigration := migration.MigratePosts{
|
postMigration := migration.MigratePosts{
|
||||||
SlowtwitchDatabase: slowtwitchDB,
|
SlowtwitchDatabase: slowtwitchDB,
|
||||||
ResultsDatabase: resultsDB,
|
ResultsDatabase: resultsDB,
|
||||||
@ -59,4 +78,5 @@ func main() {
|
|||||||
WordpressPassword: wordpressSecret,
|
WordpressPassword: wordpressSecret,
|
||||||
}
|
}
|
||||||
postMigration.Execute()
|
postMigration.Execute()
|
||||||
|
fmt.Println("Migration complete, please check database for results.")
|
||||||
}
|
}
|
||||||
|
@ -23,7 +23,6 @@ func (migration *MigrateCategories) Execute() []CategoryResult {
|
|||||||
hasBeenMigrated := HasBeenMigrated(category.Id, migration.ResultsDatabase)
|
hasBeenMigrated := HasBeenMigrated(category.Id, migration.ResultsDatabase)
|
||||||
|
|
||||||
if hasBeenMigrated {
|
if hasBeenMigrated {
|
||||||
fmt.Println("This category has already been migrated.")
|
|
||||||
continue
|
continue
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -27,16 +27,12 @@ func (migration MigratePosts) Execute() {
|
|||||||
if err != nil {
|
if err != nil {
|
||||||
panic("Could not migrate posts:" + err.Error())
|
panic("Could not migrate posts:" + err.Error())
|
||||||
}
|
}
|
||||||
|
|
||||||
//get wordpress tag data, there are only 3
|
//get wordpress tag data, there are only 3
|
||||||
tags := []string{"swim", "bike", "run"}
|
tags := []string{"swim", "bike", "run"}
|
||||||
var wpTagData []wordpress.TagData
|
wpTagData, wpTagErr := wordpress.GetTags(tags, migration.WordpressBaseUrl, migration.WordpressUser, migration.WordpressPassword)
|
||||||
|
if wpTagErr != nil {
|
||||||
for _, tag := range tags {
|
panic("Could not migrate posts due to tags not found:" + wpTagErr.Error())
|
||||||
tagData, ok := wordpress.GetTag(tag, migration.WordpressBaseUrl, migration.WordpressUser, migration.WordpressPassword)
|
|
||||||
if ok == false {
|
|
||||||
panic("could not get tag data from wp")
|
|
||||||
}
|
|
||||||
wpTagData = append(wpTagData, tagData)
|
|
||||||
}
|
}
|
||||||
|
|
||||||
slowtwitchPostIdsForMigration := getPostIdsThatNeedMigration(slowtwitchPostIds, migratedPostIds)
|
slowtwitchPostIdsForMigration := getPostIdsThatNeedMigration(slowtwitchPostIds, migratedPostIds)
|
||||||
|
@ -2,6 +2,7 @@ package wordpress
|
|||||||
|
|
||||||
import (
|
import (
|
||||||
"encoding/json"
|
"encoding/json"
|
||||||
|
"errors"
|
||||||
"federated.computer/wp-sync-slowtwitch/utilities"
|
"federated.computer/wp-sync-slowtwitch/utilities"
|
||||||
"net/url"
|
"net/url"
|
||||||
)
|
)
|
||||||
@ -12,6 +13,18 @@ type TagData struct {
|
|||||||
Slug string `json:"slug"`
|
Slug string `json:"slug"`
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func GetTags(tags []string, baseUrl, user, pass string) ([]TagData, error) {
|
||||||
|
var wpTagData []TagData
|
||||||
|
for _, tag := range tags {
|
||||||
|
tagData, ok := GetTag(tag, baseUrl, user, pass)
|
||||||
|
if ok == false {
|
||||||
|
return wpTagData, errors.New("Tag Not Found")
|
||||||
|
}
|
||||||
|
wpTagData = append(wpTagData, tagData)
|
||||||
|
}
|
||||||
|
return wpTagData, nil
|
||||||
|
}
|
||||||
|
|
||||||
func GetTag(tagName, baseUrl, user, pass string) (TagData, bool) {
|
func GetTag(tagName, baseUrl, user, pass string) (TagData, bool) {
|
||||||
endpoint := baseUrl + "wp-json/wp/v2/tags?search=" + url.QueryEscape(tagName)
|
endpoint := baseUrl + "wp-json/wp/v2/tags?search=" + url.QueryEscape(tagName)
|
||||||
body := utilities.GetHttpRequestToWordpress(endpoint, user, pass)
|
body := utilities.GetHttpRequestToWordpress(endpoint, user, pass)
|
||||||
|
Loading…
Reference in New Issue
Block a user