Compare commits
4 commits
main
...
deployment
| Author | SHA1 | Date | |
|---|---|---|---|
| ca13f51025 | |||
|
|
6d0d615a2f | ||
| f8d8145338 | |||
|
|
9bd5ddfe9b |
9
.gitignore
vendored
|
|
@ -1,8 +1 @@
|
||||||
|
.DS_Store
|
||||||
config/.DS_Store
|
|
||||||
|
|
||||||
config/_h5ai/.DS_Store
|
|
||||||
|
|
||||||
Logo/.DS_Store
|
|
||||||
|
|
||||||
.DS_Store
|
|
||||||
|
Before Width: | Height: | Size: 1.4 MiB |
|
Before Width: | Height: | Size: 5.3 MiB |
|
Before Width: | Height: | Size: 7.7 KiB |
|
Before Width: | Height: | Size: 7.8 KiB |
|
Before Width: | Height: | Size: 7.2 KiB |
|
Before Width: | Height: | Size: 7.1 KiB |
43
Dockerfile
Normal file
|
|
@ -0,0 +1,43 @@
|
||||||
|
FROM nginx:1.27-alpine3.19
|
||||||
|
LABEL maintainer="Deokgyu Yang <secugyu@gmail.com>" \
|
||||||
|
description="Lightweight h5ai 0.30.0 container with Nginx 1.27 & PHP 8.2 based on Alpine Linux."
|
||||||
|
|
||||||
|
RUN apk update
|
||||||
|
RUN apk add --no-cache \
|
||||||
|
bash bash-completion supervisor tzdata shadow git openssh-client \
|
||||||
|
php82 php82-fpm php82-session php82-json php82-xml php82-mbstring php82-exif \
|
||||||
|
php82-intl php82-gd php82-pecl-imagick php82-zip php82-opcache \
|
||||||
|
ffmpeg imagemagick zip apache2-utils patch
|
||||||
|
|
||||||
|
# Environments
|
||||||
|
ENV PUID=911
|
||||||
|
ENV PGID=911
|
||||||
|
ENV TZ='Europe/Berlin'
|
||||||
|
ENV HTPASSWD='false'
|
||||||
|
ENV HTPASSWD_USER='guest'
|
||||||
|
ENV HTPASSWD_PW=''
|
||||||
|
ENV GIT_REPO="https://code.shork.eu/shork.eu/Branding.git"
|
||||||
|
|
||||||
|
# Copy configuration files
|
||||||
|
COPY config/h5ai.conf /etc/nginx/conf.d/h5ai.conf
|
||||||
|
COPY config/php_set_timezone.ini /etc/php82/conf.d/00_timezone.ini
|
||||||
|
COPY config/php_set_jit.ini /etc/php82/conf.d/00_jit.ini
|
||||||
|
COPY config/php_set_memory_limit.ini /etc/php82/conf.d/00_memlimit.ini
|
||||||
|
COPY config/supervisord.conf /etc/supervisor/conf.d/supervisord.conf
|
||||||
|
|
||||||
|
# Copy h5ai
|
||||||
|
COPY config/_h5ai /usr/share/h5ai/_h5ai
|
||||||
|
|
||||||
|
# Configure Nginx server
|
||||||
|
RUN sed --in-place=.bak 's/worker_processes 1/worker_processes auto/g' /etc/nginx/nginx.conf
|
||||||
|
RUN mv /etc/nginx/conf.d/default.conf /etc/nginx/conf.d/default.conf.bak
|
||||||
|
|
||||||
|
# Add shell script, patch files
|
||||||
|
ADD config/init.sh /
|
||||||
|
ADD config/h5ai.conf.htpasswd.patch /
|
||||||
|
# Set entry point file permission
|
||||||
|
RUN chmod a+x /init.sh
|
||||||
|
|
||||||
|
EXPOSE 80
|
||||||
|
VOLUME [ "/config", "/h5ai" ]
|
||||||
|
ENTRYPOINT [ "/init.sh" ]
|
||||||
0
FONTS.md
183
LICENSE
|
|
@ -1,170 +1,31 @@
|
||||||
Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International
|
MIT License
|
||||||
|
|
||||||
Creative Commons Corporation (“Creative Commons”) is not a law firm and does not provide legal services or legal advice. Distribution of Creative Commons public licenses does not create a lawyer-client or other relationship. Creative Commons makes its licenses and related information available on an “as-is” basis. Creative Commons gives no warranties regarding its licenses, any material licensed under their terms and conditions, or any related information. Creative Commons disclaims all liability for damages resulting from their use to the fullest extent possible.
|
Copyright (c) 2018-2024 Deokgyu Yang
|
||||||
|
|
||||||
Using Creative Commons Public Licenses
|
Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||||
|
of this software and associated documentation files (the "Software"), to deal
|
||||||
|
in 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:
|
||||||
|
|
||||||
Creative Commons public licenses provide a standard set of terms and conditions that creators and other rights holders may use to share original works of authorship and other material subject to copyright and certain other rights specified in the public license below. The following considerations are for informational purposes only, are not exhaustive, and do not form part of our licenses.
|
The above copyright notice and this permission notice shall be included in all
|
||||||
|
copies or substantial portions of the Software.
|
||||||
|
|
||||||
Considerations for licensors: Our public licenses are intended for use by those authorized to give the public permission to use material in ways otherwise restricted by copyright and certain other rights. Our licenses are irrevocable. Licensors should read and understand the terms and conditions of the license they choose before applying it. Licensors should also secure all rights necessary before applying our licenses so that the public can reuse the material as expected. Licensors should clearly mark any material not subject to the license. This includes other CC-licensed material, or material used under an exception or limitation to copyright. More considerations for licensors.
|
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
|
||||||
|
AUTHORS 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 IN THE
|
||||||
|
SOFTWARE.
|
||||||
|
|
||||||
Considerations for the public: By using one of our public licenses, a licensor grants the public permission to use the licensed material under specified terms and conditions. If the licensor’s permission is not necessary for any reason–for example, because of any applicable exception or limitation to copyright–then that use is not regulated by the license. Our licenses grant only permissions under copyright and certain other rights that a licensor has authority to grant. Use of the licensed material may still be restricted for other reasons, including because others have copyright or other rights in the material. A licensor may make special requests, such as asking that all changes be marked or described. Although not required by our licenses, you are encouraged to respect those requests where reasonable. More considerations for the public.
|
The MIT License (MIT)
|
||||||
|
|
||||||
Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International Public License
|
Copyright (c) 2016 Lars Jung (https://larsjung.de)
|
||||||
|
|
||||||
By exercising the Licensed Rights (defined below), You accept and agree to be bound by the terms and conditions of this Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International Public License ("Public License"). To the extent this Public License may be interpreted as a contract, You are granted the Licensed Rights in consideration of Your acceptance of these terms and conditions, and the Licensor grants You such rights in consideration of benefits the Licensor receives from making the Licensed Material available under these terms and conditions.
|
Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in 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:
|
||||||
|
|
||||||
Section 1 – Definitions.
|
The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
|
||||||
|
|
||||||
a. Adapted Material means material subject to Copyright and Similar Rights that is derived from or based upon the Licensed Material and in which the Licensed Material is translated, altered, arranged, transformed, or otherwise modified in a manner requiring permission under the Copyright and Similar Rights held by the Licensor. For purposes of this Public License, where the Licensed Material is a musical work, performance, or sound recording, Adapted Material is always produced where the Licensed Material is synched in timed relation with a moving image.
|
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 AUTHORS 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 IN THE SOFTWARE.
|
||||||
|
|
||||||
b. Adapter's License means the license You apply to Your Copyright and Similar Rights in Your contributions to Adapted Material in accordance with the terms and conditions of this Public License.
|
|
||||||
|
|
||||||
c. BY-NC-SA Compatible License means a license listed at creativecommons.org/compatiblelicenses, approved by Creative Commons as essentially the equivalent of this Public License.
|
|
||||||
|
|
||||||
d. Copyright and Similar Rights means copyright and/or similar rights closely related to copyright including, without limitation, performance, broadcast, sound recording, and Sui Generis Database Rights, without regard to how the rights are labeled or categorized. For purposes of this Public License, the rights specified in Section 2(b)(1)-(2) are not Copyright and Similar Rights.
|
|
||||||
|
|
||||||
e. Effective Technological Measures means those measures that, in the absence of proper authority, may not be circumvented under laws fulfilling obligations under Article 11 of the WIPO Copyright Treaty adopted on December 20, 1996, and/or similar international agreements.
|
|
||||||
|
|
||||||
f. Exceptions and Limitations means fair use, fair dealing, and/or any other exception or limitation to Copyright and Similar Rights that applies to Your use of the Licensed Material.
|
|
||||||
|
|
||||||
g. License Elements means the license attributes listed in the name of a Creative Commons Public License. The License Elements of this Public License are Attribution, NonCommercial, and ShareAlike.
|
|
||||||
|
|
||||||
h. Licensed Material means the artistic or literary work, database, or other material to which the Licensor applied this Public License.
|
|
||||||
|
|
||||||
i. Licensed Rights means the rights granted to You subject to the terms and conditions of this Public License, which are limited to all Copyright and Similar Rights that apply to Your use of the Licensed Material and that the Licensor has authority to license.
|
|
||||||
|
|
||||||
j. Licensor means the individual(s) or entity(ies) granting rights under this Public License.
|
|
||||||
|
|
||||||
k. NonCommercial means not primarily intended for or directed towards commercial advantage or monetary compensation. For purposes of this Public License, the exchange of the Licensed Material for other material subject to Copyright and Similar Rights by digital file-sharing or similar means is NonCommercial provided there is no payment of monetary compensation in connection with the exchange.
|
|
||||||
|
|
||||||
l. Share means to provide material to the public by any means or process that requires permission under the Licensed Rights, such as reproduction, public display, public performance, distribution, dissemination, communication, or importation, and to make material available to the public including in ways that members of the public may access the material from a place and at a time individually chosen by them.
|
|
||||||
|
|
||||||
m. Sui Generis Database Rights means rights other than copyright resulting from Directive 96/9/EC of the European Parliament and of the Council of 11 March 1996 on the legal protection of databases, as amended and/or succeeded, as well as other essentially equivalent rights anywhere in the world.
|
|
||||||
|
|
||||||
n. You means the individual or entity exercising the Licensed Rights under this Public License. Your has a corresponding meaning.
|
|
||||||
|
|
||||||
Section 2 – Scope.
|
|
||||||
|
|
||||||
a. License grant.
|
|
||||||
|
|
||||||
1. Subject to the terms and conditions of this Public License, the Licensor hereby grants You a worldwide, royalty-free, non-sublicensable, non-exclusive, irrevocable license to exercise the Licensed Rights in the Licensed Material to:
|
|
||||||
|
|
||||||
A. reproduce and Share the Licensed Material, in whole or in part, for NonCommercial purposes only; and
|
|
||||||
|
|
||||||
B. produce, reproduce, and Share Adapted Material for NonCommercial purposes only.
|
|
||||||
|
|
||||||
2. Exceptions and Limitations. For the avoidance of doubt, where Exceptions and Limitations apply to Your use, this Public License does not apply, and You do not need to comply with its terms and conditions.
|
|
||||||
|
|
||||||
3. Term. The term of this Public License is specified in Section 6(a).
|
|
||||||
|
|
||||||
4. Media and formats; technical modifications allowed. The Licensor authorizes You to exercise the Licensed Rights in all media and formats whether now known or hereafter created, and to make technical modifications necessary to do so. The Licensor waives and/or agrees not to assert any right or authority to forbid You from making technical modifications necessary to exercise the Licensed Rights, including technical modifications necessary to circumvent Effective Technological Measures. For purposes of this Public License, simply making modifications authorized by this Section 2(a)(4) never produces Adapted Material.
|
|
||||||
|
|
||||||
5. Downstream recipients.
|
|
||||||
|
|
||||||
A. Offer from the Licensor – Licensed Material. Every recipient of the Licensed Material automatically receives an offer from the Licensor to exercise the Licensed Rights under the terms and conditions of this Public License.
|
|
||||||
|
|
||||||
B. Additional offer from the Licensor – Adapted Material. Every recipient of Adapted Material from You automatically receives an offer from the Licensor to exercise the Licensed Rights in the Adapted Material under the conditions of the Adapter’s License You apply.
|
|
||||||
|
|
||||||
C. No downstream restrictions. You may not offer or impose any additional or different terms or conditions on, or apply any Effective Technological Measures to, the Licensed Material if doing so restricts exercise of the Licensed Rights by any recipient of the Licensed Material.
|
|
||||||
|
|
||||||
6. No endorsement. Nothing in this Public License constitutes or may be construed as permission to assert or imply that You are, or that Your use of the Licensed Material is, connected with, or sponsored, endorsed, or granted official status by, the Licensor or others designated to receive attribution as provided in Section 3(a)(1)(A)(i).
|
|
||||||
|
|
||||||
b. Other rights.
|
|
||||||
|
|
||||||
1. Moral rights, such as the right of integrity, are not licensed under this Public License, nor are publicity, privacy, and/or other similar personality rights; however, to the extent possible, the Licensor waives and/or agrees not to assert any such rights held by the Licensor to the limited extent necessary to allow You to exercise the Licensed Rights, but not otherwise.
|
|
||||||
|
|
||||||
2. Patent and trademark rights are not licensed under this Public License.
|
|
||||||
|
|
||||||
3. To the extent possible, the Licensor waives any right to collect royalties from You for the exercise of the Licensed Rights, whether directly or through a collecting society under any voluntary or waivable statutory or compulsory licensing scheme. In all other cases the Licensor expressly reserves any right to collect such royalties, including when the Licensed Material is used other than for NonCommercial purposes.
|
|
||||||
|
|
||||||
Section 3 – License Conditions.
|
|
||||||
|
|
||||||
Your exercise of the Licensed Rights is expressly made subject to the following conditions.
|
|
||||||
|
|
||||||
a. Attribution.
|
|
||||||
|
|
||||||
1. If You Share the Licensed Material (including in modified form), You must:
|
|
||||||
|
|
||||||
A. retain the following if it is supplied by the Licensor with the Licensed Material:
|
|
||||||
|
|
||||||
i. identification of the creator(s) of the Licensed Material and any others designated to receive attribution, in any reasonable manner requested by the Licensor (including by pseudonym if designated);
|
|
||||||
|
|
||||||
ii. a copyright notice;
|
|
||||||
|
|
||||||
iii. a notice that refers to this Public License;
|
|
||||||
|
|
||||||
iv. a notice that refers to the disclaimer of warranties;
|
|
||||||
|
|
||||||
v. a URI or hyperlink to the Licensed Material to the extent reasonably practicable;
|
|
||||||
|
|
||||||
B. indicate if You modified the Licensed Material and retain an indication of any previous modifications; and
|
|
||||||
|
|
||||||
C. indicate the Licensed Material is licensed under this Public License, and include the text of, or the URI or hyperlink to, this Public License.
|
|
||||||
|
|
||||||
2. You may satisfy the conditions in Section 3(a)(1) in any reasonable manner based on the medium, means, and context in which You Share the Licensed Material. For example, it may be reasonable to satisfy the conditions by providing a URI or hyperlink to a resource that includes the required information.
|
|
||||||
|
|
||||||
3. If requested by the Licensor, You must remove any of the information required by Section 3(a)(1)(A) to the extent reasonably practicable.
|
|
||||||
|
|
||||||
b. ShareAlike.In addition to the conditions in Section 3(a), if You Share Adapted Material You produce, the following conditions also apply.
|
|
||||||
|
|
||||||
1. The Adapter’s License You apply must be a Creative Commons license with the same License Elements, this version or later, or a BY-NC-SA Compatible License.
|
|
||||||
|
|
||||||
2. You must include the text of, or the URI or hyperlink to, the Adapter's License You apply. You may satisfy this condition in any reasonable manner based on the medium, means, and context in which You Share Adapted Material.
|
|
||||||
|
|
||||||
3. You may not offer or impose any additional or different terms or conditions on, or apply any Effective Technological Measures to, Adapted Material that restrict exercise of the rights granted under the Adapter's License You apply.
|
|
||||||
|
|
||||||
Section 4 – Sui Generis Database Rights.
|
|
||||||
|
|
||||||
Where the Licensed Rights include Sui Generis Database Rights that apply to Your use of the Licensed Material:
|
|
||||||
|
|
||||||
a. for the avoidance of doubt, Section 2(a)(1) grants You the right to extract, reuse, reproduce, and Share all or a substantial portion of the contents of the database for NonCommercial purposes only;
|
|
||||||
|
|
||||||
b. if You include all or a substantial portion of the database contents in a database in which You have Sui Generis Database Rights, then the database in which You have Sui Generis Database Rights (but not its individual contents) is Adapted Material, including for purposes of Section 3(b); and
|
|
||||||
|
|
||||||
c. You must comply with the conditions in Section 3(a) if You Share all or a substantial portion of the contents of the database.
|
|
||||||
For the avoidance of doubt, this Section 4 supplements and does not replace Your obligations under this Public License where the Licensed Rights include other Copyright and Similar Rights.
|
|
||||||
|
|
||||||
Section 5 – Disclaimer of Warranties and Limitation of Liability.
|
|
||||||
|
|
||||||
a. Unless otherwise separately undertaken by the Licensor, to the extent possible, the Licensor offers the Licensed Material as-is and as-available, and makes no representations or warranties of any kind concerning the Licensed Material, whether express, implied, statutory, or other. This includes, without limitation, warranties of title, merchantability, fitness for a particular purpose, non-infringement, absence of latent or other defects, accuracy, or the presence or absence of errors, whether or not known or discoverable. Where disclaimers of warranties are not allowed in full or in part, this disclaimer may not apply to You.
|
|
||||||
|
|
||||||
b. To the extent possible, in no event will the Licensor be liable to You on any legal theory (including, without limitation, negligence) or otherwise for any direct, special, indirect, incidental, consequential, punitive, exemplary, or other losses, costs, expenses, or damages arising out of this Public License or use of the Licensed Material, even if the Licensor has been advised of the possibility of such losses, costs, expenses, or damages. Where a limitation of liability is not allowed in full or in part, this limitation may not apply to You.
|
|
||||||
|
|
||||||
c. The disclaimer of warranties and limitation of liability provided above shall be interpreted in a manner that, to the extent possible, most closely approximates an absolute disclaimer and waiver of all liability.
|
|
||||||
|
|
||||||
Section 6 – Term and Termination.
|
|
||||||
|
|
||||||
a. This Public License applies for the term of the Copyright and Similar Rights licensed here. However, if You fail to comply with this Public License, then Your rights under this Public License terminate automatically.
|
|
||||||
|
|
||||||
b. Where Your right to use the Licensed Material has terminated under Section 6(a), it reinstates:
|
|
||||||
|
|
||||||
1. automatically as of the date the violation is cured, provided it is cured within 30 days of Your discovery of the violation; or
|
|
||||||
|
|
||||||
2. upon express reinstatement by the Licensor.
|
|
||||||
|
|
||||||
For the avoidance of doubt, this Section 6(b) does not affect any right the Licensor may have to seek remedies for Your violations of this Public License.
|
|
||||||
|
|
||||||
c. For the avoidance of doubt, the Licensor may also offer the Licensed Material under separate terms or conditions or stop distributing the Licensed Material at any time; however, doing so will not terminate this Public License.
|
|
||||||
|
|
||||||
d. Sections 1, 5, 6, 7, and 8 survive termination of this Public License.
|
|
||||||
|
|
||||||
Section 7 – Other Terms and Conditions.
|
|
||||||
|
|
||||||
a. The Licensor shall not be bound by any additional or different terms or conditions communicated by You unless expressly agreed.
|
|
||||||
|
|
||||||
b. Any arrangements, understandings, or agreements regarding the Licensed Material not stated herein are separate from and independent of the terms and conditions of this Public License.
|
|
||||||
|
|
||||||
Section 8 – Interpretation.
|
|
||||||
|
|
||||||
a. For the avoidance of doubt, this Public License does not, and shall not be interpreted to, reduce, limit, restrict, or impose conditions on any use of the Licensed Material that could lawfully be made without permission under this Public License.
|
|
||||||
|
|
||||||
b. To the extent possible, if any provision of this Public License is deemed unenforceable, it shall be automatically reformed to the minimum extent necessary to make it enforceable. If the provision cannot be reformed, it shall be severed from this Public License without affecting the enforceability of the remaining terms and conditions.
|
|
||||||
|
|
||||||
c. No term or condition of this Public License will be waived and no failure to comply consented to unless expressly agreed to by the Licensor.
|
|
||||||
|
|
||||||
d. Nothing in this Public License constitutes or may be interpreted as a limitation upon, or waiver of, any privileges and immunities that apply to the Licensor or You, including from the legal processes of any jurisdiction or authority.
|
|
||||||
|
|
||||||
Creative Commons is not a party to its public licenses. Notwithstanding, Creative Commons may elect to apply one of its public licenses to material it publishes and in those instances will be considered the “Licensor.” Except for the limited purpose of indicating that material is shared under a Creative Commons public license or as otherwise permitted by the Creative Commons policies published at creativecommons.org/policies, Creative Commons does not authorize the use of the trademark “Creative Commons” or any other trademark or logo of Creative Commons without its prior written consent including, without limitation, in connection with any unauthorized modifications to any of its public licenses or any other arrangements, understandings, or agreements concerning use of licensed material. For the avoidance of doubt, this paragraph does not form part of the public licenses.
|
|
||||||
|
|
||||||
Creative Commons may be contacted at creativecommons.org.
|
|
||||||
|
|
|
||||||
|
Before Width: | Height: | Size: 196 KiB |
|
Before Width: | Height: | Size: 75 KiB |
|
Before Width: | Height: | Size: 243 KiB |
|
Before Width: | Height: | Size: 317 KiB |
|
Before Width: | Height: | Size: 108 KiB |
|
Before Width: | Height: | Size: 216 KiB |
|
Before Width: | Height: | Size: 29 KiB |
|
Before Width: | Height: | Size: 29 KiB |
|
Before Width: | Height: | Size: 251 KiB |
|
Before Width: | Height: | Size: 750 KiB |
|
Before Width: | Height: | Size: 746 KiB |
|
Before Width: | Height: | Size: 2.9 MiB |
|
Before Width: | Height: | Size: 2.9 MiB |
|
Before Width: | Height: | Size: 584 KiB |
|
Before Width: | Height: | Size: 795 KiB |
|
Before Width: | Height: | Size: 2.2 MiB |
|
Before Width: | Height: | Size: 3.1 MiB |
|
Before Width: | Height: | Size: 128 KiB |
|
Before Width: | Height: | Size: 124 KiB |
|
Before Width: | Height: | Size: 413 KiB |
|
Before Width: | Height: | Size: 406 KiB |
|
|
@ -1,61 +0,0 @@
|
||||||
<svg width="996" height="975" viewBox="0 0 996 975" fill="none" xmlns="http://www.w3.org/2000/svg">
|
|
||||||
<g filter="url(#filter0_din_1281_144)">
|
|
||||||
<path d="M235.14 147.667C108.374 206.269 16.9156 298.054 17.6512 320.285C18.0599 331.809 23.9445 352.487 40.6996 370.141C50.5891 380.603 76.9068 399.647 95.3782 400.791C113.768 401.935 246.664 313.338 246.664 313.338L378.988 294.948L459.493 487.1C459.493 487.1 485.975 525.105 522.754 556.163C559.533 587.221 595.25 597.601 603.26 590.654C611.269 583.707 587.731 537.119 586.014 525.105C583.726 509.085 576.779 469.854 615.928 475.657C655.078 481.46 727.574 510.148 727.574 552.73C727.574 595.313 698.804 642.472 617.154 642.472C535.504 642.472 420.426 615.991 367.463 618.279C314.501 620.568 267.342 625.145 219.038 644.76C183.24 659.227 143.11 686.198 144.254 689.631C145.398 693.064 190.269 708.021 243.231 714.968C296.193 721.915 398.603 720.689 415.849 746.026C433.094 771.363 437.671 807.815 431.95 861.84C426.229 915.865 428.517 960 429.661 960C430.806 960 476.003 934.173 498.725 894.451C535.504 830.046 535.504 751.747 549.317 735.646C563.129 719.545 620.342 715.131 666.684 709.165C714.252 703.035 984.294 691.92 984.294 422.695C984.294 206.351 778.329 158.047 773.752 153.47C769.175 148.893 761.656 115.056 777.185 84.4068C789.445 60.2142 810.205 23.4349 803.666 14.1992C795.575 2.75674 720.79 15.3434 665.621 44.113C610.452 72.8827 575.716 109.662 575.716 109.662C575.716 109.662 363.459 88.33 235.14 147.667Z" fill="white"/>
|
|
||||||
<path d="M235.14 147.667C108.374 206.269 16.9156 298.054 17.6512 320.285C18.0599 331.809 23.9445 352.487 40.6996 370.141C50.5891 380.603 76.9068 399.647 95.3782 400.791C113.768 401.935 246.664 313.338 246.664 313.338L378.988 294.948L459.493 487.1C459.493 487.1 485.975 525.105 522.754 556.163C559.533 587.221 595.25 597.601 603.26 590.654C611.269 583.707 587.731 537.119 586.014 525.105C583.726 509.085 576.779 469.854 615.928 475.657C655.078 481.46 727.574 510.148 727.574 552.73C727.574 595.313 698.804 642.472 617.154 642.472C535.504 642.472 420.426 615.991 367.463 618.279C314.501 620.568 267.342 625.145 219.038 644.76C183.24 659.227 143.11 686.198 144.254 689.631C145.398 693.064 190.269 708.021 243.231 714.968C296.193 721.915 398.603 720.689 415.849 746.026C433.094 771.363 437.671 807.815 431.95 861.84C426.229 915.865 428.517 960 429.661 960C430.806 960 476.003 934.173 498.725 894.451C535.504 830.046 535.504 751.747 549.317 735.646C563.129 719.545 620.342 715.131 666.684 709.165C714.252 703.035 984.294 691.92 984.294 422.695C984.294 206.351 778.329 158.047 773.752 153.47C769.175 148.893 761.656 115.056 777.185 84.4068C789.445 60.2142 810.205 23.4349 803.666 14.1992C795.575 2.75674 720.79 15.3434 665.621 44.113C610.452 72.8827 575.716 109.662 575.716 109.662C575.716 109.662 363.459 88.33 235.14 147.667Z" fill="url(#paint0_linear_1281_144)"/>
|
|
||||||
<path d="M425.164 233.909C470.523 231.073 512.565 232.348 543.284 234.336C558.635 235.33 571.137 236.501 579.785 237.421C583.621 237.83 586.698 238.189 588.928 238.46C589.875 240.411 591.153 243.024 592.711 246.16C596.28 253.344 601.322 263.292 607.217 274.349C618.568 295.641 633.318 321.501 646.9 339.563L648.211 341.287C672.281 372.56 701.611 400.265 726.215 418.555C738.469 427.665 749.883 434.688 759.12 438.585C763.676 440.508 768.254 441.91 772.421 442.129C776.543 442.347 782.047 441.411 785.456 436.466L785.46 436.46C787.334 433.737 788.331 430.349 788.939 427.266C789.582 424.012 789.946 420.259 790.109 416.237C790.435 408.179 789.974 398.368 788.91 387.962C786.785 367.182 782.161 343.146 775.946 324.622V324.621C772.914 315.585 766.564 299.266 761.055 285.398C759.256 280.869 757.532 276.575 756.028 272.838C764.167 274.509 775.364 277.39 787.934 282.257C813.717 292.24 844.893 310.415 867.59 343.247C890.449 376.314 906.764 428.414 904.553 479.697C902.351 530.753 881.908 579.958 832.5 609.294L832.494 609.297C787.715 635.932 753.006 647.091 729.781 651.645C722.367 653.099 716.111 653.881 711.06 654.278C715.852 647.982 721.7 639.778 727.352 630.495C733.817 619.877 740.147 607.65 744.302 595.109C748.433 582.638 750.616 569.252 748.075 556.615L748.074 556.611L747.621 554.425C742.842 532.067 735.212 516.5 723.543 505.721C711.555 494.648 696.311 489.584 678.771 486.22L678.763 486.218L678.754 486.217L678.092 486.1C674.64 485.529 669.081 485.167 662.399 484.907C655.062 484.621 645.778 484.44 635.167 484.334C613.935 484.124 587.178 484.217 559.621 484.401C504.358 484.77 446.071 485.503 421.78 484.934C372.738 483.786 300.197 480.331 250.581 464.929L250.572 464.926C238.988 461.344 229.018 456.754 221.938 453.05C218.926 451.474 216.455 450.064 214.622 448.977L215.628 412.108L215.902 402.057L206.048 404.047C206.047 404.047 206.046 404.048 206.045 404.048C206.041 404.049 206.035 404.05 206.027 404.051C206.011 404.055 205.984 404.061 205.948 404.068C205.875 404.082 205.763 404.104 205.615 404.133C205.319 404.192 204.875 404.277 204.298 404.387C203.143 404.607 201.455 404.921 199.353 405.291C195.145 406.031 189.291 406.995 182.711 407.887C169.337 409.701 153.725 411.109 142.758 410.059C131.738 409.004 118.037 405.217 106.61 401.144C101.348 399.268 96.7252 397.384 93.2362 395.78C95.7093 393.122 99.0996 389.808 103.174 386.05C113.031 376.959 126.234 365.879 138.268 356.454C168.974 332.493 219.674 291.452 267.485 270.025L267.484 270.024C307.904 251.93 374.826 237.051 425.163 233.909H425.164ZM87.7645 392.9C87.7128 392.86 87.7185 392.862 87.7675 392.902C87.7665 392.901 87.7654 392.901 87.7645 392.9Z" fill="url(#paint1_linear_1281_144)" stroke="#9FBFE2" stroke-width="16"/>
|
|
||||||
<path d="M367.759 320.706C367.759 332.4 354.099 331.828 342.378 331.828C330.738 331.828 323.059 332.564 317.724 336.408C312.389 340.251 316.269 366.993 267.689 411.644C238.832 438.14 211.511 455.805 206.985 454.251C202.458 452.697 193.728 430.044 191.788 421.621C172.469 427.346 128.982 418.595 135.61 417.042C158.001 411.644 191.465 396.106 213.775 379.014C229.294 367.156 259.121 343.44 268.417 337.143C276.419 331.746 299.537 314.491 309.803 313.346C326.373 311.547 367.759 308.03 367.759 320.706Z" fill="url(#paint2_linear_1281_144)"/>
|
|
||||||
<path d="M304.064 256.591C304.064 275.646 286.604 291.92 265.022 289.63C246.512 287.667 231.234 274.174 231.234 255.119C231.234 236.065 245.946 218.891 264.618 218.319C294.687 217.256 304.064 237.537 304.064 256.591Z" fill="#192437"/>
|
|
||||||
<path d="M222.1 401.258C229.294 395.125 214.906 378.197 214.906 378.197L197.447 389.891C197.447 389.973 212.32 409.682 222.1 401.258Z" fill="#FFFEFD"/>
|
|
||||||
<path d="M263.809 370.182C271.003 364.049 256.211 345.648 256.211 345.648L237.62 360.205C237.701 360.205 254.029 378.605 263.809 370.182Z" fill="#FFFEFD"/>
|
|
||||||
<path d="M282.805 359.878C276.662 367.157 294.202 383.676 294.202 383.676C294.202 383.676 308.752 364.213 307.136 362.986C305.6 361.759 291.131 349.983 282.805 359.878Z" fill="#FFFEFD"/>
|
|
||||||
<path d="M251.361 391.69C245.218 398.968 259.364 417.777 261.788 417.041C264.213 416.305 277.874 401.667 277.874 401.667C277.874 401.667 259.606 381.795 251.361 391.69Z" fill="#FFFEFD"/>
|
|
||||||
<path d="M510.428 169.497C501.294 175.63 507.356 188.715 512.691 199.428C518.026 210.141 521.421 219.955 521.987 234.511C522.472 247.596 519.158 271.148 517.622 279.244C516.248 286.686 511.317 302.96 522.148 305.741C535.809 309.175 539.608 298.462 542.599 288.076C546.56 274.583 548.58 247.105 547.934 233.203C546.398 203.435 536.536 185.607 532.01 178.738C527.483 171.869 519.319 163.445 510.428 169.497Z" fill="#445F7C"/>
|
|
||||||
<path d="M576.791 187.897C570.728 192.804 576.791 207.442 579.458 213.984C582.126 220.527 583.419 229.686 583.419 239.091C583.419 245.633 582.126 260.762 581.317 269.185C580.186 281.779 580.832 289.303 590.047 291.02C604.435 293.719 605.001 274.174 606.375 266.078C607.426 259.617 608.396 238.355 607.588 228.377C606.86 218.4 602.172 203.926 596.514 195.093C591.906 188.142 584.389 181.764 576.791 187.897Z" fill="#445F7C"/>
|
|
||||||
<path d="M449.722 163.772C437.274 170.233 450.854 191.822 454.249 199.101C457.644 206.379 462.575 222.489 462.251 239.418C461.847 256.264 460.554 273.601 457.725 283.006C455.219 291.184 447.863 305.086 453.522 310.811C461.847 319.234 475.265 310.484 479.873 296.827C486.663 276.709 488.441 260.19 487.633 234.102C486.663 199.019 468.314 154.122 449.722 163.772Z" fill="#445F7C"/>
|
|
||||||
<path d="M217.169 422.03C211.026 429.308 224.363 446.237 224.363 446.237L242.955 433.152C242.955 433.152 225.495 412.135 217.169 422.03Z" fill="#FFFEFD"/>
|
|
||||||
<path d="M297.597 340.251C304.63 333.873 292.667 320.297 292.667 320.297C292.667 320.297 275.611 330.683 276.339 331.828C278.036 334.282 289.999 347.203 297.597 340.251Z" fill="#FFFEFD"/>
|
|
||||||
</g>
|
|
||||||
<defs>
|
|
||||||
<filter id="filter0_din_1281_144" x="-76.5921" y="-84.2389" width="1155.12" height="1138.48" filterUnits="userSpaceOnUse" color-interpolation-filters="sRGB">
|
|
||||||
<feFlood flood-opacity="0" result="BackgroundImageFix"/>
|
|
||||||
<feColorMatrix in="SourceAlpha" type="matrix" values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0" result="hardAlpha"/>
|
|
||||||
<feOffset dx="-2.94497"/>
|
|
||||||
<feGaussianBlur stdDeviation="7.06792"/>
|
|
||||||
<feComposite in2="hardAlpha" operator="out"/>
|
|
||||||
<feColorMatrix type="matrix" values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.25 0"/>
|
|
||||||
<feBlend mode="normal" in2="BackgroundImageFix" result="effect1_dropShadow_1281_144"/>
|
|
||||||
<feBlend mode="normal" in="SourceGraphic" in2="BackgroundImageFix" result="shape"/>
|
|
||||||
<feColorMatrix in="SourceAlpha" type="matrix" values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0" result="hardAlpha"/>
|
|
||||||
<feOffset dx="-2.94497" dy="2.94497"/>
|
|
||||||
<feGaussianBlur stdDeviation="2.94497"/>
|
|
||||||
<feComposite in2="hardAlpha" operator="arithmetic" k2="-1" k3="1"/>
|
|
||||||
<feColorMatrix type="matrix" values="0 0 0 0 0.667818 0 0 0 0 0.667818 0 0 0 0 0.667818 0 0 0 1 0"/>
|
|
||||||
<feBlend mode="overlay" in2="shape" result="effect2_innerShadow_1281_144"/>
|
|
||||||
<feTurbulence type="fractalNoise" baseFrequency="3.3956263065338135 3.3956263065338135" stitchTiles="stitch" numOctaves="3" result="noise" seed="5613" />
|
|
||||||
<feColorMatrix in="noise" type="luminanceToAlpha" result="alphaNoise" />
|
|
||||||
<feComponentTransfer in="alphaNoise" result="coloredNoise1">
|
|
||||||
<feFuncA type="discrete" tableValues="1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 "/>
|
|
||||||
</feComponentTransfer>
|
|
||||||
<feComposite operator="in" in2="effect2_innerShadow_1281_144" in="coloredNoise1" result="noise1Clipped" />
|
|
||||||
<feFlood flood-color="#1F447B" result="color1Flood" />
|
|
||||||
<feComposite operator="in" in2="noise1Clipped" in="color1Flood" result="color1" />
|
|
||||||
<feMerge result="effect3_noise_1281_144">
|
|
||||||
<feMergeNode in="effect2_innerShadow_1281_144" />
|
|
||||||
<feMergeNode in="color1" />
|
|
||||||
</feMerge>
|
|
||||||
<feBlend mode="normal" in="effect3_noise_1281_144" in2="effect1_dropShadow_1281_144" result="effect3_noise_1281_144"/>
|
|
||||||
</filter>
|
|
||||||
<linearGradient id="paint0_linear_1281_144" x1="3.47003" y1="33.5" x2="719.47" y2="834" gradientUnits="userSpaceOnUse">
|
|
||||||
<stop stop-color="#81B6ED"/>
|
|
||||||
<stop offset="1" stop-color="#1D75D2"/>
|
|
||||||
</linearGradient>
|
|
||||||
<linearGradient id="paint1_linear_1281_144" x1="780.97" y1="663" x2="206.97" y2="150.5" gradientUnits="userSpaceOnUse">
|
|
||||||
<stop stop-color="#E6E6E6"/>
|
|
||||||
<stop offset="1" stop-color="#FAFAFA"/>
|
|
||||||
</linearGradient>
|
|
||||||
<linearGradient id="paint2_linear_1281_144" x1="338.97" y1="327.5" x2="190.47" y2="438.5" gradientUnits="userSpaceOnUse">
|
|
||||||
<stop stop-color="#D43074"/>
|
|
||||||
<stop offset="1" stop-color="#D35B8D"/>
|
|
||||||
</linearGradient>
|
|
||||||
</defs>
|
|
||||||
</svg>
|
|
||||||
|
Before Width: | Height: | Size: 11 KiB |
|
|
@ -1,61 +0,0 @@
|
||||||
<svg width="978" height="975" viewBox="0 0 978 975" fill="none" xmlns="http://www.w3.org/2000/svg">
|
|
||||||
<g filter="url(#filter0_din_1270_676)">
|
|
||||||
<path d="M217.493 147.667C90.7268 206.269 -0.731181 298.054 0.0044054 320.285C0.413065 331.809 6.29776 352.487 23.0528 370.141C32.9423 380.603 59.26 399.647 77.7314 400.791C96.121 401.935 229.017 313.338 229.017 313.338L361.341 294.948L441.847 487.1C441.847 487.1 468.328 525.105 505.107 556.163C541.886 587.221 577.603 597.601 585.613 590.654C593.623 583.707 570.084 537.119 568.368 525.105C566.079 509.085 559.132 469.854 598.281 475.657C637.431 481.46 709.927 510.148 709.927 552.73C709.927 595.313 681.158 642.472 599.507 642.472C517.857 642.472 402.779 615.991 349.817 618.279C296.854 620.568 249.695 625.145 201.392 644.76C165.593 659.227 125.463 686.198 126.607 689.631C127.751 693.064 172.622 708.021 225.584 714.968C278.547 721.915 380.956 720.689 398.202 746.026C415.447 771.363 420.024 807.815 414.303 861.84C408.582 915.865 410.87 960 412.015 960C413.159 960 458.357 934.173 481.078 894.451C517.857 830.046 517.857 751.747 531.67 735.646C545.483 719.545 602.695 715.131 649.037 709.165C696.605 703.035 966.647 691.92 966.647 422.695C966.647 206.351 760.683 158.047 756.106 153.47C751.529 148.893 744.009 115.056 759.538 84.4068C771.798 60.2142 792.558 23.4349 786.019 14.1992C777.928 2.75674 703.143 15.3434 647.974 44.113C592.805 72.8827 558.069 109.662 558.069 109.662C558.069 109.662 345.812 88.33 217.493 147.667Z" fill="white"/>
|
|
||||||
<path d="M217.493 147.667C90.7268 206.269 -0.731181 298.054 0.0044054 320.285C0.413065 331.809 6.29776 352.487 23.0528 370.141C32.9423 380.603 59.26 399.647 77.7314 400.791C96.121 401.935 229.017 313.338 229.017 313.338L361.341 294.948L441.847 487.1C441.847 487.1 468.328 525.105 505.107 556.163C541.886 587.221 577.603 597.601 585.613 590.654C593.623 583.707 570.084 537.119 568.368 525.105C566.079 509.085 559.132 469.854 598.281 475.657C637.431 481.46 709.927 510.148 709.927 552.73C709.927 595.313 681.158 642.472 599.507 642.472C517.857 642.472 402.779 615.991 349.817 618.279C296.854 620.568 249.695 625.145 201.392 644.76C165.593 659.227 125.463 686.198 126.607 689.631C127.751 693.064 172.622 708.021 225.584 714.968C278.547 721.915 380.956 720.689 398.202 746.026C415.447 771.363 420.024 807.815 414.303 861.84C408.582 915.865 410.87 960 412.015 960C413.159 960 458.357 934.173 481.078 894.451C517.857 830.046 517.857 751.747 531.67 735.646C545.483 719.545 602.695 715.131 649.037 709.165C696.605 703.035 966.647 691.92 966.647 422.695C966.647 206.351 760.683 158.047 756.106 153.47C751.529 148.893 744.009 115.056 759.538 84.4068C771.798 60.2142 792.558 23.4349 786.019 14.1992C777.928 2.75674 703.143 15.3434 647.974 44.113C592.805 72.8827 558.069 109.662 558.069 109.662C558.069 109.662 345.812 88.33 217.493 147.667Z" fill="url(#paint0_linear_1270_676)"/>
|
|
||||||
<path d="M407.517 233.909C452.876 231.073 494.918 232.348 525.637 234.336C540.988 235.33 553.49 236.501 562.138 237.421C565.974 237.83 569.051 238.189 571.281 238.46C572.228 240.411 573.506 243.024 575.064 246.16C578.633 253.344 583.675 263.292 589.57 274.349C600.921 295.641 615.671 321.501 629.254 339.563L630.564 341.287C654.634 372.56 683.964 400.265 708.568 418.555C720.822 427.665 732.237 434.688 741.473 438.585C746.029 440.508 750.607 441.91 754.774 442.129C758.896 442.347 764.4 441.411 767.809 436.466L767.813 436.46C769.688 433.737 770.684 430.349 771.293 427.266C771.935 424.012 772.3 420.259 772.463 416.237C772.789 408.179 772.327 398.368 771.263 387.962C769.138 367.182 764.515 343.146 758.299 324.622V324.621C755.267 315.585 748.917 299.266 743.408 285.398C741.609 280.869 739.885 276.575 738.381 272.838C746.52 274.509 757.717 277.39 770.288 282.257C796.07 292.24 827.246 310.415 849.943 343.247C872.802 376.314 889.117 428.414 886.906 479.697C884.705 530.753 864.261 579.958 814.853 609.294L814.847 609.297C770.068 635.932 735.359 647.091 712.134 651.645C704.72 653.099 698.465 653.881 693.414 654.278C698.206 647.982 704.054 639.778 709.706 630.495C716.17 619.877 722.5 607.65 726.655 595.109C730.786 582.638 732.969 569.252 730.428 556.615L730.427 556.611L729.974 554.425C725.195 532.067 717.565 516.5 705.896 505.721C693.908 494.648 678.665 489.584 661.125 486.22L661.116 486.218L661.107 486.217L660.445 486.1C656.993 485.529 651.435 485.167 644.753 484.907C637.415 484.621 628.132 484.44 617.52 484.334C596.288 484.124 569.532 484.217 541.974 484.401C486.712 484.77 428.425 485.503 404.133 484.934C355.091 483.786 282.55 480.331 232.934 464.929L232.925 464.926C221.341 461.344 211.371 456.754 204.292 453.05C201.279 451.474 198.808 450.064 196.975 448.977L197.981 412.108L198.255 402.057L188.401 404.047C188.4 404.047 188.399 404.048 188.398 404.048C188.395 404.049 188.389 404.05 188.38 404.051C188.364 404.055 188.337 404.061 188.301 404.068C188.229 404.082 188.117 404.104 187.968 404.133C187.672 404.192 187.228 404.277 186.651 404.387C185.496 404.607 183.809 404.921 181.707 405.291C177.499 406.031 171.644 406.995 165.064 407.887C151.69 409.701 136.078 411.109 125.111 410.059C114.091 409.004 100.39 405.217 88.9635 401.144C83.7009 399.268 79.0785 397.384 75.5895 395.78C78.0626 393.122 81.4529 389.808 85.527 386.05C95.3846 376.959 108.587 365.879 120.622 356.454C151.328 332.493 202.028 291.452 249.839 270.025L249.838 270.024C290.257 251.93 357.18 237.051 407.516 233.909H407.517ZM70.1178 392.9C70.0661 392.86 70.0717 392.862 70.1207 392.902C70.1198 392.901 70.1186 392.901 70.1178 392.9Z" fill="url(#paint1_linear_1270_676)" stroke="#9FBFE2" stroke-width="16"/>
|
|
||||||
<path d="M350.112 320.706C350.112 332.4 336.452 331.828 324.731 331.828C313.091 331.828 305.412 332.564 300.077 336.408C294.743 340.251 298.622 366.993 250.043 411.644C221.186 438.14 193.864 455.805 189.338 454.251C184.811 452.697 176.081 430.044 174.141 421.621C154.823 427.346 111.335 418.595 117.963 417.042C140.354 411.644 173.818 396.106 196.128 379.014C211.647 367.156 241.474 343.44 250.77 337.143C258.772 331.746 281.89 314.491 292.156 313.346C308.726 311.547 350.112 308.03 350.112 320.706Z" fill="url(#paint2_linear_1270_676)"/>
|
|
||||||
<path d="M286.417 256.591C286.417 275.646 268.957 291.92 247.375 289.63C228.865 287.667 213.588 274.174 213.588 255.119C213.588 236.065 228.299 218.891 246.971 218.319C277.041 217.256 286.417 237.537 286.417 256.591Z" fill="#192437"/>
|
|
||||||
<path d="M204.454 401.258C211.648 395.125 197.259 378.197 197.259 378.197L179.8 389.891C179.8 389.973 194.673 409.682 204.454 401.258Z" fill="#FFFEFD"/>
|
|
||||||
<path d="M246.162 370.182C253.356 364.049 238.564 345.648 238.564 345.648L219.973 360.205C220.054 360.205 236.382 378.605 246.162 370.182Z" fill="#FFFEFD"/>
|
|
||||||
<path d="M265.158 359.878C259.015 367.157 276.556 383.676 276.556 383.676C276.556 383.676 291.105 364.213 289.489 362.986C287.953 361.759 273.484 349.983 265.158 359.878Z" fill="#FFFEFD"/>
|
|
||||||
<path d="M233.714 391.69C227.571 398.968 241.717 417.777 244.142 417.041C246.567 416.305 260.227 401.667 260.227 401.667C260.227 401.667 241.959 381.795 233.714 391.69Z" fill="#FFFEFD"/>
|
|
||||||
<path d="M492.781 169.497C483.647 175.63 489.709 188.715 495.044 199.428C500.379 210.141 503.774 219.955 504.34 234.511C504.825 247.596 501.511 271.148 499.975 279.244C498.601 286.686 493.67 302.96 504.502 305.741C518.162 309.175 521.961 298.462 524.952 288.076C528.913 274.583 530.933 247.105 530.287 233.203C528.751 203.435 518.89 185.607 514.363 178.738C509.836 171.869 501.672 163.445 492.781 169.497Z" fill="#445F7C"/>
|
|
||||||
<path d="M559.144 187.897C553.081 192.804 559.144 207.442 561.811 213.984C564.479 220.527 565.772 229.686 565.772 239.091C565.772 245.633 564.479 260.762 563.67 269.185C562.539 281.779 563.185 289.303 572.4 291.02C586.788 293.719 587.354 274.174 588.728 266.078C589.779 259.617 590.749 238.355 589.941 228.377C589.213 218.4 584.525 203.926 578.867 195.093C574.259 188.142 566.742 181.764 559.144 187.897Z" fill="#445F7C"/>
|
|
||||||
<path d="M432.076 163.772C419.628 170.233 433.207 191.822 436.602 199.101C439.997 206.379 444.928 222.489 444.605 239.418C444.2 256.264 442.907 273.601 440.078 283.006C437.572 291.184 430.217 305.086 435.875 310.811C444.2 319.234 457.619 310.484 462.226 296.827C469.016 276.709 470.794 260.19 469.986 234.102C469.016 199.019 450.667 154.122 432.076 163.772Z" fill="#445F7C"/>
|
|
||||||
<path d="M199.523 422.03C193.379 429.308 206.717 446.237 206.717 446.237L225.308 433.152C225.308 433.152 207.848 412.135 199.523 422.03Z" fill="#FFFEFD"/>
|
|
||||||
<path d="M279.951 340.251C286.983 333.873 275.02 320.297 275.02 320.297C275.02 320.297 257.964 330.683 258.692 331.828C260.389 334.282 272.352 347.203 279.951 340.251Z" fill="#FFFEFD"/>
|
|
||||||
</g>
|
|
||||||
<defs>
|
|
||||||
<filter id="filter0_din_1270_676" x="-94.2389" y="-84.2389" width="1155.12" height="1138.48" filterUnits="userSpaceOnUse" color-interpolation-filters="sRGB">
|
|
||||||
<feFlood flood-opacity="0" result="BackgroundImageFix"/>
|
|
||||||
<feColorMatrix in="SourceAlpha" type="matrix" values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0" result="hardAlpha"/>
|
|
||||||
<feOffset dx="-2.94497"/>
|
|
||||||
<feGaussianBlur stdDeviation="7.06792"/>
|
|
||||||
<feComposite in2="hardAlpha" operator="out"/>
|
|
||||||
<feColorMatrix type="matrix" values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.25 0"/>
|
|
||||||
<feBlend mode="normal" in2="BackgroundImageFix" result="effect1_dropShadow_1270_676"/>
|
|
||||||
<feBlend mode="normal" in="SourceGraphic" in2="BackgroundImageFix" result="shape"/>
|
|
||||||
<feColorMatrix in="SourceAlpha" type="matrix" values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0" result="hardAlpha"/>
|
|
||||||
<feOffset dx="-2.94497" dy="2.94497"/>
|
|
||||||
<feGaussianBlur stdDeviation="2.94497"/>
|
|
||||||
<feComposite in2="hardAlpha" operator="arithmetic" k2="-1" k3="1"/>
|
|
||||||
<feColorMatrix type="matrix" values="0 0 0 0 0.667818 0 0 0 0 0.667818 0 0 0 0 0.667818 0 0 0 1 0"/>
|
|
||||||
<feBlend mode="overlay" in2="shape" result="effect2_innerShadow_1270_676"/>
|
|
||||||
<feTurbulence type="fractalNoise" baseFrequency="3.3956263065338135 3.3956263065338135" stitchTiles="stitch" numOctaves="3" result="noise" seed="5613" />
|
|
||||||
<feColorMatrix in="noise" type="luminanceToAlpha" result="alphaNoise" />
|
|
||||||
<feComponentTransfer in="alphaNoise" result="coloredNoise1">
|
|
||||||
<feFuncA type="discrete" tableValues="1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 "/>
|
|
||||||
</feComponentTransfer>
|
|
||||||
<feComposite operator="in" in2="effect2_innerShadow_1270_676" in="coloredNoise1" result="noise1Clipped" />
|
|
||||||
<feFlood flood-color="#1F447B" result="color1Flood" />
|
|
||||||
<feComposite operator="in" in2="noise1Clipped" in="color1Flood" result="color1" />
|
|
||||||
<feMerge result="effect3_noise_1270_676">
|
|
||||||
<feMergeNode in="effect2_innerShadow_1270_676" />
|
|
||||||
<feMergeNode in="color1" />
|
|
||||||
</feMerge>
|
|
||||||
<feBlend mode="normal" in="effect3_noise_1270_676" in2="effect1_dropShadow_1270_676" result="effect3_noise_1270_676"/>
|
|
||||||
</filter>
|
|
||||||
<linearGradient id="paint0_linear_1270_676" x1="-14.1768" y1="33.5" x2="701.823" y2="834" gradientUnits="userSpaceOnUse">
|
|
||||||
<stop stop-color="#81B6ED"/>
|
|
||||||
<stop offset="1" stop-color="#1D75D2"/>
|
|
||||||
</linearGradient>
|
|
||||||
<linearGradient id="paint1_linear_1270_676" x1="763.323" y1="663" x2="189.323" y2="150.5" gradientUnits="userSpaceOnUse">
|
|
||||||
<stop stop-color="#E6E6E6"/>
|
|
||||||
<stop offset="1" stop-color="#FAFAFA"/>
|
|
||||||
</linearGradient>
|
|
||||||
<linearGradient id="paint2_linear_1270_676" x1="321.323" y1="327.5" x2="172.823" y2="438.5" gradientUnits="userSpaceOnUse">
|
|
||||||
<stop stop-color="#D43074"/>
|
|
||||||
<stop offset="1" stop-color="#D35B8D"/>
|
|
||||||
</linearGradient>
|
|
||||||
</defs>
|
|
||||||
</svg>
|
|
||||||
|
Before Width: | Height: | Size: 11 KiB |
|
|
@ -1,79 +0,0 @@
|
||||||
<svg width="1000" height="1000" viewBox="0 0 1000 1000" fill="none" xmlns="http://www.w3.org/2000/svg">
|
|
||||||
<g filter="url(#filter0_din_1271_744)">
|
|
||||||
<mask id="mask0_1271_744" style="mask-type:alpha" maskUnits="userSpaceOnUse" x="94" y="101" width="812" height="798">
|
|
||||||
<path d="M276.702 216.641C170.219 265.866 93.3941 342.965 94.012 361.639C94.3553 371.32 99.2984 388.689 113.373 403.519C121.68 412.307 143.787 428.303 159.303 429.264C174.75 430.225 286.383 355.804 286.383 355.804L397.535 340.356L465.16 501.764C465.16 501.764 487.404 533.688 518.298 559.777C549.193 585.866 579.195 594.585 585.923 588.749C592.651 582.914 572.879 543.78 571.437 533.688C569.515 520.232 563.679 487.278 596.565 492.152C629.45 497.026 690.347 521.124 690.347 556.893C690.347 592.663 666.181 632.276 597.595 632.276C529.008 632.276 432.343 610.032 387.854 611.955C343.366 613.877 303.752 617.722 263.177 634.199C233.107 646.351 199.397 669.007 200.358 671.89C201.319 674.774 239.011 687.337 283.499 693.173C327.987 699.009 414.012 697.979 428.498 719.262C442.984 740.545 446.829 771.165 442.023 816.546C437.217 861.926 439.139 899 440.101 899C441.062 899 479.028 877.305 498.114 843.939C529.008 789.839 529.008 724.068 540.611 710.543C552.214 697.018 600.272 693.31 639.199 688.299C679.156 683.149 905.992 673.812 905.992 447.664C905.992 265.935 732.982 225.36 729.137 221.515C725.292 217.67 718.976 189.247 732.021 163.502C742.319 143.18 759.757 112.285 754.265 104.527C747.468 94.9157 684.649 105.488 638.307 129.655C591.965 153.821 562.787 184.716 562.787 184.716C562.787 184.716 384.49 166.797 276.702 216.641Z" fill="white"/>
|
|
||||||
<path d="M276.702 216.641C170.219 265.866 93.3941 342.965 94.012 361.639C94.3553 371.32 99.2984 388.689 113.373 403.519C121.68 412.307 143.787 428.303 159.303 429.264C174.75 430.225 286.383 355.804 286.383 355.804L397.535 340.356L465.16 501.764C465.16 501.764 487.404 533.688 518.298 559.777C549.193 585.866 579.195 594.585 585.923 588.749C592.651 582.914 572.879 543.78 571.437 533.688C569.515 520.232 563.679 487.278 596.565 492.152C629.45 497.026 690.347 521.124 690.347 556.893C690.347 592.663 666.181 632.276 597.595 632.276C529.008 632.276 432.343 610.032 387.854 611.955C343.366 613.877 303.752 617.722 263.177 634.199C233.107 646.351 199.397 669.007 200.358 671.89C201.319 674.774 239.011 687.337 283.499 693.173C327.987 699.009 414.012 697.979 428.498 719.262C442.984 740.545 446.829 771.165 442.023 816.546C437.217 861.926 439.139 899 440.101 899C441.062 899 479.028 877.305 498.114 843.939C529.008 789.839 529.008 724.068 540.611 710.543C552.214 697.018 600.272 693.31 639.199 688.299C679.156 683.149 905.992 673.812 905.992 447.664C905.992 265.935 732.982 225.36 729.137 221.515C725.292 217.67 718.976 189.247 732.021 163.502C742.319 143.18 759.757 112.285 754.265 104.527C747.468 94.9157 684.649 105.488 638.307 129.655C591.965 153.821 562.787 184.716 562.787 184.716C562.787 184.716 384.49 166.797 276.702 216.641Z" fill="url(#paint0_linear_1271_744)"/>
|
|
||||||
</mask>
|
|
||||||
<g mask="url(#mask0_1271_744)">
|
|
||||||
<g filter="url(#filter1_f_1271_744)">
|
|
||||||
<path d="M-159.562 467.114L-134.591 466.388C-109.508 465.612 -59.5654 464.16 -17.03 446.445C25.5054 428.73 60.6337 394.751 98.3058 366.16C135.978 337.569 176.194 314.366 232.346 327.103C288.499 339.84 360.588 388.517 409.932 386.028C459.276 383.538 485.874 329.883 518.683 290.416C551.492 250.95 590.511 225.672 630.615 202.518C670.719 179.365 711.907 158.337 748.12 126.484C784.333 94.6299 815.571 51.9506 831.078 30.661L846.697 9.32138L814.113 -63.5462L793.145 -54.1699C772.288 -44.8437 730.351 -26.0911 688.302 -7.28829C646.253 11.5145 604.092 30.3674 562.043 49.1702C519.994 67.973 478.057 86.7257 436.008 105.528C393.959 124.331 351.798 143.184 309.749 161.987C267.7 180.79 225.763 199.542 183.714 218.345C141.665 237.148 99.5036 256.001 57.4546 274.804C15.4056 293.606 -26.5313 312.359 -68.5804 331.162C-110.629 349.965 -152.791 368.818 -173.983 378.294L-195.064 387.721L-159.562 467.114Z" fill="#FC6160"/>
|
|
||||||
<path d="M-147.891 493.216L-118.056 503.365C-88.1097 513.465 -28.4409 533.765 17.0125 522.575C62.4658 511.385 93.7035 468.706 129.917 436.852C166.13 404.999 207.318 383.971 262.498 394.532C317.678 405.094 386.849 447.246 435.707 443.669C484.564 440.092 513.108 390.787 544.945 349.145C576.781 307.504 611.909 273.525 651.04 248.197C690.171 222.868 733.305 206.191 771.95 179.775C810.595 153.359 844.75 117.205 861.716 99.1783L878.794 81.1013L845.724 7.14616L830.105 28.4858C814.598 49.7754 783.36 92.4547 747.147 124.308C710.934 156.162 669.746 177.19 629.642 200.343C589.538 223.496 550.519 248.774 517.71 288.241C484.901 327.708 458.303 381.363 408.959 383.852C359.615 386.342 287.526 337.665 231.373 324.928C175.221 312.191 135.005 335.394 97.333 363.985C59.6608 392.576 24.5325 426.555 -18.0029 444.27C-60.5383 461.985 -110.481 463.437 -135.564 464.213L-160.535 464.939L-147.891 493.216Z" fill="#FAAD49"/>
|
|
||||||
<path d="M-95.3675 610.673L-63.5878 625.174C-31.6959 639.624 31.8635 668.624 80.2348 663.96C128.606 659.295 161.789 620.966 199.461 592.376C237.133 563.785 279.294 544.932 327.666 540.267C376.037 535.603 430.618 545.127 475.099 531.762C519.58 518.397 553.96 482.143 591.632 453.552C629.304 424.961 670.268 404.034 706.481 372.18C742.695 340.326 774.156 297.547 807.938 260.255C841.72 222.963 877.821 191.16 895.759 175.308L913.809 159.406L877.821 78.9258L860.744 97.0028C843.778 115.03 809.622 151.183 770.977 177.599C732.333 204.015 689.199 220.693 650.068 246.021C610.937 271.349 575.808 305.328 543.972 346.97C512.136 388.612 483.592 437.917 434.734 441.494C385.877 445.07 316.705 402.919 261.526 392.357C206.346 381.795 165.157 402.823 128.944 434.677C92.7311 466.531 61.4933 509.21 16.04 520.4C-29.4133 531.59 -89.0822 511.29 -119.029 501.19L-148.863 491.04L-95.3675 610.673Z" fill="#FEF65E"/>
|
|
||||||
<path d="M-119.746 654.517L-86.7066 675.689C-53.5435 696.818 12.5359 739.161 61.265 730.734C109.994 722.306 141.373 663.109 184.36 637.744C227.347 612.379 170.839 684.64 224.9 691.94C278.961 699.241 484.362 666.573 529.4 647.257C574.438 627.941 570.215 558.185 610.331 524.351C663.557 532.142 735.167 663.443 776.103 632.029C817.039 600.615 814.191 364.862 857.588 340.707C900.985 316.552 949.591 308.167 973.77 304.016L998.073 299.823L962.799 195.779L942.188 210.86C921.7 225.899 842.535 218.887 803.24 255.14C763.945 291.393 721.526 338.337 680.18 368.541C638.834 398.745 636.501 449.384 593.924 475.959C551.348 502.533 508.419 525.643 460.1 535.28C411.781 544.918 358.072 541.082 306.471 541.041C254.871 541 208.479 556.728 165.903 583.302C123.326 609.877 84.5641 647.298 32.9638 647.257C-18.6365 647.216 -83.0753 609.712 -115.418 591.002L-147.637 572.25L-119.746 654.517Z" fill="#7AFF74"/>
|
|
||||||
<path d="M45.5057 951.467L69.6894 948.441C93.9862 945.366 142.354 939.316 184.077 918.711C225.8 898.107 260.879 862.948 304.054 845.589C347.229 828.231 398.498 828.672 441.31 810.501C484.122 792.331 518.476 755.55 556.571 726.831C594.666 698.113 636.502 677.458 678.226 656.854C719.949 636.249 761.559 615.696 804.371 597.525C847.183 579.355 891.196 563.568 934.008 545.398C976.82 527.228 1018.43 506.674 1039.12 496.448L1059.93 486.171L985.186 319.026L962.929 326.058C940.786 333.038 887.249 318.259 847.34 342.92C807.431 367.582 773.206 527.644 735.474 557.173C697.742 586.703 685.587 545.212 629.245 547.317C580.688 560.709 557.658 615.352 516.298 636.768C474.937 658.184 426.071 662.51 376.728 666.075C327.386 669.64 277.567 672.445 238.021 697.918C198.474 723.39 169.2 771.531 124.574 785.644C79.9483 799.758 19.9707 779.844 -10.1312 769.937L-40.12 759.98L45.5057 951.467Z" fill="#6892FE"/>
|
|
||||||
<path d="M97.2164 1041.35L118.297 1031.93C139.49 1022.45 181.651 1003.6 223.7 984.793C265.749 965.991 307.686 947.238 349.735 928.435C391.784 909.632 433.945 890.78 475.994 871.977C518.043 853.174 559.98 834.421 602.029 815.618C644.078 796.816 686.239 777.963 728.288 759.16C770.337 740.357 812.274 721.605 854.323 702.802C896.372 683.999 938.534 665.146 980.583 646.343C1022.63 627.54 1064.57 608.788 1085.42 599.462L1106.39 590.085L1052.9 470.452L907.82 333.259C887.45 343.673 960.855 463.199 918.32 480.915C875.785 498.63 841.904 562.19 799.369 579.906C756.833 597.621 715.869 618.549 674.793 639.527C633.716 660.505 607.193 681.085 570.98 712.939C534.767 744.793 475.755 725.044 433.22 742.759C410.12 799.038 349.96 816.101 306.938 832.728C263.917 849.356 231.706 889.86 190.63 910.838C149.553 931.816 99.6111 933.268 74.5278 934.044L49.5566 934.77L97.2164 1041.35Z" fill="#EE56FF"/>
|
|
||||||
</g>
|
|
||||||
</g>
|
|
||||||
<path d="M301.124 313.289C335.956 297.696 392.991 285.056 435.903 282.377C512.833 277.568 578.355 286.705 578.355 286.705C578.355 286.705 606.329 345.713 629.008 375.183C668.66 426.704 725.763 466.546 733.436 455.418C739.818 446.144 734.658 397.371 724.609 367.42C719.652 352.651 703.56 313.289 703.56 313.289C703.56 313.289 773.36 319.06 813.488 377.106C853.617 435.153 869.844 557.978 781.916 610.186C705.462 655.662 662.414 648.861 662.414 648.861C662.414 648.861 708.245 597.615 700.98 561.482C693.308 523.425 676.74 513.121 648.087 507.626C629.958 504.191 474.402 507.626 433.323 506.664C392.245 505.702 330.389 502.817 287.68 489.559C267.243 483.239 252.645 473.416 252.645 473.416L253.595 438.588C253.595 438.588 218.56 445.663 198.462 443.74C178.363 441.816 150.05 430.207 148.149 427.322C146.247 424.437 170.759 402.729 191.196 386.723C216.726 366.802 260.046 331.699 301.124 313.289Z" fill="url(#paint1_linear_1271_744)"/>
|
|
||||||
<path d="M436.323 289.084C474.424 286.702 509.739 287.773 535.543 289.443C548.438 290.278 558.94 291.261 566.205 292.034C569.428 292.377 572.012 292.681 573.885 292.909C574.681 294.548 575.754 296.742 577.062 299.375C580.06 305.41 584.295 313.766 589.247 323.054C598.781 340.939 611.171 362.662 622.581 377.834L623.682 379.281C643.901 405.551 668.538 428.823 689.206 444.187C699.499 451.839 709.087 457.739 716.846 461.013C720.673 462.627 724.519 463.805 728.019 463.989C731.481 464.172 736.105 463.386 738.968 459.232L738.971 459.228C740.546 456.939 741.383 454.094 741.894 451.504C742.434 448.771 742.74 445.618 742.876 442.239C743.15 435.471 742.763 427.229 741.87 418.489C740.085 401.034 736.201 380.844 730.98 365.283V365.282L730.47 363.79C727.769 355.988 722.81 343.256 718.471 332.335C716.96 328.531 715.513 324.924 714.25 321.785C721.086 323.189 730.492 325.609 741.05 329.697C762.708 338.083 788.895 353.35 807.96 380.928C827.162 408.704 840.866 452.468 839.009 495.546C837.16 538.434 819.988 579.766 778.485 604.408L778.48 604.41C740.866 626.783 711.71 636.157 692.202 639.982C685.974 641.204 680.719 641.86 676.476 642.193C680.501 636.905 685.414 630.014 690.162 622.216C695.592 613.297 700.908 603.026 704.398 592.492C707.868 582.017 709.703 570.773 707.569 560.157L707.568 560.153L707.187 558.318C703.173 539.537 696.763 526.461 686.961 517.407C676.891 508.105 664.087 503.851 649.353 501.025L649.345 501.024L649.338 501.023L648.782 500.925C645.882 500.445 641.214 500.142 635.601 499.923C629.438 499.682 621.639 499.53 612.725 499.441C594.89 499.265 572.414 499.342 549.266 499.497C502.846 499.807 453.886 500.423 433.481 499.945C392.285 498.981 331.35 496.079 289.672 483.141L289.666 483.139C279.935 480.13 271.56 476.274 265.614 473.163C263.082 471.839 261.006 470.654 259.466 469.741L260.313 438.771L260.543 430.329L252.265 432.001H252.263C252.26 432.002 252.255 432.003 252.249 432.004C252.234 432.007 252.212 432.012 252.181 432.018C252.12 432.03 252.026 432.048 251.902 432.072C251.653 432.121 251.279 432.194 250.794 432.286C249.824 432.471 248.408 432.734 246.642 433.045C243.107 433.667 238.19 434.476 232.663 435.226C221.429 436.749 208.315 437.932 199.102 437.051C189.845 436.165 178.336 432.983 168.738 429.562C164.318 427.986 160.436 426.405 157.505 425.058C159.583 422.825 162.429 420.039 165.851 416.883C174.131 409.246 185.22 399.938 195.33 392.021L195.331 392.021C221.123 371.895 263.71 337.422 303.871 319.423C337.823 304.223 394.038 291.724 436.322 289.084H436.323ZM152.907 422.637C152.862 422.602 152.869 422.605 152.914 422.642C152.911 422.64 152.909 422.638 152.907 422.637Z" stroke="#714AFF" stroke-opacity="0.4" stroke-width="13.44"/>
|
|
||||||
<path d="M388.103 361.993C388.103 371.816 376.628 371.336 366.782 371.336C357.005 371.336 350.555 371.954 346.073 375.182C341.592 378.411 344.851 400.874 304.044 438.381C279.804 460.638 256.854 475.476 253.052 474.171C249.25 472.866 241.917 453.837 240.287 446.762C224.059 451.57 187.53 444.22 193.097 442.915C211.905 438.381 240.015 425.329 258.756 410.972C271.792 401.011 296.847 381.09 304.655 375.801C311.377 371.267 330.796 356.772 339.419 355.811C353.338 354.299 388.103 351.345 388.103 361.993Z" fill="url(#paint2_linear_1271_744)"/>
|
|
||||||
<path d="M334.599 308.137C334.599 324.142 319.933 337.813 301.804 335.889C286.255 334.241 273.422 322.906 273.422 306.9C273.422 290.894 285.78 276.469 301.464 275.988C326.722 275.095 334.599 292.131 334.599 308.137Z" fill="#192437"/>
|
|
||||||
<path d="M265.749 429.657C271.792 424.505 259.706 410.285 259.706 410.285L245.04 420.108C245.04 420.177 257.533 436.732 265.749 429.657Z" fill="#FFFEFD"/>
|
|
||||||
<path d="M300.785 403.553C306.828 398.401 294.402 382.944 294.402 382.944L278.785 395.172C278.853 395.172 292.569 410.628 300.785 403.553Z" fill="#FFFEFD"/>
|
|
||||||
<path d="M316.741 394.897C311.581 401.011 326.315 414.887 326.315 414.887C326.315 414.887 338.537 398.538 337.179 397.508C335.889 396.477 323.735 386.585 316.741 394.897Z" fill="#FFFEFD"/>
|
|
||||||
<path d="M290.328 421.62C285.168 427.734 297.05 443.534 299.087 442.915C301.124 442.297 312.599 430.001 312.599 430.001C312.599 430.001 297.254 413.308 290.328 421.62Z" fill="#FFFEFD"/>
|
|
||||||
<path d="M507.944 234.978C500.272 240.13 505.364 251.121 509.845 260.12C514.327 269.119 517.178 277.362 517.654 289.59C518.061 300.581 515.277 320.365 513.987 327.165C512.833 333.417 508.691 347.087 517.79 349.422C529.264 352.307 532.456 343.308 534.968 334.584C538.295 323.25 539.992 300.168 539.449 288.49C538.159 263.486 529.876 248.51 526.073 242.74C522.271 236.97 515.413 229.894 507.944 234.978Z" fill="#2C3844"/>
|
|
||||||
<path d="M563.689 250.433C558.597 254.554 563.689 266.851 565.93 272.346C568.171 277.842 569.257 285.535 569.257 293.435C569.257 298.931 568.171 311.639 567.492 318.715C566.541 329.294 567.084 335.614 574.825 337.056C586.911 339.323 587.386 322.905 588.54 316.104C589.423 310.678 590.238 292.817 589.559 284.436C588.948 276.056 585.009 263.897 580.257 256.478C576.386 250.639 570.072 245.281 563.689 250.433Z" fill="#2C3844"/>
|
|
||||||
<path d="M456.952 230.169C446.495 235.596 457.902 253.731 460.754 259.845C463.606 265.959 467.748 279.491 467.476 293.711C467.137 307.862 466.05 322.425 463.674 330.325C461.569 337.195 455.39 348.873 460.143 353.681C467.137 360.757 478.408 353.407 482.278 341.935C487.982 325.036 489.475 311.16 488.796 289.246C487.982 259.776 472.569 222.063 456.952 230.169Z" fill="#2C3844"/>
|
|
||||||
<path d="M261.607 447.105C256.447 453.219 267.65 467.438 267.65 467.438L283.267 456.447C283.267 456.447 268.601 438.793 261.607 447.105Z" fill="#FFFEFD"/>
|
|
||||||
<path d="M329.167 378.412C335.074 373.054 325.025 361.65 325.025 361.65C325.025 361.65 310.698 370.375 311.309 371.336C312.735 373.397 322.784 384.251 329.167 378.412Z" fill="#FFFEFD"/>
|
|
||||||
</g>
|
|
||||||
<defs>
|
|
||||||
<filter id="filter0_din_1271_744" x="14.8476" y="21.8393" width="970.305" height="956.321" filterUnits="userSpaceOnUse" color-interpolation-filters="sRGB">
|
|
||||||
<feFlood flood-opacity="0" result="BackgroundImageFix"/>
|
|
||||||
<feColorMatrix in="SourceAlpha" type="matrix" values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0" result="hardAlpha"/>
|
|
||||||
<feOffset dx="-2.47377"/>
|
|
||||||
<feGaussianBlur stdDeviation="5.93705"/>
|
|
||||||
<feComposite in2="hardAlpha" operator="out"/>
|
|
||||||
<feColorMatrix type="matrix" values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.25 0"/>
|
|
||||||
<feBlend mode="normal" in2="BackgroundImageFix" result="effect1_dropShadow_1271_744"/>
|
|
||||||
<feBlend mode="normal" in="SourceGraphic" in2="BackgroundImageFix" result="shape"/>
|
|
||||||
<feColorMatrix in="SourceAlpha" type="matrix" values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0" result="hardAlpha"/>
|
|
||||||
<feOffset dx="-2.47377" dy="2.47377"/>
|
|
||||||
<feGaussianBlur stdDeviation="2.47377"/>
|
|
||||||
<feComposite in2="hardAlpha" operator="arithmetic" k2="-1" k3="1"/>
|
|
||||||
<feColorMatrix type="matrix" values="0 0 0 0 0.667818 0 0 0 0 0.667818 0 0 0 0 0.667818 0 0 0 1 0"/>
|
|
||||||
<feBlend mode="overlay" in2="shape" result="effect2_innerShadow_1271_744"/>
|
|
||||||
<feTurbulence type="fractalNoise" baseFrequency="4.0424127578735352 4.0424127578735352" stitchTiles="stitch" numOctaves="3" result="noise" seed="5613" />
|
|
||||||
<feColorMatrix in="noise" type="luminanceToAlpha" result="alphaNoise" />
|
|
||||||
<feComponentTransfer in="alphaNoise" result="coloredNoise1">
|
|
||||||
<feFuncA type="discrete" tableValues="1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 "/>
|
|
||||||
</feComponentTransfer>
|
|
||||||
<feComposite operator="in" in2="effect2_innerShadow_1271_744" in="coloredNoise1" result="noise1Clipped" />
|
|
||||||
<feFlood flood-color="#1F447B" result="color1Flood" />
|
|
||||||
<feComposite operator="in" in2="noise1Clipped" in="color1Flood" result="color1" />
|
|
||||||
<feMerge result="effect3_noise_1271_744">
|
|
||||||
<feMergeNode in="effect2_innerShadow_1271_744" />
|
|
||||||
<feMergeNode in="color1" />
|
|
||||||
</feMerge>
|
|
||||||
<feBlend mode="normal" in="effect3_noise_1271_744" in2="effect1_dropShadow_1271_744" result="effect3_noise_1271_744"/>
|
|
||||||
</filter>
|
|
||||||
<filter id="filter1_f_1271_744" x="-279.064" y="-147.546" width="1469.46" height="1272.9" filterUnits="userSpaceOnUse" color-interpolation-filters="sRGB">
|
|
||||||
<feFlood flood-opacity="0" result="BackgroundImageFix"/>
|
|
||||||
<feBlend mode="normal" in="SourceGraphic" in2="BackgroundImageFix" result="shape"/>
|
|
||||||
<feGaussianBlur stdDeviation="42" result="effect1_foregroundBlur_1271_744"/>
|
|
||||||
</filter>
|
|
||||||
<linearGradient id="paint0_linear_1271_744" x1="82.0998" y1="120.74" x2="683.54" y2="793.16" gradientUnits="userSpaceOnUse">
|
|
||||||
<stop stop-color="#81B6ED"/>
|
|
||||||
<stop offset="1" stop-color="#1D75D2"/>
|
|
||||||
</linearGradient>
|
|
||||||
<linearGradient id="paint1_linear_1271_744" x1="735.2" y1="649.521" x2="253.04" y2="219.021" gradientUnits="userSpaceOnUse">
|
|
||||||
<stop stop-color="#E6E6E6"/>
|
|
||||||
<stop offset="1" stop-color="#FAFAFA"/>
|
|
||||||
</linearGradient>
|
|
||||||
<linearGradient id="paint2_linear_1271_744" x1="363.92" y1="367.7" x2="239.18" y2="460.94" gradientUnits="userSpaceOnUse">
|
|
||||||
<stop stop-color="#D43074"/>
|
|
||||||
<stop offset="1" stop-color="#D35B8D"/>
|
|
||||||
</linearGradient>
|
|
||||||
</defs>
|
|
||||||
</svg>
|
|
||||||
|
Before Width: | Height: | Size: 18 KiB |
|
|
@ -1,79 +0,0 @@
|
||||||
<svg width="1000" height="1000" viewBox="0 0 1000 1000" fill="none" xmlns="http://www.w3.org/2000/svg">
|
|
||||||
<g filter="url(#filter0_din_1270_440)">
|
|
||||||
<mask id="mask0_1270_440" style="mask-type:alpha" maskUnits="userSpaceOnUse" x="16" y="25" width="968" height="950">
|
|
||||||
<path d="M234.169 162.667C107.403 221.269 15.9455 313.054 16.681 335.285C17.0897 346.809 22.9744 367.487 39.7294 385.141C49.619 395.603 75.9366 414.647 94.408 415.791C112.798 416.935 245.694 328.338 245.694 328.338L378.017 309.948L458.523 502.1C458.523 502.1 485.004 540.105 521.784 571.163C558.563 602.221 594.28 612.601 602.29 605.654C610.299 598.707 586.761 552.119 585.044 540.105C582.756 524.085 575.809 484.854 614.958 490.657C654.108 496.46 726.604 525.148 726.604 567.73C726.604 610.313 697.834 657.472 616.184 657.472C534.534 657.472 419.456 630.991 366.493 633.279C313.531 635.568 266.372 640.145 218.068 659.76C182.27 674.227 142.139 701.198 143.284 704.631C144.428 708.064 189.299 723.021 242.261 729.968C295.223 736.915 397.633 735.689 414.879 761.026C432.124 786.363 436.701 822.815 430.98 876.84C425.258 930.865 427.547 975 428.691 975C429.835 975 475.033 949.173 497.755 909.451C534.534 845.046 534.534 766.747 548.347 750.646C562.159 734.545 619.372 730.131 665.714 724.165C713.281 718.035 983.323 706.92 983.323 437.695C983.323 221.351 777.359 173.047 772.782 168.47C768.205 163.893 760.686 130.056 776.215 99.4068C788.475 75.2142 809.235 38.4349 802.696 29.1992C794.605 17.7567 719.82 30.3434 664.651 59.113C609.482 87.8827 574.746 124.662 574.746 124.662C574.746 124.662 362.488 103.33 234.169 162.667Z" fill="white"/>
|
|
||||||
<path d="M234.169 162.667C107.403 221.269 15.9455 313.054 16.681 335.285C17.0897 346.809 22.9744 367.487 39.7294 385.141C49.619 395.603 75.9366 414.647 94.408 415.791C112.798 416.935 245.694 328.338 245.694 328.338L378.017 309.948L458.523 502.1C458.523 502.1 485.004 540.105 521.784 571.163C558.563 602.221 594.28 612.601 602.29 605.654C610.299 598.707 586.761 552.119 585.044 540.105C582.756 524.085 575.809 484.854 614.958 490.657C654.108 496.46 726.604 525.148 726.604 567.73C726.604 610.313 697.834 657.472 616.184 657.472C534.534 657.472 419.456 630.991 366.493 633.279C313.531 635.568 266.372 640.145 218.068 659.76C182.27 674.227 142.139 701.198 143.284 704.631C144.428 708.064 189.299 723.021 242.261 729.968C295.223 736.915 397.633 735.689 414.879 761.026C432.124 786.363 436.701 822.815 430.98 876.84C425.258 930.865 427.547 975 428.691 975C429.835 975 475.033 949.173 497.755 909.451C534.534 845.046 534.534 766.747 548.347 750.646C562.159 734.545 619.372 730.131 665.714 724.165C713.281 718.035 983.323 706.92 983.323 437.695C983.323 221.351 777.359 173.047 772.782 168.47C768.205 163.893 760.686 130.056 776.215 99.4068C788.475 75.2142 809.235 38.4349 802.696 29.1992C794.605 17.7567 719.82 30.3434 664.651 59.113C609.482 87.8827 574.746 124.662 574.746 124.662C574.746 124.662 362.488 103.33 234.169 162.667Z" fill="url(#paint0_linear_1270_440)"/>
|
|
||||||
</mask>
|
|
||||||
<g mask="url(#mask0_1270_440)">
|
|
||||||
<g filter="url(#filter1_f_1270_440)">
|
|
||||||
<path d="M-285.193 460.85L-255.466 459.985C-225.604 459.062 -166.149 457.333 -115.512 436.244C-64.8746 415.154 -23.0551 374.703 21.7927 340.667C66.6404 306.63 114.516 279.007 181.365 294.17C248.213 309.333 334.033 367.282 392.776 364.318C451.519 361.355 483.184 297.48 522.242 250.496C561.3 203.511 607.751 173.418 655.494 145.855C703.236 118.292 752.27 93.2585 795.381 55.3374C838.492 17.4163 875.68 -33.3924 894.14 -58.7371L912.734 -84.1414L873.944 -170.889L848.982 -159.726C824.153 -148.624 774.228 -126.299 724.169 -103.915C674.111 -81.5305 623.919 -59.0866 573.861 -36.7023C523.802 -14.318 473.878 8.00654 423.819 30.3908C373.761 52.7751 323.569 75.219 273.511 97.6033C223.452 119.988 173.527 142.312 123.469 164.696C73.4105 187.081 23.2186 209.525 -26.8398 231.909C-76.8981 254.293 -126.823 276.618 -176.881 299.002C-226.94 321.386 -277.132 343.83 -302.361 355.112L-327.457 366.334L-285.193 460.85Z" fill="#FC6160"/>
|
|
||||||
<path d="M-271.298 491.923L-235.781 504.006C-200.13 516.029 -129.096 540.196 -74.985 526.875C-20.874 513.554 16.3139 462.745 59.4247 424.824C102.536 386.903 151.57 361.869 217.26 374.443C282.95 387.016 365.297 437.197 423.46 432.939C481.624 428.681 515.605 369.984 553.505 320.411C591.406 270.837 633.225 230.386 679.81 200.233C726.395 170.081 777.744 150.226 823.75 118.779C869.756 87.3315 910.417 44.2912 930.615 22.8307L950.945 1.31054L911.576 -86.7313L892.982 -61.327C874.522 -35.9823 837.334 14.8264 794.223 52.7475C751.112 90.6686 702.078 115.702 654.336 143.265C606.593 170.828 560.142 200.921 521.084 247.906C482.026 294.89 450.36 358.765 391.618 361.729C332.875 364.692 247.055 306.743 180.207 291.58C113.358 276.417 65.4823 304.04 20.6346 338.077C-24.2132 372.114 -66.0327 412.564 -116.67 433.654C-167.307 454.743 -226.763 456.472 -256.624 457.395L-286.351 458.26L-271.298 491.923Z" fill="#FAAD49"/>
|
|
||||||
<path d="M-208.771 631.754L-170.938 649.016C-132.971 666.218 -57.3052 700.743 0.279594 695.19C57.8644 689.637 97.3681 644.007 142.216 609.97C187.064 575.934 237.255 553.49 294.84 547.937C352.425 542.384 417.403 553.723 470.356 537.812C523.309 521.901 564.238 478.742 609.086 444.705C653.933 410.668 702.7 385.754 745.811 347.833C788.922 309.912 826.377 258.984 866.593 214.589C906.809 170.194 949.787 132.333 971.142 113.462L992.63 94.5311L949.788 -1.27915L929.457 20.241C909.259 41.7015 868.598 84.7418 822.592 116.189C776.587 147.637 725.237 167.491 678.652 197.644C632.068 227.796 590.248 268.247 552.348 317.821C514.447 367.395 480.466 426.091 422.303 430.349C364.139 434.607 281.792 384.427 216.102 371.853C150.412 359.28 101.378 384.313 58.267 422.234C15.1561 460.155 -22.0317 510.964 -76.1428 524.285C-130.254 537.606 -201.288 513.44 -236.939 501.416L-272.456 489.333L-208.771 631.754Z" fill="#FEF65E"/>
|
|
||||||
<path d="M-237.793 683.949L-198.46 709.153C-158.98 734.307 -80.3145 784.715 -22.3035 774.683C35.7074 764.65 73.0632 694.177 124.238 663.98C175.413 633.784 108.141 719.809 172.5 728.5C236.859 737.191 481.384 698.3 535 675.305C588.616 652.31 583.589 569.267 631.346 528.989C694.711 538.264 779.961 694.575 828.694 657.177C877.428 619.78 874.037 339.121 925.7 310.365C977.363 281.609 1035.23 271.626 1064.01 266.685L1092.94 261.693L1050.95 137.832L1026.41 155.785C1002.02 173.689 907.78 165.342 861 208.5C814.22 251.658 763.722 307.543 714.5 343.5C665.278 379.458 662.501 439.742 611.815 471.379C561.128 503.015 510.023 530.527 452.5 542C394.977 553.473 331.038 548.907 269.609 548.858C208.18 548.809 152.952 567.533 102.265 599.169C51.5785 630.806 5.43344 675.354 -55.9955 675.305C-117.424 675.256 -194.137 630.609 -232.641 608.335L-270.997 586.012L-237.793 683.949Z" fill="#7AFF74"/>
|
|
||||||
<path d="M-41.0645 1037.46L-12.2745 1033.86C16.6503 1030.2 74.2304 1022.99 123.901 998.466C173.572 973.937 215.333 932.081 266.731 911.416C318.129 890.75 379.165 891.275 430.131 869.644C481.098 848.013 521.995 804.226 567.346 770.037C612.698 735.849 662.503 711.259 712.173 686.73C761.844 662.201 811.38 637.733 862.346 616.101C913.313 594.47 965.71 575.677 1016.68 554.045C1067.64 532.414 1117.18 507.945 1141.81 495.771L1166.58 483.537L1077.6 284.555L1051.11 292.925C1024.75 301.236 961.011 283.641 913.5 313C865.989 342.359 825.246 532.909 780.326 568.063C735.407 603.217 720.937 553.823 653.863 556.33C596.057 572.272 568.641 637.324 519.402 662.819C470.163 688.314 411.989 693.464 353.248 697.708C294.507 701.953 235.199 705.291 188.12 735.616C141.041 765.941 106.191 823.251 53.0646 840.053C-0.0614817 856.854 -71.4633 833.147 -107.299 821.353L-143 809.5L-41.0645 1037.46Z" fill="#6892FE"/>
|
|
||||||
<path d="M20.4958 1144.47L45.5918 1133.25C70.8212 1121.96 121.013 1099.52 171.071 1077.14C221.13 1054.75 271.055 1032.43 321.113 1010.04C371.171 987.658 421.363 965.214 471.422 942.83C521.48 920.446 571.405 898.121 621.463 875.737C671.522 853.353 721.714 830.909 771.772 808.525C821.83 786.14 871.755 763.816 921.814 741.431C971.872 719.047 1022.06 696.603 1072.12 674.219C1122.18 651.835 1172.11 629.51 1196.93 618.407L1221.9 607.245L1158.21 464.824L985.5 301.5C961.25 313.897 1048.64 456.191 998 477.28C947.363 498.37 907.029 574.037 856.391 595.126C805.754 616.216 756.987 641.13 708.087 666.104C659.186 691.078 627.611 715.578 584.5 753.499C541.389 791.42 471.137 767.91 420.5 788.999C393 855.998 321.381 876.311 270.165 896.106C218.949 915.901 180.603 964.12 131.702 989.094C82.8019 1014.07 23.3467 1015.8 -6.51443 1016.72L-36.242 1017.58L20.4958 1144.47Z" fill="#EE56FF"/>
|
|
||||||
</g>
|
|
||||||
</g>
|
|
||||||
<path d="M263.243 277.725C304.71 259.161 372.609 244.114 423.695 240.924C515.277 235.2 593.28 246.077 593.28 246.077C593.28 246.077 626.583 316.325 653.581 351.408C700.786 412.742 768.766 460.174 777.9 446.926C785.498 435.885 779.355 377.822 767.392 342.167C761.491 324.584 742.334 277.725 742.334 277.725C742.334 277.725 825.429 284.594 873.201 353.698C920.972 422.801 940.291 569.022 835.614 631.174C744.597 685.311 693.35 677.215 693.35 677.215C693.35 677.215 747.911 616.208 739.262 573.192C730.128 527.887 710.405 515.62 676.294 509.078C654.712 504.989 469.526 509.078 420.623 507.933C371.72 506.788 298.082 503.353 247.239 487.57C222.908 480.046 205.53 468.352 205.53 468.352L206.661 426.89C206.661 426.89 164.952 435.313 141.026 433.023C117.099 430.733 83.3926 416.913 81.1293 413.478C78.866 410.043 108.046 384.201 132.377 365.147C162.769 341.431 214.34 299.642 263.243 277.725Z" fill="url(#paint1_linear_1270_440)"/>
|
|
||||||
<path d="M424.194 248.909C469.553 246.074 511.595 247.348 542.314 249.337C557.665 250.331 570.167 251.502 578.815 252.422C582.651 252.83 585.728 253.189 587.958 253.461C588.905 255.412 590.183 258.024 591.741 261.16C595.31 268.345 600.352 278.293 606.247 289.35C617.598 310.642 632.348 336.502 645.93 354.563L647.241 356.287C671.311 387.561 700.641 415.266 725.245 433.556C737.499 442.665 748.913 449.689 758.15 453.586C762.706 455.508 767.283 456.91 771.451 457.13C775.573 457.347 781.077 456.411 784.486 451.467L784.49 451.461C786.364 448.737 787.36 445.35 787.969 442.267C788.612 439.013 788.976 435.259 789.139 431.237C789.465 423.18 789.004 413.368 787.94 402.963C785.815 382.182 781.191 358.146 774.976 339.622V339.621C771.944 330.586 765.593 314.266 760.084 300.398C758.285 295.87 756.562 291.575 755.058 287.839C763.197 289.51 774.394 292.391 786.964 297.258C812.747 307.24 843.923 325.416 866.62 358.247C889.479 391.314 905.794 443.414 903.583 494.697C901.381 545.754 880.938 594.959 831.53 624.295L831.524 624.298C786.745 650.933 752.036 662.091 728.811 666.646C721.397 668.099 715.141 668.881 710.09 669.278C714.882 662.982 720.73 654.778 726.382 645.495C732.847 634.877 739.177 622.65 743.332 610.109C747.463 597.639 749.646 584.253 747.105 571.615L747.104 571.611L746.651 569.426C741.872 547.067 734.242 531.5 722.573 520.722C710.584 509.648 695.341 504.585 677.801 501.221L677.792 501.219L677.784 501.218L677.122 501.101C673.67 500.529 668.111 500.168 661.429 499.907C654.092 499.621 644.808 499.44 634.197 499.335C612.965 499.125 586.208 499.217 558.651 499.401C503.388 499.77 445.101 500.503 420.81 499.935C371.768 498.786 299.227 495.332 249.611 479.93L249.602 479.927C238.018 476.345 228.047 471.754 220.968 468.051C217.956 466.475 215.485 465.064 213.652 463.978L214.658 427.108L214.932 417.058L205.078 419.048C205.077 419.048 205.076 419.049 205.075 419.049C205.071 419.05 205.065 419.05 205.057 419.052C205.04 419.055 205.014 419.061 204.978 419.068C204.905 419.083 204.793 419.105 204.645 419.134C204.348 419.192 203.904 419.278 203.328 419.388C202.173 419.607 200.485 419.921 198.383 420.291C194.175 421.032 188.321 421.995 181.741 422.888C168.367 424.701 152.755 426.109 141.788 425.06C130.768 424.005 117.067 420.218 105.64 416.145C100.378 414.269 95.7551 412.385 92.2661 410.78C94.7392 408.122 98.1295 404.808 102.204 401.051C112.061 391.96 125.263 380.88 137.298 371.454C168.004 347.494 218.704 306.453 266.515 285.025L266.514 285.024C306.933 266.93 373.856 252.052 424.193 248.909H424.194ZM86.7944 407.9C86.7428 407.861 86.7484 407.862 86.7974 407.902C86.7964 407.902 86.7953 407.901 86.7944 407.9Z" stroke="#714AFF" stroke-opacity="0.4" stroke-width="16"/>
|
|
||||||
<path d="M366.789 335.706C366.789 347.4 353.128 346.828 341.408 346.828C329.768 346.828 322.089 347.564 316.754 351.408C311.419 355.251 315.299 381.993 266.719 426.644C237.862 453.14 210.541 470.805 206.014 469.251C201.488 467.697 192.758 445.044 190.818 436.621C171.499 442.346 128.012 433.595 134.64 432.042C157.03 426.644 190.495 411.106 212.804 394.014C228.324 382.156 258.151 358.44 267.447 352.143C275.449 346.746 298.567 329.491 308.833 328.346C325.403 326.547 366.789 323.03 366.789 335.706Z" fill="url(#paint2_linear_1270_440)"/>
|
|
||||||
<path d="M303.094 271.592C303.094 290.646 285.634 306.92 264.052 304.631C245.542 302.668 230.264 289.174 230.264 270.12C230.264 251.065 244.976 233.892 263.648 233.319C293.717 232.256 303.094 252.537 303.094 271.592Z" fill="#192437"/>
|
|
||||||
<path d="M221.13 416.259C228.324 410.126 213.936 393.197 213.936 393.197L196.476 404.892C196.476 404.973 211.349 424.682 221.13 416.259Z" fill="#FFFEFD"/>
|
|
||||||
<path d="M262.839 385.182C270.033 379.049 255.241 360.648 255.241 360.648L236.65 375.205C236.73 375.205 253.058 393.605 262.839 385.182Z" fill="#FFFEFD"/>
|
|
||||||
<path d="M281.835 374.878C275.692 382.157 293.232 398.676 293.232 398.676C293.232 398.676 307.782 379.213 306.165 377.986C304.63 376.759 290.161 364.983 281.835 374.878Z" fill="#FFFEFD"/>
|
|
||||||
<path d="M250.391 406.69C244.248 413.968 258.393 432.777 260.818 432.041C263.243 431.305 276.904 416.667 276.904 416.667C276.904 416.667 258.636 396.795 250.391 406.69Z" fill="#FFFEFD"/>
|
|
||||||
<path d="M509.457 184.497C500.323 190.63 506.386 203.715 511.721 214.428C517.056 225.141 520.451 234.955 521.016 249.511C521.501 262.596 518.187 286.148 516.652 294.244C515.277 301.686 510.347 317.96 521.178 320.741C534.839 324.175 538.638 313.462 541.629 303.076C545.589 289.583 547.61 262.105 546.963 248.203C545.428 218.435 535.566 200.607 531.04 193.738C526.513 186.869 518.349 178.445 509.457 184.497Z" fill="#2C3844"/>
|
|
||||||
<path d="M575.821 202.897C569.758 207.804 575.821 222.442 578.488 228.984C581.155 235.527 582.449 244.686 582.449 254.091C582.449 260.633 581.155 275.762 580.347 284.185C579.215 296.779 579.862 304.303 589.077 306.02C603.465 308.719 604.031 289.174 605.405 281.078C606.456 274.617 607.426 253.355 606.617 243.377C605.89 233.4 601.202 218.926 595.543 210.093C590.936 203.142 583.419 196.764 575.821 202.897Z" fill="#2C3844"/>
|
|
||||||
<path d="M448.752 178.772C436.304 185.233 449.884 206.822 453.279 214.101C456.674 221.379 461.605 237.489 461.281 254.418C460.877 271.264 459.584 288.601 456.755 298.006C454.249 306.184 446.893 320.086 452.551 325.811C460.877 334.234 474.295 325.484 478.903 311.827C485.692 291.709 487.471 275.19 486.662 249.102C485.692 214.019 467.344 169.122 448.752 178.772Z" fill="#2C3844"/>
|
|
||||||
<path d="M216.199 437.03C210.056 444.308 223.393 461.236 223.393 461.236L241.985 448.151C241.985 448.151 224.525 427.134 216.199 437.03Z" fill="#FFFEFD"/>
|
|
||||||
<path d="M296.627 355.252C303.659 348.873 291.696 335.298 291.696 335.298C291.696 335.298 274.641 345.684 275.368 346.829C277.066 349.282 289.029 362.203 296.627 355.252Z" fill="#FFFEFD"/>
|
|
||||||
</g>
|
|
||||||
<defs>
|
|
||||||
<filter id="filter0_din_1270_440" x="-77.5622" y="-69.2389" width="1155.12" height="1138.48" filterUnits="userSpaceOnUse" color-interpolation-filters="sRGB">
|
|
||||||
<feFlood flood-opacity="0" result="BackgroundImageFix"/>
|
|
||||||
<feColorMatrix in="SourceAlpha" type="matrix" values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0" result="hardAlpha"/>
|
|
||||||
<feOffset dx="-2.94497"/>
|
|
||||||
<feGaussianBlur stdDeviation="7.06792"/>
|
|
||||||
<feComposite in2="hardAlpha" operator="out"/>
|
|
||||||
<feColorMatrix type="matrix" values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.25 0"/>
|
|
||||||
<feBlend mode="normal" in2="BackgroundImageFix" result="effect1_dropShadow_1270_440"/>
|
|
||||||
<feBlend mode="normal" in="SourceGraphic" in2="BackgroundImageFix" result="shape"/>
|
|
||||||
<feColorMatrix in="SourceAlpha" type="matrix" values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0" result="hardAlpha"/>
|
|
||||||
<feOffset dx="-2.94497" dy="2.94497"/>
|
|
||||||
<feGaussianBlur stdDeviation="2.94497"/>
|
|
||||||
<feComposite in2="hardAlpha" operator="arithmetic" k2="-1" k3="1"/>
|
|
||||||
<feColorMatrix type="matrix" values="0 0 0 0 0.667818 0 0 0 0 0.667818 0 0 0 0 0.667818 0 0 0 1 0"/>
|
|
||||||
<feBlend mode="overlay" in2="shape" result="effect2_innerShadow_1270_440"/>
|
|
||||||
<feTurbulence type="fractalNoise" baseFrequency="3.3956263065338135 3.3956263065338135" stitchTiles="stitch" numOctaves="3" result="noise" seed="5613" />
|
|
||||||
<feColorMatrix in="noise" type="luminanceToAlpha" result="alphaNoise" />
|
|
||||||
<feComponentTransfer in="alphaNoise" result="coloredNoise1">
|
|
||||||
<feFuncA type="discrete" tableValues="1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 "/>
|
|
||||||
</feComponentTransfer>
|
|
||||||
<feComposite operator="in" in2="effect2_innerShadow_1270_440" in="coloredNoise1" result="noise1Clipped" />
|
|
||||||
<feFlood flood-color="#1F447B" result="color1Flood" />
|
|
||||||
<feComposite operator="in" in2="noise1Clipped" in="color1Flood" result="color1" />
|
|
||||||
<feMerge result="effect3_noise_1270_440">
|
|
||||||
<feMergeNode in="effect2_innerShadow_1270_440" />
|
|
||||||
<feMergeNode in="color1" />
|
|
||||||
</feMerge>
|
|
||||||
<feBlend mode="normal" in="effect3_noise_1270_440" in2="effect1_dropShadow_1270_440" result="effect3_noise_1270_440"/>
|
|
||||||
</filter>
|
|
||||||
<filter id="filter1_f_1270_440" x="-427.457" y="-270.889" width="1749.35" height="1515.36" filterUnits="userSpaceOnUse" color-interpolation-filters="sRGB">
|
|
||||||
<feFlood flood-opacity="0" result="BackgroundImageFix"/>
|
|
||||||
<feBlend mode="normal" in="SourceGraphic" in2="BackgroundImageFix" result="shape"/>
|
|
||||||
<feGaussianBlur stdDeviation="50" result="effect1_foregroundBlur_1270_440"/>
|
|
||||||
</filter>
|
|
||||||
<linearGradient id="paint0_linear_1270_440" x1="2.49988" y1="48.5" x2="718.5" y2="849" gradientUnits="userSpaceOnUse">
|
|
||||||
<stop stop-color="#81B6ED"/>
|
|
||||||
<stop offset="1" stop-color="#1D75D2"/>
|
|
||||||
</linearGradient>
|
|
||||||
<linearGradient id="paint1_linear_1270_440" x1="780" y1="678" x2="206" y2="165.5" gradientUnits="userSpaceOnUse">
|
|
||||||
<stop stop-color="#E6E6E6"/>
|
|
||||||
<stop offset="1" stop-color="#FAFAFA"/>
|
|
||||||
</linearGradient>
|
|
||||||
<linearGradient id="paint2_linear_1270_440" x1="338" y1="342.5" x2="189.5" y2="453.5" gradientUnits="userSpaceOnUse">
|
|
||||||
<stop stop-color="#D43074"/>
|
|
||||||
<stop offset="1" stop-color="#D35B8D"/>
|
|
||||||
</linearGradient>
|
|
||||||
</defs>
|
|
||||||
</svg>
|
|
||||||
|
Before Width: | Height: | Size: 18 KiB |
|
Before Width: | Height: | Size: 28 KiB |
|
|
@ -1,50 +0,0 @@
|
||||||
<svg width="1000" height="1000" viewBox="0 0 1000 1000" fill="none" xmlns="http://www.w3.org/2000/svg">
|
|
||||||
<g filter="url(#filter0_din_1280_103)">
|
|
||||||
<path d="M271.751 291.026C314.648 271.485 384.89 255.646 437.738 252.288C532.481 246.263 613.175 257.712 613.175 257.712C613.175 257.712 647.627 331.657 675.556 368.587C724.391 433.149 794.716 483.077 804.165 469.132C812.025 457.511 805.67 396.392 793.294 358.859C787.19 340.351 767.372 291.026 767.372 291.026C767.372 291.026 853.334 298.257 902.754 370.997C952.174 443.737 972.159 597.654 863.87 663.077C769.713 720.064 716.698 711.542 716.698 711.542C716.698 711.542 773.142 647.324 764.194 602.044C754.745 554.354 734.342 541.442 699.054 534.555C676.727 530.251 485.151 534.555 434.561 533.35C383.97 532.145 307.792 528.529 255.194 511.915C230.024 503.995 212.046 491.686 212.046 491.686L213.216 448.041C213.216 448.041 170.068 456.908 145.316 454.498C120.564 452.087 85.6946 437.539 83.3532 433.924C81.0118 430.308 111.199 403.106 136.369 383.049C167.81 358.085 221.16 314.096 271.751 291.026Z" fill="white"/>
|
|
||||||
<path d="M234.169 162.667C107.403 221.269 15.9455 313.054 16.681 335.285C17.0897 346.809 22.9744 367.487 39.7294 385.141C49.619 395.603 75.9366 414.647 94.408 415.791C112.798 416.935 245.694 328.338 245.694 328.338L378.017 309.948L458.523 502.1C458.523 502.1 485.004 540.105 521.784 571.163C558.563 602.221 594.28 612.601 602.29 605.654C610.299 598.707 586.761 552.119 585.044 540.105C582.756 524.085 575.809 484.854 614.958 490.657C654.108 496.46 726.604 525.148 726.604 567.73C726.604 610.313 697.834 657.472 616.184 657.472C534.534 657.472 419.456 630.991 366.493 633.279C313.531 635.568 266.372 640.145 218.068 659.76C182.27 674.227 142.139 701.198 143.284 704.631C144.428 708.064 189.299 723.021 242.261 729.968C295.223 736.915 397.633 735.689 414.879 761.026C432.124 786.363 436.701 822.815 430.98 876.84C425.258 930.865 427.547 975 428.691 975C429.835 975 475.033 949.173 497.755 909.451C534.534 845.046 534.534 766.747 548.347 750.646C562.159 734.545 619.372 730.131 665.714 724.165C713.281 718.035 983.323 706.92 983.323 437.695C983.323 221.351 777.359 173.047 772.782 168.47C768.205 163.893 760.686 130.056 776.215 99.4068C788.475 75.2142 809.235 38.4349 802.696 29.1992C794.605 17.7567 719.82 30.3434 664.651 59.113C609.482 87.8827 574.746 124.662 574.746 124.662C574.746 124.662 362.488 103.33 234.169 162.667Z" fill="white"/>
|
|
||||||
<path d="M234.169 162.667C107.403 221.269 15.9455 313.054 16.681 335.285C17.0897 346.809 22.9744 367.487 39.7294 385.141C49.619 395.603 75.9366 414.647 94.408 415.791C112.798 416.935 245.694 328.338 245.694 328.338L378.017 309.948L458.523 502.1C458.523 502.1 485.004 540.105 521.784 571.163C558.563 602.221 594.28 612.601 602.29 605.654C610.299 598.707 586.761 552.119 585.044 540.105C582.756 524.085 575.809 484.854 614.958 490.657C654.108 496.46 726.604 525.148 726.604 567.73C726.604 610.313 697.834 657.472 616.184 657.472C534.534 657.472 419.456 630.991 366.493 633.279C313.531 635.568 266.372 640.145 218.068 659.76C182.27 674.227 142.139 701.198 143.284 704.631C144.428 708.064 189.299 723.021 242.261 729.968C295.223 736.915 397.633 735.689 414.879 761.026C432.124 786.363 436.701 822.815 430.98 876.84C425.258 930.865 427.547 975 428.691 975C429.835 975 475.033 949.173 497.755 909.451C534.534 845.046 534.534 766.747 548.347 750.646C562.159 734.545 619.372 730.131 665.714 724.165C713.281 718.035 983.323 706.92 983.323 437.695C983.323 221.351 777.359 173.047 772.782 168.47C768.205 163.893 760.686 130.056 776.215 99.4068C788.475 75.2142 809.235 38.4349 802.696 29.1992C794.605 17.7567 719.82 30.3434 664.651 59.113C609.482 87.8827 574.746 124.662 574.746 124.662C574.746 124.662 362.488 103.33 234.169 162.667Z" fill="white"/>
|
|
||||||
<path d="M378.869 352.059C378.869 364.369 364.737 363.766 352.612 363.766C340.571 363.766 332.627 364.541 327.108 368.587C321.589 372.633 325.603 400.782 275.347 447.783C245.494 475.674 217.23 494.268 212.547 492.633C207.865 490.997 198.834 467.152 196.827 458.285C176.841 464.311 131.853 455.1 138.71 453.465C161.873 447.783 196.492 431.427 219.572 413.436C235.627 400.954 266.483 375.99 276.099 369.362C284.378 363.68 308.293 345.516 318.913 344.311C336.055 342.418 378.869 338.716 378.869 352.059Z" fill="white"/>
|
|
||||||
<path d="M378.869 352.059C378.869 364.369 364.737 363.766 352.612 363.766C340.571 363.766 332.627 364.541 327.108 368.587C321.589 372.633 325.603 400.782 275.347 447.783C245.494 475.674 217.23 494.268 212.547 492.633C207.865 490.997 198.834 467.152 196.827 458.285C176.841 464.311 131.853 455.1 138.71 453.465C161.873 447.783 196.492 431.427 219.572 413.436C235.627 400.954 266.483 375.99 276.099 369.362C284.378 363.68 308.293 345.516 318.913 344.311C336.055 342.418 378.869 338.716 378.869 352.059Z" fill="white"/>
|
|
||||||
<path d="M312.976 284.57C312.976 304.627 294.914 321.758 272.587 319.347C253.438 317.281 237.634 303.078 237.634 283.02C237.634 262.963 252.853 244.885 272.169 244.283C303.276 243.164 312.976 264.512 312.976 284.57Z" fill="white"/>
|
|
||||||
<path d="M228.185 436.851C235.627 430.394 220.742 412.575 220.742 412.575L202.68 424.885C202.68 424.971 218.067 445.717 228.185 436.851Z" fill="white"/>
|
|
||||||
<path d="M271.333 404.139C278.775 397.683 263.472 378.314 263.472 378.314L244.24 393.637C244.323 393.637 261.215 413.005 271.333 404.139Z" fill="white"/>
|
|
||||||
<path d="M290.984 393.292C284.629 400.954 302.775 418.343 302.775 418.343C302.775 418.343 317.826 397.855 316.154 396.564C314.565 395.272 299.597 382.876 290.984 393.292Z" fill="white"/>
|
|
||||||
<path d="M258.455 426.779C252.1 434.441 266.734 454.24 269.242 453.465C271.751 452.69 285.883 437.281 285.883 437.281C285.883 437.281 266.984 416.363 258.455 426.779Z" fill="white"/>
|
|
||||||
<path d="M526.461 192.891C517.011 199.348 523.283 213.121 528.802 224.398C534.321 235.675 537.833 246.005 538.418 261.328C538.92 275.101 535.492 299.893 533.903 308.415C532.481 316.249 527.38 333.379 538.586 336.306C552.718 339.921 556.648 328.645 559.742 317.712C563.839 303.508 565.93 274.584 565.261 259.95C563.672 228.616 553.47 209.85 548.787 202.619C544.105 195.388 535.659 186.521 526.461 192.891Z" fill="white"/>
|
|
||||||
<path d="M595.113 212.26C588.842 217.425 595.113 232.834 597.873 239.72C600.632 246.607 601.97 256.248 601.97 266.148C601.97 273.035 600.632 288.96 599.796 297.827C598.625 311.083 599.294 319.003 608.827 320.811C623.711 323.651 624.297 303.078 625.718 294.555C626.805 287.755 627.809 265.373 626.973 254.871C626.22 244.369 621.37 229.132 615.517 219.835C610.75 212.518 602.974 205.804 595.113 212.26Z" fill="white"/>
|
|
||||||
<path d="M463.661 186.865C450.783 193.666 464.831 216.392 468.344 224.053C471.856 231.714 476.956 248.673 476.622 266.492C476.204 284.225 474.866 302.475 471.939 312.374C469.347 320.983 461.737 335.617 467.591 341.643C476.204 350.509 490.085 341.298 494.851 326.922C501.875 305.746 503.715 288.357 502.879 260.897C501.875 223.967 482.894 176.707 463.661 186.865Z" fill="white"/>
|
|
||||||
<path d="M223.084 458.716C216.728 466.377 230.526 484.196 230.526 484.196L249.759 470.423C249.759 470.423 231.697 448.3 223.084 458.716Z" fill="white"/>
|
|
||||||
<path d="M306.287 372.633C313.562 365.919 301.186 351.629 301.186 351.629C301.186 351.629 283.542 362.561 284.294 363.767C286.05 366.349 298.426 379.95 306.287 372.633Z" fill="white"/>
|
|
||||||
</g>
|
|
||||||
<defs>
|
|
||||||
<filter id="filter0_din_1280_103" x="-77.5622" y="-69.2389" width="1155.12" height="1138.48" filterUnits="userSpaceOnUse" color-interpolation-filters="sRGB">
|
|
||||||
<feFlood flood-opacity="0" result="BackgroundImageFix"/>
|
|
||||||
<feColorMatrix in="SourceAlpha" type="matrix" values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0" result="hardAlpha"/>
|
|
||||||
<feOffset dx="-2.94497"/>
|
|
||||||
<feGaussianBlur stdDeviation="7.06792"/>
|
|
||||||
<feComposite in2="hardAlpha" operator="out"/>
|
|
||||||
<feColorMatrix type="matrix" values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.25 0"/>
|
|
||||||
<feBlend mode="normal" in2="BackgroundImageFix" result="effect1_dropShadow_1280_103"/>
|
|
||||||
<feBlend mode="normal" in="SourceGraphic" in2="BackgroundImageFix" result="shape"/>
|
|
||||||
<feColorMatrix in="SourceAlpha" type="matrix" values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0" result="hardAlpha"/>
|
|
||||||
<feOffset dx="-2.94497" dy="2.94497"/>
|
|
||||||
<feGaussianBlur stdDeviation="2.94497"/>
|
|
||||||
<feComposite in2="hardAlpha" operator="arithmetic" k2="-1" k3="1"/>
|
|
||||||
<feColorMatrix type="matrix" values="0 0 0 0 0.667818 0 0 0 0 0.667818 0 0 0 0 0.667818 0 0 0 1 0"/>
|
|
||||||
<feBlend mode="overlay" in2="shape" result="effect2_innerShadow_1280_103"/>
|
|
||||||
<feTurbulence type="fractalNoise" baseFrequency="3.3956263065338135 3.3956263065338135" stitchTiles="stitch" numOctaves="3" result="noise" seed="5613" />
|
|
||||||
<feColorMatrix in="noise" type="luminanceToAlpha" result="alphaNoise" />
|
|
||||||
<feComponentTransfer in="alphaNoise" result="coloredNoise1">
|
|
||||||
<feFuncA type="discrete" tableValues="1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 "/>
|
|
||||||
</feComponentTransfer>
|
|
||||||
<feComposite operator="in" in2="effect2_innerShadow_1280_103" in="coloredNoise1" result="noise1Clipped" />
|
|
||||||
<feFlood flood-color="#1F447B" result="color1Flood" />
|
|
||||||
<feComposite operator="in" in2="noise1Clipped" in="color1Flood" result="color1" />
|
|
||||||
<feMerge result="effect3_noise_1280_103">
|
|
||||||
<feMergeNode in="effect2_innerShadow_1280_103" />
|
|
||||||
<feMergeNode in="color1" />
|
|
||||||
</feMerge>
|
|
||||||
<feBlend mode="normal" in="effect3_noise_1280_103" in2="effect1_dropShadow_1280_103" result="effect3_noise_1280_103"/>
|
|
||||||
</filter>
|
|
||||||
</defs>
|
|
||||||
</svg>
|
|
||||||
|
Before Width: | Height: | Size: 9.2 KiB |
|
Before Width: | Height: | Size: 228 KiB |
214
README.md
|
|
@ -1,4 +1,212 @@
|
||||||
# Branding
|
# docker-h5ai
|
||||||
|
|
||||||
Branding and general assets used by Project Shards.
|
%2C%20arm64%2C%20armv7%2C%20armv6-lightgrey?style=flat-square)
|
||||||
This repo also contains stylistic guidelines, colour palettes, and press assets.
|

|
||||||
|
|
||||||
|

|
||||||
|

|
||||||
|

|
||||||
|
|
||||||
|
## What is h5ai
|
||||||
|
|
||||||
|
I'd like to quote the [official website](https://larsjung.de/h5ai/).
|
||||||
|
> h5ai is a modern file indexer for HTTP web servers with focus on your files. Directories are displayed in a appealing way and browsing them is enhanced by different views, a breadcrumb and a tree overview. Initially h5ai was an acronym for HTML5 Apache Index but now it supports other web servers too.
|
||||||
|
|
||||||
|
## What this project provided for
|
||||||
|
|
||||||
|
I hope this project would be useful for those who uses Docker for building their server.
|
||||||
|
|
||||||
|
## Features
|
||||||
|
|
||||||
|
### Core packages
|
||||||
|
|
||||||
|
I choose Alpine Linux as a base image to make it a **light-weight** service.
|
||||||
|
And I do choose Nginx-Alpine to get the benefits from some tweaks of Nginx version.
|
||||||
|
|
||||||
|
So this is composed of,
|
||||||
|
|
||||||
|
* Alpine Linux 3.19
|
||||||
|
* Nginx 1.27.0
|
||||||
|
* PHP 8.2.20
|
||||||
|
|
||||||
|
with,
|
||||||
|
|
||||||
|
* h5ai 0.30.0
|
||||||
|
|
||||||
|
And to gather all of these into one together I use supervisor that manages all of these processes.
|
||||||
|
|
||||||
|
### All functions work
|
||||||
|
|
||||||
|

|
||||||
|
h5ai supports extensional functions such as showing thumnails of audio and video, caching for better speed, etc. This image activates all of those functions.
|
||||||
|
|
||||||
|
### PHP 8 JIT enabled
|
||||||
|
|
||||||
|

|
||||||
|
JIT compiler that is introduced in PHP 8 is enabled by default.
|
||||||
|
|
||||||
|
### Supports multiple architectures
|
||||||
|
|
||||||
|
It builds from Github Actions for supporting multiple architectures such as AMD64(x86_64) and ARM64, ARMv7, ARMv6.
|
||||||
|
|
||||||
|
So that you can use this on most computers supporting Docker.
|
||||||
|
|
||||||
|
## How can I use this
|
||||||
|
|
||||||
|
First of all, it assumes that you have installed Docker on your system.
|
||||||
|
|
||||||
|
### Pulling the Docker image
|
||||||
|
|
||||||
|
Pull the image from docker hub with the following command.
|
||||||
|
|
||||||
|
```bash
|
||||||
|
docker pull awesometic/h5ai
|
||||||
|
```
|
||||||
|
|
||||||
|
### Basic usage
|
||||||
|
|
||||||
|
This is how it can be a service, in the other word, a container.
|
||||||
|
|
||||||
|
You can run it using the following command.
|
||||||
|
|
||||||
|
```bash
|
||||||
|
docker run -it --rm \
|
||||||
|
-p 80:80 \
|
||||||
|
-v /shared/dir:/h5ai \
|
||||||
|
-v /config/dir:/config \
|
||||||
|
-e PUID=$UID \
|
||||||
|
-e PGID=$GID \
|
||||||
|
-e TZ=Asia/Seoul \
|
||||||
|
awesometic/h5ai
|
||||||
|
```
|
||||||
|
|
||||||
|
The `--rm` option in the command is added to remove the executed container since this is an example usage.
|
||||||
|
|
||||||
|
Basically, two directories should be mapped to the host PC.
|
||||||
|
|
||||||
|
* `/h5ai`: This will be where the shared files located.
|
||||||
|
* `/config`: This will be where stores configurations of h5ai and Nginx settings.
|
||||||
|
|
||||||
|
And you should set proper **PUID** and **PGID**. If those not set up, the default UID, GID, the number 911, will be used for the `/config` directory. Not setting PUID/PGID will not significantly affect its operations, but setting up the proper number is still recommended.
|
||||||
|
|
||||||
|
Or you can handle some directories that has special permissions using these PUID/PGID.
|
||||||
|
|
||||||
|
If you want to run this image as a daemon, use `-d` option. See the following command.
|
||||||
|
|
||||||
|
```bash
|
||||||
|
docker run -d --name=h5ai \
|
||||||
|
-p 80:80 \
|
||||||
|
-v /shared/dir:/h5ai \
|
||||||
|
-v /config/dir:/config \
|
||||||
|
-e PUID=$UID \
|
||||||
|
-e PGID=$GID \
|
||||||
|
-e TZ=Asia/Seoul \
|
||||||
|
awesometic/h5ai
|
||||||
|
```
|
||||||
|
|
||||||
|
If you want to run this image permanently, so to speak, to keep it runs after rebooting the server, you can use `--restart unless-stopped` option. See the following command.
|
||||||
|
|
||||||
|
```bash
|
||||||
|
docker run -d --name=h5ai \
|
||||||
|
-p 80:80 \
|
||||||
|
-v /shared/dir:/h5ai \
|
||||||
|
-v /config/dir:/config \
|
||||||
|
-e PUID=$UID \
|
||||||
|
-e PGID=$GID \
|
||||||
|
-e TZ=Asia/Seoul \
|
||||||
|
--restart unless-stopped \
|
||||||
|
awesometic/h5ai
|
||||||
|
```
|
||||||
|
|
||||||
|
### Keep in safe from anonymous
|
||||||
|
|
||||||
|
If you want to login when visiting the hosted h5ai website so that implement protection from accessing anonymous users, add `HTPASSWD` environments like the below.
|
||||||
|
|
||||||
|
```bash
|
||||||
|
docker run -it --name=h5ai \
|
||||||
|
-p 80:80 \
|
||||||
|
-v /shared/dir:/h5ai \
|
||||||
|
-v /config/dir:/config \
|
||||||
|
-e PUID=$UID \
|
||||||
|
-e PGID=$GID \
|
||||||
|
-e TZ=Asia/Seoul \
|
||||||
|
-e HTPASSWD=true \
|
||||||
|
-e HTPASSWD_USER=awesometic \
|
||||||
|
awesometic/h5ai
|
||||||
|
```
|
||||||
|
|
||||||
|
Then only the user set by `HTPASSWD_USER`, **awesometic** can access this h5ai website with these options.
|
||||||
|
|
||||||
|
Be aware of that the `HTPASSWD` environment variable must be **true** for authentication.
|
||||||
|
|
||||||
|
And aware of this too that you have to run in interaction mode by adding **-it** to set a password for the newly created user for the first time.
|
||||||
|
|
||||||
|
Or, you can set the password for Htpasswd by passing an environment variable. In this case, you shouldn't have to use **-it** option because it is not needed at all.
|
||||||
|
|
||||||
|
### Use it as a real-time service
|
||||||
|
|
||||||
|
Consequently, if you want to run this image as a real-time service, check the following command.
|
||||||
|
|
||||||
|
```bash
|
||||||
|
docker run -d --name=h5ai \
|
||||||
|
-p 80:80 \
|
||||||
|
-v /shared/dir:/h5ai \
|
||||||
|
-v /config/dir:/config \
|
||||||
|
-e PUID=$UID \
|
||||||
|
-e PGID=$GID \
|
||||||
|
-e TZ=Asia/Seoul \
|
||||||
|
-e HTPASSWD=true \
|
||||||
|
-e HTPASSWD_USER=awesometic \
|
||||||
|
-e HTPASSWD_PW=awesometic \
|
||||||
|
--restart unless-stopped \
|
||||||
|
awesometic/h5ai
|
||||||
|
```
|
||||||
|
|
||||||
|
### Visit your website
|
||||||
|
|
||||||
|
To do the test drive, when the container runs then just let your browser browses:
|
||||||
|
|
||||||
|
``` http
|
||||||
|
http://localhost/
|
||||||
|
```
|
||||||
|
|
||||||
|

|
||||||
|
After all, you can see the directories you shared.
|
||||||
|
|
||||||
|
## Caution when update
|
||||||
|
|
||||||
|
**If the new h5ai version releases**, I overwrite all the updated files to the corresponded directories on the project folder. In this sequence, some customized files by you will be replaced into the new one.
|
||||||
|
|
||||||
|
So it is **highly recommended to make back up files of your edits** before update the Docker image.
|
||||||
|
|
||||||
|
To prevent an unexpected accident, I put minimal protection into my `init.sh` script. This checks if the current `private/conf/options.json` file is outdated from the current about to be run. If the current `options.json` is older than the newly loaded one, the script makes its backup file under the `/config` directory. See the followings.
|
||||||
|
|
||||||
|
```bash
|
||||||
|
awesometic@awesometic-nas:docker/h5ai $ ll
|
||||||
|
total 32K
|
||||||
|
-rwxr-xr-x 1 root root 12K Jul 10 2019 20190710_165345_options.json.bak
|
||||||
|
-rwxr-xr-x 1 root root 12K Feb 3 14:46 20210203_144624_options.json.bak
|
||||||
|
drwxr-xr-x 3 root root 4.0K Feb 3 14:46 h5ai
|
||||||
|
drwxr-xr-x 2 root root 4.0K Dec 14 2018 nginx
|
||||||
|
```
|
||||||
|
|
||||||
|
But since I don't know how much the users edit their h5ai files like layout or style, it won't make backups for all of the h5ai related files. So it depends on your caution.
|
||||||
|
|
||||||
|
If you have any good idea, please let me know. 😀
|
||||||
|
|
||||||
|
## Use with HTTPS (SSL)
|
||||||
|
|
||||||
|
It is highly recommended to use this web service with HTTPS for data encryption. Without SSL, the attackers can see your data streams even if you set the htpasswd to authenticate to the web page.
|
||||||
|
|
||||||
|
In this image, it is not provide any HTTPS related settings but you can set HTTPS with another web server. The most frequently used thing for HTTPS is a reverse proxy server, which can be set easiliy with a docker image called [SWAG from LinuxServer.io](https://hub.docker.com/r/linuxserver/swag).
|
||||||
|
|
||||||
|
## TODOs
|
||||||
|
|
||||||
|
* [x] Easy access to options.json
|
||||||
|
* [x] Access permission using htpasswd
|
||||||
|
* [x] Setup PUID/PGID to better handle the permissions
|
||||||
|
* [ ] Expose Nginx, PHP log files to the host
|
||||||
|
|
||||||
|
## License
|
||||||
|
|
||||||
|
This project comes with MIT license. Please see the [license file](LICENSE).
|
||||||
|
|
|
||||||
165
config/_h5ai/.htaccess
Executable file
|
|
@ -0,0 +1,165 @@
|
||||||
|
## details here: https://github.com/h5bp/server-configs-apache
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
## SECURITY ###################################################################
|
||||||
|
|
||||||
|
DirectoryIndex disabled
|
||||||
|
FileETag None
|
||||||
|
ServerSignature Off
|
||||||
|
|
||||||
|
# Apache < 2.3
|
||||||
|
<IfModule !mod_authz_core.c>
|
||||||
|
Order allow,deny
|
||||||
|
Deny from all
|
||||||
|
Satisfy All
|
||||||
|
</IfModule>
|
||||||
|
|
||||||
|
# Apache ≥ 2.3
|
||||||
|
<IfModule mod_authz_core.c>
|
||||||
|
Require all denied
|
||||||
|
</IfModule>
|
||||||
|
|
||||||
|
<IfModule mod_headers.c>
|
||||||
|
Header set X-Content-Type-Options "nosniff"
|
||||||
|
Header unset ETag
|
||||||
|
Header unset X-Powered-By
|
||||||
|
</IfModule>
|
||||||
|
|
||||||
|
<IfModule mod_autoindex.c>
|
||||||
|
Options -Indexes
|
||||||
|
</IfModule>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
## COMPAT #####################################################################
|
||||||
|
|
||||||
|
AddDefaultCharset utf-8
|
||||||
|
|
||||||
|
<IfModule mod_mime.c>
|
||||||
|
AddCharset utf-8 .css .html .js .json .php .svg
|
||||||
|
|
||||||
|
AddType application/font-woff woff
|
||||||
|
AddType application/font-woff2 woff2
|
||||||
|
AddType application/json json
|
||||||
|
AddType application/javascript js
|
||||||
|
AddType application/vnd.ms-fontobject eot
|
||||||
|
AddType application/x-font-ttf ttc ttf
|
||||||
|
AddType image/jpeg jpeg jpg
|
||||||
|
AddType image/png png
|
||||||
|
AddType image/svg+xml svg svgz
|
||||||
|
AddType image/x-icon ico
|
||||||
|
AddType font/opentype otf
|
||||||
|
AddType text/css css
|
||||||
|
AddType text/html html
|
||||||
|
</IfModule>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
## SPEED ######################################################################
|
||||||
|
|
||||||
|
<IfModule mod_expires.c>
|
||||||
|
ExpiresActive on
|
||||||
|
ExpiresDefault "access plus 1 month"
|
||||||
|
|
||||||
|
ExpiresByType application/json "access plus 0 seconds"
|
||||||
|
|
||||||
|
ExpiresByType text/html "access plus 1 minute"
|
||||||
|
|
||||||
|
ExpiresByType image/x-icon "access plus 1 week"
|
||||||
|
|
||||||
|
ExpiresByType application/javascript "access plus 1 year"
|
||||||
|
ExpiresByType image/jpeg "access plus 1 year"
|
||||||
|
ExpiresByType image/png "access plus 1 year"
|
||||||
|
ExpiresByType image/svg+xml "access plus 1 year"
|
||||||
|
ExpiresByType text/css "access plus 1 year"
|
||||||
|
</IfModule>
|
||||||
|
|
||||||
|
<IfModule mod_deflate.c>
|
||||||
|
<IfModule mod_setenvif.c>
|
||||||
|
<IfModule mod_headers.c>
|
||||||
|
SetEnvIfNoCase ^(Accept-EncodXng|X-cept-Encoding|X{15}|~{15}|-{15})$ ^((gzip|deflate)\s*,?\s*)+|[X~-]{4,13}$ HAVE_Accept-Encoding
|
||||||
|
RequestHeader append Accept-Encoding "gzip,deflate" env=HAVE_Accept-Encoding
|
||||||
|
</IfModule>
|
||||||
|
</IfModule>
|
||||||
|
|
||||||
|
# Apache ≥ 2.3
|
||||||
|
<IfModule mod_authz_core.c>
|
||||||
|
# mod_filter as module only available for Apache ≥ 2.3.7
|
||||||
|
<IfModule mod_filter.c>
|
||||||
|
AddOutputFilterByType DEFLATE "application/atom+xml" \
|
||||||
|
"application/javascript" \
|
||||||
|
"application/json" \
|
||||||
|
"application/ld+json" \
|
||||||
|
"application/manifest+json" \
|
||||||
|
"application/rdf+xml" \
|
||||||
|
"application/rss+xml" \
|
||||||
|
"application/schema+json" \
|
||||||
|
"application/vnd.geo+json" \
|
||||||
|
"application/vnd.ms-fontobject" \
|
||||||
|
"application/x-font-ttf" \
|
||||||
|
"application/x-javascript" \
|
||||||
|
"application/x-web-app-manifest+json" \
|
||||||
|
"application/xhtml+xml" \
|
||||||
|
"application/xml" \
|
||||||
|
"font/eot" \
|
||||||
|
"font/opentype" \
|
||||||
|
"image/bmp" \
|
||||||
|
"image/svg+xml" \
|
||||||
|
"image/vnd.microsoft.icon" \
|
||||||
|
"image/x-icon" \
|
||||||
|
"text/cache-manifest" \
|
||||||
|
"text/css" \
|
||||||
|
"text/html" \
|
||||||
|
"text/javascript" \
|
||||||
|
"text/plain" \
|
||||||
|
"text/vcard" \
|
||||||
|
"text/vnd.rim.location.xloc" \
|
||||||
|
"text/vtt" \
|
||||||
|
"text/x-component" \
|
||||||
|
"text/x-cross-domain-policy" \
|
||||||
|
"text/xml"
|
||||||
|
</IfModule>
|
||||||
|
</IfModule>
|
||||||
|
|
||||||
|
# Apache < 2.3
|
||||||
|
<IfModule !mod_authz_core.c>
|
||||||
|
AddOutputFilterByType DEFLATE "application/atom+xml" \
|
||||||
|
"application/javascript" \
|
||||||
|
"application/json" \
|
||||||
|
"application/ld+json" \
|
||||||
|
"application/manifest+json" \
|
||||||
|
"application/rdf+xml" \
|
||||||
|
"application/rss+xml" \
|
||||||
|
"application/schema+json" \
|
||||||
|
"application/vnd.geo+json" \
|
||||||
|
"application/vnd.ms-fontobject" \
|
||||||
|
"application/x-font-ttf" \
|
||||||
|
"application/x-javascript" \
|
||||||
|
"application/x-web-app-manifest+json" \
|
||||||
|
"application/xhtml+xml" \
|
||||||
|
"application/xml" \
|
||||||
|
"font/eot" \
|
||||||
|
"font/opentype" \
|
||||||
|
"image/bmp" \
|
||||||
|
"image/svg+xml" \
|
||||||
|
"image/vnd.microsoft.icon" \
|
||||||
|
"image/x-icon" \
|
||||||
|
"text/cache-manifest" \
|
||||||
|
"text/css" \
|
||||||
|
"text/html" \
|
||||||
|
"text/javascript" \
|
||||||
|
"text/plain" \
|
||||||
|
"text/vcard" \
|
||||||
|
"text/vnd.rim.location.xloc" \
|
||||||
|
"text/vtt" \
|
||||||
|
"text/x-component" \
|
||||||
|
"text/x-cross-domain-policy" \
|
||||||
|
"text/xml"
|
||||||
|
</IfModule>
|
||||||
|
|
||||||
|
<IfModule mod_mime.c>
|
||||||
|
AddEncoding gzip gz
|
||||||
|
AddEncoding gzip svgz
|
||||||
|
</IfModule>
|
||||||
|
</IfModule>
|
||||||
619
config/_h5ai/CHANGELOG.md
Executable file
|
|
@ -0,0 +1,619 @@
|
||||||
|
# Changelog
|
||||||
|
|
||||||
|
|
||||||
|
* now require PHP 7.0.0+
|
||||||
|
* fix archive-single-item problem
|
||||||
|
* add header/footer search stop condition
|
||||||
|
* update languages (`id`, `it`, `pt-br`, `pt-pt`)
|
||||||
|
* add EXIF-based image rotation
|
||||||
|
* add `where` to command detection command list
|
||||||
|
* fix #758
|
||||||
|
* fix #760
|
||||||
|
* add `@babel/core` 7.12.10
|
||||||
|
* add `@babel/preset-env` 7.12.11
|
||||||
|
* remove `babel-loader`
|
||||||
|
* update `eslint` to 7.18.0
|
||||||
|
* update `ghu` to 0.26.0
|
||||||
|
* update `jsdom` to 16.4.0
|
||||||
|
* update `kjua` to 0.9.0
|
||||||
|
* update `lolight` to 1.4.0
|
||||||
|
* update `marked` to 1.2.7
|
||||||
|
* update `null-loader` to 4.0.1
|
||||||
|
* update `scar` to 2.3.0
|
||||||
|
|
||||||
|
|
||||||
|
## v0.29.2 - *2019-03-22*
|
||||||
|
|
||||||
|
* update `babel-loader` to 7.1.1
|
||||||
|
* update `eslint` to 5.15.3
|
||||||
|
* update `ghu` to 0.13.0
|
||||||
|
* update `jsdom` to 14.0.0
|
||||||
|
* update `kjua` to 0.2.0
|
||||||
|
* update `lolight` to 1.0.0
|
||||||
|
* update `scar` to 1.2.0
|
||||||
|
|
||||||
|
|
||||||
|
## v0.29.1 - *2019-01-20*
|
||||||
|
|
||||||
|
* replace `babel-preset-es2015` with `babel-preset-env`
|
||||||
|
* update `eslint` to 5.14.1
|
||||||
|
* update `ghu` to 0.12.0
|
||||||
|
* update `jsdom` to 9.2.0
|
||||||
|
* update `kjua` to 0.1.2
|
||||||
|
* update `lolight` to 0.6.0
|
||||||
|
* update `marked` to 0.6.1
|
||||||
|
* update `normalize.css` to 8.0.1
|
||||||
|
* update `scar` to 1.0.0
|
||||||
|
|
||||||
|
|
||||||
|
## v0.29.0 - *2016-08-12*
|
||||||
|
|
||||||
|
* back to cleaner visual experience
|
||||||
|
* add option to disable sidebar
|
||||||
|
* add options to filter/search ignore case
|
||||||
|
* replace PHP `getenv` calls with `$_SERVER` lookups
|
||||||
|
* add `view.fallbackMode` option to generally serve only fallback mode
|
||||||
|
* serve fallback mode for text browsers (`curl`, `links`, `lynx`, `w3m`)
|
||||||
|
* change type `txt-svg` to `img-svg`, no thumbs but preview
|
||||||
|
* fix a tree indentation glitch
|
||||||
|
* fix shell command detection on Windows
|
||||||
|
* fix Piwik anayltics
|
||||||
|
* fix `.htaccess` auth issues
|
||||||
|
* fix drag-select on scrollable content
|
||||||
|
* fix download-all function
|
||||||
|
* fix audio and video preview loading
|
||||||
|
* fix thumbnail request issues
|
||||||
|
* add `rust` type and icon
|
||||||
|
* add `autoplay` option to audio and video preview
|
||||||
|
* add `--dereference` to `shell-du` to follow sym links
|
||||||
|
* remove *Install* section from `README.md`, causes too much trouble
|
||||||
|
* remove peer5 support
|
||||||
|
* update build process to use `node 6.0+`, no need for babel now
|
||||||
|
* replace `jquery-qrcode` with [`kjua`](https://larsjung.de/kjua/)
|
||||||
|
* replace `prism` with [`lolight`](https://larsjung.de/lolight/)
|
||||||
|
* move deps to `package.json` (`normalize.css`, `kjua`, `lolight` and `marked`)
|
||||||
|
* remove `jQuery`
|
||||||
|
* remove `lodash`
|
||||||
|
* remove [`modulejs`](https://larsjung.de/modulejs/) for now
|
||||||
|
* reduce JS code by 60% (~250kb -> ~100kb)
|
||||||
|
* update languages (`et`, `nl`, `pl`)
|
||||||
|
|
||||||
|
|
||||||
|
## v0.28.0 - *2015-12-19*
|
||||||
|
|
||||||
|
* now require PHP 5.5.0+
|
||||||
|
* change index path to `/_h5ai/public/index.php`
|
||||||
|
* now only `/_h5ai/public/` needs to be web-accessible
|
||||||
|
* add support for custom script and style additions
|
||||||
|
* add options to set font families
|
||||||
|
* add search
|
||||||
|
* add ignorecase sorting option to tree
|
||||||
|
* add wide links in tree view
|
||||||
|
* add IE edge mode
|
||||||
|
* add frontend tests
|
||||||
|
* fix some styles in IE10
|
||||||
|
* fix preview bottom bar for small screen widths
|
||||||
|
* lots of code cleanup and refactorings
|
||||||
|
* change API
|
||||||
|
* update build process, now uses [`ghu`](https://larsjung.de/ghu/)
|
||||||
|
* switch from jshint and jscs to [`eslint`](http://eslint.org/)
|
||||||
|
* update `jQuery` to 2.1.4
|
||||||
|
* update `lodash` to 3.9.3 (add debounce and trim)
|
||||||
|
* update `marked` to 0.3.5
|
||||||
|
* update `modulejs` to 1.13.0
|
||||||
|
* update `prism` to 2015-12-19
|
||||||
|
* update h5bp styles to 5.2.0
|
||||||
|
* update `normalize.css` to 3.0.3
|
||||||
|
* remove `Moment.js`
|
||||||
|
|
||||||
|
|
||||||
|
## v0.27.0 - *2015-04-06*
|
||||||
|
|
||||||
|
* new layout
|
||||||
|
* add editorconfig
|
||||||
|
* drop support for IE9 (gets fallback)
|
||||||
|
* update sidebar settings
|
||||||
|
* add info sidebar
|
||||||
|
* add opt-out for click'n'drag selection
|
||||||
|
* add package name option for single selections
|
||||||
|
* add initial support for Peer5
|
||||||
|
* add option to down-sample images for preview
|
||||||
|
* add option for natural sorting in tree sidebar
|
||||||
|
* fix problems with files/folders named `0`
|
||||||
|
* change font from `Ubuntu` to `Roboto` (smaller footprint, clearer for small sizes)
|
||||||
|
* switch back to Google Fonts
|
||||||
|
* improve PDF thumbnail quality
|
||||||
|
* improve drag-select
|
||||||
|
* improve image preview
|
||||||
|
* prevent listing `_h5ai` folder and subfolders
|
||||||
|
* update build process, now uses [`mkr`](https://larsjung.de/mkr/) and [`fQuery`](https://larsjung.de/fquery/)
|
||||||
|
* update `jQuery` to 2.1.3
|
||||||
|
* update `jQuery.qrcode` to 0.11.0
|
||||||
|
* update `Lo-Dash` to 3.6.0
|
||||||
|
* update `Modernizr` to 2.8.3
|
||||||
|
* update `modulejs` to 1.4.0
|
||||||
|
* update `Moment.js` to 2.9.0
|
||||||
|
* update `Prism` to 2015-04-05
|
||||||
|
* remove deprecated Google Analytics code
|
||||||
|
* remove `jQuery.fracs`
|
||||||
|
* remove `jQuery.scrollpanel`
|
||||||
|
* remove `jQuery.mousewheel`
|
||||||
|
* update languages (`af`, `es`, `ja`, `ko`, `ru`, `zh-cn`)
|
||||||
|
|
||||||
|
|
||||||
|
## v0.26.1 - *2014-08-17*
|
||||||
|
|
||||||
|
* fix links
|
||||||
|
|
||||||
|
|
||||||
|
## v0.26.0 - *2014-08-16*
|
||||||
|
|
||||||
|
* remove True Type fonts
|
||||||
|
* outsource themes to [h5ai-themes](https://github.com/lrsjng/h5ai-themes)
|
||||||
|
* add filesize fallback for large files and 32bit PHP
|
||||||
|
* fix server detection
|
||||||
|
* add config file tests to info page
|
||||||
|
* remove JSON shim
|
||||||
|
* add caching of command checks
|
||||||
|
* update `jQuery.mousewheel` to 3.1.12
|
||||||
|
* update `jQuery.qrcode` to 0.8.0
|
||||||
|
* replace `markdown` with [`marked`](https://github.com/chjj/marked) 0.3.2
|
||||||
|
* update `modulejs` to 0.4.5
|
||||||
|
* update `Moment.js` to 2.8.1
|
||||||
|
* replace `underscore` with [`Lo-Dash`](https://github.com/lodash/lodash) 2.4.1
|
||||||
|
* replace `SyntaxHighlighter` with [`Prism`](http://prismjs.com) 2014-08-04
|
||||||
|
|
||||||
|
|
||||||
|
## v0.25.2 - *2014-07-01*
|
||||||
|
|
||||||
|
* add optional info page protection
|
||||||
|
* fix `short_open_tag` issues for PHP < 5.4.0
|
||||||
|
* fix default folder download (`alwaysVisible` option)
|
||||||
|
* minor fixes
|
||||||
|
|
||||||
|
|
||||||
|
## v0.25.1 - *2014-06-25*
|
||||||
|
|
||||||
|
* fix broken paths for filenames containing '+' characters
|
||||||
|
* fix Google Universal Analytics
|
||||||
|
* fix file type check
|
||||||
|
|
||||||
|
|
||||||
|
## v0.25.0 - *2014-06-22*
|
||||||
|
|
||||||
|
* add sidebar
|
||||||
|
* add initial theme support
|
||||||
|
* add icons from [Evolvere Icon Theme](http://franksouza183.deviantart.com/art/Evolvere-Icon-theme-440718295)
|
||||||
|
* add PHP variant to calc folder sizes
|
||||||
|
* add scroll position reset on location change (issue [#279](https://github.com/lrsjng/h5ai/issues/279))
|
||||||
|
* add option to hide unreadable files
|
||||||
|
* add option where to place folders (top, inplace, bottom)
|
||||||
|
* add markdown support for custom header and footer files
|
||||||
|
* add video and audio preview via HTML5 elements (no fallback, works best in Chrome)
|
||||||
|
* add filter reset on location change
|
||||||
|
* add option to make download button always visible
|
||||||
|
* add Google UA support
|
||||||
|
* extend selectable icon sizes (add 128px, 192px, 256px, 384px)
|
||||||
|
* improve preview GUI
|
||||||
|
* disable thumbs in `cache` folder
|
||||||
|
* fix QR code URI origin (issue [#287](https://github.com/lrsjng/h5ai/issues/287))
|
||||||
|
* replace PHP backtick operator with `exec`
|
||||||
|
* remove server side file manipulation extensions `dropbox`, `delete` and `rename`
|
||||||
|
* update `H5BP` to 4.3.0
|
||||||
|
* update `jQuery` to 2.1.1
|
||||||
|
* update `json2.js` to 2014-02-04
|
||||||
|
* update `markdown-js` to 0.5.0
|
||||||
|
* update `Modernizr` to 2.8.2
|
||||||
|
* update `Moment.js` to 2.6.0
|
||||||
|
* update `Underscore.js` to 1.6.0
|
||||||
|
* update languages (`bg`, `ko`, `pt`, `sl`, `sv`, `zh-cn`)
|
||||||
|
|
||||||
|
|
||||||
|
## v0.24.1 - *2014-04-09*
|
||||||
|
|
||||||
|
* security fixes! (issues [#268](https://github.com/lrsjng/h5ai/issues/268), [#269](https://github.com/lrsjng/h5ai/issues/269))
|
||||||
|
* fix WinOS command detection
|
||||||
|
* update languages (`fi`, `fr`, `hi`, `it`, `zh-tw`)
|
||||||
|
|
||||||
|
|
||||||
|
## v0.24.0 - *2013-09-04*
|
||||||
|
|
||||||
|
* updates image and text preview
|
||||||
|
* adds variable icon sizes
|
||||||
|
* adds optional natural sort of items
|
||||||
|
* adds optional checkboxes to select items
|
||||||
|
* adds text preview modes: none, fixed, markdown
|
||||||
|
* optionally hide folders in main view
|
||||||
|
* makes use of EXIF thumbnails optional
|
||||||
|
* fixes file deletion of multiple files
|
||||||
|
* fixes `setParentFolderLabels = false`
|
||||||
|
* fixes shell-arg and RegExp escape issues
|
||||||
|
* cleans code
|
||||||
|
* updates info page `/_h5ai`
|
||||||
|
* adds `aiff` to `audio` types
|
||||||
|
* adds `da` translation by Ronnie Milbo
|
||||||
|
* updates to `pl` translation by Mark
|
||||||
|
|
||||||
|
|
||||||
|
## v0.23.0 - *2013-07-21*
|
||||||
|
|
||||||
|
* removes `aai` mode!
|
||||||
|
* drops support for IE7+8 (simple fallback, same as no javascript)
|
||||||
|
* uses History API if available (way faster browsing)
|
||||||
|
* faster thumbnail generation if EXIF thumbnails available
|
||||||
|
* adds optional custom headers/footers that are propageted to all subfolders
|
||||||
|
* optional hide parent folder links
|
||||||
|
* some fixes on previews
|
||||||
|
* speeds up packaged downloads
|
||||||
|
* add line wrap and line highlighting (on hover) to text preview
|
||||||
|
* new design (colors, images)
|
||||||
|
* now uses scalable images for the interface
|
||||||
|
* fixes filter (ignore parent folder, display of `no match`)
|
||||||
|
* lots of small fixes
|
||||||
|
* updates `H5BP` to 4.2.0
|
||||||
|
* updates `jQuery` to 2.0.3
|
||||||
|
* updates `jQuery.mousewheel` to 3.1.3
|
||||||
|
* updates `Moment.js` to 2.1.0
|
||||||
|
* updates `markdown-js` to 0.4.0-9c21acdf08
|
||||||
|
* updates `json2.js` to 2013-05-26
|
||||||
|
* adds `uk` translation by Viktor Matveenko
|
||||||
|
* updates to `pl` translation by Mark
|
||||||
|
|
||||||
|
|
||||||
|
## v0.22.1 - *2012-10-16*
|
||||||
|
|
||||||
|
* bug fix concerning API requests in PHP mode
|
||||||
|
* minor changes in responsive styles
|
||||||
|
|
||||||
|
|
||||||
|
## v0.22 - *2012-10-14*
|
||||||
|
|
||||||
|
* general changes h5ai directory layout and configuration
|
||||||
|
* splits configuration file (`config.json`) into files `options.json`, `types.json` and `langs.json`
|
||||||
|
* localization now in separate files
|
||||||
|
* adds auto-refresh
|
||||||
|
* adds drag'n'drop upload (PHP, experimental)
|
||||||
|
* adds file deletion (PHP, experimental)
|
||||||
|
* cleans and improves PHP code
|
||||||
|
* PHP no longer respects htaccess restrictions (so be careful)
|
||||||
|
* PHP ignore patterns might include paths now
|
||||||
|
* improves separation between aai and php mode
|
||||||
|
* improves performance in aai mode
|
||||||
|
* adds optional binary prefixes for file sizes
|
||||||
|
* improves filter: autofocus on keypress, clear on `ESC`
|
||||||
|
* download packages now packaged relative to current folder
|
||||||
|
* download package name changable
|
||||||
|
* splits type `js` into `js` and `json`
|
||||||
|
* prevents some errors with files > 2GB on 32bit OS
|
||||||
|
* adds max subfolder size in tree view
|
||||||
|
* adds ctrl-click file selection
|
||||||
|
* adds Piwik analytics extension
|
||||||
|
* temp download packages are now stored in the `cache`-folder and deleted as soon as possible
|
||||||
|
* updates translations
|
||||||
|
* adds `he` translation by [Tomer Cohen](https://github.com/tomer)
|
||||||
|
* updates 3rd party libs
|
||||||
|
|
||||||
|
|
||||||
|
## v0.21 - *2012-08-06*
|
||||||
|
|
||||||
|
* fixes misaligned image previews
|
||||||
|
* adds no JavaScript fallback to PHP version
|
||||||
|
* fixes duplicate tree entries and empty main views
|
||||||
|
* adds Google Analytics support (async)
|
||||||
|
* improves filter (now ignorecase, now only checks if chars in right order)
|
||||||
|
* adds keyboard support to image preview (space, enter, backspace, left, right, up, down, f, esc)
|
||||||
|
* adds text file preview and highlighting with [SyntaxHighlighter](http://alexgorbatchev.com/SyntaxHighlighter/) (same keys as img preview)
|
||||||
|
* adds Markdown preview with [markdown-js](https://github.com/evilstreak/markdown-js)
|
||||||
|
* adds new type `markdown`
|
||||||
|
* changes language code `gr` to `el`
|
||||||
|
* adds localization for filter placeholder
|
||||||
|
* adds `hu` translation by [Rodolffo](https://github.com/Rodolffo)
|
||||||
|
* updates to [jQuery.qrcode](https://larsjung.de/qrcode/) 0.2
|
||||||
|
* updates to [jQuery.scrollpanel](https://larsjung.de/scrollpanel/) 0.1
|
||||||
|
* updates to [modulejs](https://larsjung.de/modulejs/) 0.2
|
||||||
|
* updates to [Moment.js](http://momentjs.com) 1.7.0
|
||||||
|
* updates to [Underscore.js](http://underscorejs.org) 1.3.3
|
||||||
|
|
||||||
|
|
||||||
|
## v0.20 - *2012-05-11*
|
||||||
|
|
||||||
|
* adds image preview
|
||||||
|
* adds thumbnails for video and pdf
|
||||||
|
* adds support for lighttpd, nginx and cherokee and maybe other webservers with PHP
|
||||||
|
* adds folder size in PHP version via shell `du`
|
||||||
|
* fixes some localization problems
|
||||||
|
* updates info page at `/_h5ai/`
|
||||||
|
* switches to JSHint
|
||||||
|
|
||||||
|
|
||||||
|
## v0.19 - *2012-04-19*
|
||||||
|
|
||||||
|
* adds lots of config options
|
||||||
|
* changes in `config.js` and `h5ai.htaccess`
|
||||||
|
* fixes js problems in IE 7+8
|
||||||
|
* hides broken tree view in IE < 9, adds a message to the footer
|
||||||
|
* removes hash changes since they break logical browser history
|
||||||
|
* fixes thumbnail size for portrait images in icon view
|
||||||
|
* fixes problems with file type recognition
|
||||||
|
* adds an info page at `/_h5ai/`
|
||||||
|
* sort order is preserved while browsing
|
||||||
|
* removes PHP error messages on thumbnail generation
|
||||||
|
* fixes PHP some problems with packed download
|
||||||
|
* adds support for tarred downloads
|
||||||
|
* changes crumb image for folders with an index file
|
||||||
|
* adds `index.php` to use h5ai in non-Apache environments
|
||||||
|
* switches from [Datejs](http://www.datejs.com) to [Moment.js](http://momentjs.com)
|
||||||
|
* adds [underscore.js](http://underscorejs.org)
|
||||||
|
* fixes mousewheel problems, updates [jQuery.mousewheel](https://github.com/brandonaaron/jquery-mousewheel) to 3.0.6
|
||||||
|
* updates `lv` translation
|
||||||
|
* adds `ro` translation by [Jakob Cosoroabă](https://github.com/midday)
|
||||||
|
* adds `ja` translation by [metasta](https://github.com/metasta)
|
||||||
|
* adds `nb` translation by [Sindre Sorhus](https://github.com/sindresorhus)
|
||||||
|
* adds `sr` translation by [vBm](https://github.com/vBm)
|
||||||
|
* adds `gr` translation by [xhmikosr](https://github.com/xhmikosr)
|
||||||
|
|
||||||
|
|
||||||
|
## v0.18 - *2012-02-24*
|
||||||
|
|
||||||
|
* adds optional QRCode display
|
||||||
|
* adds optional filtering for displayed files and folders
|
||||||
|
* updates design
|
||||||
|
* improves zipped download
|
||||||
|
* adds support for zipped download of htaccess restricted files
|
||||||
|
* changes h5ai.htaccess
|
||||||
|
* custom headers/footers are now optional and disabled by default
|
||||||
|
* fixes problems with folder recognition in the JS version
|
||||||
|
* fixes include problems in PHP version
|
||||||
|
* fixes path problems on servers running on Windows in PHP version
|
||||||
|
* fixes broken links in custom headers/footers while zipped download enabled
|
||||||
|
* fixes problems with thumbnails for files with single or double quotes in filename
|
||||||
|
* improves url hashes
|
||||||
|
* updates year in `LICENSE.TXT`
|
||||||
|
* updates es translation
|
||||||
|
* adds `zh-tw` translation by [Yao Wei](https://github.com/medicalwei)
|
||||||
|
* updates `zh-cn` translation
|
||||||
|
|
||||||
|
|
||||||
|
## v0.17 - *2011-11-28*
|
||||||
|
|
||||||
|
* h5ai is now located in `_h5ai` to reduce collisions
|
||||||
|
* switches from HTML5 Boilerplate reset to normalization
|
||||||
|
* adds some style changes for small devices
|
||||||
|
* configuration (options, types, translations) now via `config.js`
|
||||||
|
* icons for JS version are now configured via `config.js`
|
||||||
|
* sort order configuration changed
|
||||||
|
* sorting is now done without page reload
|
||||||
|
* adds `customHeader` and `customFooter` to `config.js`
|
||||||
|
* supports restricted folders to some extent
|
||||||
|
* some style changes on tree and language menu
|
||||||
|
* fixes total file/folder count in status bar
|
||||||
|
* adds support for use with userdir (requires some manual changes)
|
||||||
|
|
||||||
|
|
||||||
|
## v0.16 - *2011-11-02*
|
||||||
|
|
||||||
|
* sorts translations in `options.js`
|
||||||
|
* improves HTML head sections
|
||||||
|
* refactors JavaScript and PHP a lot
|
||||||
|
* improves/fixes file selection for zipped download
|
||||||
|
* fixes scrollbar and header/footer link issues (didn't work when zipped download enabled)
|
||||||
|
* adds support for ctrl-select
|
||||||
|
* `dateFormat` in `options.js` changed, now affecting JS and PHP version
|
||||||
|
* `dateFormat` is localizable by adding it to a translation in `options.js`
|
||||||
|
* PHP version is now configurable via `php/config.php` (set custom doc root and other PHP related things)
|
||||||
|
* image thumbs and zipped download is disabled by default now, but works fine if PHP is configured
|
||||||
|
|
||||||
|
|
||||||
|
## v0.15.2 - *2011-09-18*
|
||||||
|
|
||||||
|
* adds `it` translation by [Salvo Gentile](https://github.com/SalvoGentile) and [Marco Patriarca](https://github.com/Fexys)
|
||||||
|
* switches build process from scripp to wepp
|
||||||
|
|
||||||
|
|
||||||
|
## v0.15.1 - *2011-09-06*
|
||||||
|
|
||||||
|
* fixes security issues with the zipped download feature
|
||||||
|
* makes zipped download optional (but enabled by default)
|
||||||
|
|
||||||
|
|
||||||
|
## v0.15 - *2011-09-04*
|
||||||
|
|
||||||
|
* adds zipped download for selected files
|
||||||
|
* cleans and refactores
|
||||||
|
|
||||||
|
|
||||||
|
## v0.14.1 - *2011-09-01*
|
||||||
|
|
||||||
|
* display meta information in bottom bar (icon view)
|
||||||
|
* adds `zh-cn` translation by [Dongsheng Cai](https://github.com/dongsheng)
|
||||||
|
* adds `pl` translation by Radosław Zając
|
||||||
|
* adds `ru` translation by Богдан Илюхин
|
||||||
|
|
||||||
|
|
||||||
|
## v0.14 - *2011-08-16*
|
||||||
|
|
||||||
|
* adds image thumbnails for PHP version
|
||||||
|
* new option `slideTree` to turn off auto slide in
|
||||||
|
|
||||||
|
|
||||||
|
## v0.13.2 - *2011-08-12*
|
||||||
|
|
||||||
|
* changes in `/h5ai/.htaccess` ... PHP configuration ...
|
||||||
|
|
||||||
|
|
||||||
|
## v0.13.1 - *2011-08-12*
|
||||||
|
|
||||||
|
* fixes initial tree display
|
||||||
|
* adds sort order option
|
||||||
|
* adds/fixes some translations
|
||||||
|
* adds `lv` translation by Sandis Veinbergs
|
||||||
|
|
||||||
|
|
||||||
|
## v0.13 - *2011-08-06*
|
||||||
|
|
||||||
|
* adds PHP implementation! (should work with PHP 5.2+)
|
||||||
|
* adds new options
|
||||||
|
* changes layout of the bottom bar to display status information
|
||||||
|
* adds language selector to the bottom bar
|
||||||
|
* quotes keys in `options.js` to make it valid json
|
||||||
|
* changes value of option `lang` from `undefined` to `null`
|
||||||
|
* adds some new keys to `h5aiLangs`
|
||||||
|
* adds browser caching rules for css and js
|
||||||
|
* adds `pt` translation by [Jonnathan](https://github.com/jonnsl)
|
||||||
|
* adds `bg` translation by George Andonov
|
||||||
|
|
||||||
|
|
||||||
|
## v0.12.3 - *2011-07-30*
|
||||||
|
|
||||||
|
* adds `tr` translation by [Batuhan Icoz](https://github.com/batuhanicoz)
|
||||||
|
|
||||||
|
|
||||||
|
## v0.12.2 - *2011-07-30*
|
||||||
|
|
||||||
|
* adds `es` translation by Jose David Calderon Serrano
|
||||||
|
|
||||||
|
|
||||||
|
## v0.12.1 - *2011-07-29*
|
||||||
|
|
||||||
|
* fixes unchecked use of console.log
|
||||||
|
|
||||||
|
|
||||||
|
## v0.12 - *2011-07-28*
|
||||||
|
|
||||||
|
* improves performance
|
||||||
|
|
||||||
|
|
||||||
|
## v0.11 - *2011-07-27*
|
||||||
|
|
||||||
|
* changes license to MIT license, see `LICENSE.txt`
|
||||||
|
|
||||||
|
|
||||||
|
## v0.10.2 - *2011-07-26*
|
||||||
|
|
||||||
|
* improves tree scrollbar
|
||||||
|
|
||||||
|
|
||||||
|
## v0.10.1 - *2011-07-24*
|
||||||
|
|
||||||
|
* fixes problems with ' in links
|
||||||
|
|
||||||
|
|
||||||
|
## v0.10 - *2011-07-24*
|
||||||
|
|
||||||
|
* fixes problems with XAMPP on Windows (see `dot.htaccess` comments for instructions)
|
||||||
|
* fixes tree fade-in-fade-out effect for small displays ([issue #6](https://github.com/lrsjng/h5ai/issues/6))
|
||||||
|
* adds custom scrollbar to tree ([issue #6](https://github.com/lrsjng/h5ai/issues/6))
|
||||||
|
* fixes broken links caused by URI encoding/decoding ([issue #9](https://github.com/lrsjng/h5ai/issues/9))
|
||||||
|
* adds "empty" to localization (hope Google Translate did a good job here)
|
||||||
|
|
||||||
|
|
||||||
|
## v0.9 - *2011-07-18*
|
||||||
|
|
||||||
|
* links hover states between crumb, extended view and tree
|
||||||
|
* fixes size of tree view (now there's a ugly scrollbar, hopefully will be fixed)
|
||||||
|
* refactores js to improve performance and cleaned code
|
||||||
|
* adds caching for folder status codes and content
|
||||||
|
* adds `fr` translation by [Nicolas](https://github.com/Nicosmos)
|
||||||
|
* adds `nl` translation by [Stefan de Konink](https://github.com/skinkie)
|
||||||
|
* adds `sv` translation by Oscar Carlsson
|
||||||
|
|
||||||
|
|
||||||
|
## v0.8 - *2011-07-08*
|
||||||
|
|
||||||
|
* removes slashes from folder labels
|
||||||
|
* optionally rename parent folder entries to real folder names, see `options.js`
|
||||||
|
* long breadcrumbs (multiple rows) no longer hide content
|
||||||
|
* error folder icons are opaque now
|
||||||
|
* refactores js a lot (again...)
|
||||||
|
|
||||||
|
|
||||||
|
## v0.7 - *2011-07-07*
|
||||||
|
|
||||||
|
* removes shadows
|
||||||
|
* smarter tree side bar
|
||||||
|
|
||||||
|
|
||||||
|
## v0.6 - *2011-07-05*
|
||||||
|
|
||||||
|
* refactores js
|
||||||
|
* adds localization, see `options.js`
|
||||||
|
|
||||||
|
|
||||||
|
## v0.5.3 - *2011-07-04*
|
||||||
|
|
||||||
|
* refactores js
|
||||||
|
* adds basic options support via `options.js`
|
||||||
|
* adds comments to `options.js`
|
||||||
|
* adds optional tree sidebar
|
||||||
|
|
||||||
|
|
||||||
|
## v0.5.2 - *2011-07-02*
|
||||||
|
|
||||||
|
* details view adjusts to window width
|
||||||
|
* links icon for *.gz and *.bz2
|
||||||
|
|
||||||
|
|
||||||
|
## v0.5.1 - *2011-07-01*
|
||||||
|
|
||||||
|
* disables tree sidebar for now, since it had unwanted side effects
|
||||||
|
|
||||||
|
|
||||||
|
## v0.5 - *2011-07-01*
|
||||||
|
|
||||||
|
* adds tree sidebar
|
||||||
|
* some refactorings
|
||||||
|
|
||||||
|
|
||||||
|
## v0.4 - *2011-06-27*
|
||||||
|
|
||||||
|
* adds better fallback, in case JavaScript is disabled
|
||||||
|
* rewrites js, fixed middle-button click etc. problems
|
||||||
|
* refactors css
|
||||||
|
* sorts, adds and moves icons and images
|
||||||
|
* updates dot.access
|
||||||
|
|
||||||
|
|
||||||
|
## v0.3.2 - *2011-06-24*
|
||||||
|
|
||||||
|
* removes lib versions from file names
|
||||||
|
* adds 'empty' indicator for icons view
|
||||||
|
|
||||||
|
|
||||||
|
## v0.3.1 - *2011-06-24*
|
||||||
|
|
||||||
|
* refactores js
|
||||||
|
* adds `folderClick` and `fileClick` callback hooks
|
||||||
|
* fixes .emtpy style
|
||||||
|
|
||||||
|
|
||||||
|
## v0.3 - *2011-06-23*
|
||||||
|
|
||||||
|
* includes build stuff, files previously found in the base directory are now located in folder `target`
|
||||||
|
* styles and scripts are now minified
|
||||||
|
* adds Modernizr 2.0.4 for future use
|
||||||
|
* updates jQuery to version 1.6.1
|
||||||
|
|
||||||
|
|
||||||
|
## v0.2.3 - *2011-06-17*
|
||||||
|
|
||||||
|
* more refactoring in main.js
|
||||||
|
|
||||||
|
|
||||||
|
## v0.2.2 - *2011-06-16*
|
||||||
|
|
||||||
|
* refactores a lot, adds some comments
|
||||||
|
* includes fixes from [NumEricR](https://github.com/NumEricR)
|
||||||
|
* adds top/bottom message support, only basicly styled
|
||||||
|
|
||||||
|
|
||||||
|
## v0.2.1 - *2011-06-16*
|
||||||
|
|
||||||
|
* fixes croped filenames
|
||||||
|
* fixes missing .png extension in header
|
||||||
|
* adds some color to the links
|
||||||
|
* adds changelog
|
||||||
|
|
||||||
|
|
||||||
|
## v0.2 - *2011-06-15*
|
||||||
|
|
||||||
|
* adds icon view
|
||||||
73
config/_h5ai/README.md
Executable file
|
|
@ -0,0 +1,73 @@
|
||||||
|
# h5ai
|
||||||
|
|
||||||
|
[![license][license-img]][github] [![web][web-img]][web] [![github][github-img]][github]
|
||||||
|
|
||||||
|
A modern HTTP web server index for Apache httpd, lighttpd, and nginx.
|
||||||
|
|
||||||
|
|
||||||
|
## Important
|
||||||
|
|
||||||
|
* Do **not** install any files from the `src` folder, they need to be
|
||||||
|
preprocessed to work correctly!
|
||||||
|
* Find a preprocessed package and detailed install instructions on the
|
||||||
|
[project page][web].
|
||||||
|
* For bug reports and feature requests please use [issues][github-issues].
|
||||||
|
|
||||||
|
|
||||||
|
## Build
|
||||||
|
|
||||||
|
There are installation ready packages for the latest [releases][release] and
|
||||||
|
[dev builds][develop]. But to build **h5ai** yourself either `git clone` or
|
||||||
|
download the repository. From within the root folder run the following
|
||||||
|
commands to find a fresh zipball in folder `build` (tested on linux only,
|
||||||
|
requires [`node 10.0+`][node] to be installed, might work on other
|
||||||
|
configurations).
|
||||||
|
|
||||||
|
~~~sh
|
||||||
|
> npm install
|
||||||
|
> npm run build
|
||||||
|
~~~
|
||||||
|
|
||||||
|
|
||||||
|
## License
|
||||||
|
|
||||||
|
The MIT License (MIT)
|
||||||
|
|
||||||
|
Copyright (c) 2020 Lars Jung (https://larsjung.de)
|
||||||
|
|
||||||
|
Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||||
|
of this software and associated documentation files (the "Software"), to deal
|
||||||
|
in 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 above copyright notice and this permission notice shall be included in
|
||||||
|
all copies or substantial portions of the Software.
|
||||||
|
|
||||||
|
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
|
||||||
|
AUTHORS 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 IN
|
||||||
|
THE SOFTWARE.
|
||||||
|
|
||||||
|
|
||||||
|
## References
|
||||||
|
|
||||||
|
**h5ai** profits from other projects, all of them licensed under the MIT license
|
||||||
|
too. Exceptions are some [Material Design icons][material-design-icons] (CC BY 4.0).
|
||||||
|
|
||||||
|
|
||||||
|
[web]: https://larsjung.de/h5ai/
|
||||||
|
[github]: https://github.com/lrsjng/h5ai
|
||||||
|
[github-issues]: https://github.com/lrsjng/h5ai/issues
|
||||||
|
[release]: https://release.larsjung.de/h5ai/
|
||||||
|
[develop]: https://release.larsjung.de/h5ai/develop/
|
||||||
|
[node]: https://nodejs.org
|
||||||
|
[material-design-icons]: https://github.com/google/material-design-icons
|
||||||
|
|
||||||
|
[license-img]: https://img.shields.io/badge/license-MIT-a0a060.svg?style=flat-square
|
||||||
|
[web-img]: https://img.shields.io/badge/web-larsjung.de/h5ai-a0a060.svg?style=flat-square
|
||||||
|
[github-img]: https://img.shields.io/badge/github-lrsjng/h5ai-a0a060.svg?style=flat-square
|
||||||
9
config/_h5ai/private/cache/README.md
vendored
Executable file
|
|
@ -0,0 +1,9 @@
|
||||||
|
# Cache
|
||||||
|
|
||||||
|
Private cache.
|
||||||
|
|
||||||
|
This directory is used for server side caching. To use caching make this
|
||||||
|
directory writable for your webserver.
|
||||||
|
|
||||||
|
There is no critical data in here. You can savely remove any content. This
|
||||||
|
will clear the cache.
|
||||||
18
config/_h5ai/private/conf/l10n/af.json
Executable file
|
|
@ -0,0 +1,18 @@
|
||||||
|
{
|
||||||
|
"lang": "afrikaans",
|
||||||
|
|
||||||
|
"dateFormat": "YYYY-MM-DD HH:mm",
|
||||||
|
"details": "besonderhede",
|
||||||
|
"download": "aflaai",
|
||||||
|
"empty": "leeg",
|
||||||
|
"files": "lêers",
|
||||||
|
"filter": "filter",
|
||||||
|
"folders": "gidse",
|
||||||
|
"grid": "rooster",
|
||||||
|
"icons": "ikone",
|
||||||
|
"lastModified": "Laas verander",
|
||||||
|
"name": "Naam",
|
||||||
|
"noMatch": "geen resultaat",
|
||||||
|
"parentDirectory": "Hoër Vlak",
|
||||||
|
"size": "Grootte"
|
||||||
|
}
|
||||||
18
config/_h5ai/private/conf/l10n/bg.json
Executable file
|
|
@ -0,0 +1,18 @@
|
||||||
|
{
|
||||||
|
"lang": "български",
|
||||||
|
|
||||||
|
"dateFormat": "DD-MM-YYYY HH:mm",
|
||||||
|
"details": "детайли",
|
||||||
|
"download": "изтегляне",
|
||||||
|
"empty": "празна",
|
||||||
|
"files": "файлове",
|
||||||
|
"filter": "филтър",
|
||||||
|
"folders": "директории",
|
||||||
|
"grid": "мрежа",
|
||||||
|
"icons": "икони",
|
||||||
|
"lastModified": "Последна промяна",
|
||||||
|
"name": "Име",
|
||||||
|
"noMatch": "няма съвпадение",
|
||||||
|
"parentDirectory": "Предходна директория",
|
||||||
|
"size": "Размер"
|
||||||
|
}
|
||||||
18
config/_h5ai/private/conf/l10n/cs.json
Executable file
|
|
@ -0,0 +1,18 @@
|
||||||
|
{
|
||||||
|
"lang": "čeština",
|
||||||
|
|
||||||
|
"dateFormat": "DD.MM.YYYY HH:mm",
|
||||||
|
"details": "Podrobnosti",
|
||||||
|
"download": "Stáhnout",
|
||||||
|
"empty": "Prázdná složka",
|
||||||
|
"files": "souborů",
|
||||||
|
"filter": "Filtr",
|
||||||
|
"folders": "složek",
|
||||||
|
"grid": "Seznam",
|
||||||
|
"icons": "Velké ikony",
|
||||||
|
"lastModified": "Datum změny",
|
||||||
|
"name": "Název",
|
||||||
|
"noMatch": "Žádná shoda",
|
||||||
|
"parentDirectory": "Nadřazený adresář",
|
||||||
|
"size": "Velikost"
|
||||||
|
}
|
||||||
18
config/_h5ai/private/conf/l10n/da.json
Executable file
|
|
@ -0,0 +1,18 @@
|
||||||
|
{
|
||||||
|
"lang": "dansk",
|
||||||
|
|
||||||
|
"dateFormat": "DD-MM-YYYY HH:mm",
|
||||||
|
"details": "detaljer",
|
||||||
|
"download": "download",
|
||||||
|
"empty": "tom",
|
||||||
|
"files": "filer",
|
||||||
|
"filter": "filter",
|
||||||
|
"folders": "mapper",
|
||||||
|
"grid": "grid",
|
||||||
|
"icons": "ikoner",
|
||||||
|
"lastModified": "Sidst ændret",
|
||||||
|
"name": "Navn",
|
||||||
|
"noMatch": "ingen match",
|
||||||
|
"parentDirectory": "Overordnet mappe",
|
||||||
|
"size": "Størrelse"
|
||||||
|
}
|
||||||
22
config/_h5ai/private/conf/l10n/de.json
Executable file
|
|
@ -0,0 +1,22 @@
|
||||||
|
{
|
||||||
|
"lang": "deutsch",
|
||||||
|
|
||||||
|
"dateFormat": "DD.MM.YYYY HH:mm",
|
||||||
|
"details": "Details",
|
||||||
|
"download": "Download",
|
||||||
|
"empty": "leer",
|
||||||
|
"files": "Dateien",
|
||||||
|
"filter": "filtern",
|
||||||
|
"folders": "Ordner",
|
||||||
|
"grid": "Gitter",
|
||||||
|
"icons": "Icons",
|
||||||
|
"language": "Sprache",
|
||||||
|
"lastModified": "Geändert",
|
||||||
|
"name": "Name",
|
||||||
|
"noMatch": "keine Treffer",
|
||||||
|
"parentDirectory": "Übergeordnetes Verzeichnis",
|
||||||
|
"search": "suchen",
|
||||||
|
"size": "Größe",
|
||||||
|
"tree": "Baum",
|
||||||
|
"view": "Ansicht"
|
||||||
|
}
|
||||||
18
config/_h5ai/private/conf/l10n/el.json
Executable file
|
|
@ -0,0 +1,18 @@
|
||||||
|
{
|
||||||
|
"lang": "ελληνικά",
|
||||||
|
|
||||||
|
"dateFormat": "DD/MM/YYYY HH:mm",
|
||||||
|
"details": "λεπτομέρειες",
|
||||||
|
"download": "μεταμόρφωση",
|
||||||
|
"empty": "κενό",
|
||||||
|
"files": "αρχεία",
|
||||||
|
"filter": "φίλτρο",
|
||||||
|
"folders": "φάκελοι",
|
||||||
|
"grid": "πλέγμα",
|
||||||
|
"icons": "εικονίδια",
|
||||||
|
"lastModified": "Τελευταία τροποποίηση",
|
||||||
|
"name": "Όνομα",
|
||||||
|
"noMatch": "κανένα αποτέλεσμα",
|
||||||
|
"parentDirectory": "Προηγούμενος Κατάλογος",
|
||||||
|
"size": "Μέγεθος"
|
||||||
|
}
|
||||||
23
config/_h5ai/private/conf/l10n/en.json
Executable file
|
|
@ -0,0 +1,23 @@
|
||||||
|
/* only here as a reference, these values are the hardcoded defaults */
|
||||||
|
{
|
||||||
|
"lang": "english",
|
||||||
|
|
||||||
|
"dateFormat": "YYYY-MM-DD HH:mm",
|
||||||
|
"details": "details",
|
||||||
|
"download": "download",
|
||||||
|
"empty": "empty",
|
||||||
|
"files": "files",
|
||||||
|
"filter": "filter",
|
||||||
|
"folders": "folders",
|
||||||
|
"grid": "grid",
|
||||||
|
"icons": "icons",
|
||||||
|
"language": "Language",
|
||||||
|
"lastModified": "Last modified",
|
||||||
|
"name": "Name",
|
||||||
|
"noMatch": "no match",
|
||||||
|
"parentDirectory": "Parent Directory",
|
||||||
|
"search": "search",
|
||||||
|
"size": "Size",
|
||||||
|
"tree": "Tree",
|
||||||
|
"view": "View"
|
||||||
|
}
|
||||||
22
config/_h5ai/private/conf/l10n/es.json
Executable file
|
|
@ -0,0 +1,22 @@
|
||||||
|
{
|
||||||
|
"lang": "español",
|
||||||
|
|
||||||
|
"dateFormat": "DD/MM/YYYY HH:mm",
|
||||||
|
"details": "Detalles",
|
||||||
|
"download": "Descargar",
|
||||||
|
"empty": "vacío",
|
||||||
|
"files": "Archivos",
|
||||||
|
"filter": "Filtrar",
|
||||||
|
"folders": "Directorios",
|
||||||
|
"grid": "Cuadrícula",
|
||||||
|
"icons": "Íconos",
|
||||||
|
"language": "Idioma",
|
||||||
|
"lastModified": "Última modificación",
|
||||||
|
"name": "Nombre",
|
||||||
|
"noMatch": "Sin coincidencias",
|
||||||
|
"parentDirectory": "Directorio superior",
|
||||||
|
"search": "buscar",
|
||||||
|
"size": "Tamaño",
|
||||||
|
"tree": "Arbol",
|
||||||
|
"view": "Vista"
|
||||||
|
}
|
||||||
22
config/_h5ai/private/conf/l10n/et.json
Executable file
|
|
@ -0,0 +1,22 @@
|
||||||
|
{
|
||||||
|
"lang": "estonian",
|
||||||
|
|
||||||
|
"dateFormat": "DD-MM-YYYY HH.mm",
|
||||||
|
"details": "täpsem info",
|
||||||
|
"download": "laadi alla",
|
||||||
|
"empty": "tühi",
|
||||||
|
"files": "failid",
|
||||||
|
"filter": "filter",
|
||||||
|
"folders": "kataloogid",
|
||||||
|
"grid": "võre",
|
||||||
|
"icons": "ikoonid",
|
||||||
|
"language": "Keel",
|
||||||
|
"lastModified": "Viimati muudetud",
|
||||||
|
"name": "Nimi",
|
||||||
|
"noMatch": "ei leitud sobivat",
|
||||||
|
"parentDirectory": "Emakataloog",
|
||||||
|
"search": "otsi",
|
||||||
|
"size": "Suurus",
|
||||||
|
"tree": "Puu",
|
||||||
|
"view": "Vaade"
|
||||||
|
}
|
||||||
18
config/_h5ai/private/conf/l10n/fi.json
Executable file
|
|
@ -0,0 +1,18 @@
|
||||||
|
{
|
||||||
|
"lang": "finnish",
|
||||||
|
|
||||||
|
"dateFormat": "DD.MM.YYYY HH:mm",
|
||||||
|
"details": "tiedot",
|
||||||
|
"download": "lataa",
|
||||||
|
"empty": "tyhjä",
|
||||||
|
"files": "tiedostoa",
|
||||||
|
"filter": "suodata",
|
||||||
|
"folders": "hakemistoa",
|
||||||
|
"grid": "ruudukko",
|
||||||
|
"icons": "ikonit",
|
||||||
|
"lastModified": "Viimeksi muokattu",
|
||||||
|
"name": "Nimi",
|
||||||
|
"noMatch": "ei osumia",
|
||||||
|
"parentDirectory": "Ylähakemisto",
|
||||||
|
"size": "Koko"
|
||||||
|
}
|
||||||
22
config/_h5ai/private/conf/l10n/fr.json
Executable file
|
|
@ -0,0 +1,22 @@
|
||||||
|
{
|
||||||
|
"lang": "français",
|
||||||
|
|
||||||
|
"dateFormat": "DD/MM/YYYY HH:mm",
|
||||||
|
"details": "détails",
|
||||||
|
"download": "télécharger",
|
||||||
|
"empty": "vide",
|
||||||
|
"files": "Fichiers",
|
||||||
|
"filter": "filtrer",
|
||||||
|
"folders": "Répertoires",
|
||||||
|
"grid": "grille",
|
||||||
|
"icons": "icônes",
|
||||||
|
"language": "Langue",
|
||||||
|
"lastModified": "Dernière modification",
|
||||||
|
"name": "Nom",
|
||||||
|
"noMatch": "rien trouvé",
|
||||||
|
"parentDirectory": "Dossier parent",
|
||||||
|
"search": "rechercher",
|
||||||
|
"size": "Taille",
|
||||||
|
"tree": "Arborescence",
|
||||||
|
"view": "Disposition"
|
||||||
|
}
|
||||||
17
config/_h5ai/private/conf/l10n/he.json
Executable file
|
|
@ -0,0 +1,17 @@
|
||||||
|
{
|
||||||
|
"lang": "עברית",
|
||||||
|
|
||||||
|
"dateFormat": "DD.MM.YYYY HH:mm",
|
||||||
|
"details": "פרטים",
|
||||||
|
"download": "הורדה",
|
||||||
|
"empty": "ריק",
|
||||||
|
"files": "קבצים",
|
||||||
|
"filter": "סינון",
|
||||||
|
"folders": "תיקיות",
|
||||||
|
"icons": "צלמיות",
|
||||||
|
"lastModified": "שינוי אחרון",
|
||||||
|
"name": "שם",
|
||||||
|
"noMatch": "אין תוצאות",
|
||||||
|
"parentDirectory": "תיקיית הורה",
|
||||||
|
"size": "גודל"
|
||||||
|
}
|
||||||
18
config/_h5ai/private/conf/l10n/hi.json
Executable file
|
|
@ -0,0 +1,18 @@
|
||||||
|
{
|
||||||
|
"lang": "हिंदी",
|
||||||
|
|
||||||
|
"dateFormat": "DD.MM.YYYY HH:mm",
|
||||||
|
"details": "विस्तार",
|
||||||
|
"download": "डाउनलोड",
|
||||||
|
"empty": "खाली",
|
||||||
|
"files": "फ़ाइलें",
|
||||||
|
"filter": "फ़िल्टर",
|
||||||
|
"folders": "फोल्डर",
|
||||||
|
"grid": "ग्रिड",
|
||||||
|
"icons": "आइकॉन",
|
||||||
|
"lastModified": "पिछला परिवर्तन",
|
||||||
|
"name": "नाम",
|
||||||
|
"noMatch": "कोई समानता नहीं",
|
||||||
|
"parentDirectory": "मूल डायरेक्टरी",
|
||||||
|
"size": "माप"
|
||||||
|
}
|
||||||
18
config/_h5ai/private/conf/l10n/hr.json
Executable file
|
|
@ -0,0 +1,18 @@
|
||||||
|
{
|
||||||
|
"lang": "hrvatski",
|
||||||
|
|
||||||
|
"dateFormat": "YYYY-MM-DD HH:mm",
|
||||||
|
"details": "detalji",
|
||||||
|
"download": "preuzmi",
|
||||||
|
"empty": "prazno",
|
||||||
|
"files": "datoteka",
|
||||||
|
"filter": "filter",
|
||||||
|
"folders": "direktorij(a)",
|
||||||
|
"grid": "mreža",
|
||||||
|
"icons": "ikone",
|
||||||
|
"lastModified": "Posljednja izmjena",
|
||||||
|
"name": "Naziv",
|
||||||
|
"noMatch": "nema rezultata",
|
||||||
|
"parentDirectory": "Natrag",
|
||||||
|
"size": "Veličina"
|
||||||
|
}
|
||||||
16
config/_h5ai/private/conf/l10n/hu.json
Executable file
|
|
@ -0,0 +1,16 @@
|
||||||
|
{
|
||||||
|
"lang": "magyar",
|
||||||
|
|
||||||
|
"dateFormat": "YYYY-MM-DD HH:mm",
|
||||||
|
"details": "részletek",
|
||||||
|
"download": "letöltés",
|
||||||
|
"empty": "üres",
|
||||||
|
"files": "fájlok",
|
||||||
|
"folders": "mappák",
|
||||||
|
"icons": "ikonok",
|
||||||
|
"lastModified": "Utoljára módosítva",
|
||||||
|
"name": "Név",
|
||||||
|
"noMatch": "nincs találat",
|
||||||
|
"parentDirectory": "Szülő könyvtár",
|
||||||
|
"size": "Méret"
|
||||||
|
}
|
||||||
22
config/_h5ai/private/conf/l10n/id.json
Executable file
|
|
@ -0,0 +1,22 @@
|
||||||
|
{
|
||||||
|
"lang": "Bahasa Indonesia",
|
||||||
|
|
||||||
|
"dateFormat": "DD-MM-YYYY HH:mm",
|
||||||
|
"details": "rincian",
|
||||||
|
"download": "unduh",
|
||||||
|
"empty": "kosong",
|
||||||
|
"files": "berkas",
|
||||||
|
"filter": "saring",
|
||||||
|
"folders": "pelipat",
|
||||||
|
"grid": "jaring",
|
||||||
|
"icons": "ikon",
|
||||||
|
"language": "Bahasa",
|
||||||
|
"lastModified": "Di modifikasi",
|
||||||
|
"name": "Nama",
|
||||||
|
"noMatch": "tidak cocok",
|
||||||
|
"parentDirectory": "Direktori induk",
|
||||||
|
"search": "cari",
|
||||||
|
"size": "Ukuran",
|
||||||
|
"tree": "Pohon",
|
||||||
|
"view": "Tampil"
|
||||||
|
}
|
||||||
22
config/_h5ai/private/conf/l10n/it.json
Executable file
|
|
@ -0,0 +1,22 @@
|
||||||
|
{
|
||||||
|
"lang": "italiano",
|
||||||
|
|
||||||
|
"dateFormat": "DD-MM-YYYY HH:mm",
|
||||||
|
"details": "dettagli",
|
||||||
|
"download": "download",
|
||||||
|
"empty": "vuota",
|
||||||
|
"files": "file",
|
||||||
|
"filter": "filtra",
|
||||||
|
"folders": "cartelle",
|
||||||
|
"grid": "griglia",
|
||||||
|
"icons": "icone",
|
||||||
|
"language": "Linugua",
|
||||||
|
"lastModified": "Ultima modifica",
|
||||||
|
"name": "Nome",
|
||||||
|
"noMatch": "nessun risultato",
|
||||||
|
"parentDirectory": "Cartella Superiore",
|
||||||
|
"search": "cerca",
|
||||||
|
"size": "Dimensione",
|
||||||
|
"tree": "Albero",
|
||||||
|
"view": "Vista"
|
||||||
|
}
|
||||||
20
config/_h5ai/private/conf/l10n/ja.json
Executable file
|
|
@ -0,0 +1,20 @@
|
||||||
|
{
|
||||||
|
"lang": "日本語",
|
||||||
|
|
||||||
|
"dateFormat": "YYYY-MM-DD HH:mm",
|
||||||
|
"details": "詳細",
|
||||||
|
"download": "ダウンロード",
|
||||||
|
"empty": "(空)",
|
||||||
|
"files": "ファイル",
|
||||||
|
"filter": "フィルター",
|
||||||
|
"folders": "フォルダー",
|
||||||
|
"grid": "グリッド",
|
||||||
|
"icons": "アイコン",
|
||||||
|
"language": "言語",
|
||||||
|
"lastModified": "最終変更日時",
|
||||||
|
"name": "名前",
|
||||||
|
"noMatch": "一致する項目が見つかりません",
|
||||||
|
"parentDirectory": "親ディレクトリへ",
|
||||||
|
"size": "サイズ",
|
||||||
|
"view": "ビュー"
|
||||||
|
}
|
||||||
22
config/_h5ai/private/conf/l10n/ko.json
Executable file
|
|
@ -0,0 +1,22 @@
|
||||||
|
{
|
||||||
|
"lang": "한국어",
|
||||||
|
|
||||||
|
"dateFormat": "YYYY-MM-DD HH:mm",
|
||||||
|
"details": "자세히",
|
||||||
|
"download": "다운로드",
|
||||||
|
"empty": "빈 폴더",
|
||||||
|
"files": "파일",
|
||||||
|
"filter": "필터",
|
||||||
|
"folders": "폴더",
|
||||||
|
"grid": "그리드",
|
||||||
|
"icons": "아이콘",
|
||||||
|
"language": "언어",
|
||||||
|
"lastModified": "최근 수정일",
|
||||||
|
"name": "파일명",
|
||||||
|
"noMatch": "해당파일이 없습니다.",
|
||||||
|
"parentDirectory": "상위폴더",
|
||||||
|
"search": "검색",
|
||||||
|
"size": "크기",
|
||||||
|
"tree": "트리",
|
||||||
|
"view": "보기"
|
||||||
|
}
|
||||||
22
config/_h5ai/private/conf/l10n/lv.json
Executable file
|
|
@ -0,0 +1,22 @@
|
||||||
|
{
|
||||||
|
"lang": "latviešu",
|
||||||
|
|
||||||
|
"dateFormat": "YYYY-MM-DD HH:mm",
|
||||||
|
"details": "detaļas",
|
||||||
|
"download": "lejupielādēt",
|
||||||
|
"empty": "tukšs",
|
||||||
|
"files": "faili",
|
||||||
|
"filter": "filtrēt",
|
||||||
|
"folders": "mapes",
|
||||||
|
"grid": "režģis",
|
||||||
|
"icons": "ikonas",
|
||||||
|
"language": "Valoda",
|
||||||
|
"lastModified": "Pēdējoreiz modificēts",
|
||||||
|
"name": "Nosaukums",
|
||||||
|
"noMatch": "nav sakritības",
|
||||||
|
"parentDirectory": "Vecākdirektorijs",
|
||||||
|
"search": "meklēt",
|
||||||
|
"size": "Izmērs",
|
||||||
|
"tree": "Koks",
|
||||||
|
"view": "Skats"
|
||||||
|
}
|
||||||
15
config/_h5ai/private/conf/l10n/nb.json
Executable file
|
|
@ -0,0 +1,15 @@
|
||||||
|
{
|
||||||
|
"lang": "norwegian",
|
||||||
|
|
||||||
|
"details": "detaljer",
|
||||||
|
"download": "last ned",
|
||||||
|
"empty": "tom",
|
||||||
|
"files": "filer",
|
||||||
|
"folders": "mapper",
|
||||||
|
"icons": "ikoner",
|
||||||
|
"lastModified": "Sist endret",
|
||||||
|
"name": "Navn",
|
||||||
|
"noMatch": "ingen treff",
|
||||||
|
"parentDirectory": "Overordnet mappe",
|
||||||
|
"size": "Størrelse"
|
||||||
|
}
|
||||||
22
config/_h5ai/private/conf/l10n/nl.json
Executable file
|
|
@ -0,0 +1,22 @@
|
||||||
|
{
|
||||||
|
"lang": "nederlands",
|
||||||
|
|
||||||
|
"dateFormat": "YYYY-MM-DD HH:mm",
|
||||||
|
"details": "details",
|
||||||
|
"download": "download",
|
||||||
|
"empty": "leeg",
|
||||||
|
"files": "bestanden",
|
||||||
|
"filter": "filter",
|
||||||
|
"folders": "mappen",
|
||||||
|
"grid": "grid",
|
||||||
|
"icons": "iconen",
|
||||||
|
"language": "Taal",
|
||||||
|
"lastModified": "Laatste wijziging",
|
||||||
|
"name": "Naam",
|
||||||
|
"noMatch": "geen overeenkomst",
|
||||||
|
"parentDirectory": "Bovenliggende map",
|
||||||
|
"search": "zoeken",
|
||||||
|
"size": "Grootte",
|
||||||
|
"tree": "Boom",
|
||||||
|
"view": "Bekijk"
|
||||||
|
}
|
||||||
22
config/_h5ai/private/conf/l10n/pl.json
Executable file
|
|
@ -0,0 +1,22 @@
|
||||||
|
{
|
||||||
|
"lang": "polski",
|
||||||
|
|
||||||
|
"dateFormat": "YYYY-MM-DD HH:mm",
|
||||||
|
"details": "szczegóły",
|
||||||
|
"download": "pobierz",
|
||||||
|
"empty": "pusty",
|
||||||
|
"files": "plików",
|
||||||
|
"filter": "filtr",
|
||||||
|
"folders": "folderów",
|
||||||
|
"grid": "kafelki",
|
||||||
|
"icons": "ikony",
|
||||||
|
"language": "Język",
|
||||||
|
"lastModified": "Ostatnia modyfikacja",
|
||||||
|
"name": "Nazwa",
|
||||||
|
"noMatch": "nie znaleziono",
|
||||||
|
"parentDirectory": "Katalog nadrzędny",
|
||||||
|
"search": "szukaj",
|
||||||
|
"size": "Rozmiar",
|
||||||
|
"tree": "Drzewo",
|
||||||
|
"view": "Układ"
|
||||||
|
}
|
||||||
22
config/_h5ai/private/conf/l10n/pt-br.json
Executable file
|
|
@ -0,0 +1,22 @@
|
||||||
|
{
|
||||||
|
"lang": "português do Brasil",
|
||||||
|
|
||||||
|
"dateFormat": "DD-MM-YYYY HH:mm",
|
||||||
|
"details": "detalhes",
|
||||||
|
"download": "download",
|
||||||
|
"empty": "vazio",
|
||||||
|
"files": "arquivos",
|
||||||
|
"filter": "filtro",
|
||||||
|
"folders": "pastas",
|
||||||
|
"grid": "grade",
|
||||||
|
"icons": "ícones",
|
||||||
|
"language": "Idioma",
|
||||||
|
"lastModified": "Última modificação",
|
||||||
|
"name": "Nome",
|
||||||
|
"noMatch": "sem resultados",
|
||||||
|
"parentDirectory": "Diretório acima",
|
||||||
|
"search": "pesquisa",
|
||||||
|
"size": "Tamanho",
|
||||||
|
"tree": "Árvore",
|
||||||
|
"view": "Visualização"
|
||||||
|
}
|
||||||
22
config/_h5ai/private/conf/l10n/pt-pt.json
Executable file
|
|
@ -0,0 +1,22 @@
|
||||||
|
{
|
||||||
|
"lang": "português de Portugal",
|
||||||
|
|
||||||
|
"dateFormat": "DD-MM-YYYY HH:mm",
|
||||||
|
"details": "detalhes",
|
||||||
|
"download": "descarregar",
|
||||||
|
"empty": "vazio",
|
||||||
|
"files": "arquivos",
|
||||||
|
"filter": "filtro",
|
||||||
|
"folders": "pastas",
|
||||||
|
"grid": "grelha",
|
||||||
|
"icons": "ícones",
|
||||||
|
"language": "Idioma",
|
||||||
|
"lastModified": "última modificação",
|
||||||
|
"name": "Nome",
|
||||||
|
"noMatch": "sem resultados",
|
||||||
|
"parentDirectory": "Diretório acima",
|
||||||
|
"search": "pesquisa",
|
||||||
|
"size": "Tamanho",
|
||||||
|
"tree": "Árvore",
|
||||||
|
"view": "Visualização"
|
||||||
|
}
|
||||||
15
config/_h5ai/private/conf/l10n/ro.json
Executable file
|
|
@ -0,0 +1,15 @@
|
||||||
|
{
|
||||||
|
"lang": "română",
|
||||||
|
|
||||||
|
"details": "detalii",
|
||||||
|
"download": "descarcă",
|
||||||
|
"empty": "gol",
|
||||||
|
"files": "fişiere",
|
||||||
|
"folders": "dosar",
|
||||||
|
"icons": "pictograme",
|
||||||
|
"lastModified": "ultima modificare",
|
||||||
|
"name": "nume",
|
||||||
|
"noMatch": "0 rezultate",
|
||||||
|
"parentDirectory": "dosar părinte",
|
||||||
|
"size": "mărime"
|
||||||
|
}
|
||||||
20
config/_h5ai/private/conf/l10n/ru.json
Executable file
|
|
@ -0,0 +1,20 @@
|
||||||
|
{
|
||||||
|
"lang": "русский",
|
||||||
|
|
||||||
|
"dateFormat": "YYYY-MM-DD HH:mm",
|
||||||
|
"details": "Детали",
|
||||||
|
"download": "Скачать",
|
||||||
|
"empty": "Пусто",
|
||||||
|
"files": "Файлы",
|
||||||
|
"filter": "Фильтр",
|
||||||
|
"folders": "Папки",
|
||||||
|
"grid": "Сетка",
|
||||||
|
"icons": "Иконки",
|
||||||
|
"language": "Язык",
|
||||||
|
"lastModified": "Последние изменения",
|
||||||
|
"name": "Имя",
|
||||||
|
"noMatch": "Нет совпадений",
|
||||||
|
"parentDirectory": "Главная директория",
|
||||||
|
"size": "Размер",
|
||||||
|
"view": "Вид"
|
||||||
|
}
|
||||||
13
config/_h5ai/private/conf/l10n/sk.json
Executable file
|
|
@ -0,0 +1,13 @@
|
||||||
|
{
|
||||||
|
"lang": "slovenčina",
|
||||||
|
|
||||||
|
"details": "podrobnosti",
|
||||||
|
"empty": "prázdny",
|
||||||
|
"files": "súborov",
|
||||||
|
"folders": "priečinkov",
|
||||||
|
"icons": "ikony",
|
||||||
|
"lastModified": "Upravené",
|
||||||
|
"name": "Názov",
|
||||||
|
"parentDirectory": "Nadriadený priečinok",
|
||||||
|
"size": "Velkosť"
|
||||||
|
}
|
||||||
18
config/_h5ai/private/conf/l10n/sl.json
Executable file
|
|
@ -0,0 +1,18 @@
|
||||||
|
{
|
||||||
|
"lang": "slovenščina",
|
||||||
|
|
||||||
|
"dateFormat": "DD. MM. YYYY HH:mm",
|
||||||
|
"details": "podrobnosti",
|
||||||
|
"download": "prenesi",
|
||||||
|
"empty": "prazno",
|
||||||
|
"files": "datoteke",
|
||||||
|
"filter": "filter",
|
||||||
|
"folders": "mape",
|
||||||
|
"grid": "mreža",
|
||||||
|
"icons": "ikone",
|
||||||
|
"lastModified": "Zadnja sprememba",
|
||||||
|
"name": "Ime",
|
||||||
|
"noMatch": "ni zadetkov",
|
||||||
|
"parentDirectory": "Nadrejena mapa",
|
||||||
|
"size": "Velikost"
|
||||||
|
}
|
||||||
15
config/_h5ai/private/conf/l10n/sr.json
Executable file
|
|
@ -0,0 +1,15 @@
|
||||||
|
{
|
||||||
|
"lang": "srpski",
|
||||||
|
|
||||||
|
"details": "detalji",
|
||||||
|
"download": "download",
|
||||||
|
"empty": "prazno",
|
||||||
|
"files": "fajlovi",
|
||||||
|
"folders": "direktorijum",
|
||||||
|
"icons": "ikone",
|
||||||
|
"lastModified": "Poslednja modifikacija",
|
||||||
|
"name": "Ime",
|
||||||
|
"noMatch": "bez poklapanja",
|
||||||
|
"parentDirectory": "Roditeljski direktorijum",
|
||||||
|
"size": "Veličina"
|
||||||
|
}
|
||||||
16
config/_h5ai/private/conf/l10n/sv.json
Executable file
|
|
@ -0,0 +1,16 @@
|
||||||
|
{
|
||||||
|
"lang": "svenska",
|
||||||
|
|
||||||
|
"details": "detaljerad",
|
||||||
|
"download": "ladda ner",
|
||||||
|
"empty": "tom",
|
||||||
|
"files": "filer",
|
||||||
|
"folders": "kataloger",
|
||||||
|
"grid": "rutnät",
|
||||||
|
"icons": "ikoner",
|
||||||
|
"lastModified": "Senast ändrad",
|
||||||
|
"name": "Filnamn",
|
||||||
|
"noMatch": "ingen matchning",
|
||||||
|
"parentDirectory": "Till överordnad mapp",
|
||||||
|
"size": "Filstorlek"
|
||||||
|
}
|
||||||
14
config/_h5ai/private/conf/l10n/tr.json
Executable file
|
|
@ -0,0 +1,14 @@
|
||||||
|
{
|
||||||
|
"lang": "türkçe",
|
||||||
|
|
||||||
|
"details": "detaylar",
|
||||||
|
"download": "indir",
|
||||||
|
"empty": "boş",
|
||||||
|
"files": "dosyalar",
|
||||||
|
"folders": "klasörler",
|
||||||
|
"icons": "ikonlar",
|
||||||
|
"lastModified": "Son Düzenleme",
|
||||||
|
"name": "İsim",
|
||||||
|
"parentDirectory": "Üst Dizin",
|
||||||
|
"size": "Boyut"
|
||||||
|
}
|
||||||
18
config/_h5ai/private/conf/l10n/uk.json
Executable file
|
|
@ -0,0 +1,18 @@
|
||||||
|
{
|
||||||
|
"lang": "українська",
|
||||||
|
|
||||||
|
"dateFormat": "YYYY-MM-DD HH:mm",
|
||||||
|
"details": "Деталі",
|
||||||
|
"download": "Завантажити",
|
||||||
|
"empty": "Порожньо",
|
||||||
|
"files": "Файли(ів)",
|
||||||
|
"filter": "Фільтр",
|
||||||
|
"folders": "Тек(и)",
|
||||||
|
"grid": "Гратка",
|
||||||
|
"icons": "Піктограми",
|
||||||
|
"lastModified": "Останні зміни",
|
||||||
|
"name": "Ім'я",
|
||||||
|
"noMatch": "Немає співпадінь",
|
||||||
|
"parentDirectory": "Головна тека",
|
||||||
|
"size": "Розмір"
|
||||||
|
}
|
||||||
23
config/_h5ai/private/conf/l10n/zh-cn.json
Executable file
|
|
@ -0,0 +1,23 @@
|
||||||
|
{
|
||||||
|
"lang": "简体中文",
|
||||||
|
|
||||||
|
"dateFormat": "YYYY-MM-DD HH:mm",
|
||||||
|
"details": "详情",
|
||||||
|
"download": "下载",
|
||||||
|
"empty": "空文件夹",
|
||||||
|
"files": "文件",
|
||||||
|
"filter": "过滤",
|
||||||
|
"folders": "文件夹",
|
||||||
|
"grid": "网格",
|
||||||
|
"icons": "图标",
|
||||||
|
"language": "语言",
|
||||||
|
"lastModified": "修改时间",
|
||||||
|
"name": "文件名",
|
||||||
|
"noMatch": "无匹配项",
|
||||||
|
"parentDirectory": "父文件夹",
|
||||||
|
"search": "搜索",
|
||||||
|
"size": "大小",
|
||||||
|
"tree": "树形目录",
|
||||||
|
"view": "视图",
|
||||||
|
"info": "信息"
|
||||||
|
}
|
||||||
23
config/_h5ai/private/conf/l10n/zh-tw.json
Executable file
|
|
@ -0,0 +1,23 @@
|
||||||
|
{
|
||||||
|
"lang": "正體中文",
|
||||||
|
|
||||||
|
"dateFormat": "YYYY-MM-DD HH:mm",
|
||||||
|
"details": "詳細資料",
|
||||||
|
"download": "下載",
|
||||||
|
"empty": "空資料夾",
|
||||||
|
"files": "檔案",
|
||||||
|
"filter": "過濾",
|
||||||
|
"folders": "資料夾",
|
||||||
|
"grid": "網格",
|
||||||
|
"icons": "圖示",
|
||||||
|
"language": "語言",
|
||||||
|
"lastModified": "上次修改",
|
||||||
|
"name": "檔名",
|
||||||
|
"noMatch": "沒有符合的檔案",
|
||||||
|
"parentDirectory": "上層目錄",
|
||||||
|
"search": "搜尋",
|
||||||
|
"size": "大小",
|
||||||
|
"tree": "樹形目錄",
|
||||||
|
"view": "檢視",
|
||||||
|
"info": "資訊"
|
||||||
|
}
|
||||||
397
config/_h5ai/private/conf/options.json
Executable file
|
|
@ -0,0 +1,397 @@
|
||||||
|
/* h5ai v0.30.0 - https://larsjung.de/h5ai/ */
|
||||||
|
{
|
||||||
|
/*
|
||||||
|
Password hash.
|
||||||
|
|
||||||
|
SHA512 hash of the info page password, the preset password is the empty string.
|
||||||
|
Online hash generator: http://md5hashing.net/hashing/sha512
|
||||||
|
*/
|
||||||
|
"passhash": "cf83e1357eefb8bdf1542850d66d8007d620e4050b5715dc83f4a921d36ce9ce47d0d13c5d85f2b0ff8318d2877eec2f63b931bd47417a81a538327af927da3e",
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
/*
|
||||||
|
Resources.
|
||||||
|
|
||||||
|
Additional script and style tags added to all pages. Paths not beginning
|
||||||
|
with "http://", "https://" or "/" will be looked up relative to
|
||||||
|
"_h5ai/public/ext/" (no check for existence).
|
||||||
|
|
||||||
|
- scripts: array of strings
|
||||||
|
- styles: array of strings
|
||||||
|
*/
|
||||||
|
"resources": {
|
||||||
|
"scripts": [],
|
||||||
|
"styles": [
|
||||||
|
"//fonts.googleapis.com/css?family=Ubuntu:300,400,700%7CUbuntu+Mono:400,700"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
/*
|
||||||
|
General view options.
|
||||||
|
|
||||||
|
- binaryPrefix: boolean, set to true uses 1024B=1KiB when formatting file sizes (see http://en.wikipedia.org/wiki/Binary_prefix)
|
||||||
|
- disableSidebar: boolean, hides sidebar and toggle button
|
||||||
|
- fallbackMode: boolean, serve fallback mode
|
||||||
|
- fastBrowsing: boolean, use History API if available (no need to reload the whole page)
|
||||||
|
- fonts: array of strings, fonts to use in regular context
|
||||||
|
- fontsMono: array of strings, fonts to use in monopspaced context
|
||||||
|
- hidden: array of strings, don't list items matching these regular expressions
|
||||||
|
- hideFolders: boolean, hide all folders in the main view
|
||||||
|
- hideIf403: boolean, hide files and folders that are not readable by the server
|
||||||
|
- hideParentFolder: boolean, hide parent folder links in the main view
|
||||||
|
- maxIconSize: number, max size for icons in the main view
|
||||||
|
- modes: array of strings, subset of ["details", "grid", "icons"]
|
||||||
|
the first value indicates the default view mode. If only one value
|
||||||
|
is given the view mode is fixed and the selector buttons are hidden.
|
||||||
|
The user selected view mode is also stored local in modern browsers
|
||||||
|
so that it will be persistent.
|
||||||
|
- modeToggle: boolean, show a view mode toggle in the toolbar, or "next"
|
||||||
|
- setParentFolderLabels: boolean, set parent folder labels to real folder names
|
||||||
|
- sizes: array of numbers
|
||||||
|
the first value indicates the default view size. If only one value
|
||||||
|
is given the view size is fixed and the selector buttons are hidden.
|
||||||
|
The user selected view size is also stored local in modern browsers
|
||||||
|
so that it will be persistent.
|
||||||
|
- theme: string, name of one of the folders in "_h5ai/public/images/themes", defaults to "default"
|
||||||
|
- unmanaged: array of strings, don't manage folders containing one of those files
|
||||||
|
- unmanagedInNewWindow: boolean, open unmanaged links in new window/tab
|
||||||
|
*/
|
||||||
|
"view": {
|
||||||
|
"binaryPrefix": false,
|
||||||
|
"disableSidebar": false,
|
||||||
|
"fallbackMode": false,
|
||||||
|
"fastBrowsing": true,
|
||||||
|
"fonts": ["Ubuntu", "Roboto", "Helvetica", "Arial", "sans-serif"],
|
||||||
|
"fontsMono": ["Ubuntu Mono", "Monaco", "Lucida Sans Typewriter", "monospace"],
|
||||||
|
"hidden": ["^\\.", "^_h5ai"],
|
||||||
|
"hideFolders": false,
|
||||||
|
"hideIf403": true,
|
||||||
|
"hideParentFolder": false,
|
||||||
|
"maxIconSize": 40,
|
||||||
|
"modes": ["details", "grid", "icons"],
|
||||||
|
"modeToggle": false,
|
||||||
|
"setParentFolderLabels": true,
|
||||||
|
"sizes": [20, 40, 60, 80, 100, 140, 180, 220, 260, 300],
|
||||||
|
"theme": "comity",
|
||||||
|
"unmanaged": ["index.html", "index.htm", "index.php"],
|
||||||
|
"unmanagedInNewWindow": false
|
||||||
|
},
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
/*** Extensions (in alphabetical order) ***/
|
||||||
|
|
||||||
|
/*
|
||||||
|
Watch and update current folder content.
|
||||||
|
|
||||||
|
- interval: number, update interval in milliseconds, at least 1000
|
||||||
|
*/
|
||||||
|
"autorefresh": {
|
||||||
|
"enabled": false,
|
||||||
|
"interval": 5000
|
||||||
|
},
|
||||||
|
|
||||||
|
/*
|
||||||
|
Show a clickable breadcrumb.
|
||||||
|
*/
|
||||||
|
"crumb": {
|
||||||
|
"enabled": true
|
||||||
|
},
|
||||||
|
|
||||||
|
/*
|
||||||
|
Allow customized header and footer files.
|
||||||
|
First checks for files "_h5ai.header.html" and "_h5ai.footer.html" in the current directory.
|
||||||
|
If not successful it checks all parent directories (starting in the current directory) for
|
||||||
|
files "_h5ai.headers.html" and "_h5ai.footers.html".
|
||||||
|
Note the different filenames: "header" (only current) - "headers" (current and sub directories)!
|
||||||
|
The file's content will be placed inside a <div/> tag above/below the main content.
|
||||||
|
If a file's extension is ".md" instead of ".html" its content will be interpreted as markdown.
|
||||||
|
|
||||||
|
- stopSearchingAtRoot: boolean, only search for header and footer files until the web root
|
||||||
|
directory. if `false`, will search for header/footer up the entire directory structure,
|
||||||
|
even above the web root
|
||||||
|
*/
|
||||||
|
"custom": {
|
||||||
|
"enabled": true,
|
||||||
|
"stopSearchingAtRoot": true
|
||||||
|
},
|
||||||
|
|
||||||
|
/*
|
||||||
|
Enable packaged download of selected entries.
|
||||||
|
To select files the "select"-extension needs to be enabled.
|
||||||
|
|
||||||
|
- type: string, "php-tar", "shell-tar" or "shell-zip"
|
||||||
|
- packageName: string, basename of the download package, null for current filename or foldername
|
||||||
|
- alwaysVisible: boolean, always show download button (defaults to download the current folder)
|
||||||
|
*/
|
||||||
|
"download": {
|
||||||
|
"enabled": true,
|
||||||
|
"type": "php-tar",
|
||||||
|
"packageName": null,
|
||||||
|
"alwaysVisible": false
|
||||||
|
},
|
||||||
|
|
||||||
|
/*
|
||||||
|
Allow filtering the displayed files and folders in current folder.
|
||||||
|
Checks for substrings.
|
||||||
|
|
||||||
|
If advanced is enabled it checks entries for right order of characters,
|
||||||
|
i.e. "ab" matches "ab", "axb", "xaxbx" but not "ba". Space separated
|
||||||
|
sequences get OR-ed. Searches will be treated as JavaScript regular
|
||||||
|
expressions if you prefix them with "re:".
|
||||||
|
|
||||||
|
- advanced: boolean, use advanced pattern parsing
|
||||||
|
- debounceTime: number, debounce wait time in milliseconds
|
||||||
|
- ignorecase: boolean, ignore case
|
||||||
|
*/
|
||||||
|
"filter": {
|
||||||
|
"enabled": false,
|
||||||
|
"advanced": true,
|
||||||
|
"debounceTime": 100,
|
||||||
|
"ignorecase": true
|
||||||
|
},
|
||||||
|
|
||||||
|
/*
|
||||||
|
Calc the size of folders.
|
||||||
|
This operation is real slow. The calculated sizes differ slightly for both
|
||||||
|
calculation types since "php" only adds the file size, while "shell-du"
|
||||||
|
also adds the sizes for the actual folder files.
|
||||||
|
|
||||||
|
- type: string, "php" (sloooow) or "shell-du" (sloow)
|
||||||
|
*/
|
||||||
|
"foldersize": {
|
||||||
|
"enabled": true,
|
||||||
|
"type": "php"
|
||||||
|
},
|
||||||
|
|
||||||
|
/*
|
||||||
|
Adds Google Universial Analytics asynchronous tracking code.
|
||||||
|
see: https://developers.google.com/analytics/devguides/collection/analyticsjs/
|
||||||
|
|
||||||
|
- id: string, account ID
|
||||||
|
*/
|
||||||
|
"google-analytics-ua": {
|
||||||
|
"enabled": false,
|
||||||
|
"id": "UA-000000-0"
|
||||||
|
},
|
||||||
|
|
||||||
|
/*
|
||||||
|
Enable a generic info side bar.
|
||||||
|
|
||||||
|
- show: boolean, initial visible to first time users
|
||||||
|
- qrcode: boolean, show a QR-Code
|
||||||
|
- qrColor: string, QR-Code fill color
|
||||||
|
*/
|
||||||
|
"info": {
|
||||||
|
"enabled": true,
|
||||||
|
"show": false,
|
||||||
|
"qrcode": true,
|
||||||
|
"qrFill": "#999",
|
||||||
|
"qrBack": "#fff"
|
||||||
|
},
|
||||||
|
|
||||||
|
/*
|
||||||
|
Localization, for example "en", "de" etc. - see "_h5ai/conf/l10n" folder for
|
||||||
|
possible values. Adjust it to your needs. If lang is not found
|
||||||
|
it defaults to "en".
|
||||||
|
|
||||||
|
- lang: string, default language
|
||||||
|
- useBroserLang: boolean, try to use browser language
|
||||||
|
*/
|
||||||
|
"l10n": {
|
||||||
|
"enabled": true,
|
||||||
|
"lang": "en",
|
||||||
|
"useBrowserLang": true
|
||||||
|
},
|
||||||
|
|
||||||
|
/*
|
||||||
|
Adds Piwik tracker javascript code.
|
||||||
|
|
||||||
|
- baseURL: string, do not include the protocol, e.g. "mydomain.tld/piwik"
|
||||||
|
- idSite: number
|
||||||
|
*/
|
||||||
|
"piwik-analytics": {
|
||||||
|
"enabled": false,
|
||||||
|
"baseURL": "some/url",
|
||||||
|
"idSite": 1
|
||||||
|
},
|
||||||
|
|
||||||
|
/*
|
||||||
|
Play a audio preview on click.
|
||||||
|
|
||||||
|
- autoplay: start playing as soon as ready
|
||||||
|
- types: array of strings
|
||||||
|
*/
|
||||||
|
"preview-aud": {
|
||||||
|
"enabled": true,
|
||||||
|
"autoplay": true,
|
||||||
|
"types": ["aud"]
|
||||||
|
},
|
||||||
|
|
||||||
|
/*
|
||||||
|
Show an image preview on click.
|
||||||
|
|
||||||
|
- types: array of strings
|
||||||
|
- size: number, sample size, or false for original size
|
||||||
|
*/
|
||||||
|
"preview-img": {
|
||||||
|
"enabled": true,
|
||||||
|
"size": false,
|
||||||
|
"types": ["img", "img-bmp", "img-gif", "img-ico", "img-jpg", "img-png", "img-raw", "img-svg"]
|
||||||
|
},
|
||||||
|
|
||||||
|
/*
|
||||||
|
Show text file preview on click.
|
||||||
|
|
||||||
|
Available styles are:
|
||||||
|
0: floating text
|
||||||
|
1: fixed width text
|
||||||
|
2: markdown
|
||||||
|
3: syntax highlighting
|
||||||
|
|
||||||
|
- styles: dict string to int, maps types to styles
|
||||||
|
*/
|
||||||
|
"preview-txt": {
|
||||||
|
"enabled": true,
|
||||||
|
"styles": {
|
||||||
|
"txt": 1,
|
||||||
|
"txt-authors": 1,
|
||||||
|
"txt-c": 3,
|
||||||
|
"txt-cpp": 3,
|
||||||
|
"txt-css": 3,
|
||||||
|
"txt-diff": 1,
|
||||||
|
"txt-go": 3,
|
||||||
|
"txt-h": 3,
|
||||||
|
"txt-hpp": 3,
|
||||||
|
"txt-install": 1,
|
||||||
|
"txt-js": 3,
|
||||||
|
"txt-json": 3,
|
||||||
|
"txt-less": 3,
|
||||||
|
"txt-license": 1,
|
||||||
|
"txt-log": 1,
|
||||||
|
"txt-makefile": 1,
|
||||||
|
"txt-md": 2,
|
||||||
|
"txt-py": 3,
|
||||||
|
"txt-rb": 3,
|
||||||
|
"txt-readme": 1,
|
||||||
|
"txt-rtf": 1,
|
||||||
|
"txt-rust": 3,
|
||||||
|
"txt-script": 3,
|
||||||
|
"txt-xml": 1
|
||||||
|
}
|
||||||
|
},
|
||||||
|
|
||||||
|
/*
|
||||||
|
Play a video preview on click.
|
||||||
|
|
||||||
|
- autoplay: start playing as soon as ready
|
||||||
|
- types: array of strings
|
||||||
|
*/
|
||||||
|
"preview-vid": {
|
||||||
|
"enabled": true,
|
||||||
|
"autoplay": true,
|
||||||
|
"types": ["vid-avi", "vid-flv", "vid-mkv", "vid-mov", "vid-mp4", "vid-mpg", "vid-webm"]
|
||||||
|
},
|
||||||
|
|
||||||
|
/*
|
||||||
|
Allow searching files and folders in and below current folder.
|
||||||
|
Checks for substrings.
|
||||||
|
|
||||||
|
If advanced is enabled it checks entries for right order of characters,
|
||||||
|
i.e. "ab" matches "ab", "axb", "xaxbx" but not "ba". Space separated
|
||||||
|
sequences get OR-ed. Searches will be treated as JavaScript regular
|
||||||
|
expressions if you prefix them with "re:".
|
||||||
|
|
||||||
|
- advanced: boolean, use advanced pattern parsing
|
||||||
|
- debounceTime: number, debounce wait time in milliseconds
|
||||||
|
- ignorecase: boolean, ignore case
|
||||||
|
*/
|
||||||
|
"search": {
|
||||||
|
"enabled": false,
|
||||||
|
"advanced": true,
|
||||||
|
"debounceTime": 300,
|
||||||
|
"ignorecase": true
|
||||||
|
},
|
||||||
|
|
||||||
|
/*
|
||||||
|
Make entries selectable.
|
||||||
|
At the moment only needed for packaged download.
|
||||||
|
|
||||||
|
- clickndrag: boolean, allow first mouse button + drag selection
|
||||||
|
- checkboxes: boolean, show a checkbox on mouse over item
|
||||||
|
*/
|
||||||
|
"select": {
|
||||||
|
"enabled": true,
|
||||||
|
"clickndrag": true,
|
||||||
|
"checkboxes": true
|
||||||
|
},
|
||||||
|
|
||||||
|
/*
|
||||||
|
Default sort order.
|
||||||
|
"column" and "reverse" are locally stored.
|
||||||
|
|
||||||
|
- column: number, 0 for "Name", 1 for "Date", 2 for "Size"
|
||||||
|
- reverse: boolean, false for ascending, true for descending
|
||||||
|
- ignorecase: boolean, compare ignorecase
|
||||||
|
- natural: boolean, use natural sort order
|
||||||
|
- folders: number, where to place folders, 0 for "top", 1 for "in place", 2 for "bottom"
|
||||||
|
*/
|
||||||
|
"sort": {
|
||||||
|
"enabled": true,
|
||||||
|
"column": 0,
|
||||||
|
"reverse": false,
|
||||||
|
"ignorecase": true,
|
||||||
|
"natural": true,
|
||||||
|
"folders": 0
|
||||||
|
},
|
||||||
|
|
||||||
|
/*
|
||||||
|
Show thumbnails for image files. Needs the "/_h5ai/public/cache" folder to be
|
||||||
|
writable for the web Server.
|
||||||
|
|
||||||
|
- img: array of strings
|
||||||
|
- mov: array of strings
|
||||||
|
- doc: array of strings
|
||||||
|
- delay: number, delay in milliseconds after "dom-ready" before thumb-requesting starts
|
||||||
|
- size: number, size in pixel of the generated thumbnails
|
||||||
|
- exif: boolean, use included EXIF thumbs if possible
|
||||||
|
- chunksize: int, number of thumbs per request
|
||||||
|
*/
|
||||||
|
"thumbnails": {
|
||||||
|
"enabled": true,
|
||||||
|
"img": ["img-bmp", "img-gif", "img-ico", "img-jpg", "img-png"],
|
||||||
|
"mov": ["vid-avi", "vid-flv", "vid-mkv", "vid-mov", "vid-mp4", "vid-mpg", "vid-webm"],
|
||||||
|
"doc": ["x-pdf", "x-ps"],
|
||||||
|
"delay": 1,
|
||||||
|
"size": 240,
|
||||||
|
"exif": false,
|
||||||
|
"chunksize": 20
|
||||||
|
},
|
||||||
|
|
||||||
|
/*
|
||||||
|
Replace window title with current breadcrumb.
|
||||||
|
*/
|
||||||
|
"title": {
|
||||||
|
"enabled": true
|
||||||
|
},
|
||||||
|
|
||||||
|
/*
|
||||||
|
Show a folder tree.
|
||||||
|
Note that this might affect performance significantly.
|
||||||
|
|
||||||
|
- show: boolean, initial visible to first time users
|
||||||
|
- maxSubfolders: number, max number of subfolders to show in tree
|
||||||
|
- naturalSort: boolean, use natural sort order for folders
|
||||||
|
- ignorecase: boolean, sort ignorecase
|
||||||
|
*/
|
||||||
|
"tree": {
|
||||||
|
"enabled": true,
|
||||||
|
"show": true,
|
||||||
|
"maxSubfolders": 50,
|
||||||
|
"naturalSort": true,
|
||||||
|
"ignorecase": true
|
||||||
|
}
|
||||||
|
}
|
||||||
76
config/_h5ai/private/conf/types.json
Executable file
|
|
@ -0,0 +1,76 @@
|
||||||
|
/* h5ai v0.30.0 - https://larsjung.de/h5ai/ */
|
||||||
|
{
|
||||||
|
"ar": ["*.tar.bz2", "*.crx"],
|
||||||
|
"ar-apk": ["*.apk"],
|
||||||
|
"ar-deb": ["*.deb"],
|
||||||
|
"ar-gz": ["*.gz", "*.tar.gz", "*.tgz"],
|
||||||
|
"ar-rar": ["*.rar"],
|
||||||
|
"ar-rpm": ["*.rpm"],
|
||||||
|
"ar-tar": ["*.tar"],
|
||||||
|
"ar-zip": ["*.7z", "*.bz2", "*.jar", "*.lzma", "*.war", "*.z", "*.Z", "*.zip"],
|
||||||
|
"aud": ["*.aif", "*.aiff", "*.flac", "*.m4a", "*.mid", "*.mp3", "*.mpa", "*.ra", "*.ogg", "*.wav", "*.wma"],
|
||||||
|
"aud-pls": ["*.m3u", "*.m3u8", "*.pls"],
|
||||||
|
"bin": ["*.class", "*.o", "*.so"],
|
||||||
|
"bin-exe": ["*.bat", "*.cmd", "*.exe"],
|
||||||
|
"img": ["*.xpm"],
|
||||||
|
"img-bmp": ["*.bmp"],
|
||||||
|
"img-gif": ["*.gif"],
|
||||||
|
"img-ico": ["*.ico"],
|
||||||
|
"img-jpg": ["*.jpg", "*.jpeg"],
|
||||||
|
"img-png": ["*.png"],
|
||||||
|
"img-raw": ["*.cr2", "*.nef"],
|
||||||
|
"img-svg": ["*.svg"],
|
||||||
|
"img-tiff": ["*.tiff"],
|
||||||
|
"txt": ["*.text", "*.txt"],
|
||||||
|
"txt-build": ["*.pom", "build.xml", "pom.xml"],
|
||||||
|
"txt-c": ["*.c"],
|
||||||
|
"txt-cpp": ["*.cpp"],
|
||||||
|
"txt-css": ["*.css"],
|
||||||
|
"txt-diff": ["*.diff", "*.patch"],
|
||||||
|
"txt-go": ["*.go"],
|
||||||
|
"txt-h": ["*.h"],
|
||||||
|
"txt-html": ["*.htm", "*.html", "*.shtml", "*.xhtml"],
|
||||||
|
"txt-hpp": ["*.hpp"],
|
||||||
|
"txt-java": ["*.java"],
|
||||||
|
"txt-scala": ["*.scala"],
|
||||||
|
"txt-js": ["*.js"],
|
||||||
|
"txt-json": ["*.json"],
|
||||||
|
"txt-less": ["*.less"],
|
||||||
|
"txt-log": ["*.log", "changelog*"],
|
||||||
|
"txt-md": ["*.markdown", "*.md"],
|
||||||
|
"txt-php": ["*.php"],
|
||||||
|
"txt-py": ["*.py"],
|
||||||
|
"txt-rb": ["*.rb"],
|
||||||
|
"txt-rss": ["*.rss"],
|
||||||
|
"txt-rtf": ["*.rtf"],
|
||||||
|
"txt-rust": ["*.rs", "*.rlib"],
|
||||||
|
"txt-script": ["*.conf", "*.bsh", "*.csh", "*.ini", "*.ksh", "*.sh", "*.shar", "*.tcl", "*.zsh"],
|
||||||
|
"txt-source": [],
|
||||||
|
"txt-tex": ["*.tex"],
|
||||||
|
"txt-vcal": ["*.vcal"],
|
||||||
|
"txt-xml": ["*.xml"],
|
||||||
|
"vid": [],
|
||||||
|
"vid-avi": ["*.avi"],
|
||||||
|
"vid-flv": ["*.flv"],
|
||||||
|
"vid-mkv": ["*.mkv"],
|
||||||
|
"vid-mov": ["*.mov"],
|
||||||
|
"vid-mp4": ["*.mp4", "*.m4v"],
|
||||||
|
"vid-mpg": ["*.mpg"],
|
||||||
|
"vid-rm": ["*.rm"],
|
||||||
|
"vid-swf": ["*.swf"],
|
||||||
|
"vid-ts": ["*.ts"],
|
||||||
|
"vid-vob": ["*.vob"],
|
||||||
|
"vid-webm": ["*.webm"],
|
||||||
|
"vid-wmv": ["*.wmv"],
|
||||||
|
"x": [],
|
||||||
|
"x-bak": ["*.bak", "*~"],
|
||||||
|
"x-calc": ["*.ods", "*.ots", "*.xlr", "*.xls", "*.xlsx"],
|
||||||
|
"x-disc": ["*.cue", "*.iso"],
|
||||||
|
"x-doc": ["*.doc", "*.docx", "*.odm", "*.odt", "*.ott"],
|
||||||
|
"x-draw": ["*.drw"],
|
||||||
|
"x-eps": ["*.eps"],
|
||||||
|
"x-pdf": ["*.pdf"],
|
||||||
|
"x-pres": ["*.odp", "*.otp", "*.pps", "*.ppt", "*.pptx"],
|
||||||
|
"x-ps": ["*.ps"],
|
||||||
|
"x-psd": ["*.psd"]
|
||||||
|
}
|
||||||
45
config/_h5ai/private/php/class-bootstrap.php
Executable file
|
|
@ -0,0 +1,45 @@
|
||||||
|
<?php
|
||||||
|
|
||||||
|
class Bootstrap {
|
||||||
|
private static $autopaths = ['core', 'ext'];
|
||||||
|
|
||||||
|
public static function run() {
|
||||||
|
spl_autoload_register(['Bootstrap', 'autoload']);
|
||||||
|
putenv('LANG=en_US.UTF-8');
|
||||||
|
setlocale(LC_CTYPE, 'en_US.UTF-8');
|
||||||
|
date_default_timezone_set(@date_default_timezone_get());
|
||||||
|
session_start();
|
||||||
|
|
||||||
|
$session = new Session($_SESSION);
|
||||||
|
$request = new Request($_REQUEST, file_get_contents('php://input'));
|
||||||
|
$setup = new Setup($request->query_boolean('refresh', false));
|
||||||
|
$context = new Context($session, $request, $setup);
|
||||||
|
|
||||||
|
if ($context->is_api_request()) {
|
||||||
|
(new Api($context))->apply();
|
||||||
|
} elseif ($context->is_info_request()) {
|
||||||
|
$public_href = $setup->get('PUBLIC_HREF');
|
||||||
|
$x_head_tags = $context->get_x_head_html();
|
||||||
|
$fallback_mode = false;
|
||||||
|
require __DIR__ . '/pages/info.php';
|
||||||
|
} else {
|
||||||
|
$public_href = $setup->get('PUBLIC_HREF');
|
||||||
|
$x_head_tags = $context->get_x_head_html();
|
||||||
|
$fallback_mode = $context->is_fallback_mode();
|
||||||
|
$fallback_html = (new Fallback($context))->get_html();
|
||||||
|
require __DIR__ . '/pages/index.php';
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public static function autoload($class_name) {
|
||||||
|
$filename = 'class-' . strtolower($class_name) . '.php';
|
||||||
|
|
||||||
|
foreach (Bootstrap::$autopaths as $path) {
|
||||||
|
$file = __DIR__ . '/' . $path . '/' . $filename;
|
||||||
|
if (file_exists($file)) {
|
||||||
|
require_once $file;
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
110
config/_h5ai/private/php/core/class-api.php
Executable file
|
|
@ -0,0 +1,110 @@
|
||||||
|
<?php
|
||||||
|
|
||||||
|
class Api {
|
||||||
|
private $context;
|
||||||
|
private $request;
|
||||||
|
private $setup;
|
||||||
|
|
||||||
|
public function __construct($context) {
|
||||||
|
$this->context = $context;
|
||||||
|
$this->request = $context->get_request();
|
||||||
|
$this->setup = $context->get_setup();
|
||||||
|
}
|
||||||
|
|
||||||
|
public function apply() {
|
||||||
|
$action = $this->request->query('action');
|
||||||
|
$supported = ['download', 'get', 'login', 'logout'];
|
||||||
|
Util::json_fail(Util::ERR_UNSUPPORTED, 'unsupported action', !in_array($action, $supported));
|
||||||
|
|
||||||
|
$methodname = 'on_' . $action;
|
||||||
|
$this->$methodname();
|
||||||
|
}
|
||||||
|
|
||||||
|
private function on_download() {
|
||||||
|
Util::json_fail(Util::ERR_DISABLED, 'download disabled', !$this->context->query_option('download.enabled', false));
|
||||||
|
|
||||||
|
$as = $this->request->query('as');
|
||||||
|
$type = $this->request->query('type');
|
||||||
|
$base_href = $this->request->query('baseHref');
|
||||||
|
$hrefs = $this->request->query('hrefs', '');
|
||||||
|
|
||||||
|
$archive = new Archive($this->context);
|
||||||
|
|
||||||
|
set_time_limit(0);
|
||||||
|
session_write_close();
|
||||||
|
header('Content-Type: application/octet-stream');
|
||||||
|
header('Content-Disposition: attachment; filename="' . $as . '"');
|
||||||
|
header('Connection: close');
|
||||||
|
$ok = $archive->output($type, $base_href, $hrefs);
|
||||||
|
|
||||||
|
Util::json_fail(Util::ERR_FAILED, 'packaging failed', !$ok);
|
||||||
|
exit;
|
||||||
|
}
|
||||||
|
|
||||||
|
private function on_get() {
|
||||||
|
$response = [];
|
||||||
|
|
||||||
|
foreach (['langs', 'options', 'types'] as $name) {
|
||||||
|
if ($this->request->query_boolean($name, false)) {
|
||||||
|
$methodname = 'get_' . $name;
|
||||||
|
$response[$name] = $this->context->$methodname();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if ($this->request->query_boolean('setup', false)) {
|
||||||
|
$response['setup'] = $this->setup->to_jsono($this->context->is_admin());
|
||||||
|
}
|
||||||
|
|
||||||
|
if ($this->request->query_boolean('theme', false)) {
|
||||||
|
$theme = new Theme($this->context);
|
||||||
|
$response['theme'] = $theme->get_icons();
|
||||||
|
}
|
||||||
|
|
||||||
|
if ($this->request->query('items', false)) {
|
||||||
|
$href = $this->request->query('items.href');
|
||||||
|
$what = $this->request->query_numeric('items.what');
|
||||||
|
$response['items'] = $this->context->get_items($href, $what);
|
||||||
|
}
|
||||||
|
|
||||||
|
if ($this->request->query('custom', false)) {
|
||||||
|
Util::json_fail(Util::ERR_DISABLED, 'custom disabled', !$this->context->query_option('custom.enabled', false));
|
||||||
|
$href = $this->request->query('custom');
|
||||||
|
$custom = new Custom($this->context);
|
||||||
|
$response['custom'] = $custom->get_customizations($href);
|
||||||
|
}
|
||||||
|
|
||||||
|
if ($this->request->query('l10n', false)) {
|
||||||
|
Util::json_fail(Util::ERR_DISABLED, 'l10n disabled', !$this->context->query_option('l10n.enabled', false));
|
||||||
|
$iso_codes = $this->request->query_array('l10n');
|
||||||
|
$iso_codes = array_filter($iso_codes);
|
||||||
|
$response['l10n'] = $this->context->get_l10n($iso_codes);
|
||||||
|
}
|
||||||
|
|
||||||
|
if ($this->request->query('search', false)) {
|
||||||
|
Util::json_fail(Util::ERR_DISABLED, 'search disabled', !$this->context->query_option('search.enabled', false));
|
||||||
|
$href = $this->request->query('search.href');
|
||||||
|
$pattern = $this->request->query('search.pattern');
|
||||||
|
$ignorecase = $this->request->query_boolean('search.ignorecase', false);
|
||||||
|
$search = new Search($this->context);
|
||||||
|
$response['search'] = $search->get_items($href, $pattern, $ignorecase);
|
||||||
|
}
|
||||||
|
|
||||||
|
if ($this->request->query('thumbs', false)) {
|
||||||
|
Util::json_fail(Util::ERR_DISABLED, 'thumbnails disabled', !$this->context->query_option('thumbnails.enabled', false));
|
||||||
|
Util::json_fail(Util::ERR_UNSUPPORTED, 'thumbnails not supported', !$this->setup->get('HAS_PHP_JPEG'));
|
||||||
|
$thumbs = $this->request->query_array('thumbs');
|
||||||
|
$response['thumbs'] = $this->context->get_thumbs($thumbs);
|
||||||
|
}
|
||||||
|
|
||||||
|
Util::json_exit($response);
|
||||||
|
}
|
||||||
|
|
||||||
|
private function on_login() {
|
||||||
|
$pass = $this->request->query('pass');
|
||||||
|
Util::json_exit(['asAdmin' => $this->context->login_admin($pass)]);
|
||||||
|
}
|
||||||
|
|
||||||
|
private function on_logout() {
|
||||||
|
Util::json_exit(['asAdmin' => $this->context->logout_admin()]);
|
||||||
|
}
|
||||||
|
}
|
||||||
304
config/_h5ai/private/php/core/class-context.php
Executable file
|
|
@ -0,0 +1,304 @@
|
||||||
|
<?php
|
||||||
|
|
||||||
|
class Context {
|
||||||
|
private static $DEFAULT_PASSHASH = 'cf83e1357eefb8bdf1542850d66d8007d620e4050b5715dc83f4a921d36ce9ce47d0d13c5d85f2b0ff8318d2877eec2f63b931bd47417a81a538327af927da3e';
|
||||||
|
private static $AS_ADMIN_SESSION_KEY = 'AS_ADMIN';
|
||||||
|
private static $L10N_ISO_CODES = array(
|
||||||
|
'af', 'bg', 'cs', 'da', 'de', 'el', 'en', 'es', 'et', 'fi', 'fr', 'he',
|
||||||
|
'hi', 'hr', 'hu', 'id', 'it', 'ja','ko', 'lv', 'nb', 'nl', 'pl',
|
||||||
|
'pt-br', 'pt-pt', 'ro', 'ru', 'sk', 'sl', 'sr', 'sv', 'tr', 'uk',
|
||||||
|
'zh-cn', 'zh-tw'
|
||||||
|
);
|
||||||
|
|
||||||
|
private $session;
|
||||||
|
private $request;
|
||||||
|
private $setup;
|
||||||
|
private $options;
|
||||||
|
private $passhash;
|
||||||
|
|
||||||
|
public function __construct($session, $request, $setup) {
|
||||||
|
$this->session = $session;
|
||||||
|
$this->request = $request;
|
||||||
|
$this->setup = $setup;
|
||||||
|
|
||||||
|
$this->options = Json::load($this->setup->get('CONF_PATH') . '/options.json');
|
||||||
|
|
||||||
|
$this->passhash = $this->query_option('passhash', '');
|
||||||
|
$this->options['hasCustomPasshash'] = strcasecmp($this->passhash, Context::$DEFAULT_PASSHASH) !== 0;
|
||||||
|
unset($this->options['passhash']);
|
||||||
|
}
|
||||||
|
|
||||||
|
public function get_session() {
|
||||||
|
return $this->session;
|
||||||
|
}
|
||||||
|
|
||||||
|
public function get_request() {
|
||||||
|
return $this->request;
|
||||||
|
}
|
||||||
|
|
||||||
|
public function get_setup() {
|
||||||
|
return $this->setup;
|
||||||
|
}
|
||||||
|
|
||||||
|
public function get_options() {
|
||||||
|
return $this->options;
|
||||||
|
}
|
||||||
|
|
||||||
|
public function query_option($keypath = '', $default = null) {
|
||||||
|
return Util::array_query($this->options, $keypath, $default);
|
||||||
|
}
|
||||||
|
|
||||||
|
public function get_types() {
|
||||||
|
return Json::load($this->setup->get('CONF_PATH') . '/types.json');
|
||||||
|
}
|
||||||
|
|
||||||
|
public function login_admin($pass) {
|
||||||
|
$this->session->set(Context::$AS_ADMIN_SESSION_KEY, strcasecmp(hash('sha512', $pass), $this->passhash) === 0);
|
||||||
|
return $this->session->get(Context::$AS_ADMIN_SESSION_KEY);
|
||||||
|
}
|
||||||
|
|
||||||
|
public function logout_admin() {
|
||||||
|
$this->session->set(Context::$AS_ADMIN_SESSION_KEY, false);
|
||||||
|
return $this->session->get(Context::$AS_ADMIN_SESSION_KEY);
|
||||||
|
}
|
||||||
|
|
||||||
|
public function is_admin() {
|
||||||
|
return $this->session->get(Context::$AS_ADMIN_SESSION_KEY);
|
||||||
|
}
|
||||||
|
|
||||||
|
public function is_api_request() {
|
||||||
|
return strtolower($this->setup->get('REQUEST_METHOD')) === 'post';
|
||||||
|
}
|
||||||
|
|
||||||
|
public function is_info_request() {
|
||||||
|
return Util::starts_with($this->setup->get('REQUEST_HREF') . '/', $this->setup->get('PUBLIC_HREF'));
|
||||||
|
}
|
||||||
|
|
||||||
|
public function is_text_browser() {
|
||||||
|
return preg_match('/curl|links|lynx|w3m/i', $this->setup->get('HTTP_USER_AGENT')) === 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
public function is_fallback_mode() {
|
||||||
|
return $this->query_option('view.fallbackMode', false) || $this->is_text_browser();
|
||||||
|
}
|
||||||
|
|
||||||
|
public function to_href($path, $trailing_slash = true) {
|
||||||
|
$rel_path = substr($path, strlen($this->setup->get('ROOT_PATH')));
|
||||||
|
$parts = explode('/', $rel_path);
|
||||||
|
$encoded_parts = [];
|
||||||
|
foreach ($parts as $part) {
|
||||||
|
if ($part != '') {
|
||||||
|
$encoded_parts[] = rawurlencode($part);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return Util::normalize_path($this->setup->get('ROOT_HREF') . implode('/', $encoded_parts), $trailing_slash);
|
||||||
|
}
|
||||||
|
|
||||||
|
public function to_path($href) {
|
||||||
|
$rel_href = substr($href, strlen($this->setup->get('ROOT_HREF')));
|
||||||
|
return Util::normalize_path($this->setup->get('ROOT_PATH') . '/' . rawurldecode($rel_href));
|
||||||
|
}
|
||||||
|
|
||||||
|
public function is_hidden($name) {
|
||||||
|
// always hide
|
||||||
|
if ($name === '.' || $name === '..') {
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
foreach ($this->query_option('view.hidden', []) as $re) {
|
||||||
|
$re = Util::wrap_pattern($re);
|
||||||
|
if (preg_match($re, $name)) {
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
public function read_dir($path) {
|
||||||
|
$names = [];
|
||||||
|
if (is_dir($path)) {
|
||||||
|
foreach (scandir($path) as $name) {
|
||||||
|
if (
|
||||||
|
$this->is_hidden($name)
|
||||||
|
|| $this->is_hidden($this->to_href($path) . $name)
|
||||||
|
|| (!is_readable($path . '/' . $name) && $this->query_option('view.hideIf403', false))
|
||||||
|
) {
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
$names[] = $name;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return $names;
|
||||||
|
}
|
||||||
|
|
||||||
|
public function is_managed_href($href) {
|
||||||
|
return $this->is_managed_path($this->to_path($href));
|
||||||
|
}
|
||||||
|
|
||||||
|
public function is_managed_path($path) {
|
||||||
|
if (!is_dir($path) || strpos($path, '../') !== false || strpos($path, '/..') !== false || $path === '..') {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (strpos($path, $this->setup->get('PUBLIC_PATH')) === 0) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (strpos($path, $this->setup->get('PRIVATE_PATH')) === 0) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
foreach ($this->query_option('view.unmanaged', []) as $name) {
|
||||||
|
if (file_exists($path . '/' . $name)) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
while ($path !== $this->setup->get('ROOT_PATH')) {
|
||||||
|
if (@is_dir($path . '/_h5ai/private/conf')) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
$parent_path = Util::normalize_path(dirname($path));
|
||||||
|
if ($parent_path === $path) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
$path = $parent_path;
|
||||||
|
}
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
public function get_current_path() {
|
||||||
|
$current_href = Util::normalize_path($this->setup->get('REQUEST_HREF'), true);
|
||||||
|
$current_path = $this->to_path($current_href);
|
||||||
|
|
||||||
|
if (!is_dir($current_path)) {
|
||||||
|
$current_path = Util::normalize_path(dirname($current_path), false);
|
||||||
|
}
|
||||||
|
|
||||||
|
return $current_path;
|
||||||
|
}
|
||||||
|
|
||||||
|
public function get_items($href, $what) {
|
||||||
|
if (!$this->is_managed_href($href)) {
|
||||||
|
return [];
|
||||||
|
}
|
||||||
|
|
||||||
|
$cache = [];
|
||||||
|
$folder = Item::get($this, $this->to_path($href), $cache);
|
||||||
|
|
||||||
|
// add content of subfolders
|
||||||
|
if ($what >= 2 && $folder !== null) {
|
||||||
|
foreach ($folder->get_content($cache) as $item) {
|
||||||
|
$item->get_content($cache);
|
||||||
|
}
|
||||||
|
$folder = $folder->get_parent($cache);
|
||||||
|
}
|
||||||
|
|
||||||
|
// add content of this folder and all parent folders
|
||||||
|
while ($what >= 1 && $folder !== null) {
|
||||||
|
$folder->get_content($cache);
|
||||||
|
$folder = $folder->get_parent($cache);
|
||||||
|
}
|
||||||
|
|
||||||
|
uasort($cache, ['Item', 'cmp']);
|
||||||
|
$result = [];
|
||||||
|
foreach ($cache as $p => $item) {
|
||||||
|
$result[] = $item->to_json_object();
|
||||||
|
}
|
||||||
|
|
||||||
|
return $result;
|
||||||
|
}
|
||||||
|
|
||||||
|
public function get_langs() {
|
||||||
|
$langs = [];
|
||||||
|
$l10n_path = $this->setup->get('CONF_PATH') . '/l10n';
|
||||||
|
if (is_dir($l10n_path)) {
|
||||||
|
if ($dir = opendir($l10n_path)) {
|
||||||
|
while (($file = readdir($dir)) !== false) {
|
||||||
|
if (Util::ends_with($file, '.json')) {
|
||||||
|
$translations = Json::load($l10n_path . '/' . $file);
|
||||||
|
$langs[basename($file, '.json')] = $translations['lang'];
|
||||||
|
}
|
||||||
|
}
|
||||||
|
closedir($dir);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
ksort($langs);
|
||||||
|
return $langs;
|
||||||
|
}
|
||||||
|
|
||||||
|
public function get_l10n($iso_codes) {
|
||||||
|
$results = [];
|
||||||
|
|
||||||
|
foreach ($iso_codes as $iso_code) {
|
||||||
|
if (!in_array($iso_code, Context::$L10N_ISO_CODES)) {
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
|
||||||
|
$file = $this->setup->get('CONF_PATH') . '/l10n/' . $iso_code . '.json';
|
||||||
|
$results[$iso_code] = Json::load($file);
|
||||||
|
$results[$iso_code]['isoCode'] = $iso_code;
|
||||||
|
}
|
||||||
|
|
||||||
|
return $results;
|
||||||
|
}
|
||||||
|
|
||||||
|
public function get_thumbs($requests) {
|
||||||
|
$hrefs = [];
|
||||||
|
|
||||||
|
foreach ($requests as $req) {
|
||||||
|
$thumb = new Thumb($this);
|
||||||
|
$hrefs[] = $thumb->thumb($req['type'], $req['href'], $req['width'], $req['height']);
|
||||||
|
}
|
||||||
|
|
||||||
|
return $hrefs;
|
||||||
|
}
|
||||||
|
|
||||||
|
private function prefix_x_head_href($href) {
|
||||||
|
if (preg_match('@^(https?://|/)@i', $href)) {
|
||||||
|
return $href;
|
||||||
|
}
|
||||||
|
|
||||||
|
return $this->setup->get('PUBLIC_HREF') . 'ext/' . $href;
|
||||||
|
}
|
||||||
|
|
||||||
|
private function get_fonts_html() {
|
||||||
|
$fonts = $this->query_option('view.fonts', []);
|
||||||
|
$fonts_mono = $this->query_option('view.fontsMono', []);
|
||||||
|
|
||||||
|
$html = '<style class="x-head">';
|
||||||
|
|
||||||
|
if (sizeof($fonts) > 0) {
|
||||||
|
$html .= '#root,input,select{font-family:"' . implode('","', $fonts) . '"!important}';
|
||||||
|
}
|
||||||
|
|
||||||
|
if (sizeof($fonts_mono) > 0) {
|
||||||
|
$html .= 'pre,code{font-family:"' . implode('","', $fonts_mono) . '"!important}';
|
||||||
|
}
|
||||||
|
|
||||||
|
$html .= '</style>';
|
||||||
|
|
||||||
|
return $html;
|
||||||
|
}
|
||||||
|
|
||||||
|
public function get_x_head_html() {
|
||||||
|
$scripts = $this->query_option('resources.scripts', []);
|
||||||
|
$styles = $this->query_option('resources.styles', []);
|
||||||
|
|
||||||
|
$html = '';
|
||||||
|
|
||||||
|
foreach ($styles as $href) {
|
||||||
|
$html .= '<link rel="stylesheet" href="' . $this->prefix_x_head_href($href) . '" class="x-head">';
|
||||||
|
}
|
||||||
|
|
||||||
|
foreach ($scripts as $href) {
|
||||||
|
$html .= '<script src="' . $this->prefix_x_head_href($href) . '" class="x-head"></script>';
|
||||||
|
}
|
||||||
|
|
||||||
|
$html .= $this->get_fonts_html();
|
||||||
|
|
||||||
|
return $html;
|
||||||
|
}
|
||||||
|
}
|
||||||
54
config/_h5ai/private/php/core/class-fallback.php
Executable file
|
|
@ -0,0 +1,54 @@
|
||||||
|
<?php
|
||||||
|
|
||||||
|
class Fallback {
|
||||||
|
private $context;
|
||||||
|
|
||||||
|
public function __construct($context) {
|
||||||
|
$this->context = $context;
|
||||||
|
}
|
||||||
|
|
||||||
|
public function get_html($path = null) {
|
||||||
|
if (!$path) {
|
||||||
|
$path = $this->context->get_current_path();
|
||||||
|
}
|
||||||
|
$fallback_images_href = $this->context->get_setup()->get('PUBLIC_HREF') . 'images/fallback/';
|
||||||
|
|
||||||
|
$cache = [];
|
||||||
|
$folder = Item::get($this->context, $path, $cache);
|
||||||
|
$items = $folder->get_content($cache);
|
||||||
|
uasort($items, ['Item', 'cmp']);
|
||||||
|
|
||||||
|
$html = '<table>';
|
||||||
|
|
||||||
|
$html .= '<tr>';
|
||||||
|
$html .= '<th class="fb-i"></th>';
|
||||||
|
$html .= '<th class="fb-n"><span>Name</span></th>';
|
||||||
|
$html .= '<th class="fb-d"><span>Last modified</span></th>';
|
||||||
|
$html .= '<th class="fb-s"><span>Size</span></th>';
|
||||||
|
$html .= '</tr>';
|
||||||
|
|
||||||
|
if ($folder->get_parent($cache)) {
|
||||||
|
$html .= '<tr>';
|
||||||
|
$html .= '<td class="fb-i"><img src="' . $fallback_images_href . 'folder-parent.png" alt="folder-parent"/></td>';
|
||||||
|
$html .= '<td class="fb-n"><a href="..">Parent Directory</a></td>';
|
||||||
|
$html .= '<td class="fb-d"></td>';
|
||||||
|
$html .= '<td class="fb-s"></td>';
|
||||||
|
$html .= '</tr>';
|
||||||
|
}
|
||||||
|
|
||||||
|
foreach ($items as $item) {
|
||||||
|
$type = $item->is_folder ? 'folder' : 'file';
|
||||||
|
|
||||||
|
$html .= '<tr>';
|
||||||
|
$html .= '<td class="fb-i"><img src="' . $fallback_images_href . $type . '.png" alt="' . $type . '"/></td>';
|
||||||
|
$html .= '<td class="fb-n"><a href="' . $item->href . '">' . basename($item->path) . '</a></td>';
|
||||||
|
$html .= '<td class="fb-d">' . date('Y-m-d H:i', $item->date) . '</td>';
|
||||||
|
$html .= '<td class="fb-s">' . ($item->size !== null ? intval($item->size / 1000) . ' KB' : '' ) . '</td>';
|
||||||
|
$html .= '</tr>';
|
||||||
|
}
|
||||||
|
|
||||||
|
$html .= '</table>';
|
||||||
|
|
||||||
|
return $html;
|
||||||
|
}
|
||||||
|
}
|
||||||
96
config/_h5ai/private/php/core/class-filesize.php
Executable file
|
|
@ -0,0 +1,96 @@
|
||||||
|
<?php
|
||||||
|
|
||||||
|
class Filesize {
|
||||||
|
private static $cache = [];
|
||||||
|
|
||||||
|
public static function getSize($path, $withFoldersize, $withDu) {
|
||||||
|
$fs = new Filesize();
|
||||||
|
return $fs->size($path, $withFoldersize, $withDu);
|
||||||
|
}
|
||||||
|
|
||||||
|
public static function getCachedSize($path, $withFoldersize, $withDu) {
|
||||||
|
if (array_key_exists($path, Filesize::$cache)) {
|
||||||
|
return Filesize::$cache[$path];
|
||||||
|
}
|
||||||
|
|
||||||
|
$size = Filesize::getSize($path, $withFoldersize, $withDu);
|
||||||
|
|
||||||
|
Filesize::$cache[$path] = $size;
|
||||||
|
return $size;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
private function __construct() {}
|
||||||
|
|
||||||
|
private function read_dir($path) {
|
||||||
|
$paths = [];
|
||||||
|
if (is_dir($path)) {
|
||||||
|
foreach (scandir($path) as $name) {
|
||||||
|
if ($name !== '.' && $name !== '..') {
|
||||||
|
$paths[] = $path . '/' . $name;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return $paths;
|
||||||
|
}
|
||||||
|
|
||||||
|
private function php_filesize($path, $recursive = false) {
|
||||||
|
// if (PHP_INT_SIZE < 8) {
|
||||||
|
// }
|
||||||
|
$size = @filesize($path);
|
||||||
|
|
||||||
|
if (!is_dir($path) || !$recursive) {
|
||||||
|
return $size;
|
||||||
|
}
|
||||||
|
|
||||||
|
foreach ($this->read_dir($path) as $p) {
|
||||||
|
$size += $this->php_filesize($p, true);
|
||||||
|
}
|
||||||
|
return $size;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
private function exec($cmdv) {
|
||||||
|
$cmd = implode(' ', array_map('escapeshellarg', $cmdv));
|
||||||
|
$lines = [];
|
||||||
|
$rc = null;
|
||||||
|
exec($cmd, $lines, $rc);
|
||||||
|
return $lines;
|
||||||
|
}
|
||||||
|
|
||||||
|
private function exec_du_all($paths) {
|
||||||
|
$cmdv = array_merge(['du', '-sbL'], $paths);
|
||||||
|
$lines = $this->exec($cmdv);
|
||||||
|
|
||||||
|
$sizes = [];
|
||||||
|
foreach ($lines as $line) {
|
||||||
|
$parts = preg_split('/[\s]+/', $line, 2);
|
||||||
|
$size = intval($parts[0], 10);
|
||||||
|
$path = $parts[1];
|
||||||
|
$sizes[$path] = $size;
|
||||||
|
}
|
||||||
|
return $sizes;
|
||||||
|
}
|
||||||
|
|
||||||
|
private function exec_du($path) {
|
||||||
|
$sizes = $this->exec_du_all([$path]);
|
||||||
|
return $sizes[$path];
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
private function size($path, $withFoldersize = false, $withDu = false) {
|
||||||
|
if (is_file($path)) {
|
||||||
|
return $this->php_filesize($path);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (is_dir($path) && $withFoldersize) {
|
||||||
|
if ($withDu) {
|
||||||
|
return $this->exec_du($path);
|
||||||
|
}
|
||||||
|
|
||||||
|
return $this->php_filesize($path, true);
|
||||||
|
}
|
||||||
|
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
}
|
||||||
91
config/_h5ai/private/php/core/class-item.php
Executable file
|
|
@ -0,0 +1,91 @@
|
||||||
|
<?php
|
||||||
|
|
||||||
|
class Item {
|
||||||
|
public static function cmp($item1, $item2) {
|
||||||
|
if ($item1->is_folder && !$item2->is_folder) {
|
||||||
|
return -1;
|
||||||
|
}
|
||||||
|
if (!$item1->is_folder && $item2->is_folder) {
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
return strcasecmp($item1->path, $item2->path);
|
||||||
|
}
|
||||||
|
|
||||||
|
public static function get($context, $path, &$cache) {
|
||||||
|
if (!Util::starts_with($path, $context->get_setup()->get('ROOT_PATH'))) {
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (is_array($cache) && array_key_exists($path, $cache)) {
|
||||||
|
return $cache[$path];
|
||||||
|
}
|
||||||
|
|
||||||
|
$item = new Item($context, $path);
|
||||||
|
|
||||||
|
if (is_array($cache)) {
|
||||||
|
$cache[$path] = $item;
|
||||||
|
}
|
||||||
|
return $item;
|
||||||
|
}
|
||||||
|
|
||||||
|
public $context;
|
||||||
|
public $path;
|
||||||
|
public $href;
|
||||||
|
public $date;
|
||||||
|
public $size;
|
||||||
|
public $is_folder;
|
||||||
|
public $is_content_fetched;
|
||||||
|
|
||||||
|
private function __construct($context, $path) {
|
||||||
|
$this->context = $context;
|
||||||
|
|
||||||
|
$this->path = Util::normalize_path($path, false);
|
||||||
|
$this->is_folder = is_dir($this->path);
|
||||||
|
$this->href = $context->to_href($this->path, $this->is_folder);
|
||||||
|
$this->date = @filemtime($this->path);
|
||||||
|
$this->size = Util::filesize($context, $this->path);
|
||||||
|
$this->is_content_fetched = false;
|
||||||
|
}
|
||||||
|
|
||||||
|
public function to_json_object() {
|
||||||
|
$obj = [
|
||||||
|
'href' => $this->href,
|
||||||
|
'time' => $this->date * 1000, // seconds (PHP) to milliseconds (JavaScript)
|
||||||
|
'size' => $this->size
|
||||||
|
];
|
||||||
|
|
||||||
|
if ($this->is_folder) {
|
||||||
|
$obj['managed'] = $this->context->is_managed_href($this->href);
|
||||||
|
$obj['fetched'] = $this->is_content_fetched;
|
||||||
|
}
|
||||||
|
|
||||||
|
return $obj;
|
||||||
|
}
|
||||||
|
|
||||||
|
public function get_parent(&$cache) {
|
||||||
|
$parent_path = Util::normalize_path(dirname($this->path), false);
|
||||||
|
if ($parent_path !== $this->path && Util::starts_with($parent_path, $this->context->get_setup()->get('ROOT_PATH'))) {
|
||||||
|
return Item::get($this->context, $parent_path, $cache);
|
||||||
|
}
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
public function get_content(&$cache) {
|
||||||
|
$items = [];
|
||||||
|
|
||||||
|
if (!$this->context->is_managed_href($this->href)) {
|
||||||
|
return $items;
|
||||||
|
}
|
||||||
|
|
||||||
|
$files = $this->context->read_dir($this->path);
|
||||||
|
foreach ($files as $file) {
|
||||||
|
$item = Item::get($this->context, $this->path . '/' . $file, $cache);
|
||||||
|
$items[$item->path] = $item;
|
||||||
|
}
|
||||||
|
|
||||||
|
$this->is_content_fetched = true;
|
||||||
|
|
||||||
|
return $items;
|
||||||
|
}
|
||||||
|
}
|
||||||
65
config/_h5ai/private/php/core/class-json.php
Executable file
|
|
@ -0,0 +1,65 @@
|
||||||
|
<?php
|
||||||
|
|
||||||
|
class Json {
|
||||||
|
const SINGLE = 1;
|
||||||
|
const MULTI = 2;
|
||||||
|
|
||||||
|
public static function load($path) {
|
||||||
|
if (!is_readable($path)) {
|
||||||
|
return [];
|
||||||
|
}
|
||||||
|
|
||||||
|
$json = file_get_contents($path);
|
||||||
|
return Json::decode($json);
|
||||||
|
}
|
||||||
|
|
||||||
|
public static function save($path, $obj) {
|
||||||
|
$json = json_encode($obj);
|
||||||
|
return file_put_contents($path, $json) !== false;
|
||||||
|
}
|
||||||
|
|
||||||
|
private static function decode($json) {
|
||||||
|
$json = Json::strip($json);
|
||||||
|
return json_decode($json, true);
|
||||||
|
}
|
||||||
|
|
||||||
|
private static function strip($commented_json) {
|
||||||
|
$insideString = false;
|
||||||
|
$insideComment = false;
|
||||||
|
$json = '';
|
||||||
|
|
||||||
|
for ($i = 0, $len = strlen($commented_json); $i < $len; $i += 1) {
|
||||||
|
$char = $commented_json[$i];
|
||||||
|
$charchar = $char . @$commented_json[$i + 1];
|
||||||
|
$prevChar = @$commented_json[$i - 1];
|
||||||
|
|
||||||
|
if (!$insideComment && $char === '"' && $prevChar !== "\\") {
|
||||||
|
$insideString = !$insideString;
|
||||||
|
}
|
||||||
|
|
||||||
|
if ($insideString) {
|
||||||
|
$json .= $char;
|
||||||
|
} elseif (!$insideComment && $charchar === '//') {
|
||||||
|
$insideComment = Json::SINGLE;
|
||||||
|
$i += 1;
|
||||||
|
} elseif (!$insideComment && $charchar === '/*') {
|
||||||
|
$insideComment = Json::MULTI;
|
||||||
|
$i += 1;
|
||||||
|
} elseif (!$insideComment) {
|
||||||
|
$json .= $char;
|
||||||
|
} elseif ($insideComment === Json::SINGLE && $charchar === "\r\n") {
|
||||||
|
$insideComment = false;
|
||||||
|
$json .= $charchar;
|
||||||
|
$i += 1;
|
||||||
|
} elseif ($insideComment === Json::SINGLE && $char === "\n") {
|
||||||
|
$insideComment = false;
|
||||||
|
$json .= $char;
|
||||||
|
} elseif ($insideComment === Json::MULTI && $charchar === '*/') {
|
||||||
|
$insideComment = false;
|
||||||
|
$i += 1;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return $json;
|
||||||
|
}
|
||||||
|
}
|
||||||
28
config/_h5ai/private/php/core/class-logger.php
Executable file
|
|
@ -0,0 +1,28 @@
|
||||||
|
<?php
|
||||||
|
|
||||||
|
class Logger {
|
||||||
|
private static $start;
|
||||||
|
private static $prev;
|
||||||
|
|
||||||
|
private static function time() {
|
||||||
|
return microtime(true) * 1000; // sec * 1000 = ms
|
||||||
|
}
|
||||||
|
|
||||||
|
public static function init() {
|
||||||
|
self::$start = self::time();
|
||||||
|
self::$prev = self::$start;
|
||||||
|
register_shutdown_function(function () { Logger::log('shutdown'); });
|
||||||
|
Logger::log('--------------------------------');
|
||||||
|
}
|
||||||
|
|
||||||
|
public static function log($message=null, $obj=null) {
|
||||||
|
$now = self::time();
|
||||||
|
$message = number_format($now - self::$start, 3) . ' ' . number_format($now - self::$prev, 3) . ' ' . $message;
|
||||||
|
|
||||||
|
@error_log($message . ' ' . var_export($obj, true));
|
||||||
|
|
||||||
|
self::$prev = $now;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
Logger::init();
|
||||||
38
config/_h5ai/private/php/core/class-request.php
Executable file
|
|
@ -0,0 +1,38 @@
|
||||||
|
<?php
|
||||||
|
|
||||||
|
class Request {
|
||||||
|
private $params;
|
||||||
|
|
||||||
|
public function __construct($params, $body) {
|
||||||
|
$data = json_decode($body, true);
|
||||||
|
$this->params = $data !== null ? $data : $params;
|
||||||
|
}
|
||||||
|
|
||||||
|
public function query($keypath = '', $default = Util::NO_DEFAULT) {
|
||||||
|
$value = Util::array_query($this->params, $keypath, Util::NO_DEFAULT);
|
||||||
|
|
||||||
|
if ($value === Util::NO_DEFAULT) {
|
||||||
|
Util::json_fail(Util::ERR_MISSING_PARAM, 'parameter \'' . $keypath . '\' is missing', $default === Util::NO_DEFAULT);
|
||||||
|
return $default;
|
||||||
|
}
|
||||||
|
|
||||||
|
return $value;
|
||||||
|
}
|
||||||
|
|
||||||
|
public function query_boolean($keypath = '', $default = Util::NO_DEFAULT) {
|
||||||
|
$value = $this->query($keypath, $default);
|
||||||
|
return filter_var($value, FILTER_VALIDATE_BOOLEAN);
|
||||||
|
}
|
||||||
|
|
||||||
|
public function query_numeric($keypath = '', $default = Util::NO_DEFAULT) {
|
||||||
|
$value = $this->query($keypath, $default);
|
||||||
|
Util::json_fail(Util::ERR_ILLIGAL_PARAM, 'parameter \'' . $keypath . '\' is not numeric', !is_numeric($value));
|
||||||
|
return intval($value, 10);
|
||||||
|
}
|
||||||
|
|
||||||
|
public function query_array($keypath = '', $default = Util::NO_DEFAULT) {
|
||||||
|
$value = $this->query($keypath, $default);
|
||||||
|
Util::json_fail(Util::ERR_ILLIGAL_PARAM, 'parameter \'' . $keypath . '\' is no array', !is_array($value));
|
||||||
|
return $value;
|
||||||
|
}
|
||||||
|
}
|
||||||