├── .github └── workflows │ ├── app.yml │ ├── documentation.yml │ ├── manager.yml │ └── release.yml ├── .gitignore ├── LICENSE ├── README.md ├── app ├── .dockerignore ├── .env.example ├── .eslintrc.cjs ├── .gitignore ├── .vscode │ ├── extensions.json │ └── settings.json ├── Dockerfile ├── index.html ├── nginx.conf ├── package.json ├── pnpm-lock.yaml ├── public │ └── fine-weather-gallery.ico ├── src │ ├── App.vue │ ├── components │ │ ├── ImageAsync.vue │ │ ├── ImageCard.vue │ │ └── ImageDetail.vue │ ├── main.js │ ├── style.css │ └── views │ │ └── FineWeather.vue └── vite.config.js ├── docker-compose.yml └── manager ├── .flaskenv ├── .gitignore ├── .pre-commit-config.yaml ├── Dockerfile ├── README.md ├── app.py ├── docs ├── _assets │ └── fine-weather-gallery.ico ├── changelog.md ├── features.md ├── index.md └── zh │ ├── changelog.md │ ├── features.md │ └── index.md ├── fw_manager ├── __init__.py ├── blueprints │ ├── __init__.py │ ├── error.py │ ├── manager.py │ └── retriever.py ├── commands.py ├── forms.py ├── models.py ├── static │ └── favicon.svg ├── templates │ ├── base.html │ ├── manager.html │ └── settings.html └── utils.py ├── mkdocs.yml ├── pdm.lock ├── pyproject.toml ├── pytest.ini ├── requirements.txt └── tests ├── conftest.py ├── resources └── picture.png └── test_manager.py /.github/workflows/app.yml: -------------------------------------------------------------------------------- 1 | name: App Workflow 2 | 3 | permissions: 4 | contents: write 5 | 6 | on: 7 | push: 8 | branches: [ main ] 9 | pull_request: 10 | branches: [ main ] 11 | 12 | jobs: 13 | lint: 14 | name: App Lint 15 | runs-on: ubuntu-latest 16 | defaults: 17 | run: 18 | working-directory: app 19 | steps: 20 | - name: Checkout 21 | uses: actions/checkout@v3 22 | 23 | - uses: pnpm/action-setup@v2 24 | with: 25 | version: 8 26 | 27 | - name: Setup Node.js 28 | uses: actions/setup-node@v4 29 | with: 30 | node-version: '20' 31 | cache: 'pnpm' 32 | cache-dependency-path: 'app/pnpm-lock.yaml' 33 | 34 | - name: Install dependencies 35 | run: pnpm install 36 | 37 | - name: Lint 38 | run: pnpm run lint 39 | -------------------------------------------------------------------------------- /.github/workflows/documentation.yml: -------------------------------------------------------------------------------- 1 | name: Documentation Workflow 2 | 3 | on: 4 | push: 5 | branches: [ main ] 6 | pull_request: 7 | branches: [ main ] 8 | 9 | jobs: 10 | build: 11 | runs-on: ubuntu-latest 12 | permissions: 13 | contents: read 14 | steps: 15 | - uses: actions/checkout@v4 16 | - name: Move manager out 17 | run: mv ./manager/* ./ 18 | - name: Setup PDM 19 | uses: pdm-project/setup-pdm@v3 20 | with: 21 | python-version: '3.12' 22 | cache: true 23 | - name: Install dependencies 24 | run: pdm install -Gdoc 25 | - name: Build documentation 26 | run: pdm run mkdocs build --clean 27 | - name: Upload artifact 28 | uses: actions/upload-artifact@v4 29 | with: 30 | name: documentation 31 | path: site 32 | 33 | deploy: 34 | needs: build 35 | if: github.event_name == 'push' && github.ref == 'refs/heads/main' 36 | runs-on: ubuntu-latest 37 | permissions: 38 | pages: write 39 | id-token: write 40 | environment: 41 | name: github-pages 42 | steps: 43 | - name: Download artifact 44 | uses: actions/download-artifact@v4 45 | with: 46 | name: documentation 47 | path: site 48 | - name: Upload to GitHub Pages 49 | uses: actions/upload-pages-artifact@v3 50 | with: 51 | path: site 52 | - name: Deploy to GitHub Pages 53 | uses: actions/deploy-pages@v4 54 | -------------------------------------------------------------------------------- /.github/workflows/manager.yml: -------------------------------------------------------------------------------- 1 | name: Manager Workflow 2 | 3 | on: 4 | push: 5 | branches: [ main ] 6 | pull_request: 7 | branches: [ main ] 8 | 9 | jobs: 10 | test: 11 | name: Testing 12 | runs-on: ubuntu-latest 13 | steps: 14 | - uses: actions/checkout@v3 15 | - name: Move manager out 16 | run: mv ./manager/* ./ 17 | - name: Setup PDM 18 | uses: pdm-project/setup-pdm@v3 19 | with: 20 | python-version: '3.12' 21 | cache: true 22 | - name: Install dependencies 23 | run: pdm install -Gtest 24 | - name: Run tests 25 | run: pdm test 26 | -------------------------------------------------------------------------------- /.github/workflows/release.yml: -------------------------------------------------------------------------------- 1 | name: Make release 2 | 3 | on: 4 | push: 5 | tags: 6 | - "v*" 7 | 8 | jobs: 9 | release-note: 10 | name: Generate Release Notes 11 | runs-on: ubuntu-latest 12 | permissions: 13 | contents: write 14 | 15 | steps: 16 | - uses: actions/checkout@v3 17 | with: 18 | fetch-depth: 0 19 | 20 | - uses: actions/setup-node@v3 21 | with: 22 | node-version: 18 23 | 24 | - run: npx changelogithub 25 | env: 26 | GITHUB_TOKEN: ${{secrets.GITHUB_TOKEN}} 27 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | .DS_Store 2 | manager_data/ 3 | .idea 4 | .vscode 5 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2024 CodeKitchen Community 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. 22 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 |
2 |
3 |
4 |
2 |
3 |
4 |
# | 32 |Image | 33 |Title | 34 |Desc | 35 |Position | 36 |Time | 37 |Actions | 38 |
---|---|---|---|---|---|---|
{{ loop.index }} | 44 |
45 | |
48 | {{ image['title'] }} | 49 |{{ image['description'] }} | 50 |{{ image['position'] }} | 51 |{{ image['time'] }} | 52 |53 | 57 | 61 | | 62 |
67 | No Data 68 | | 69 |