| | package models |
| |
|
| | import ( |
| | "time" |
| | ) |
| |
|
| | type Paste struct { |
| | ID string `gorm:"primaryKey;size:12" json:"id"` |
| | Title string `gorm:"size:255" json:"title"` |
| | Content string `gorm:"type:text;not null" json:"content"` |
| | Language string `gorm:"size:50" json:"language"` |
| | IsPublic bool `gorm:"default:true" json:"is_public"` |
| | Views int `gorm:"default:0" json:"views"` |
| | ExpiresAt *time.Time `json:"expires_at,omitempty"` |
| | BurnAfterRead bool `gorm:"default:false" json:"burn_after_read"` |
| | UserID *uint `gorm:"index" json:"user_id,omitempty"` |
| | User *User `gorm:"constraint:OnDelete:SET NULL" json:"user,omitempty"` |
| | CreatedAt time.Time `json:"created_at"` |
| | UpdatedAt time.Time `json:"updated_at"` |
| | } |
| |
|
| | |
| | var LanguageExtensions = map[string]string{ |
| | "go": "go", |
| | "py": "python", |
| | "python": "python", |
| | "js": "javascript", |
| | "javascript": "javascript", |
| | "ts": "typescript", |
| | "typescript": "typescript", |
| | "html": "html", |
| | "css": "css", |
| | "json": "json", |
| | "xml": "xml", |
| | "yaml": "yaml", |
| | "yml": "yaml", |
| | "md": "markdown", |
| | "markdown": "markdown", |
| | "sql": "sql", |
| | "sh": "bash", |
| | "bash": "bash", |
| | "c": "c", |
| | "cpp": "cpp", |
| | "h": "c", |
| | "hpp": "cpp", |
| | "java": "java", |
| | "rs": "rust", |
| | "rust": "rust", |
| | "rb": "ruby", |
| | "ruby": "ruby", |
| | "php": "php", |
| | "swift": "swift", |
| | "kt": "kotlin", |
| | "kotlin": "kotlin", |
| | "scala": "scala", |
| | "r": "r", |
| | "lua": "lua", |
| | "perl": "perl", |
| | "pl": "perl", |
| | "txt": "plaintext", |
| | "text": "plaintext", |
| | } |
| |
|
| | func GetLanguageFromExtension(ext string) string { |
| | if lang, ok := LanguageExtensions[ext]; ok { |
| | return lang |
| | } |
| | return "plaintext" |
| | } |
| |
|