diff --git a/.github/ISSUE_TEMPLATE/bug_report.md b/.github/ISSUE_TEMPLATE/bug_report.md index f3d5c415..5ad98142 100644 --- a/.github/ISSUE_TEMPLATE/bug_report.md +++ b/.github/ISSUE_TEMPLATE/bug_report.md @@ -4,7 +4,6 @@ about: Create a report to help us improve title: '' labels: bug assignees: '' - --- **Describe the bug** @@ -12,6 +11,7 @@ A clear and concise description of what the bug is. **To Reproduce** Steps to reproduce the behavior: + 1. Go to '...' 2. Click on '....' 3. Scroll down to '....' @@ -24,15 +24,17 @@ A clear and concise description of what you expected to happen. If applicable, add screenshots to help explain your problem. **Desktop (please complete the following information):** - - OS: [e.g. iOS] - - Browser [e.g. chrome, safari] - - Version [e.g. 22] + +- OS: [e.g. iOS] +- Browser [e.g. chrome, safari] +- Version [e.g. 22] **Smartphone (please complete the following information):** - - Device: [e.g. iPhone6] - - OS: [e.g. iOS8.1] - - Browser [e.g. stock browser, safari] - - Version [e.g. 22] + +- Device: [e.g. iPhone6] +- OS: [e.g. iOS8.1] +- Browser [e.g. stock browser, safari] +- Version [e.g. 22] **Additional context** Add any other context about the problem here. diff --git a/.github/ISSUE_TEMPLATE/feature_request.md b/.github/ISSUE_TEMPLATE/feature_request.md index 11fc491e..5f0a04ce 100644 --- a/.github/ISSUE_TEMPLATE/feature_request.md +++ b/.github/ISSUE_TEMPLATE/feature_request.md @@ -4,7 +4,6 @@ about: Suggest an idea for this project title: '' labels: enhancement assignees: '' - --- **Is your feature request related to a problem? Please describe.** diff --git a/.github/PULL_REQUEST_TEMPLATE.md b/.github/PULL_REQUEST_TEMPLATE.md index 652369bb..4f3922bb 100644 --- a/.github/PULL_REQUEST_TEMPLATE.md +++ b/.github/PULL_REQUEST_TEMPLATE.md @@ -1,10 +1,10 @@ ### Before you begin -* I understand my contributions may be rejected for any reason -* I understand my contributions are for the benefit of Derpibooru and/or the Philomena software -* I understand my contributions are licensed under the GNU AGPLv3 +- I understand my contributions may be rejected for any reason +- I understand my contributions are for the benefit of Derpibooru and/or the Philomena software +- I understand my contributions are licensed under the GNU AGPLv3 -- [ ] I understand all of the above +* [ ] I understand all of the above --- diff --git a/.prettierrc.yml b/.prettierrc.yml index 83cfc971..c658d5c1 100644 --- a/.prettierrc.yml +++ b/.prettierrc.yml @@ -9,6 +9,6 @@ quoteProps: as-needed trailingComma: all arrowParens: avoid overrides: - - files: "*.css" + - files: '*.css' options: singleQuote: false diff --git a/README.md b/README.md index 966d5e06..c0ae0caf 100644 --- a/README.md +++ b/README.md @@ -1,7 +1,9 @@ # Philomena + ![Philomena](/assets/static/images/phoenix.svg) ## Getting started + On systems with `docker` and `docker compose` installed, the process should be as simple as: ``` @@ -23,11 +25,13 @@ Once the application has started, navigate to http://localhost:8080 and login wi If you are running Docker on Windows and the application crashes immediately upon startup, please ensure that `autocrlf` is set to `false` in your Git config, and then re-clone the repository. Additionally, it is recommended that you allocate at least 4GB of RAM to your Docker VM. If you run into an OpenSearch bootstrap error, you may need to increase your `max_map_count` on the host as follows: + ``` sudo sysctl -w vm.max_map_count=262144 ``` If you have SELinux enforcing (Fedora, Arch, others; manifests as a `Could not find a Mix.Project` error), you should run the following in the application directory on the host before proceeding: + ``` chcon -Rt svirt_sandbox_file_t . ``` @@ -37,6 +41,7 @@ This allows Docker or Podman to bind mount the application directory into the co If you are using a platform which uses cgroups v2 by default (Fedora 31+), use `podman` and `podman-compose`. ## Deployment + You need a key installed on the server you target, and the git remote installed in your ssh configuration. git remote add production philomena@:philomena/ diff --git a/assets/.stylelintrc.yml b/assets/.stylelintrc.yml index 78227ced..e513ddac 100644 --- a/assets/.stylelintrc.yml +++ b/assets/.stylelintrc.yml @@ -5,14 +5,14 @@ rules: at-rule-no-unknown: - true - ignoreAtRules: - - mixin - - define-mixin + - mixin + - define-mixin media-query-no-invalid: rule-empty-line-before: - always-multi-line - except: - - after-single-line-comment - - first-nested + - after-single-line-comment + - first-nested declaration-block-no-duplicate-custom-properties: true declaration-block-no-duplicate-properties: true font-family-no-duplicate-names: true @@ -45,10 +45,10 @@ rules: at-rule-empty-line-before: - always - except: - - first-nested + - first-nested ignore: - - after-comment - - blockless-after-blockless + - after-comment + - blockless-after-blockless custom-property-empty-line-before: never declaration-empty-line-before: never declaration-block-single-line-max-declarations: 3 diff --git a/assets/css/application.css b/assets/css/application.css index 31c177a9..a6ae2827 100644 --- a/assets/css/application.css +++ b/assets/css/application.css @@ -56,4 +56,4 @@ @import "views/search"; @import "views/staff"; @import "views/stats"; -@import "views/tags"; \ No newline at end of file +@import "views/tags"; diff --git a/assets/css/themes/base/dark.css b/assets/css/themes/base/dark.css index a459e5c8..8821c5cd 100644 --- a/assets/css/themes/base/dark.css +++ b/assets/css/themes/base/dark.css @@ -66,7 +66,9 @@ --block-header-link-text-hover-color: hsl(from $block-header-link-text-color calc(h + 6) calc(s - 20) calc(l - 3)); --block-header-light-hover-color: hsl(from $block-header-light-color calc(h - 4) calc(s + 10) calc(l - 4)); - --block-header-light-link-text-hover-color: hsl(from $block-header-light-link-text-color calc(h + 8) calc(s - 10) calc(l - 2)); + --block-header-light-link-text-hover-color: hsl( + from $block-header-light-link-text-color calc(h + 8) calc(s - 10) calc(l - 2) + ); --media-box-hover-color: hsl(from $media-box-color h s calc(l - 4)); --media-box-header-link-text-hover-color: hsl(from $link-color h calc(s - 18) calc(l - 3)); @@ -121,7 +123,9 @@ --tag-category-error-border: hsl(from $tag-category-error-color h s calc(l - 22)); --tag-category-character-background: hsl(from $tag-category-character-color h s calc(l - 33)); --tag-category-character-border: hsl(from $tag-category-character-color h s calc(l - 20)); - --tag-category-content-official-background: hsl(from $tag-category-content-official-color h calc(s - 2) calc(l - 29)); + --tag-category-content-official-background: hsl( + from $tag-category-content-official-color h calc(s - 2) calc(l - 29) + ); --tag-category-content-official-border: hsl(from $tag-category-content-official-color h s calc(l - 20)); --tag-category-content-fanmade-background: hsl(from $tag-category-content-fanmade-color h s calc(l - 40)); --tag-category-content-fanmade-border: hsl(from $tag-category-content-fanmade-color h calc(s - 10) calc(l - 20)); diff --git a/assets/js/boorujs.js b/assets/js/boorujs.js index b60e2217..87e05003 100644 --- a/assets/js/boorujs.js +++ b/assets/js/boorujs.js @@ -11,21 +11,45 @@ import { addTag } from './tagsinput'; // Event types and any qualifying conditions - return true to not run action const types = { - click(event) { return event.button !== 0; /* Left-click only */ }, - change() { /* No qualifier */ }, - fetchcomplete() { /* No qualifier */ }, + click(event) { + return event.button !== 0; /* Left-click only */ + }, + change() { + /* No qualifier */ + }, + fetchcomplete() { + /* No qualifier */ + }, }; const actions = { - hide(data) { selectorCb(data.base, data.value, el => el.classList.add('hidden')); }, - show(data) { selectorCb(data.base, data.value, el => el.classList.remove('hidden')); }, - toggle(data) { selectorCb(data.base, data.value, el => el.classList.toggle('hidden')); }, - submit(data) { selectorCb(data.base, data.value, el => el.submit()); }, - disable(data) { selectorCb(data.base, data.value, el => el.disabled = true); }, - focus(data) { document.querySelector(data.value).focus(); }, - unfilter(data) { showBlock(data.el.closest('.image-show-container')); }, - tabHide(data) { selectorCbChildren(data.base, data.value, el => el.classList.add('hidden')); }, - preventdefault() { /* The existence of this entry is enough */ }, + hide(data) { + selectorCb(data.base, data.value, el => el.classList.add('hidden')); + }, + show(data) { + selectorCb(data.base, data.value, el => el.classList.remove('hidden')); + }, + toggle(data) { + selectorCb(data.base, data.value, el => el.classList.toggle('hidden')); + }, + submit(data) { + selectorCb(data.base, data.value, el => el.submit()); + }, + disable(data) { + selectorCb(data.base, data.value, el => (el.disabled = true)); + }, + focus(data) { + document.querySelector(data.value).focus(); + }, + unfilter(data) { + showBlock(data.el.closest('.image-show-container')); + }, + tabHide(data) { + selectorCbChildren(data.base, data.value, el => el.classList.add('hidden')); + }, + preventdefault() { + /* The existence of this entry is enough */ + }, copy(data) { document.querySelector(data.value).select(); @@ -78,9 +102,9 @@ const actions = { fetchHtml(loadTab) .then(handleError) .then(response => response.text()) - .then(response => newTab.innerHTML = response) - .then(() => newTab.dataset.loaded = true) - .catch(() => newTab.textContent = 'Error!'); + .then(response => (newTab.innerHTML = response)) + .then(() => (newTab.dataset.loaded = true)) + .catch(() => (newTab.textContent = 'Error!')); } }, }; diff --git a/assets/tsconfig.json b/assets/tsconfig.json index e825a6a0..83fba68a 100644 --- a/assets/tsconfig.json +++ b/assets/tsconfig.json @@ -6,11 +6,7 @@ "esModuleInterop": true, "allowJs": true, "skipLibCheck": true, - "lib": [ - "ES2016", - "DOM", - "DOM.Iterable" - ], + "lib": ["ES2016", "DOM", "DOM.Iterable"], "moduleResolution": "bundler", "allowImportingTsExtensions": true, "resolveJsonModule": true, diff --git a/config/avatar.json b/config/avatar.json index 577db737..baa37b40 100644 --- a/config/avatar.json +++ b/config/avatar.json @@ -1,264 +1,129 @@ { "header": "", "background": "", - "species": [ - "unicorn", - "pegasus", - "earthpony" - ], + "species": ["unicorn", "pegasus", "earthpony"], "body_shapes": [ { "shape": "", - "species": [ - "unicorn", - "pegasus", - "earthpony", - "batpony" - ] + "species": ["unicorn", "pegasus", "earthpony", "batpony"] } ], "tail_shapes": [ { "shape": "", - "species": [ - "unicorn", - "pegasus", - "earthpony", - "batpony" - ] + "species": ["unicorn", "pegasus", "earthpony", "batpony"] } ], "hair_shapes": [ { "shape": "", - "species": [ - "unicorn", - "pegasus", - "earthpony", - "batpony" - ] + "species": ["unicorn", "pegasus", "earthpony", "batpony"] }, { "shape": "", - "species": [ - "unicorn", - "pegasus", - "earthpony", - "batpony" - ] + "species": ["unicorn", "pegasus", "earthpony", "batpony"] }, { "shape": "", - "species": [ - "unicorn", - "pegasus", - "earthpony", - "batpony" - ] + "species": ["unicorn", "pegasus", "earthpony", "batpony"] }, { "shape": "", - "species": [ - "unicorn", - "pegasus", - "earthpony", - "batpony" - ] + "species": ["unicorn", "pegasus", "earthpony", "batpony"] }, { "shape": "", - "species": [ - "unicorn", - "pegasus", - "earthpony", - "batpony" - ] + "species": ["unicorn", "pegasus", "earthpony", "batpony"] }, { "shape": "", - "species": [ - "unicorn", - "pegasus", - "earthpony", - "batpony" - ] + "species": ["unicorn", "pegasus", "earthpony", "batpony"] }, { "shape": "", - "species": [ - "unicorn", - "pegasus", - "earthpony", - "batpony" - ] + "species": ["unicorn", "pegasus", "earthpony", "batpony"] }, { "shape": "", - "species": [ - "unicorn", - "pegasus", - "earthpony", - "batpony" - ] + "species": ["unicorn", "pegasus", "earthpony", "batpony"] }, { "shape": "", - "species": [ - "unicorn", - "pegasus", - "earthpony", - "batpony" - ] + "species": ["unicorn", "pegasus", "earthpony", "batpony"] }, { "shape": "", - "species": [ - "unicorn", - "pegasus", - "earthpony" - ] + "species": ["unicorn", "pegasus", "earthpony"] }, { "shape": "", - "species": [ - "unicorn", - "pegasus", - "earthpony", - "batpony" - ] + "species": ["unicorn", "pegasus", "earthpony", "batpony"] }, { "shape": "", - "species": [ - "unicorn", - "pegasus", - "earthpony", - "batpony" - ] + "species": ["unicorn", "pegasus", "earthpony", "batpony"] }, { "shape": "", - "species": [ - "unicorn", - "pegasus", - "earthpony", - "batpony" - ] + "species": ["unicorn", "pegasus", "earthpony", "batpony"] }, { "shape": "", - "species": [ - "unicorn", - "pegasus", - "earthpony", - "batpony" - ] + "species": ["unicorn", "pegasus", "earthpony", "batpony"] }, { "shape": "", - "species": [ - "unicorn", - "pegasus", - "earthpony", - "batpony" - ] + "species": ["unicorn", "pegasus", "earthpony", "batpony"] }, { "shape": "", - "species": [ - "unicorn", - "pegasus", - "earthpony", - "batpony" - ] + "species": ["unicorn", "pegasus", "earthpony", "batpony"] }, { "shape": "", - "species": [ - "unicorn", - "pegasus", - "earthpony" - ] + "species": ["unicorn", "pegasus", "earthpony"] }, { "shape": "", - "species": [ - "unicorn", - "pegasus", - "earthpony", - "batpony" - ] + "species": ["unicorn", "pegasus", "earthpony", "batpony"] }, { "shape": "", - "species": [ - "unicorn", - "pegasus", - "earthpony", - "batpony" - ] + "species": ["unicorn", "pegasus", "earthpony", "batpony"] }, { "shape": "", - "species": [ - "unicorn", - "pegasus", - "earthpony", - "batpony" - ] + "species": ["unicorn", "pegasus", "earthpony", "batpony"] }, { "shape": "", - "species": [ - "unicorn", - "pegasus", - "earthpony", - "batpony" - ] + "species": ["unicorn", "pegasus", "earthpony", "batpony"] }, { "shape": "", - "species": [ - "unicorn", - "pegasus", - "earthpony", - "batpony" - ] + "species": ["unicorn", "pegasus", "earthpony", "batpony"] } ], "extra_shapes": [ { "shape": "", - "species": [ - "unicorn" - ] + "species": ["unicorn"] }, { "shape": "", - "species": [ - "pegasus" - ] + "species": ["pegasus"] }, { "shape": "", - "species": [ - "batpony" - ] + "species": ["batpony"] }, { "shape": "", - "species": [ - "batpony" - ] + "species": ["batpony"] }, { "shape": "", - "species": [ - "unicorn", - "pegasus", - "earthpony", - "batpony" - ] + "species": ["unicorn", "pegasus", "earthpony", "batpony"] } ], "footer": "" diff --git a/config/footer.json b/config/footer.json index d875df97..24102ca3 100644 --- a/config/footer.json +++ b/config/footer.json @@ -1,9 +1,5 @@ { - "cols": [ - "Site Resources", - "Help & Information", - "Community" - ], + "cols": ["Site Resources", "Help & Information", "Community"], "Site Resources": [ { "title": "Site Rules", diff --git a/config/quick_tag_table.json b/config/quick_tag_table.json index 6810305e..90911eae 100644 --- a/config/quick_tag_table.json +++ b/config/quick_tag_table.json @@ -44,21 +44,8 @@ "1": "season" }, "Main": { - "Ratings": [ - "safe", - "suggestive", - "questionable", - "explicit", - "semi-grimdark", - "grimdark", - "grotesque" - ], - "General Spoilers": [ - "spoiler:comic", - "spoiler:g5", - "spoiler:pony life", - "spoilers for another series" - ], + "Ratings": ["safe", "suggestive", "questionable", "explicit", "semi-grimdark", "grimdark", "grotesque"], + "General Spoilers": ["spoiler:comic", "spoiler:g5", "spoiler:pony life", "spoilers for another series"], "Species": [ "anthro", "equestria girls", @@ -115,160 +102,145 @@ "timber wolf", "windigo" ], - "Misc": [ - "original species", - "hybrid" - ] + "Misc": ["original species", "hybrid"] }, "Shorthands A": [ - ["Mane Cast", [ - ["m6", "mane six"], - ["pt", "princess twilight"], - ["ts", "twilight sparkle"], - ["rd", "rainbow dash"], - ["ry", "rarity"], - ["aj", "applejack"], - ["fs", "fluttershy"], - ["pp", "pinkie pie"], - ["sp", "spike"] - ]], - ["Secondary Cast", [ - ["cmc", "cutie mark crusaders"], - ["ab", "apple bloom"], - ["sl", "scootaloo"], - ["sb", "sweetie belle"], - ["tia", "princess celestia"], - ["luna", "princess luna"], - ["pcd", "princess cadance"], - ["sa", "shining armor"], - ["sg", "starlight glimmer"] - ]], - ["More Ponies", [ - ["tx", "trixie"], - ["sus", "sunset shimmer"], - ["sombra", "king sombra"], - ["qc", "queen chrysalis"], - ["dc", "discord"], - ["nmm", "nightmare moon"], - ["sf", "spitfire"], - ["sn", "soarin'"], - ["ld", "lightning dust"] - ]], - ["More Apples", [ - ["bm", "big macintosh"], - ["gs", "granny smith"], - ["bb", "braeburn"], - ["bs", "babs seed"] - ]], - ["Fillies and Colts", [ - ["ss", "silver spoon"], - ["dt", "diamond tiara"], - ["pfh", "princess flurry heart"] - ]] + [ + "Mane Cast", + [ + ["m6", "mane six"], + ["pt", "princess twilight"], + ["ts", "twilight sparkle"], + ["rd", "rainbow dash"], + ["ry", "rarity"], + ["aj", "applejack"], + ["fs", "fluttershy"], + ["pp", "pinkie pie"], + ["sp", "spike"] + ] + ], + [ + "Secondary Cast", + [ + ["cmc", "cutie mark crusaders"], + ["ab", "apple bloom"], + ["sl", "scootaloo"], + ["sb", "sweetie belle"], + ["tia", "princess celestia"], + ["luna", "princess luna"], + ["pcd", "princess cadance"], + ["sa", "shining armor"], + ["sg", "starlight glimmer"] + ] + ], + [ + "More Ponies", + [ + ["tx", "trixie"], + ["sus", "sunset shimmer"], + ["sombra", "king sombra"], + ["qc", "queen chrysalis"], + ["dc", "discord"], + ["nmm", "nightmare moon"], + ["sf", "spitfire"], + ["sn", "soarin'"], + ["ld", "lightning dust"] + ] + ], + [ + "More Apples", + [ + ["bm", "big macintosh"], + ["gs", "granny smith"], + ["bb", "braeburn"], + ["bs", "babs seed"] + ] + ], + [ + "Fillies and Colts", + [ + ["ss", "silver spoon"], + ["dt", "diamond tiara"], + ["pfh", "princess flurry heart"] + ] + ] ], "B": [ - ["Background Ponies", [ - ["dh", "derpy hooves"], - ["dw", "doctor whooves"], - ["cgt", "colgate"], - ["bon", "bon bon"], - ["oct", "octavia melody"], - ["dj", "vinyl scratch"], - ["bp", "berry punch"], - ["pbb", "prince blueblood"] - ]], - ["Student Six", [ - ["s6", "student six"], - ["ga", "gallus"], - ["ols", "ocellus"], - ["snb", "sandbar"], - ["svs", "silverstream"], - ["sm", "smolder"], - ["yn", "yona"] - ]], - ["Uncategorized", [ - ["maud", "maud pie"], - ["coco", "coco pommel"], - ["suri", "suri polomare"], - ["rg", "royal guard"], - ["za", "zecora"], - ["mm", "mayor mare"], - ["pdp", "pinkamena diane pie"], - ["owol", "owlowiscious"], - ["opal", "opalescence"] - ]], - ["Other Things", [ - ["cm", "cutie mark"], - ["eoh", "elements of harmony"], - ["nmn", "nightmare night"] - ]] + [ + "Background Ponies", + [ + ["dh", "derpy hooves"], + ["dw", "doctor whooves"], + ["cgt", "colgate"], + ["bon", "bon bon"], + ["oct", "octavia melody"], + ["dj", "vinyl scratch"], + ["bp", "berry punch"], + ["pbb", "prince blueblood"] + ] + ], + [ + "Student Six", + [ + ["s6", "student six"], + ["ga", "gallus"], + ["ols", "ocellus"], + ["snb", "sandbar"], + ["svs", "silverstream"], + ["sm", "smolder"], + ["yn", "yona"] + ] + ], + [ + "Uncategorized", + [ + ["maud", "maud pie"], + ["coco", "coco pommel"], + ["suri", "suri polomare"], + ["rg", "royal guard"], + ["za", "zecora"], + ["mm", "mayor mare"], + ["pdp", "pinkamena diane pie"], + ["owol", "owlowiscious"], + ["opal", "opalescence"] + ] + ], + [ + "Other Things", + [ + ["cm", "cutie mark"], + ["eoh", "elements of harmony"], + ["nmn", "nightmare night"] + ] + ] ], "Ships ts": { - "implying": [ - "shipping", - "twilight sparkle" - ], - "not_implying": [ - - ] + "implying": ["shipping", "twilight sparkle"], + "not_implying": [] }, "rd": { - "implying": [ - "shipping", - "rainbow dash" - ], - "not_implying": [ - - ] + "implying": ["shipping", "rainbow dash"], + "not_implying": [] }, "ry": { - "implying": [ - "shipping", - "rarity" - ], - "not_implying": [ - - ] + "implying": ["shipping", "rarity"], + "not_implying": [] }, "aj": { - "implying": [ - "shipping", - "applejack" - ], - "not_implying": [ - - ] + "implying": ["shipping", "applejack"], + "not_implying": [] }, "fs": { - "implying": [ - "shipping", - "fluttershy" - ], - "not_implying": [ - - ] + "implying": ["shipping", "fluttershy"], + "not_implying": [] }, "pp": { - "implying": [ - "shipping", - "pinkie pie" - ], - "not_implying": [ - - ] + "implying": ["shipping", "pinkie pie"], + "not_implying": [] }, "misc": { - "implying": [ - "shipping" - ], - "not_implying": [ - "twilight sparkle", - "rainbow dash", - "rarity", - "applejack", - "fluttershy", - "pinkie pie" - ] + "implying": ["shipping"], + "not_implying": ["twilight sparkle", "rainbow dash", "rarity", "applejack", "fluttershy", "pinkie pie"] }, "Season 9": [ ["1-2", "the beginning of the end"], diff --git a/priv/repo/seeds.json b/priv/repo/seeds.json index 3c5f06d9..546d4706 100644 --- a/priv/repo/seeds.json +++ b/priv/repo/seeds.json @@ -1,14 +1,10 @@ { - "system_filters": [{ + "system_filters": [ + { "name": "Default", "description": "The site's default filter.", - "hidden": [ - "explicit", - "grotesque" - ], - "spoilered": [ - "questionable" - ] + "hidden": ["explicit", "grotesque"], + "spoilered": ["questionable"] }, { "name": "Everything", @@ -17,7 +13,8 @@ "spoilered": [] } ], - "forums": [{ + "forums": [ + { "name": "General Discussion", "short_name": "dis", "description": "This is a discussion forum for everything unrelated to the show or other forums", @@ -60,37 +57,31 @@ "access_level": "staff" } ], - "users": [{ - "name": "Administrator", - "email": "admin@example.com", - "password": "philomena123", - "role": "admin" - }], - "rating_tags": [ - "safe", - "suggestive", - "questionable", - "explicit", - "semi-grimdark", - "grimdark", - "grotesque" + "users": [ + { + "name": "Administrator", + "email": "admin@example.com", + "password": "philomena123", + "role": "admin" + } ], + "rating_tags": ["safe", "suggestive", "questionable", "explicit", "semi-grimdark", "grimdark", "grotesque"], "roles": [ - {"name": "moderator", "resource_type": "Image"}, - {"name": "moderator", "resource_type": "DuplicateReport"}, - {"name": "moderator", "resource_type": "Comment"}, - {"name": "moderator", "resource_type": "Tag"}, - {"name": "moderator", "resource_type": "ArtistLink"}, - {"name": "admin", "resource_type": "Tag"}, - {"name": "moderator", "resource_type": "User"}, - {"name": "admin", "resource_type": "SiteNotice"}, - {"name": "admin", "resource_type": "Badge"}, - {"name": "admin", "resource_type": "Role"}, - {"name": "batch_update", "resource_type": "Tag"}, - {"name": "moderator", "resource_type": "Topic"}, - {"name": "admin", "resource_type": "Advert"}, - {"name": "admin", "resource_type": "StaticPage"}, - {"name": "admin", "resource_type": "Image"} + { "name": "moderator", "resource_type": "Image" }, + { "name": "moderator", "resource_type": "DuplicateReport" }, + { "name": "moderator", "resource_type": "Comment" }, + { "name": "moderator", "resource_type": "Tag" }, + { "name": "moderator", "resource_type": "ArtistLink" }, + { "name": "admin", "resource_type": "Tag" }, + { "name": "moderator", "resource_type": "User" }, + { "name": "admin", "resource_type": "SiteNotice" }, + { "name": "admin", "resource_type": "Badge" }, + { "name": "admin", "resource_type": "Role" }, + { "name": "batch_update", "resource_type": "Tag" }, + { "name": "moderator", "resource_type": "Topic" }, + { "name": "admin", "resource_type": "Advert" }, + { "name": "admin", "resource_type": "StaticPage" }, + { "name": "admin", "resource_type": "Image" } ], "pages": [] } diff --git a/priv/repo/seeds_development.json b/priv/repo/seeds_development.json index 47625a51..4788b0f5 100644 --- a/priv/repo/seeds_development.json +++ b/priv/repo/seeds_development.json @@ -1,5 +1,6 @@ { - "users": [{ + "users": [ + { "name": "Hot Pocket Consumer", "email": "moderator@example.com", "password": "philomena123", @@ -21,24 +22,18 @@ "remote_images": [ { "url": "https://derpicdn.net/img/2015/9/26/988000/thumb.gif", - "sources": [ - "https://derpibooru.org/988000" - ], + "sources": ["https://derpibooru.org/988000"], "description": "Fairly large GIF (~23MB), use to test WebM stuff.", "tag_input": "alicorn, angry, animated, art, artist:assasinmonkey, artist:equum_amici, badass, barrier, crying, dark, epic, female, fight, force field, glare, glow, good vs evil, lord tirek, low angle, magic, mare, messy mane, metal as fuck, perspective, plot, pony, raised hoof, safe, size difference, spread wings, stomping, twilight's kingdom, twilight sparkle, twilight sparkle (alicorn), twilight vs tirek, underhoof" }, { "url": "https://derpicdn.net/img/2012/1/2/25/large.png", - "sources": [ - "https://derpibooru.org/25" - ], + "sources": ["https://derpibooru.org/25"], "tag_input": "artist:moe, canterlot, castle, cliff, cloud, detailed background, fog, forest, grass, mountain, mountain range, nature, no pony, outdoors, path, river, safe, scenery, scenery porn, signature, source needed, sunset, technical advanced, town, tree, useless source url, water, waterfall, widescreen, wood" }, { "url": "https://derpicdn.net/img/2018/6/28/1767886/full.webm", - "sources": [ - "http://hydrusbeta.deviantart.com/art/Gleaming-in-the-Sun-Our-Colors-Shine-in-Every-Hue-611497309" - ], + "sources": ["http://hydrusbeta.deviantart.com/art/Gleaming-in-the-Sun-Our-Colors-Shine-in-Every-Hue-611497309"], "tag_input": "3d, animated, architecture, artist:hydrusbeta, castle, cloud, crystal empire, crystal palace, flag, flag waving, no pony, no sound, safe, scenery, webm" }, { @@ -50,16 +45,12 @@ }, { "url": "https://derpicdn.net/img/view/2016/3/17/1110529.jpg", - "sources": [ - "https://www.deviantart.com/devinian/art/Commission-Crystals-of-thy-heart-511134926" - ], + "sources": ["https://www.deviantart.com/devinian/art/Commission-Crystals-of-thy-heart-511134926"], "tag_input": "artist:devinian, aurora crystialis, bridge, cloud, crepuscular rays, crystal empire, crystal palace, edit, flower, forest, grass, log, mountain, no pony, river, road, safe, scenery, scenery porn, source needed, stars, sunset, swing, tree, wallpaper" }, { "url": "https://derpicdn.net/img/view/2019/6/16/2067468.svg", - "sources": [ - "https://derpibooru.org/2067468" - ], + "sources": ["https://derpibooru.org/2067468"], "tag_input": "artist:cheezedoodle96, babs seed, bloom and gloom, cutie mark, cutie mark only, no pony, safe, scissors, simple background, svg, .svg available, transparent background, vector" } ], @@ -69,33 +60,28 @@ "embedded image inside a spoiler: ||who needs it anyway >>1s||", "spoilers inside of a table\n\nHello | World\n--- | ---:\n`||cool beans!||` | ||cool beans!||" ], - "forum_posts": [{ - "forum": "dis", - "topics": [{ - "title": "Example Topic", - "posts": [ - "example post", - "yet another example post" - ] - }, - { - "title": "Second Example Topic", - "posts": [ - "post", - "post 2" - ] - } - ]}, + "forum_posts": [ + { + "forum": "dis", + "topics": [ + { + "title": "Example Topic", + "posts": ["example post", "yet another example post"] + }, + { + "title": "Second Example Topic", + "posts": ["post", "post 2"] + } + ] + }, { "forum": "art", - "topics": [{ - "title": "Embedded Images", - "posts": [ - ">>1t >>1s >>1p", - ">>1", - "non-existent: >>1000t >>1000s >>1000p >>1000" - ] - }] + "topics": [ + { + "title": "Embedded Images", + "posts": [">>1t >>1s >>1p", ">>1", "non-existent: >>1000t >>1000s >>1000p >>1000"] + } + ] } ] }