From 9601585475abfddab22495b2a789d9b263e4bdc5 Mon Sep 17 00:00:00 2001 From: Les De Ridder Date: Sat, 29 Feb 2020 22:49:21 +0100 Subject: [PATCH] Initial commit --- .gitignore | 1 + LICENSE.html | 10 ++++++++++ generate.fish | 24 ++++++++++++++++++++++++ index.html | 10 ++++++++++ schema.png | Bin 0 -> 75390 bytes source/LICENSE.md | 31 +++++++++++++++++++++++++++++++ source/index.md | 30 ++++++++++++++++++++++++++++++ source/schema.dia | Bin 0 -> 3111 bytes 8 files changed, 106 insertions(+) create mode 100644 .gitignore create mode 100644 LICENSE.html create mode 100755 generate.fish create mode 100644 index.html create mode 100644 schema.png create mode 100644 source/LICENSE.md create mode 100644 source/index.md create mode 100644 source/schema.dia diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..b25c15b --- /dev/null +++ b/.gitignore @@ -0,0 +1 @@ +*~ diff --git a/LICENSE.html b/LICENSE.html new file mode 100644 index 0000000..ad71d06 --- /dev/null +++ b/LICENSE.html @@ -0,0 +1,10 @@ + + + + + + + +

University of Illinois/NCSA Open Source License

Copyright © 2020, Les De Ridder All rights reserved.

Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the “Software”), to deal with the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:

THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE CONTRIBUTORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS WITH THE SOFTWARE.

+ + diff --git a/generate.fish b/generate.fish new file mode 100755 index 0000000..159164f --- /dev/null +++ b/generate.fish @@ -0,0 +1,24 @@ +#!/usr/bin/fish + +echo 'Generating schema PNG...' +dia -e schema.png source/schema.dia +convert schema.png -bordercolor white -border 20 schema.png + +echo 'Generating HTML...' +for md_path in source/*.md + set output_path (echo $md_path | sed 's_source/__;s/md/html/') + rm -f $output_path + + set page_html (markdown -f +idanchor -squash -html5 -toc $md_path) + + echo '' >> $output_path + echo '' >> $output_path + echo '' >> $output_path + echo '' >> $output_path + echo '' >> $output_path + echo '' >> $output_path + echo '' >> $output_path + echo $page_html >> $output_path + echo '' >> $output_path + echo '' >> $output_path +end diff --git a/index.html b/index.html new file mode 100644 index 0000000..88ba0d4 --- /dev/null +++ b/index.html @@ -0,0 +1,10 @@ + + + + + + + +

luckybooru

luckybooru is a danbooru-style booru written in Crystal with Lucky.

It will be licensed under the University of Illinois/NCSA license.

Status

luckybooru is in the early design stage.

Goals and design principles

Major technologies used

Database schema (WIP)

(database schema image)

This page

Source: git.fuwafuwa.moe/lesderid/luckybooru_info

+ + diff --git a/schema.png b/schema.png new file mode 100644 index 0000000000000000000000000000000000000000..ef6837ed842a120fa7a0f18771d7dcdfa4024ffa GIT binary patch literal 75390 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

e-K?v0GhqLsPgM@F>$-`w8? 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 literal 0 HcmV?d00001 diff --git a/source/LICENSE.md b/source/LICENSE.md new file mode 100644 index 0000000..755b92d --- /dev/null +++ b/source/LICENSE.md @@ -0,0 +1,31 @@ +University of Illinois/NCSA +Open Source License + +Copyright (c) 2020, Les De Ridder +All rights reserved. + +Permission is hereby granted, free of charge, to any person obtaining a copy of +this software and associated documentation files (the "Software"), to deal with +the Software without restriction, including without limitation the rights to +use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies +of the Software, and to permit persons to whom the Software is furnished to do +so, subject to the following conditions: + +* Redistributions of source code must retain the above copyright notice, + this list of conditions and the following disclaimers. + +* Redistributions in binary form must reproduce the above copyright notice, + this list of conditions and the following disclaimers in the + documentation and/or other materials provided with the distribution. + +* Neither the name of luckybooru nor the names of its contributors may be used + to endorse or promote products derived from this Software without specific + prior written permission. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS +FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +CONTRIBUTORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS WITH THE +SOFTWARE. diff --git a/source/index.md b/source/index.md new file mode 100644 index 0000000..2b7da1f --- /dev/null +++ b/source/index.md @@ -0,0 +1,30 @@ +# luckybooru + +luckybooru is a [danbooru](https://danbooru.donmai.us/)-style booru written in Crystal with Lucky. + +It will be licensed under the [University of Illinois/NCSA license](LICENSE.html). + +## Status + +luckybooru is in the early design stage. + +## Goals and design principles + +* Feature parity with danbooru +* Support for various types of media (images, audio, videos, plaintext, Markdown) +* Full support for running in a cluster with live scaling +* All major features should work with *noscript* +* RESTful API + +## Major technologies used + +* [Crystal](https://crystal-lang.org/) +* [Lucky](https://luckyframework.org) + +## Database schema (WIP) + +![(database schema image)](schema.png) + +## This page + +Source: [git.fuwafuwa.moe/lesderid/luckybooru_info](https://git.fuwafuwa.moe/lesderid/luckybooru_info) diff --git a/source/schema.dia b/source/schema.dia new file mode 100644 index 0000000000000000000000000000000000000000..1acb3944222199a496ac898135504d0cb4bfc78e GIT binary patch literal 3111 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 literal 0 HcmV?d00001