Add comments
This commit is contained in:
parent
f0198a4a72
commit
a53dda25bd
8 changed files with 16 additions and 8 deletions
|
@ -7,15 +7,16 @@ As a result of this, it is also neither secure nor stable.
|
|||
|
||||
## Features:
|
||||
* Each day, you get a text file. You have until 23:59 of that very day to finalise it.
|
||||
* At any moment, you can append a single line to log.txt
|
||||
* You can save named notes to document milestones, big events, or just a nice game you played this month
|
||||
* There is also a readme.txt file (just like this one, except you get to write it!)
|
||||
* You can save named notes to document milestones, big events, or just a nice game you played this month*
|
||||
* There is also a readme.txt file (just like this one, except you get to write it!)*
|
||||
* You can easily export everything in a zip file for backups
|
||||
|
||||
* Everything is plain(text) and simple. No databases, encryption, OAuth, or anything fancy. Even the password is plainte- *wait is this a feature?*
|
||||
* Docker support (in fact, that's probably the best way to run this)
|
||||
* Optional Telegram notifications for failed login attempts
|
||||
|
||||
*only available through API, subject to change and removal
|
||||
|
||||
## Data format:
|
||||
```
|
||||
data
|
||||
|
@ -26,7 +27,6 @@ data
|
|||
| +-- note1.txt
|
||||
| +-- note2.txt
|
||||
| ...
|
||||
+-- log.txt
|
||||
+-- readme.txt
|
||||
|
||||
config
|
||||
|
|
3
TODO.md
3
TODO.md
|
@ -4,9 +4,8 @@ List of things to add to this project
|
|||
* Make scram configurable
|
||||
* Use reflection in config loading
|
||||
* Check export function for improvements
|
||||
* Improve viewing of days (textarea over raw API requests), add notes to frontend
|
||||
* Add notes to frontend?
|
||||
* More slog.Debug and a debug flag?
|
||||
* Think about timezones
|
||||
* Consider more secure auth methods
|
||||
* *Go* dependency-less? <-- this is a terrible idea
|
||||
* Better visual feedback from JS?
|
|
@ -89,6 +89,7 @@ func (c *Config) Reload() error {
|
|||
return nil
|
||||
}
|
||||
|
||||
// ConfigInit loads config on startup
|
||||
func ConfigInit() Config {
|
||||
cfg := Config{Port: 7101, Username: "admin", Password: "admin"} // Default values are declared here, I guess
|
||||
err := cfg.Reload()
|
||||
|
|
|
@ -11,6 +11,7 @@ import (
|
|||
|
||||
var ExportPath = "data/export.zip"
|
||||
|
||||
// Export saves a .zip archive of the data folder to the passed filename
|
||||
func Export(filename string) error {
|
||||
file, err := os.Create(filename)
|
||||
if err != nil {
|
||||
|
|
1
flags.go
1
flags.go
|
@ -5,6 +5,7 @@ import (
|
|||
"log"
|
||||
)
|
||||
|
||||
// FlagInit processes app flags
|
||||
func FlagInit() {
|
||||
config := flag.String("config", "", "override config file")
|
||||
username := flag.String("user", "", "override username")
|
||||
|
|
|
@ -1,3 +1,4 @@
|
|||
// Format time in "Jan 02, 2006" format
|
||||
function formatDate(date) {
|
||||
let dateFormat = new Intl.DateTimeFormat('en', {
|
||||
year: 'numeric',
|
||||
|
@ -15,7 +16,7 @@ function updateDate() {
|
|||
|
||||
}
|
||||
|
||||
// Starts interval to update today's date every hour at 00:00
|
||||
// Start interval to update today's date every hour at 00:00
|
||||
function callEveryHour() {
|
||||
setInterval(updateDate, 1000 * 60 * 60);
|
||||
}
|
||||
|
|
|
@ -37,6 +37,7 @@ func InternalError(w http.ResponseWriter, r *http.Request) {
|
|||
http.ServeFile(w, r, "./pages/error/500.html")
|
||||
}
|
||||
|
||||
// GetToday renders HTML page for today's view
|
||||
func GetToday(w http.ResponseWriter, r *http.Request) {
|
||||
day, err := ReadToday()
|
||||
if err != nil {
|
||||
|
@ -63,6 +64,7 @@ func GetToday(w http.ResponseWriter, r *http.Request) {
|
|||
}
|
||||
}
|
||||
|
||||
// PostToday saves today's entry from form and redirects back to GET
|
||||
func PostToday(w http.ResponseWriter, r *http.Request) {
|
||||
err := SaveToday([]byte(r.FormValue("day")))
|
||||
if err != nil {
|
||||
|
@ -71,6 +73,7 @@ func PostToday(w http.ResponseWriter, r *http.Request) {
|
|||
http.Redirect(w, r, r.Header.Get("Referer"), 302)
|
||||
}
|
||||
|
||||
// GetDays renders HTML page for list of previous days
|
||||
func GetDays(w http.ResponseWriter, r *http.Request) {
|
||||
day, err := ListFiles("day")
|
||||
if err != nil {
|
||||
|
@ -104,6 +107,7 @@ func GetDays(w http.ResponseWriter, r *http.Request) {
|
|||
}
|
||||
}
|
||||
|
||||
// GetDay renders HTML page for a specific day
|
||||
func GetDay(w http.ResponseWriter, r *http.Request) {
|
||||
dayString := chi.URLParam(r, "day")
|
||||
if dayString == "" {
|
||||
|
|
1
serve.go
1
serve.go
|
@ -9,6 +9,7 @@ import (
|
|||
"strconv"
|
||||
)
|
||||
|
||||
// Serve starts the app's web server
|
||||
func Serve() {
|
||||
r := chi.NewRouter()
|
||||
r.Use(middleware.Logger, middleware.CleanPath, middleware.StripSlashes)
|
||||
|
|
Loading…
Reference in a new issue