80 lines
1.9 KiB
Plaintext
80 lines
1.9 KiB
Plaintext
whl
|
|
' ( arg$:?command
|
|
& ( get'db
|
|
| (db=1)&lst$(db,db,NEW)
|
|
)
|
|
& !command
|
|
: ( add
|
|
& :?name:?tag:?date
|
|
& whl
|
|
' ( arg$:?argmnt
|
|
& arg$:?value
|
|
& (!argmnt.!value)
|
|
: ( (title|name.?name)
|
|
| (category|tag.?tag)
|
|
| (date.?date)
|
|
)
|
|
)
|
|
& ( !name:~
|
|
& !tag:~
|
|
& !date:~
|
|
& ( !db:?*!tag^(?+(!date.!name)+?)*?
|
|
& out$"This record already exists"
|
|
| !tag^(!date.!name)*!db:?db
|
|
& lst$(db,db,NEW)
|
|
)
|
|
| out$"invalid data"
|
|
)
|
|
| latest
|
|
& :?date
|
|
& nothing found:?latest
|
|
& ( !db
|
|
: ?
|
|
* ?tag
|
|
^ ( ?
|
|
+ ( (>!date:?date.?name)
|
|
& (!name,!tag,!date):?latest
|
|
& ~
|
|
)
|
|
+ ?
|
|
)
|
|
* ?
|
|
| out$!latest
|
|
)
|
|
| latest/category
|
|
& :?date:?latests:?latest
|
|
& ( !db
|
|
: ?
|
|
* ( ?tag
|
|
& !latests !latest:?latests
|
|
& :?latest:?date
|
|
)
|
|
^ ( ?
|
|
+ ( (>!date:?date.?name)
|
|
& (!name,!tag,!date):?latest
|
|
& ~
|
|
)
|
|
+ ?
|
|
)
|
|
* ?
|
|
| !latests !latest:?latests&out$!latests
|
|
)
|
|
| sorted
|
|
& 0:?sorted
|
|
& ( !db
|
|
: ?
|
|
* ?tag
|
|
^ ( ?
|
|
+ ( (?date.?name)
|
|
& (!date.!name,!tag,!date)+!sorted:?sorted
|
|
& ~
|
|
)
|
|
+ ?
|
|
)
|
|
* ?
|
|
| whl
|
|
' (!sorted:(?.?row)+?sorted&out$!row)
|
|
)
|
|
)
|
|
);
|