<commit_before>package colonycore

import (
	// "errors"
	"github.com/eaciit/dbox"
	"github.com/eaciit/orm/v1"
	// "github.com/eaciit/sshclient"
	"github.com/eaciit/toolkit"
	// "golang.org/x/crypto/ssh"
	"encoding/json"
	"os"
	"path/filepath"
	// "strings"
	"fmt"
	"io/ioutil"
	// "time"
)

type Page struct {
	orm.ModelBase
	ID    string `json:"_id"`
	Title string `json:"title"`
	URL   string `json:"url"`
}

func (p *Page) TableName() string {
	return "pages"
}

func (p *Page) RecordID() interface{} {
	return p.ID
}

func (p *Page) GetPages(search string) []Page {
	var query *dbox.Filter

	if search != "" {
		query = dbox.Contains("_id", search)
	}

	data := []Page{}
	cursor, err := Find(new(Page), query)
	if err != nil {
		return data
	}
	if err := cursor.Fetch(&data, 0, false); err != nil {
		return data
	}

	defer cursor.Close()
	return data
}

type PageDetail struct {
	orm.ModelBase
	ID          string        `json:"_id"`
	DataSources []string      `json:"dataSources"`
	Widgets     []*WidgetPage `json:"widgets"`
	ParentMenu  string        `json:"parentMenu"`
	Title       string        `json:"title"`
	URL         string        `json:"url"`
	ThemeColor  string        `json:"themeColor"`
}

type WidgetPage struct {
	ID           string    `json:"_id"`
	WidgetID     string    `json:"widgetId"`
	Title        string    `json:"title"`
	PositionType string    `json:"position"`
	X            int       `json:"x"`
	Y            int       `json:"y"`
	Height       int       `json:"height"`
	Width        int       `json:"width"`
	DataSources  toolkit.M `json:"dataSources"`
	Config       toolkit.M `json:"config"`
}

// func RandomIDWithPrefix(prefix string) string {
// 	timestamp := time.Now().UnixNano() / int64(time.Millisecond)
// 	return toolkit.Sprintf("%s%d", prefix, timestamp)
// }

// func (mp *MapPage) Get(search string) ([]MapPage, error) {
// 	var query *dbox.Filter

// 	if search != "" {
// 		query = dbox.Contains("_id", search)
// 	}

// 	data := []MapPage{}
// 	cursor, err := Find(new(MapPage), query)
// 	if err != nil {
// 		return nil, err
// 	}
// 	if err := cursor.Fetch(&data, 0, false); err != nil {
// 		return nil, err
// 	}
// 	defer cursor.Close()
// 	return data, nil
// }

// func (mp *MapPage) GetById() error {
// 	if err := Get(mp, mp.ID); err != nil {
// 		return err
// 	}
// 	return nil
// }

// func (mp *MapPage) Save(payload toolkit.M) error {
// 	mp.ID = payload.Get("_id", "").(string)
// 	mp.Title = payload.Get("title", "").(string)
// 	mp.URL = payload.Get("url", "").(string)
// 	mp.FileName = mp.ID + ".json"
// 	page := new(Page)
// 	page.ID = mp.ID
// 	page.Title = mp.Title
// 	page.URL = mp.URL

// 	// page.ParentMenu = payload.Get("parentMenu", "").(string)
// 	// page.URL = payload.Get("url", "").(string)
// 	if err := Save(mp); err != nil {
// 		return err
// 	}
// 	if err := page.Save(payload, false, ""); err != nil {
// 		return err
// 	}
// 	return nil
// }

// func (mp *MapPage) Delete(pagePath string) error {
// 	jsonPath := filepath.Join(pagePath, mp.ID+".json")
// 	if err := Delete(mp); err != nil {
// 		return err
// 	}
// 	if err := os.Remove(jsonPath); err != nil {
// 		return err
// 	}
// 	return nil
// }

func (pd *PageDetail) TableName() string {
	basePath := os.Getenv("EC_APP_PATH")
	fileName := fmt.Sprintf("%s.json", pd.ID)
	return filepath.Join(basePath, "config", "pages", fileName)
}

func (pd *PageDetail) Get() (toolkit.M, error) {
	bytes, err := ioutil.ReadFile(pd.TableName())
	if err != nil {
		return nil, err
	}

	res := toolkit.M{}
	if err := json.Unmarshal(bytes, &res); err != nil {
		return nil, err<commit_msg>no message<commit_after>package colonycore

import (
	// "errors"
	"github.com/eaciit/dbox"
	"github.com/eaciit/orm/v1"
	// "github.com/eaciit/sshclient"
	"github.com/eaciit/toolkit"
	// "golang.org/x/crypto/ssh"
	"encoding/json"
	"os"
	"path/filepath"
	// "strings"
	"fmt"
	"io/ioutil"
	// "time"
)

type Page struct {
	orm.ModelBase
	ID    string `json:"_id"`
	Title string `json:"title"`
	URL   string `json:"url"`
}

func (p *Page) TableName() string {
	return "pages"
}

func (p *Page) RecordID() interface{} {
	return p.ID
}

func (p *Page) GetPages(search string) []Page {
	var query *dbox.Filter

	if search != "" {
		query = dbox.Contains("_id", search)
	}

	data := []Page{}
	cursor, err := Find(new(Page), query)
	if err != nil {
		return data
	}
	if err := cursor.Fetch(&data, 0, false); err != nil {
		return data
	}

	defer cursor.Close()
	return data
}

type PageDetail struct {
	orm.ModelBase
	ID          string        `json:"_id"`
	DataSources []string      `json:"dataSources"`
	Widgets     []*WidgetPage `json:"widgets"`
	ParentMenu  string        `json:"parentMenu"`
	Title       string        `json:"title"`
	URL         string        `json:"url"`
	ThemeColor  string        `json:"themeColor"`
}

type WidgetPage struct {
	ID           string    `json:"_id"`
	WidgetID     string    `json:"widgetId"`
	Title        string    `json:"title"`
	PositionType string    `json:"position"`
	X            int       `json:"x"`
	Y            int       `json:"y"`
	Height       int       `json:"height"`
	Width        int       `json:"width"`
	DataSources  toolkit.M `json:"dataSources"`
	Config       toolkit.M `json:"config"`
}

// func RandomIDWithPrefix(prefix string) string {
// 	timestamp := time.Now().UnixNano() / int64(time.Millisecond)
// 	return toolkit.Sprintf("%s%d", prefix, timestamp)
// }

// func (mp *MapPage) Get(search string) ([]MapPage, error) {
// 	var query *dbox.Filter

// 	if search != "" {
// 		query = dbox.Contains("_id", search)
// 	}

// 	data := []MapPage{}
// 	cursor, err := Find(new(MapPage), query)
// 	if err != nil {
// 		return nil, err
// 	}
// 	if err := cursor.Fetch(&data, 0, false); err != nil {
// 		return nil, err
// 	}
// 	defer cursor.Close()
// 	return data, nil
// }

// func (mp *MapPage) GetById() error {
// 	if err := Get(mp, mp.ID); err != nil {
// 		return err
// 	}
// 	return nil
// }

// func (mp *MapPage) Save(payload toolkit.M) error {
// 	mp.ID = payload.Get("_id", "").(string)
// 	mp.Title = payload.Get("title", "").(string)
// 	mp.URL = payload.Get("url", "").(string)
// 	mp.FileName = mp.ID + ".json"
// 	page := new(Page)
// 	page.ID = mp.ID
// 	page.Title = mp.Title
// 	page.URL = mp.URL

// 	// page.ParentMenu = payload.Get("parentMenu", "").(string)
// 	// page.URL = payload.Get("url", "").(string)
// 	if err := Save(mp); err != nil {
// 		return err
// 	}
// 	if err := page.Save(payload, false, ""); err != nil {
// 		return err
// 	}
// 	return nil
// }

// func (mp *MapPage) Delete(pagePath string) error {
// 	jsonPath := filepath.Join(pagePath, mp.ID+".json")
// 	if err := Delete(mp); err != nil {
// 		return err
// 	}
// 	if err := os.Remove(jsonPath); err != nil {
// 		return err
// 	}
// 	return nil
// }

func (pd *PageDetail) TableName() string {
	basePath := os.Getenv("EC_APP_PATH")
	fileName := fmt.Sprintf("%s.json", pd.ID)
	return filepath.Join(basePath, "config", "pages", fileName)
}

func (pd *PageDetail) Get() (*PageDetail, error) {
	bytes, err := ioutil.ReadFile(pd.TableName())
	if err != nil {
		return nil, err
	}

	res := new(PageDetail)
	if err := json.Unmarshal(bytes, &res); err != nil {
		return nil, err
{'fraction_non_alphanumeric': 0.19365954514128186, 'fraction_numerical': 0.0013783597518952446, 'mean_word_length': 2.6316316316316315, 'pattern_counts': {'":': 0, '<': 3, '<?xml version=': 0, '>': 3, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '5948640', 'n_tokens_mistral': 2788, 'n_tokens_neox': 2743, 'n_words': 644}