mirror of
https://github.com/Kuingsmile/PicList.git
synced 2026-05-06 20:42:57 +08:00
🔨 Refactor(custom): change eol to lf
This commit is contained in:
144
.github/workflows/mas.yml
vendored
144
.github/workflows/mas.yml
vendored
@@ -1,72 +1,72 @@
|
||||
# main.yml
|
||||
|
||||
# Workflow's name
|
||||
name: Mas Build
|
||||
|
||||
# Workflow's trigger
|
||||
on:
|
||||
workflow_dispatch:
|
||||
|
||||
env:
|
||||
ELECTRON_OUTPUT_PATH: ./dist_electron
|
||||
CSC_LINK: ${{ secrets.BUILD_CERTIFICATE_BASE64 }}
|
||||
CSC_KEY_PASSWORD: ${{ secrets.P12_PASSWORD }}
|
||||
|
||||
# Workflow's jobs
|
||||
jobs:
|
||||
# job's id
|
||||
release:
|
||||
# job's name
|
||||
name: build and release electron app
|
||||
|
||||
# the type of machine to run the job on
|
||||
runs-on: ${{ matrix.os }}
|
||||
|
||||
# create a build matrix for jobs
|
||||
strategy:
|
||||
fail-fast: false
|
||||
matrix:
|
||||
os: [macos-13]
|
||||
|
||||
# create steps
|
||||
steps:
|
||||
# step1: check out repository
|
||||
- name: Check out git repository
|
||||
uses: actions/checkout@v2
|
||||
|
||||
# step2: sign
|
||||
- name: Install the Apple certificates
|
||||
if: matrix.os == 'macos-13'
|
||||
run: |
|
||||
PP_PATH=$RUNNER_TEMP/build/piclistmas.provisionprofile
|
||||
echo -n "$BUILD_PROVISION_PROFILE_BASE64" | base64 --decode -o $PP_PATH
|
||||
|
||||
# step2: install node env
|
||||
- name: Install Node.js
|
||||
uses: actions/setup-node@v4
|
||||
with:
|
||||
node-version: '18.17.0'
|
||||
|
||||
# step3: yarn
|
||||
- name: Yarn install
|
||||
run: |
|
||||
yarn
|
||||
yarn global add xvfb-maybe
|
||||
|
||||
- name: Build & release app
|
||||
run: |
|
||||
yarn build
|
||||
yarn upload-beta
|
||||
env:
|
||||
GH_TOKEN: ${{ secrets.GH_TOKEN }}
|
||||
R2_SECRET_ID: ${{ secrets.R2_SECRET_ID }}
|
||||
R2_SECRET_KEY: ${{ secrets.R2_SECRET_KEY }}
|
||||
R2_ACCOUNT_ID: ${{ secrets.R2_ACCOUNT_ID }}
|
||||
ELECTRON_SKIP_NOTARIZATION: ${{ secrets.ELECTRON_SKIP_NOTARIZATION }}
|
||||
XCODE_APP_LOADER_EMAIL: ${{ secrets.XCODE_APP_LOADER_EMAIL }}
|
||||
XCODE_APP_LOADER_PASSWORD: ${{ secrets.XCODE_APP_LOADER_PASSWORD }}
|
||||
XCODE_TEAM_ID: ${{ secrets.XCODE_TEAM_ID }}
|
||||
BUILD_CERTIFICATE_BASE64: ${{ secrets.BUILD_CERTIFICATE_BASE64 }}
|
||||
P12_PASSWORD: ${{ secrets.P12_PASSWORD }}
|
||||
BUILD_PROVISION_PROFILE_BASE64: ${{ secrets.BUILD_PROVISION_PROFILE_BASE64 }}
|
||||
KEYCHAIN_PASSWORD: ${{ secrets.KEYCHAIN_PASSWORD }}
|
||||
# main.yml
|
||||
|
||||
# Workflow's name
|
||||
name: Mas Build
|
||||
|
||||
# Workflow's trigger
|
||||
on:
|
||||
workflow_dispatch:
|
||||
|
||||
env:
|
||||
ELECTRON_OUTPUT_PATH: ./dist_electron
|
||||
CSC_LINK: ${{ secrets.BUILD_CERTIFICATE_BASE64 }}
|
||||
CSC_KEY_PASSWORD: ${{ secrets.P12_PASSWORD }}
|
||||
|
||||
# Workflow's jobs
|
||||
jobs:
|
||||
# job's id
|
||||
release:
|
||||
# job's name
|
||||
name: build and release electron app
|
||||
|
||||
# the type of machine to run the job on
|
||||
runs-on: ${{ matrix.os }}
|
||||
|
||||
# create a build matrix for jobs
|
||||
strategy:
|
||||
fail-fast: false
|
||||
matrix:
|
||||
os: [macos-13]
|
||||
|
||||
# create steps
|
||||
steps:
|
||||
# step1: check out repository
|
||||
- name: Check out git repository
|
||||
uses: actions/checkout@v2
|
||||
|
||||
# step2: sign
|
||||
- name: Install the Apple certificates
|
||||
if: matrix.os == 'macos-13'
|
||||
run: |
|
||||
PP_PATH=$RUNNER_TEMP/build/piclistmas.provisionprofile
|
||||
echo -n "$BUILD_PROVISION_PROFILE_BASE64" | base64 --decode -o $PP_PATH
|
||||
|
||||
# step2: install node env
|
||||
- name: Install Node.js
|
||||
uses: actions/setup-node@v4
|
||||
with:
|
||||
node-version: '18.17.0'
|
||||
|
||||
# step3: yarn
|
||||
- name: Yarn install
|
||||
run: |
|
||||
yarn
|
||||
yarn global add xvfb-maybe
|
||||
|
||||
- name: Build & release app
|
||||
run: |
|
||||
yarn build
|
||||
yarn upload-beta
|
||||
env:
|
||||
GH_TOKEN: ${{ secrets.GH_TOKEN }}
|
||||
R2_SECRET_ID: ${{ secrets.R2_SECRET_ID }}
|
||||
R2_SECRET_KEY: ${{ secrets.R2_SECRET_KEY }}
|
||||
R2_ACCOUNT_ID: ${{ secrets.R2_ACCOUNT_ID }}
|
||||
ELECTRON_SKIP_NOTARIZATION: ${{ secrets.ELECTRON_SKIP_NOTARIZATION }}
|
||||
XCODE_APP_LOADER_EMAIL: ${{ secrets.XCODE_APP_LOADER_EMAIL }}
|
||||
XCODE_APP_LOADER_PASSWORD: ${{ secrets.XCODE_APP_LOADER_PASSWORD }}
|
||||
XCODE_TEAM_ID: ${{ secrets.XCODE_TEAM_ID }}
|
||||
BUILD_CERTIFICATE_BASE64: ${{ secrets.BUILD_CERTIFICATE_BASE64 }}
|
||||
P12_PASSWORD: ${{ secrets.P12_PASSWORD }}
|
||||
BUILD_PROVISION_PROFILE_BASE64: ${{ secrets.BUILD_PROVISION_PROFILE_BASE64 }}
|
||||
KEYCHAIN_PASSWORD: ${{ secrets.KEYCHAIN_PASSWORD }}
|
||||
|
||||
422
.github/workflows/test-build.yml
vendored
422
.github/workflows/test-build.yml
vendored
@@ -1,211 +1,211 @@
|
||||
name: Test Build
|
||||
|
||||
on:
|
||||
workflow_dispatch:
|
||||
|
||||
env:
|
||||
ELECTRON_OUTPUT_PATH: ./dist_electron
|
||||
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
||||
GH_TOKEN: ${{ secrets.GH_TOKEN }}
|
||||
USE_HARD_LINKS: false
|
||||
|
||||
jobs:
|
||||
test-build:
|
||||
name: Test Build for ${{ matrix.os }}
|
||||
|
||||
runs-on: ${{ matrix.os }}
|
||||
|
||||
strategy:
|
||||
fail-fast: false
|
||||
matrix:
|
||||
os: [ubuntu-latest, macos-13, windows-latest, windows-11-arm, macos-latest]
|
||||
|
||||
steps:
|
||||
- name: Set up git config
|
||||
run: |
|
||||
git config --global core.autocrlf false
|
||||
|
||||
- name: Check out git repository
|
||||
uses: actions/checkout@v4
|
||||
|
||||
- name: Install Node.js
|
||||
uses: actions/setup-node@v4
|
||||
with:
|
||||
node-version: '22.x'
|
||||
|
||||
- name: Install system deps
|
||||
if: matrix.os == 'ubuntu-latest'
|
||||
run: |
|
||||
sudo apt-get update
|
||||
sudo apt-get install --no-install-recommends -y icnsutils graphicsmagick xz-utils
|
||||
|
||||
- name: Install dependencies (macOS)
|
||||
if: matrix.os == 'macos-13' || matrix.os == 'macos-latest'
|
||||
run: |
|
||||
yarn config set ignore-engines true
|
||||
yarn install
|
||||
|
||||
- name: Install dependencies (Windows)
|
||||
if: matrix.os == 'windows-latest' || matrix.os == 'windows-11-arm'
|
||||
run: |
|
||||
yarn config set ignore-engines true
|
||||
yarn install
|
||||
|
||||
- name: Install dependencies (Linux)
|
||||
if: matrix.os == 'ubuntu-latest'
|
||||
run: |
|
||||
yarn config set ignore-engines true
|
||||
yarn install
|
||||
|
||||
- name: Modify electron-builder.json for Windows x64
|
||||
if: matrix.os == 'windows-latest'
|
||||
run: |
|
||||
# Remove arm64 from the arch array, keep only x64
|
||||
$config = Get-Content electron-builder.json | ConvertFrom-Json
|
||||
$config.win.target[0].arch = @("x64", "ia32")
|
||||
$config | ConvertTo-Json -Depth 10 | Set-Content electron-builder.json
|
||||
|
||||
- name: Modify electron-builder.json for Windows ARM64
|
||||
if: matrix.os == 'windows-11-arm'
|
||||
run: |
|
||||
# Remove x64 from the arch array, keep only arm64
|
||||
$config = Get-Content electron-builder.json | ConvertFrom-Json
|
||||
$config.win.target[0].arch = @("arm64")
|
||||
$config | ConvertTo-Json -Depth 10 | Set-Content electron-builder.json
|
||||
|
||||
- name: Modify electron-builder.json for Macos x64
|
||||
if: matrix.os == 'macos-13'
|
||||
run: |
|
||||
# Remove arm64 from the arch array, keep only x64
|
||||
jq '.mac.target[0].arch = ["x64"]' electron-builder.json > tmp.json && mv tmp.json electron-builder.json
|
||||
|
||||
- name: Modify electron-builder.json for Macos ARM64
|
||||
if: matrix.os == 'macos-latest'
|
||||
run: |
|
||||
# Remove x64 from the arch array, keep only arm64
|
||||
jq '.mac.target[0].arch = ["arm64"]' electron-builder.json > tmp.json && mv tmp.json electron-builder.json
|
||||
|
||||
- name: Build application (Windows x64)
|
||||
if: matrix.os == 'windows-latest' || matrix.os == 'windows-11-arm'
|
||||
run: yarn build:win
|
||||
env:
|
||||
ELECTRON_SKIP_NOTARIZATION: true
|
||||
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
||||
GH_TOKEN: ${{ secrets.GH_TOKEN }}
|
||||
|
||||
- name: Build application (macOS)
|
||||
if: matrix.os == 'macos-13' || matrix.os == 'macos-latest'
|
||||
run: yarn build:mac
|
||||
env:
|
||||
ELECTRON_SKIP_NOTARIZATION: true
|
||||
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
||||
GH_TOKEN: ${{ secrets.GH_TOKEN }}
|
||||
USE_HARD_LINKS: false
|
||||
|
||||
- name: Build application (Linux)
|
||||
if: matrix.os == 'ubuntu-latest'
|
||||
run: yarn build:linux
|
||||
env:
|
||||
ELECTRON_SKIP_NOTARIZATION: true
|
||||
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
||||
GH_TOKEN: ${{ secrets.GH_TOKEN }}
|
||||
|
||||
- name: Upload Windows x64 executables
|
||||
if: matrix.os == 'windows-latest'
|
||||
uses: actions/upload-artifact@v4
|
||||
with:
|
||||
name: windows-x64-executables
|
||||
path: |
|
||||
dist_electron/*
|
||||
retention-days: 30
|
||||
if-no-files-found: error
|
||||
|
||||
- name: Upload Windows ARM64 executables
|
||||
if: matrix.os == 'windows-11-arm'
|
||||
uses: actions/upload-artifact@v4
|
||||
with:
|
||||
name: windows-arm64-executables
|
||||
path: |
|
||||
dist_electron/*.exe
|
||||
retention-days: 30
|
||||
if-no-files-found: error
|
||||
|
||||
- name: Upload macOS packages
|
||||
if: matrix.os == 'macos-13'
|
||||
uses: actions/upload-artifact@v4
|
||||
with:
|
||||
name: macos-x64-packages
|
||||
path: |
|
||||
dist_electron/*.dmg
|
||||
retention-days: 30
|
||||
if-no-files-found: error
|
||||
|
||||
- name: Upload macOS ARM64 packages
|
||||
if: matrix.os == 'macos-latest'
|
||||
uses: actions/upload-artifact@v4
|
||||
with:
|
||||
name: macos-arm64-packages
|
||||
path: |
|
||||
dist_electron/*.dmg
|
||||
retention-days: 30
|
||||
|
||||
- name: Upload Linux packages
|
||||
if: matrix.os == 'ubuntu-latest'
|
||||
uses: actions/upload-artifact@v4
|
||||
with:
|
||||
name: linux-packages
|
||||
path: |
|
||||
dist_electron/*.AppImage
|
||||
dist_electron/*.snap
|
||||
retention-days: 30
|
||||
if-no-files-found: ignore
|
||||
|
||||
- name: Upload Windows x64 yml
|
||||
if: matrix.os == 'windows-latest'
|
||||
uses: actions/upload-artifact@v4
|
||||
with:
|
||||
name: windows-x64-yml
|
||||
path: |
|
||||
dist_electron/github/*
|
||||
retention-days: 30
|
||||
if-no-files-found: error
|
||||
|
||||
- name: Upload Windows ARM64 yml
|
||||
if: matrix.os == 'windows-11-arm'
|
||||
uses: actions/upload-artifact@v4
|
||||
with:
|
||||
name: windows-arm64-yml
|
||||
path: |
|
||||
dist_electron/github/*
|
||||
retention-days: 30
|
||||
if-no-files-found: error
|
||||
|
||||
- name: Upload macOS yml
|
||||
if: matrix.os == 'macos-13'
|
||||
uses: actions/upload-artifact@v4
|
||||
with:
|
||||
name: macos-x64-yml
|
||||
path: |
|
||||
dist_electron/github/*
|
||||
retention-days: 30
|
||||
if-no-files-found: error
|
||||
|
||||
- name: Upload macOS ARM64 yml
|
||||
if: matrix.os == 'macos-latest'
|
||||
uses: actions/upload-artifact@v4
|
||||
with:
|
||||
name: macos-arm64-yml
|
||||
path: |
|
||||
dist_electron/github/*
|
||||
retention-days: 30
|
||||
if-no-files-found: error
|
||||
|
||||
- name: Upload Linux yml
|
||||
if: matrix.os == 'ubuntu-latest'
|
||||
uses: actions/upload-artifact@v4
|
||||
with:
|
||||
name: linux-yml
|
||||
path: |
|
||||
dist_electron/github/*
|
||||
retention-days: 30
|
||||
if-no-files-found: ignore
|
||||
name: Test Build
|
||||
|
||||
on:
|
||||
workflow_dispatch:
|
||||
|
||||
env:
|
||||
ELECTRON_OUTPUT_PATH: ./dist_electron
|
||||
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
||||
GH_TOKEN: ${{ secrets.GH_TOKEN }}
|
||||
USE_HARD_LINKS: false
|
||||
|
||||
jobs:
|
||||
test-build:
|
||||
name: Test Build for ${{ matrix.os }}
|
||||
|
||||
runs-on: ${{ matrix.os }}
|
||||
|
||||
strategy:
|
||||
fail-fast: false
|
||||
matrix:
|
||||
os: [ubuntu-latest, macos-13, windows-latest, windows-11-arm, macos-latest]
|
||||
|
||||
steps:
|
||||
- name: Set up git config
|
||||
run: |
|
||||
git config --global core.autocrlf false
|
||||
|
||||
- name: Check out git repository
|
||||
uses: actions/checkout@v4
|
||||
|
||||
- name: Install Node.js
|
||||
uses: actions/setup-node@v4
|
||||
with:
|
||||
node-version: '22.x'
|
||||
|
||||
- name: Install system deps
|
||||
if: matrix.os == 'ubuntu-latest'
|
||||
run: |
|
||||
sudo apt-get update
|
||||
sudo apt-get install --no-install-recommends -y icnsutils graphicsmagick xz-utils
|
||||
|
||||
- name: Install dependencies (macOS)
|
||||
if: matrix.os == 'macos-13' || matrix.os == 'macos-latest'
|
||||
run: |
|
||||
yarn config set ignore-engines true
|
||||
yarn install
|
||||
|
||||
- name: Install dependencies (Windows)
|
||||
if: matrix.os == 'windows-latest' || matrix.os == 'windows-11-arm'
|
||||
run: |
|
||||
yarn config set ignore-engines true
|
||||
yarn install
|
||||
|
||||
- name: Install dependencies (Linux)
|
||||
if: matrix.os == 'ubuntu-latest'
|
||||
run: |
|
||||
yarn config set ignore-engines true
|
||||
yarn install
|
||||
|
||||
- name: Modify electron-builder.json for Windows x64
|
||||
if: matrix.os == 'windows-latest'
|
||||
run: |
|
||||
# Remove arm64 from the arch array, keep only x64
|
||||
$config = Get-Content electron-builder.json | ConvertFrom-Json
|
||||
$config.win.target[0].arch = @("x64", "ia32")
|
||||
$config | ConvertTo-Json -Depth 10 | Set-Content electron-builder.json
|
||||
|
||||
- name: Modify electron-builder.json for Windows ARM64
|
||||
if: matrix.os == 'windows-11-arm'
|
||||
run: |
|
||||
# Remove x64 from the arch array, keep only arm64
|
||||
$config = Get-Content electron-builder.json | ConvertFrom-Json
|
||||
$config.win.target[0].arch = @("arm64")
|
||||
$config | ConvertTo-Json -Depth 10 | Set-Content electron-builder.json
|
||||
|
||||
- name: Modify electron-builder.json for Macos x64
|
||||
if: matrix.os == 'macos-13'
|
||||
run: |
|
||||
# Remove arm64 from the arch array, keep only x64
|
||||
jq '.mac.target[0].arch = ["x64"]' electron-builder.json > tmp.json && mv tmp.json electron-builder.json
|
||||
|
||||
- name: Modify electron-builder.json for Macos ARM64
|
||||
if: matrix.os == 'macos-latest'
|
||||
run: |
|
||||
# Remove x64 from the arch array, keep only arm64
|
||||
jq '.mac.target[0].arch = ["arm64"]' electron-builder.json > tmp.json && mv tmp.json electron-builder.json
|
||||
|
||||
- name: Build application (Windows x64)
|
||||
if: matrix.os == 'windows-latest' || matrix.os == 'windows-11-arm'
|
||||
run: yarn build:win
|
||||
env:
|
||||
ELECTRON_SKIP_NOTARIZATION: true
|
||||
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
||||
GH_TOKEN: ${{ secrets.GH_TOKEN }}
|
||||
|
||||
- name: Build application (macOS)
|
||||
if: matrix.os == 'macos-13' || matrix.os == 'macos-latest'
|
||||
run: yarn build:mac
|
||||
env:
|
||||
ELECTRON_SKIP_NOTARIZATION: true
|
||||
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
||||
GH_TOKEN: ${{ secrets.GH_TOKEN }}
|
||||
USE_HARD_LINKS: false
|
||||
|
||||
- name: Build application (Linux)
|
||||
if: matrix.os == 'ubuntu-latest'
|
||||
run: yarn build:linux
|
||||
env:
|
||||
ELECTRON_SKIP_NOTARIZATION: true
|
||||
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
||||
GH_TOKEN: ${{ secrets.GH_TOKEN }}
|
||||
|
||||
- name: Upload Windows x64 executables
|
||||
if: matrix.os == 'windows-latest'
|
||||
uses: actions/upload-artifact@v4
|
||||
with:
|
||||
name: windows-x64-executables
|
||||
path: |
|
||||
dist_electron/*
|
||||
retention-days: 30
|
||||
if-no-files-found: error
|
||||
|
||||
- name: Upload Windows ARM64 executables
|
||||
if: matrix.os == 'windows-11-arm'
|
||||
uses: actions/upload-artifact@v4
|
||||
with:
|
||||
name: windows-arm64-executables
|
||||
path: |
|
||||
dist_electron/*.exe
|
||||
retention-days: 30
|
||||
if-no-files-found: error
|
||||
|
||||
- name: Upload macOS packages
|
||||
if: matrix.os == 'macos-13'
|
||||
uses: actions/upload-artifact@v4
|
||||
with:
|
||||
name: macos-x64-packages
|
||||
path: |
|
||||
dist_electron/*.dmg
|
||||
retention-days: 30
|
||||
if-no-files-found: error
|
||||
|
||||
- name: Upload macOS ARM64 packages
|
||||
if: matrix.os == 'macos-latest'
|
||||
uses: actions/upload-artifact@v4
|
||||
with:
|
||||
name: macos-arm64-packages
|
||||
path: |
|
||||
dist_electron/*.dmg
|
||||
retention-days: 30
|
||||
|
||||
- name: Upload Linux packages
|
||||
if: matrix.os == 'ubuntu-latest'
|
||||
uses: actions/upload-artifact@v4
|
||||
with:
|
||||
name: linux-packages
|
||||
path: |
|
||||
dist_electron/*.AppImage
|
||||
dist_electron/*.snap
|
||||
retention-days: 30
|
||||
if-no-files-found: ignore
|
||||
|
||||
- name: Upload Windows x64 yml
|
||||
if: matrix.os == 'windows-latest'
|
||||
uses: actions/upload-artifact@v4
|
||||
with:
|
||||
name: windows-x64-yml
|
||||
path: |
|
||||
dist_electron/github/*
|
||||
retention-days: 30
|
||||
if-no-files-found: error
|
||||
|
||||
- name: Upload Windows ARM64 yml
|
||||
if: matrix.os == 'windows-11-arm'
|
||||
uses: actions/upload-artifact@v4
|
||||
with:
|
||||
name: windows-arm64-yml
|
||||
path: |
|
||||
dist_electron/github/*
|
||||
retention-days: 30
|
||||
if-no-files-found: error
|
||||
|
||||
- name: Upload macOS yml
|
||||
if: matrix.os == 'macos-13'
|
||||
uses: actions/upload-artifact@v4
|
||||
with:
|
||||
name: macos-x64-yml
|
||||
path: |
|
||||
dist_electron/github/*
|
||||
retention-days: 30
|
||||
if-no-files-found: error
|
||||
|
||||
- name: Upload macOS ARM64 yml
|
||||
if: matrix.os == 'macos-latest'
|
||||
uses: actions/upload-artifact@v4
|
||||
with:
|
||||
name: macos-arm64-yml
|
||||
path: |
|
||||
dist_electron/github/*
|
||||
retention-days: 30
|
||||
if-no-files-found: error
|
||||
|
||||
- name: Upload Linux yml
|
||||
if: matrix.os == 'ubuntu-latest'
|
||||
uses: actions/upload-artifact@v4
|
||||
with:
|
||||
name: linux-yml
|
||||
path: |
|
||||
dist_electron/github/*
|
||||
retention-days: 30
|
||||
if-no-files-found: ignore
|
||||
|
||||
76
.vscode/launch.json
vendored
76
.vscode/launch.json
vendored
@@ -1,39 +1,39 @@
|
||||
{
|
||||
"version": "0.2.0",
|
||||
"configurations": [
|
||||
{
|
||||
"name": "Debug Main Process",
|
||||
"type": "node",
|
||||
"request": "launch",
|
||||
"cwd": "${workspaceRoot}",
|
||||
"runtimeExecutable": "${workspaceRoot}/node_modules/.bin/electron-vite",
|
||||
"windows": {
|
||||
"runtimeExecutable": "${workspaceRoot}/node_modules/.bin/electron-vite.cmd"
|
||||
},
|
||||
"runtimeArgs": ["--sourcemap"],
|
||||
"env": {
|
||||
"REMOTE_DEBUGGING_PORT": "9222"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "Debug Renderer Process",
|
||||
"port": 9222,
|
||||
"request": "attach",
|
||||
"type": "chrome",
|
||||
"webRoot": "${workspaceFolder}/src/renderer",
|
||||
"timeout": 60000,
|
||||
"presentation": {
|
||||
"hidden": true
|
||||
}
|
||||
}
|
||||
],
|
||||
"compounds": [
|
||||
{
|
||||
"name": "Debug All",
|
||||
"configurations": ["Debug Main Process", "Debug Renderer Process"],
|
||||
"presentation": {
|
||||
"order": 1
|
||||
}
|
||||
}
|
||||
]
|
||||
{
|
||||
"version": "0.2.0",
|
||||
"configurations": [
|
||||
{
|
||||
"name": "Debug Main Process",
|
||||
"type": "node",
|
||||
"request": "launch",
|
||||
"cwd": "${workspaceRoot}",
|
||||
"runtimeExecutable": "${workspaceRoot}/node_modules/.bin/electron-vite",
|
||||
"windows": {
|
||||
"runtimeExecutable": "${workspaceRoot}/node_modules/.bin/electron-vite.cmd"
|
||||
},
|
||||
"runtimeArgs": ["--sourcemap"],
|
||||
"env": {
|
||||
"REMOTE_DEBUGGING_PORT": "9222"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "Debug Renderer Process",
|
||||
"port": 9222,
|
||||
"request": "attach",
|
||||
"type": "chrome",
|
||||
"webRoot": "${workspaceFolder}/src/renderer",
|
||||
"timeout": 60000,
|
||||
"presentation": {
|
||||
"hidden": true
|
||||
}
|
||||
}
|
||||
],
|
||||
"compounds": [
|
||||
{
|
||||
"name": "Debug All",
|
||||
"configurations": ["Debug Main Process", "Debug Renderer Process"],
|
||||
"presentation": {
|
||||
"order": 1
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
30
.vscode/mcp.json
vendored
30
.vscode/mcp.json
vendored
@@ -1,15 +1,15 @@
|
||||
{
|
||||
"inputs": [
|
||||
// The "inputs" section defines the inputs required for the MCP server configuration.
|
||||
{
|
||||
"type": "promptString"
|
||||
}
|
||||
],
|
||||
"servers": {
|
||||
// The "servers" section defines the MCP servers you want to use.
|
||||
"fetch": {
|
||||
"command": "uvx",
|
||||
"args": ["mcp-server-fetch"]
|
||||
}
|
||||
}
|
||||
}
|
||||
{
|
||||
"inputs": [
|
||||
// The "inputs" section defines the inputs required for the MCP server configuration.
|
||||
{
|
||||
"type": "promptString"
|
||||
}
|
||||
],
|
||||
"servers": {
|
||||
// The "servers" section defines the MCP servers you want to use.
|
||||
"fetch": {
|
||||
"command": "uvx",
|
||||
"args": ["mcp-server-fetch"]
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
4340
CHANGELOG.md
4340
CHANGELOG.md
File diff suppressed because it is too large
Load Diff
@@ -1,37 +1,37 @@
|
||||
# 贡献指南
|
||||
|
||||
## 安装与启动
|
||||
|
||||
最低要求:
|
||||
|
||||
- Node.js >= 20
|
||||
- Yarn >= 1.22
|
||||
|
||||
1. 使用 [yarn](https://yarnpkg.com/) 安装依赖
|
||||
|
||||
```bash
|
||||
yarn
|
||||
```
|
||||
|
||||
然后通过
|
||||
|
||||
```bash
|
||||
yarn dev
|
||||
```
|
||||
|
||||
启动项目。
|
||||
|
||||
1. 只跟 Electron 主进程相关的代码请在 `src/main` 目录下添加。只跟渲染进程相关的代码请在 `src/renderer` 目录下添加。需要暴露到渲染进程的代码请在 `src/preload` 目录下添加。
|
||||
2. 所有的全局类型定义请在 `src/universal/types/` 里添加。
|
||||
3. 与图床管理功能相关的代码请在 `src/main/manage`和 `src/renderer/manage`目录下添加。
|
||||
|
||||
## i18n-主进程
|
||||
|
||||
1. 在 `public/i18n/` 下面创建一种语言的 `yml` 文件,例如 `zh-Hans.yml`。然后参考 `zh-CN.yml` 或者 `en.yml` 编写语言文件。并注意,PicList 会通过语言文件中的 `LANG_DISPLAY_LABEL` 向用户展示该语言的名称。
|
||||
2. 在 `src/universal/i18n/index.ts` 里添加一种默认语言。其中 `label` 就是语言文件中 `LANG_DISPLAY_LABEL` 的值,`value` 是语言文件名。
|
||||
3. 如果是对已有语言文件进行更新,请在更新完,务必运行一遍 `yarn i18n`,确保能生成正确的语言定义文件。
|
||||
|
||||
## 提交代码
|
||||
|
||||
1. 请检查代码没有多余的注释、`console.log` 等调试代码。
|
||||
2. 提交代码前,请执行命令 `git add . && yarn cz`,唤起 [代码提交规范工具](https://github.com/Kuingsmile/node-bump-version)。通过该工具提交代码。
|
||||
# 贡献指南
|
||||
|
||||
## 安装与启动
|
||||
|
||||
最低要求:
|
||||
|
||||
- Node.js >= 20
|
||||
- Yarn >= 1.22
|
||||
|
||||
1. 使用 [yarn](https://yarnpkg.com/) 安装依赖
|
||||
|
||||
```bash
|
||||
yarn
|
||||
```
|
||||
|
||||
然后通过
|
||||
|
||||
```bash
|
||||
yarn dev
|
||||
```
|
||||
|
||||
启动项目。
|
||||
|
||||
1. 只跟 Electron 主进程相关的代码请在 `src/main` 目录下添加。只跟渲染进程相关的代码请在 `src/renderer` 目录下添加。需要暴露到渲染进程的代码请在 `src/preload` 目录下添加。
|
||||
2. 所有的全局类型定义请在 `src/universal/types/` 里添加。
|
||||
3. 与图床管理功能相关的代码请在 `src/main/manage`和 `src/renderer/manage`目录下添加。
|
||||
|
||||
## i18n-主进程
|
||||
|
||||
1. 在 `public/i18n/` 下面创建一种语言的 `yml` 文件,例如 `zh-Hans.yml`。然后参考 `zh-CN.yml` 或者 `en.yml` 编写语言文件。并注意,PicList 会通过语言文件中的 `LANG_DISPLAY_LABEL` 向用户展示该语言的名称。
|
||||
2. 在 `src/universal/i18n/index.ts` 里添加一种默认语言。其中 `label` 就是语言文件中 `LANG_DISPLAY_LABEL` 的值,`value` 是语言文件名。
|
||||
3. 如果是对已有语言文件进行更新,请在更新完,务必运行一遍 `yarn i18n`,确保能生成正确的语言定义文件。
|
||||
|
||||
## 提交代码
|
||||
|
||||
1. 请检查代码没有多余的注释、`console.log` 等调试代码。
|
||||
2. 提交代码前,请执行命令 `git add . && yarn cz`,唤起 [代码提交规范工具](https://github.com/Kuingsmile/node-bump-version)。通过该工具提交代码。
|
||||
|
||||
@@ -1,37 +1,37 @@
|
||||
# Contribution Guidelines
|
||||
|
||||
## Installation and startup
|
||||
|
||||
Minimum requirements:
|
||||
|
||||
- Node.js >= 20
|
||||
- Yarn >= 1.22
|
||||
|
||||
1. Use [yarn](https://yarnpkg.com/) to install dependencies
|
||||
|
||||
```bash
|
||||
yarn
|
||||
```
|
||||
|
||||
then pass
|
||||
|
||||
```bash
|
||||
yarn dev
|
||||
```
|
||||
|
||||
Startup project.
|
||||
|
||||
1. Please add code only related to the main process of Electron in the `src/main` directory. Code only related to the rendering process should be added in the `src/renderer` directory. Add code that needs to be exposed to the rendering process in the `src/preload` directory.
|
||||
2. Please add all global type definitions in `src/universal/types/`, if it is `enum`, please add it in `src/universal/types/enum.ts`.
|
||||
3. Code related to the management function of the picture bed should be added in the `src/main/manage` and `src/renderer/manage` directory.
|
||||
|
||||
## i18n-Main Process
|
||||
|
||||
1. Create a language `yml` file under `public/i18n/`, for example `zh-Hans.yml`. Then refer to `zh-CN.yml` or `en.yml` to write language files. Also note that PicList will display the name of the language to the user via `LANG_DISPLAY_LABEL` in the language file.
|
||||
2. Add a default language to `src/universal/i18n/index.ts`. where `label` is the value of `LANG_DISPLAY_LABEL` in the language file, and `value` is the name of the language file.
|
||||
3. If you are updating an existing language file, be sure to run `yarn i18n` after the update to ensure that the correct language definition file can be generated.
|
||||
|
||||
## Submit code
|
||||
|
||||
1. Please check that the code has no extra comments, `console.log` and other debugging code.
|
||||
2. Before submitting the code, please execute the command `git add . && yarn cz` to invoke [Code Submission Specification Tool](https://github.com/Kuingsmile/node-bump-version). Submit code through this tool.
|
||||
# Contribution Guidelines
|
||||
|
||||
## Installation and startup
|
||||
|
||||
Minimum requirements:
|
||||
|
||||
- Node.js >= 20
|
||||
- Yarn >= 1.22
|
||||
|
||||
1. Use [yarn](https://yarnpkg.com/) to install dependencies
|
||||
|
||||
```bash
|
||||
yarn
|
||||
```
|
||||
|
||||
then pass
|
||||
|
||||
```bash
|
||||
yarn dev
|
||||
```
|
||||
|
||||
Startup project.
|
||||
|
||||
1. Please add code only related to the main process of Electron in the `src/main` directory. Code only related to the rendering process should be added in the `src/renderer` directory. Add code that needs to be exposed to the rendering process in the `src/preload` directory.
|
||||
2. Please add all global type definitions in `src/universal/types/`, if it is `enum`, please add it in `src/universal/types/enum.ts`.
|
||||
3. Code related to the management function of the picture bed should be added in the `src/main/manage` and `src/renderer/manage` directory.
|
||||
|
||||
## i18n-Main Process
|
||||
|
||||
1. Create a language `yml` file under `public/i18n/`, for example `zh-Hans.yml`. Then refer to `zh-CN.yml` or `en.yml` to write language files. Also note that PicList will display the name of the language to the user via `LANG_DISPLAY_LABEL` in the language file.
|
||||
2. Add a default language to `src/universal/i18n/index.ts`. where `label` is the value of `LANG_DISPLAY_LABEL` in the language file, and `value` is the name of the language file.
|
||||
3. If you are updating an existing language file, be sure to run `yarn i18n` after the update to ensure that the correct language definition file can be generated.
|
||||
|
||||
## Submit code
|
||||
|
||||
1. Please check that the code has no extra comments, `console.log` and other debugging code.
|
||||
2. Before submitting the code, please execute the command `git add . && yarn cz` to invoke [Code Submission Specification Tool](https://github.com/Kuingsmile/node-bump-version). Submit code through this tool.
|
||||
|
||||
332
FAQ.md
332
FAQ.md
@@ -1,166 +1,166 @@
|
||||
# FAQ
|
||||
|
||||
本 FAQ 修改自 PicGo 的 FAQ,感谢 PicGo 的作者 Molunerfinn。
|
||||
|
||||
## 常见问题
|
||||
|
||||
> 常规配置问题请参考 [官方文档](https://piclist.cn)
|
||||
|
||||
## 1. PicList 和 PicGo 有什么关系?
|
||||
|
||||
PicList 项目是从 PicGo 项目 fork 而来,基于 PicGo 进行了二次开发。同时,核心功能内核 PicGo-Core 也进行了二次开发,并重命名为 [PicList-Core](https://github.com/Kuingsmile/PicList-Core)。
|
||||
|
||||
PicList 添加的所有新功能未影响 PicGo 的原有功能,因此你可以在 PicList 中使用 PicGo 的大部分插件。同时,仍然可以配合 Typora、Obsidian 等软件使用。
|
||||
|
||||
## 2. 使用图床管理功能时,出现无法获取目录等错误
|
||||
|
||||
请查看日志文件 `manage.log`。此外,各平台的 API 调用基本都有每小时次数限制,如果出现错误,请稍后再试。
|
||||
|
||||
## 3. 支持哪些图床远端同步删除
|
||||
|
||||
目前支持的图床有:
|
||||
|
||||
- 阿里云 OSS
|
||||
- 腾讯云 COS
|
||||
- 七牛云 Kodo
|
||||
- 又拍云
|
||||
- SM.MS
|
||||
- Imgur
|
||||
- GitHub
|
||||
- WebDav
|
||||
- Aws S3
|
||||
- 本地路径
|
||||
- 内置SFTP
|
||||
- 多吉云
|
||||
- 华为云 OBS
|
||||
- Alist
|
||||
- 兰空图床
|
||||
|
||||
## 4. 能否支持上传视频文件
|
||||
|
||||
可以,通过新添加的图床管理功能,你可以上传任意格式的文件,包括视频文件。同时,在管理界面内上传时,使用分片上传/流式上传等方式,相对于PicGo内置的转换为base64的方式,上传更快,更稳定。
|
||||
|
||||
## 5. 能否支持xxx图床
|
||||
|
||||
PicList本体支持了如下图床:
|
||||
|
||||
- `七牛图床`
|
||||
- `AWS S3 兼容平台`
|
||||
- `腾讯云 COS`
|
||||
- `又拍云`
|
||||
- `GitHub`
|
||||
- `SM.MS`
|
||||
- `阿里云 OSS`
|
||||
- `Imgur`
|
||||
- `Webdav`
|
||||
- `本地图床`
|
||||
- `SFTP`
|
||||
- `兰空图床`
|
||||
- `PicList(套娃)`
|
||||
- `高级自定义图床`
|
||||
|
||||
PicList计划整合和优化现有插件,内置更多的常用图床。
|
||||
|
||||
此外,PicList兼容PicGo的插件系统,需要其他图床支持可以参考目前已有的PicGo三方 [插件](https://github.com/PicGo/Awesome-PicGo),如果还是没有你所需要的图床欢迎开发一个插件供大家使用。
|
||||
|
||||
## 6. Github 图床有时能上传,有时上传失败
|
||||
|
||||
GitHub 服务器和国内 GFW 的问题会导致有时上传成功,有时上传失败,无解。
|
||||
|
||||
想要稳定请使用付费云存储,如阿里云、腾讯云等,价格也不会贵。
|
||||
|
||||
## 7. Mac 上无法打开 PicList 的主窗口界面
|
||||
|
||||
要打开主窗口,请右键或者双指点按顶部栏 PicList 图标,选择「打开主窗口」即可打开主窗口。
|
||||
|
||||
或者在dock栏中右键PicList图标,选择「打开主窗口」。
|
||||
|
||||
## 8. 上传失败,或者是服务器出错
|
||||
|
||||
1. PicList 自带的图床都经过测试,上传出错一般都不是 PicList 自身的原因。如果你用的是 GitHub 图床请参考上面的第 7 点。
|
||||
2. 检查 PicList 的日志(报错日志可以在 PicList 设置 -> 设置日志文件 -> 点击打开 后找到),看看 `[PicList Error]` 的报错信息里有什么关键信息
|
||||
1. 先自行搜索 error 里的报错信息,往往你能百度或者谷歌出问题原因,不必开 issue。
|
||||
2. 如果有带有 `401` 、`403` 等 `40X` 状态码字样的,不用怀疑,就是你配置写错了,仔细检查配置,看看是否多了空格之类的。
|
||||
3. 如果带有 `HttpError`、`RequestError` 、 `socket hang up` 等字样的说明这是网络问题,我无法帮你解决网络问题,请检查你自己的网络,是否有代理,DNS 设置是否正常等。
|
||||
3. 通常网络问题引起的上传失败都是因为代理设置不当导致的。如果开启了系统代理,建议同时也在 PicList 的代理设置中设置对应的HTTP代理。
|
||||
|
||||
## 10. macOS版本安装完之后没有主界面
|
||||
|
||||
请找到PicList在顶部栏的图标,然后右键(触摸板双指点按,或者鼠标右键),即可找到「打开主窗口」的菜单。
|
||||
|
||||
或者再Docker栏PicList的图标上右键,即可找到「打开主窗口」的菜单。
|
||||
|
||||
## 11. macOS系统安装完PicList显示「文件已损坏」或者安装完打开没有反应
|
||||
|
||||
请升级至 PicList 1.4.1 或以上版本。
|
||||
|
||||
## 12. 水印没有正常添加
|
||||
|
||||
PicList在添加水印前会先检查字体文件是否存在,如果不存在会自动下载字体文件,但是由于网络问题,可能会导致字体文件下载失败,此时会跳过水印添加。
|
||||
|
||||
请根据自己的系统检查对应路径下的字体文件是否存在,如果不存在,请手动下载字体文件,然后放到对应的路径下。
|
||||
|
||||
Windows: `%APPDATA%\piclist\assets\simhei.ttf`
|
||||
Linux: `$XDG_CONFIG_HOME/piclist/assets/simhei.ttf` or `~/.config//assets/simhei.ttf`
|
||||
macOS: `~/Library/Application\ Support/picgo/assets/simhei.ttf`
|
||||
|
||||
字体文件下载地址:[https://release.piclist.cn/simhei.ttf](https://release.piclist.cn/simhei.ttf)
|
||||
|
||||
## 13. 使用aws-s3插件上传到cloudflare R2时出现上传失败问题
|
||||
|
||||
R2的endpoint地址会出现被GFW sni阻断的问题,查看piclist.log后将对应的ip地址加入代理列表可解决。
|
||||
|
||||
## 14. PicList兼容所有的PicGo插件吗?
|
||||
|
||||
PicList兼容绝大部分的PicGo插件。然而由于PicList使用了更新的electron版本,与旧版本的sharp库不兼容,所以部分插件可能无法使用。
|
||||
|
||||
已知的无法使用的插件有:
|
||||
|
||||
- picgo-plugin-watermark (已经内置)
|
||||
- picgo-plugin-pic-migrater (该插件会校验PicGo的版本,无法使用,请换用pic-migrater-piclist插件)
|
||||
- picgo-plugin-auto-delete (已经内置)
|
||||
|
||||
欢迎大家测试其他插件,如果有无法使用的插件,欢迎开issue反馈。
|
||||
|
||||
## 15. 如何通过Docker运行PicList-core?
|
||||
|
||||
### docker run
|
||||
|
||||
修改 `./piclist`为你自己的路径,修改 `piclist123456`为你自己的密钥。
|
||||
|
||||
```bash
|
||||
docker run -d \
|
||||
--name piclist \
|
||||
--restart always \
|
||||
-p 36677:36677 \
|
||||
-v "./piclist:/root/.piclist" \
|
||||
kuingsmile/piclist:latest \
|
||||
node /usr/local/bin/picgo-server -k piclist123456
|
||||
```
|
||||
|
||||
### docker-compose
|
||||
|
||||
下载piclist-core仓库的 `docker-compose.yml`文件,或者复制以下内容到 `docker-compose.yml`文件中:
|
||||
|
||||
```yaml
|
||||
version: '3.3'
|
||||
|
||||
services:
|
||||
node:
|
||||
image: 'kuingsmile/piclist:latest'
|
||||
container_name: piclist
|
||||
restart: always
|
||||
ports:
|
||||
- 36677:36677
|
||||
volumes:
|
||||
- './piclist:/root/.piclist'
|
||||
command: node /usr/local/bin/picgo-server -k piclist123456
|
||||
```
|
||||
|
||||
你可以修改 `volumes`为你自己的路径,修改 `command`为你自己的密钥。
|
||||
|
||||
然后运行
|
||||
|
||||
```bash
|
||||
docker-compose up -d
|
||||
```
|
||||
# FAQ
|
||||
|
||||
本 FAQ 修改自 PicGo 的 FAQ,感谢 PicGo 的作者 Molunerfinn。
|
||||
|
||||
## 常见问题
|
||||
|
||||
> 常规配置问题请参考 [官方文档](https://piclist.cn)
|
||||
|
||||
## 1. PicList 和 PicGo 有什么关系?
|
||||
|
||||
PicList 项目是从 PicGo 项目 fork 而来,基于 PicGo 进行了二次开发。同时,核心功能内核 PicGo-Core 也进行了二次开发,并重命名为 [PicList-Core](https://github.com/Kuingsmile/PicList-Core)。
|
||||
|
||||
PicList 添加的所有新功能未影响 PicGo 的原有功能,因此你可以在 PicList 中使用 PicGo 的大部分插件。同时,仍然可以配合 Typora、Obsidian 等软件使用。
|
||||
|
||||
## 2. 使用图床管理功能时,出现无法获取目录等错误
|
||||
|
||||
请查看日志文件 `manage.log`。此外,各平台的 API 调用基本都有每小时次数限制,如果出现错误,请稍后再试。
|
||||
|
||||
## 3. 支持哪些图床远端同步删除
|
||||
|
||||
目前支持的图床有:
|
||||
|
||||
- 阿里云 OSS
|
||||
- 腾讯云 COS
|
||||
- 七牛云 Kodo
|
||||
- 又拍云
|
||||
- SM.MS
|
||||
- Imgur
|
||||
- GitHub
|
||||
- WebDav
|
||||
- Aws S3
|
||||
- 本地路径
|
||||
- 内置SFTP
|
||||
- 多吉云
|
||||
- 华为云 OBS
|
||||
- Alist
|
||||
- 兰空图床
|
||||
|
||||
## 4. 能否支持上传视频文件
|
||||
|
||||
可以,通过新添加的图床管理功能,你可以上传任意格式的文件,包括视频文件。同时,在管理界面内上传时,使用分片上传/流式上传等方式,相对于PicGo内置的转换为base64的方式,上传更快,更稳定。
|
||||
|
||||
## 5. 能否支持xxx图床
|
||||
|
||||
PicList本体支持了如下图床:
|
||||
|
||||
- `七牛图床`
|
||||
- `AWS S3 兼容平台`
|
||||
- `腾讯云 COS`
|
||||
- `又拍云`
|
||||
- `GitHub`
|
||||
- `SM.MS`
|
||||
- `阿里云 OSS`
|
||||
- `Imgur`
|
||||
- `Webdav`
|
||||
- `本地图床`
|
||||
- `SFTP`
|
||||
- `兰空图床`
|
||||
- `PicList(套娃)`
|
||||
- `高级自定义图床`
|
||||
|
||||
PicList计划整合和优化现有插件,内置更多的常用图床。
|
||||
|
||||
此外,PicList兼容PicGo的插件系统,需要其他图床支持可以参考目前已有的PicGo三方 [插件](https://github.com/PicGo/Awesome-PicGo),如果还是没有你所需要的图床欢迎开发一个插件供大家使用。
|
||||
|
||||
## 6. Github 图床有时能上传,有时上传失败
|
||||
|
||||
GitHub 服务器和国内 GFW 的问题会导致有时上传成功,有时上传失败,无解。
|
||||
|
||||
想要稳定请使用付费云存储,如阿里云、腾讯云等,价格也不会贵。
|
||||
|
||||
## 7. Mac 上无法打开 PicList 的主窗口界面
|
||||
|
||||
要打开主窗口,请右键或者双指点按顶部栏 PicList 图标,选择「打开主窗口」即可打开主窗口。
|
||||
|
||||
或者在dock栏中右键PicList图标,选择「打开主窗口」。
|
||||
|
||||
## 8. 上传失败,或者是服务器出错
|
||||
|
||||
1. PicList 自带的图床都经过测试,上传出错一般都不是 PicList 自身的原因。如果你用的是 GitHub 图床请参考上面的第 7 点。
|
||||
2. 检查 PicList 的日志(报错日志可以在 PicList 设置 -> 设置日志文件 -> 点击打开 后找到),看看 `[PicList Error]` 的报错信息里有什么关键信息
|
||||
1. 先自行搜索 error 里的报错信息,往往你能百度或者谷歌出问题原因,不必开 issue。
|
||||
2. 如果有带有 `401` 、`403` 等 `40X` 状态码字样的,不用怀疑,就是你配置写错了,仔细检查配置,看看是否多了空格之类的。
|
||||
3. 如果带有 `HttpError`、`RequestError` 、 `socket hang up` 等字样的说明这是网络问题,我无法帮你解决网络问题,请检查你自己的网络,是否有代理,DNS 设置是否正常等。
|
||||
3. 通常网络问题引起的上传失败都是因为代理设置不当导致的。如果开启了系统代理,建议同时也在 PicList 的代理设置中设置对应的HTTP代理。
|
||||
|
||||
## 10. macOS版本安装完之后没有主界面
|
||||
|
||||
请找到PicList在顶部栏的图标,然后右键(触摸板双指点按,或者鼠标右键),即可找到「打开主窗口」的菜单。
|
||||
|
||||
或者再Docker栏PicList的图标上右键,即可找到「打开主窗口」的菜单。
|
||||
|
||||
## 11. macOS系统安装完PicList显示「文件已损坏」或者安装完打开没有反应
|
||||
|
||||
请升级至 PicList 1.4.1 或以上版本。
|
||||
|
||||
## 12. 水印没有正常添加
|
||||
|
||||
PicList在添加水印前会先检查字体文件是否存在,如果不存在会自动下载字体文件,但是由于网络问题,可能会导致字体文件下载失败,此时会跳过水印添加。
|
||||
|
||||
请根据自己的系统检查对应路径下的字体文件是否存在,如果不存在,请手动下载字体文件,然后放到对应的路径下。
|
||||
|
||||
Windows: `%APPDATA%\piclist\assets\simhei.ttf`
|
||||
Linux: `$XDG_CONFIG_HOME/piclist/assets/simhei.ttf` or `~/.config//assets/simhei.ttf`
|
||||
macOS: `~/Library/Application\ Support/picgo/assets/simhei.ttf`
|
||||
|
||||
字体文件下载地址:[https://release.piclist.cn/simhei.ttf](https://release.piclist.cn/simhei.ttf)
|
||||
|
||||
## 13. 使用aws-s3插件上传到cloudflare R2时出现上传失败问题
|
||||
|
||||
R2的endpoint地址会出现被GFW sni阻断的问题,查看piclist.log后将对应的ip地址加入代理列表可解决。
|
||||
|
||||
## 14. PicList兼容所有的PicGo插件吗?
|
||||
|
||||
PicList兼容绝大部分的PicGo插件。然而由于PicList使用了更新的electron版本,与旧版本的sharp库不兼容,所以部分插件可能无法使用。
|
||||
|
||||
已知的无法使用的插件有:
|
||||
|
||||
- picgo-plugin-watermark (已经内置)
|
||||
- picgo-plugin-pic-migrater (该插件会校验PicGo的版本,无法使用,请换用pic-migrater-piclist插件)
|
||||
- picgo-plugin-auto-delete (已经内置)
|
||||
|
||||
欢迎大家测试其他插件,如果有无法使用的插件,欢迎开issue反馈。
|
||||
|
||||
## 15. 如何通过Docker运行PicList-core?
|
||||
|
||||
### docker run
|
||||
|
||||
修改 `./piclist`为你自己的路径,修改 `piclist123456`为你自己的密钥。
|
||||
|
||||
```bash
|
||||
docker run -d \
|
||||
--name piclist \
|
||||
--restart always \
|
||||
-p 36677:36677 \
|
||||
-v "./piclist:/root/.piclist" \
|
||||
kuingsmile/piclist:latest \
|
||||
node /usr/local/bin/picgo-server -k piclist123456
|
||||
```
|
||||
|
||||
### docker-compose
|
||||
|
||||
下载piclist-core仓库的 `docker-compose.yml`文件,或者复制以下内容到 `docker-compose.yml`文件中:
|
||||
|
||||
```yaml
|
||||
version: '3.3'
|
||||
|
||||
services:
|
||||
node:
|
||||
image: 'kuingsmile/piclist:latest'
|
||||
container_name: piclist
|
||||
restart: always
|
||||
ports:
|
||||
- 36677:36677
|
||||
volumes:
|
||||
- './piclist:/root/.piclist'
|
||||
command: node /usr/local/bin/picgo-server -k piclist123456
|
||||
```
|
||||
|
||||
你可以修改 `volumes`为你自己的路径,修改 `command`为你自己的密钥。
|
||||
|
||||
然后运行
|
||||
|
||||
```bash
|
||||
docker-compose up -d
|
||||
```
|
||||
|
||||
334
FAQ_EN.md
334
FAQ_EN.md
@@ -1,167 +1,167 @@
|
||||
# FAQ
|
||||
|
||||
This FAQ has been modified from PicGo's FAQ, and thanks to the author Molunerfinn for PicGo.
|
||||
|
||||
## Common Questions
|
||||
|
||||
> Please refer to [user manual](https://piclist.cn/en) for general configuration issues.
|
||||
|
||||
## 1. What is the relationship between PicList and PicGo?
|
||||
|
||||
PicList is forked from the PicGo project and is based on PicGo for secondary development. At the same time, the core function kernel PicGo-Core has been developed for the second time and renamed as [PicList-Core](https://github.com/Kuingsmile/PicList-Core).
|
||||
|
||||
The addition of all new features to PicList has not affected PicGo's existing functions, so you can use all PicGo plugins in PicList. At the same time, it can still be used in conjunction with software such as Typora and Obsidian.
|
||||
|
||||
## 2. When using the image hosting management function, errors such as "unable to retrieve directory" occur
|
||||
|
||||
Please check the log file `manage.log`. In addition, the API calls of various platforms have a limit on the number of calls per hour. If an error occurs, please try again later.
|
||||
|
||||
## 3. Which remote image hosting deletion is supported?
|
||||
|
||||
Currently, the supported image hosting platforms are:
|
||||
|
||||
- Aliyun OSS
|
||||
- Tencent Cloud COS
|
||||
- Qiniu Cloud Kodo
|
||||
- Upyun
|
||||
- SM.MS
|
||||
- Imgur
|
||||
- GitHub
|
||||
- Webdav
|
||||
- Aws S3
|
||||
- Local path
|
||||
- Built-in SFTP
|
||||
- Doge Cloud
|
||||
- Huawei Cloud OBS
|
||||
- Alist
|
||||
- Lsky Pro
|
||||
|
||||
## 4. Is it possible to upload video files?
|
||||
|
||||
Yes. With the newly added image hosting management function, you can upload files of any format, including video files. At the same time, when uploading in the management interface, using methods such as chunked uploading and streaming uploading is faster and more stable compared to the base64 conversion method built into PicGo.
|
||||
|
||||
## 5. Does PicList support a certain image hosting platform?
|
||||
|
||||
PicList itself supports the following image hosting platforms:
|
||||
|
||||
- Qiniu Cloud
|
||||
- AWS S3 compatible platform
|
||||
- Tencent Cloud COS
|
||||
- Upyun
|
||||
- GitHub
|
||||
- SM.MS
|
||||
- Aliyun OSS
|
||||
- Imgur
|
||||
- Webdav
|
||||
- Local path
|
||||
- SFTP
|
||||
- Lsky Pro
|
||||
- PicList (nested)
|
||||
- Advanced custom image hosting
|
||||
|
||||
PicList plans to integrate and optimize existing plugins and embed more commonly used image hosting platforms.
|
||||
|
||||
In addition, PicList is compatible with PicGo's plugin system. If you need support for other image hosting platforms, you can refer to the [PicGo third-party plugins](https://github.com/PicGo/Awesome-PicGo). If you still cannot find the image hosting platform you need, please develop a plugin for everyone to use.
|
||||
|
||||
## 6. The GitHub image hosting platform sometimes uploads successfully and sometimes fails
|
||||
|
||||
The problem with GitHub servers and China's Great Firewall may cause successful or failed uploads. There is no solution.
|
||||
|
||||
If you want stability, please use paid cloud storage such as Aliyun and Tencent Cloud. The price is not expensive.
|
||||
|
||||
## 7. The main window interface of PicList cannot be opened on Mac
|
||||
|
||||
To open the main window, right-click or two-finger tap the PicList icon in the top bar and select "Open Main Window."
|
||||
|
||||
Or right-click the PicList icon in the dock and select "Open Main Window."
|
||||
|
||||
## 8. Upload failed, or server error
|
||||
|
||||
1. PicList's built-in image hosting platforms have been tested, and upload errors are generally not caused by PicList itself. If you are using the GitHub image hosting platform, please refer to the 7th point above.
|
||||
2. Check PicList's log (the error log can be found by clicking "Open" in PicList Settings -> Set Log File ->), and see if there is any key information in the `[PicList Error]` error message
|
||||
|
||||
1. First search for the error message in the error message by yourself, and you can often Baidu or Google the cause of the problem, so you don't need to open an issue.
|
||||
2. If there are `401`, `403` and other `40X` status code words, don't doubt it, it means that your configuration is wrong, check the configuration carefully to see if there are extra spaces, etc.
|
||||
3. If there are words such as `HttpError`, `RequestError`, `socket hang up`, etc., it means that this is a network problem, and I cannot help you solve the network problem. Please check your own network, whether there is a proxy, whether the DNS setting is normal, etc.
|
||||
3. Usually, upload failures caused by network problems are caused by improper proxy settings. If the system proxy is turned on, it is recommended to set the corresponding HTTP proxy in the proxy settings of PicList at the same time.
|
||||
|
||||
## 10. After installing the macOS version, there is no main interface
|
||||
|
||||
Please find the icon of PicList in the top bar, and then right-click (touchpad two-finger tap, or right-click the mouse) to find the menu of "Open Main Window".
|
||||
|
||||
Or right-click on the icon of PicList in the Docker bar to find the menu of "Open Main Window".
|
||||
|
||||
## 11. After installing PicList on macOS, it shows "The file is damaged" or there is no response after installing and opening
|
||||
|
||||
Please upgrade PicList to version 1.4.1 or above.
|
||||
|
||||
## 12. Watermark is not added normally
|
||||
|
||||
Before adding a watermark, PicList will check whether the font file exists. If it does not exist, it will automatically download the font file. However, due to network problems, the font file may fail to download, and the watermark will be skipped.
|
||||
|
||||
Please check whether the font file under the corresponding path according to your system exists. If it does not exist, please download the font file manually and put it in the corresponding path.
|
||||
|
||||
Windows: `%APPDATA%\piclist\assets\simhei.ttf`
|
||||
Linux: `$XDG_CONFIG_HOME/piclist/assets/simhei.ttf` or `~/.config//assets/simhei.ttf`
|
||||
MacOS: `~/Library/Application\ Support/picgo/assets/simhei.ttf`
|
||||
|
||||
The font file download address: [https://release.piclist.cn/simhei.ttf](https://release.piclist.cn/simhei.ttf)
|
||||
|
||||
## 13. Upload failed when using aws-s3 plugin to upload to cloudflare R2
|
||||
|
||||
R2's endpoint address will be blocked by GFW sni. After checking piclist.log, adding the corresponding IP address to the proxy list can solve the problem.
|
||||
|
||||
## 14. Are all PicGo plugins compatible with PicList?
|
||||
|
||||
PicList is compatible with most PicGo plugins. However, since PicList uses an updated version of electron, it is not compatible with the old version of the sharp library, so some plugins may not work.
|
||||
|
||||
Known plugins that cannot be used are:
|
||||
|
||||
- picgo-plugin-watermark (built-in)
|
||||
- picgo-plugin-pic-migrater (this plugin will verify the version of PicGo and cannot be used, please use the pic-migrater-piclist plugin)
|
||||
- picgo-plugin-auto-delete (built-in)
|
||||
|
||||
Welcome everyone to test other plugins. If there are plugins that cannot be used, please open an issue for feedback.
|
||||
|
||||
## 15. How to run PicList-core through Docker?
|
||||
|
||||
### docker run
|
||||
|
||||
Change the `./piclist` to your own path, and change the `piclist123456` to your own secret key.
|
||||
|
||||
```bash
|
||||
docker run -d \
|
||||
--name piclist \
|
||||
--restart always \
|
||||
-p 36677:36677 \
|
||||
-v "./piclist:/root/.piclist" \
|
||||
kuingsmile/piclist:latest \
|
||||
node /usr/local/bin/picgo-server -k piclist123456
|
||||
```
|
||||
|
||||
### docker-compose
|
||||
|
||||
download `docker-compose.yml` from piclist-core repo, or copy the following content to `docker-compose.yml`:
|
||||
|
||||
```yaml
|
||||
version: '3.3'
|
||||
|
||||
services:
|
||||
node:
|
||||
image: 'kuingsmile/piclist:latest'
|
||||
container_name: piclist
|
||||
restart: always
|
||||
ports:
|
||||
- 36677:36677
|
||||
volumes:
|
||||
- './piclist:/root/.piclist'
|
||||
command: node /usr/local/bin/picgo-server -k piclist123456
|
||||
```
|
||||
|
||||
You can change the `volumes` to your own path and change the `command` to your own secret key.
|
||||
|
||||
Then run:
|
||||
|
||||
```bash
|
||||
docker-compose up -d
|
||||
```
|
||||
# FAQ
|
||||
|
||||
This FAQ has been modified from PicGo's FAQ, and thanks to the author Molunerfinn for PicGo.
|
||||
|
||||
## Common Questions
|
||||
|
||||
> Please refer to [user manual](https://piclist.cn/en) for general configuration issues.
|
||||
|
||||
## 1. What is the relationship between PicList and PicGo?
|
||||
|
||||
PicList is forked from the PicGo project and is based on PicGo for secondary development. At the same time, the core function kernel PicGo-Core has been developed for the second time and renamed as [PicList-Core](https://github.com/Kuingsmile/PicList-Core).
|
||||
|
||||
The addition of all new features to PicList has not affected PicGo's existing functions, so you can use all PicGo plugins in PicList. At the same time, it can still be used in conjunction with software such as Typora and Obsidian.
|
||||
|
||||
## 2. When using the image hosting management function, errors such as "unable to retrieve directory" occur
|
||||
|
||||
Please check the log file `manage.log`. In addition, the API calls of various platforms have a limit on the number of calls per hour. If an error occurs, please try again later.
|
||||
|
||||
## 3. Which remote image hosting deletion is supported?
|
||||
|
||||
Currently, the supported image hosting platforms are:
|
||||
|
||||
- Aliyun OSS
|
||||
- Tencent Cloud COS
|
||||
- Qiniu Cloud Kodo
|
||||
- Upyun
|
||||
- SM.MS
|
||||
- Imgur
|
||||
- GitHub
|
||||
- Webdav
|
||||
- Aws S3
|
||||
- Local path
|
||||
- Built-in SFTP
|
||||
- Doge Cloud
|
||||
- Huawei Cloud OBS
|
||||
- Alist
|
||||
- Lsky Pro
|
||||
|
||||
## 4. Is it possible to upload video files?
|
||||
|
||||
Yes. With the newly added image hosting management function, you can upload files of any format, including video files. At the same time, when uploading in the management interface, using methods such as chunked uploading and streaming uploading is faster and more stable compared to the base64 conversion method built into PicGo.
|
||||
|
||||
## 5. Does PicList support a certain image hosting platform?
|
||||
|
||||
PicList itself supports the following image hosting platforms:
|
||||
|
||||
- Qiniu Cloud
|
||||
- AWS S3 compatible platform
|
||||
- Tencent Cloud COS
|
||||
- Upyun
|
||||
- GitHub
|
||||
- SM.MS
|
||||
- Aliyun OSS
|
||||
- Imgur
|
||||
- Webdav
|
||||
- Local path
|
||||
- SFTP
|
||||
- Lsky Pro
|
||||
- PicList (nested)
|
||||
- Advanced custom image hosting
|
||||
|
||||
PicList plans to integrate and optimize existing plugins and embed more commonly used image hosting platforms.
|
||||
|
||||
In addition, PicList is compatible with PicGo's plugin system. If you need support for other image hosting platforms, you can refer to the [PicGo third-party plugins](https://github.com/PicGo/Awesome-PicGo). If you still cannot find the image hosting platform you need, please develop a plugin for everyone to use.
|
||||
|
||||
## 6. The GitHub image hosting platform sometimes uploads successfully and sometimes fails
|
||||
|
||||
The problem with GitHub servers and China's Great Firewall may cause successful or failed uploads. There is no solution.
|
||||
|
||||
If you want stability, please use paid cloud storage such as Aliyun and Tencent Cloud. The price is not expensive.
|
||||
|
||||
## 7. The main window interface of PicList cannot be opened on Mac
|
||||
|
||||
To open the main window, right-click or two-finger tap the PicList icon in the top bar and select "Open Main Window."
|
||||
|
||||
Or right-click the PicList icon in the dock and select "Open Main Window."
|
||||
|
||||
## 8. Upload failed, or server error
|
||||
|
||||
1. PicList's built-in image hosting platforms have been tested, and upload errors are generally not caused by PicList itself. If you are using the GitHub image hosting platform, please refer to the 7th point above.
|
||||
2. Check PicList's log (the error log can be found by clicking "Open" in PicList Settings -> Set Log File ->), and see if there is any key information in the `[PicList Error]` error message
|
||||
|
||||
1. First search for the error message in the error message by yourself, and you can often Baidu or Google the cause of the problem, so you don't need to open an issue.
|
||||
2. If there are `401`, `403` and other `40X` status code words, don't doubt it, it means that your configuration is wrong, check the configuration carefully to see if there are extra spaces, etc.
|
||||
3. If there are words such as `HttpError`, `RequestError`, `socket hang up`, etc., it means that this is a network problem, and I cannot help you solve the network problem. Please check your own network, whether there is a proxy, whether the DNS setting is normal, etc.
|
||||
3. Usually, upload failures caused by network problems are caused by improper proxy settings. If the system proxy is turned on, it is recommended to set the corresponding HTTP proxy in the proxy settings of PicList at the same time.
|
||||
|
||||
## 10. After installing the macOS version, there is no main interface
|
||||
|
||||
Please find the icon of PicList in the top bar, and then right-click (touchpad two-finger tap, or right-click the mouse) to find the menu of "Open Main Window".
|
||||
|
||||
Or right-click on the icon of PicList in the Docker bar to find the menu of "Open Main Window".
|
||||
|
||||
## 11. After installing PicList on macOS, it shows "The file is damaged" or there is no response after installing and opening
|
||||
|
||||
Please upgrade PicList to version 1.4.1 or above.
|
||||
|
||||
## 12. Watermark is not added normally
|
||||
|
||||
Before adding a watermark, PicList will check whether the font file exists. If it does not exist, it will automatically download the font file. However, due to network problems, the font file may fail to download, and the watermark will be skipped.
|
||||
|
||||
Please check whether the font file under the corresponding path according to your system exists. If it does not exist, please download the font file manually and put it in the corresponding path.
|
||||
|
||||
Windows: `%APPDATA%\piclist\assets\simhei.ttf`
|
||||
Linux: `$XDG_CONFIG_HOME/piclist/assets/simhei.ttf` or `~/.config//assets/simhei.ttf`
|
||||
MacOS: `~/Library/Application\ Support/picgo/assets/simhei.ttf`
|
||||
|
||||
The font file download address: [https://release.piclist.cn/simhei.ttf](https://release.piclist.cn/simhei.ttf)
|
||||
|
||||
## 13. Upload failed when using aws-s3 plugin to upload to cloudflare R2
|
||||
|
||||
R2's endpoint address will be blocked by GFW sni. After checking piclist.log, adding the corresponding IP address to the proxy list can solve the problem.
|
||||
|
||||
## 14. Are all PicGo plugins compatible with PicList?
|
||||
|
||||
PicList is compatible with most PicGo plugins. However, since PicList uses an updated version of electron, it is not compatible with the old version of the sharp library, so some plugins may not work.
|
||||
|
||||
Known plugins that cannot be used are:
|
||||
|
||||
- picgo-plugin-watermark (built-in)
|
||||
- picgo-plugin-pic-migrater (this plugin will verify the version of PicGo and cannot be used, please use the pic-migrater-piclist plugin)
|
||||
- picgo-plugin-auto-delete (built-in)
|
||||
|
||||
Welcome everyone to test other plugins. If there are plugins that cannot be used, please open an issue for feedback.
|
||||
|
||||
## 15. How to run PicList-core through Docker?
|
||||
|
||||
### docker run
|
||||
|
||||
Change the `./piclist` to your own path, and change the `piclist123456` to your own secret key.
|
||||
|
||||
```bash
|
||||
docker run -d \
|
||||
--name piclist \
|
||||
--restart always \
|
||||
-p 36677:36677 \
|
||||
-v "./piclist:/root/.piclist" \
|
||||
kuingsmile/piclist:latest \
|
||||
node /usr/local/bin/picgo-server -k piclist123456
|
||||
```
|
||||
|
||||
### docker-compose
|
||||
|
||||
download `docker-compose.yml` from piclist-core repo, or copy the following content to `docker-compose.yml`:
|
||||
|
||||
```yaml
|
||||
version: '3.3'
|
||||
|
||||
services:
|
||||
node:
|
||||
image: 'kuingsmile/piclist:latest'
|
||||
container_name: piclist
|
||||
restart: always
|
||||
ports:
|
||||
- 36677:36677
|
||||
volumes:
|
||||
- './piclist:/root/.piclist'
|
||||
command: node /usr/local/bin/picgo-server -k piclist123456
|
||||
```
|
||||
|
||||
You can change the `volumes` to your own path and change the `command` to your own secret key.
|
||||
|
||||
Then run:
|
||||
|
||||
```bash
|
||||
docker-compose up -d
|
||||
```
|
||||
|
||||
676
README.md
676
README.md
@@ -1,338 +1,338 @@
|
||||
<div align="center">
|
||||
<img src="https://imgx.horosama.com/admin_uploads/2022/10/2022_10_05_633d79e401694.png" alt="PicList Logo">
|
||||
<h1>PicList</h1>
|
||||
<p><strong>Powerful cloud storage and image hosting management tool</strong></p>
|
||||
<a href="https://github.com/Kuingsmile/PicList/actions">
|
||||
<img src="https://img.shields.io/badge/code%20style-standard-green.svg?style=flat-square" alt="Code Style">
|
||||
</a>
|
||||
<a href="https://github.com/Kuingsmile/PicList/releases">
|
||||
<img src="https://img.shields.io/github/downloads/Kuingsmile/PicList/total.svg?style=flat-square" alt="Downloads">
|
||||
</a>
|
||||
<a href="https://github.com/Kuingsmile/PicList/releases/latest">
|
||||
<img src="https://img.shields.io/github/release/Kuingsmile/PicList.svg?style=flat-square" alt="Release">
|
||||
</a>
|
||||
</div>
|
||||
|
||||

|
||||
|
||||
[简体中文](https://github.com/Kuingsmile/PicList/blob/dev/README_cn.md) | English
|
||||
|
||||
## 📑 Table of Contents
|
||||
|
||||
- [📑 Table of Contents](#-table-of-contents)
|
||||
- [Introduction](#introduction)
|
||||
- [Official Website](#official-website)
|
||||
- [How to Migrate from PicGo](#how-to-migrate-from-picgo)
|
||||
- [PicList-Core](#piclist-core)
|
||||
- [Key Features](#key-features)
|
||||
- [Integration Guides](#integration-guides)
|
||||
- [VSCode Integration](#vscode-integration)
|
||||
- [Typora Integration](#typora-integration)
|
||||
- [**Version 1.6.0-dev and above**](#version-160-dev-and-above)
|
||||
- [**Version \< 1.6.0-dev**](#version--160-dev)
|
||||
- [Obsidian Integration](#obsidian-integration)
|
||||
- [Docker Integration](#docker-integration)
|
||||
- [Using docker run](#using-docker-run)
|
||||
- [Using docker-compose](#using-docker-compose)
|
||||
- [Supported Platforms](#supported-platforms)
|
||||
- [Download and Install](#download-and-install)
|
||||
- [Direct Download](#direct-download)
|
||||
- [Scoop (Windows)](#scoop-windows)
|
||||
- [Winget (Windows)](#winget-windows)
|
||||
- [Homebrew (macOS)](#homebrew-macos)
|
||||
- [OS Requirements](#os-requirements)
|
||||
- [Windows](#windows)
|
||||
- [macOS](#macos)
|
||||
- [Linux](#linux)
|
||||
- [Screenshots](#screenshots)
|
||||
- [Development](#development)
|
||||
- [Prerequisites](#prerequisites)
|
||||
- [Getting Started](#getting-started)
|
||||
- [Development Mode](#development-mode)
|
||||
- [Production Build](#production-build)
|
||||
- [Related Projects](#related-projects)
|
||||
- [Community](#community)
|
||||
- [License](#license)
|
||||
- [Star Me](#star-me)
|
||||
|
||||
## Introduction
|
||||
|
||||
PicList is an efficient cloud storage and image hosting management tool built upon PicGo with extensive enhancements. It combines complete image hosting capabilities with comprehensive cloud storage management features, offering:
|
||||
|
||||
- All original PicGo functionality plus compatibility with most PicGo plugins
|
||||
- Extended built-in image hosting platforms (WebDav, local hosting, SFTP, etc.)
|
||||
- Cloud-synchronized file deletion in album view
|
||||
- Comprehensive cloud storage management with file operations, search, and previews
|
||||
- Built-in image processing tools (watermarks, compression, scaling, rotation, format conversion)
|
||||
|
||||
## Official Website
|
||||
|
||||
Please visit the [PicList official website piclist.cn](https://piclist.cn) for more information.
|
||||
|
||||
You can also visit the [DeepWiki of PicList](https://deepwiki.com/Kuingsmile/PicList) to learn more about the project architecture and development.
|
||||
|
||||
## How to Migrate from PicGo
|
||||
|
||||
PicList `V1.5.0` and above provide a `one-click migration` function. Enter the `Settings` page, click the button next to `Migrate from PicGo`, then restart the application for changes to take effect.
|
||||
|
||||
## PicList-Core
|
||||
|
||||
PicList uses a modified version of PicGo-Core called [PicList-core](https://github.com/Kuingsmile/PicList-Core), adapted for cloud deletion and extended with features like:
|
||||
|
||||
- Watermark addition
|
||||
- Image compression, scaling, rotation, and format conversion
|
||||
- CLI command support
|
||||
- Built-in upload server via `picgo-server` command
|
||||
|
||||
To use PicList-core separately, visit [GitHub repo](https://github.com/Kuingsmile/PicList-Core) or the [npm package](https://www.npmjs.com/package/piclist).
|
||||
|
||||
## Key Features
|
||||
|
||||
- **Complete Compatibility**: Works with Typora, Obsidian, and most PicGo plugins
|
||||
- **Extended Platform Support**: Added WebDav, Lsky Pro, local hosting, SFTP, and account-based Imgur uploads
|
||||
- **Cloud-Sync Album**: Delete images from storage alongside local entries
|
||||
- **Advanced Album Features**: Search, sort, and batch URL modification
|
||||
- **Built-in Image Tools**: Add watermarks, compress, scale, rotate, and convert formats
|
||||
- **Form Upload**: Share across multiple computers
|
||||
- **Config Synchronization**: Save settings to GitHub/Gitee/Gitea repositories
|
||||
- **Cloud Management**: Browse directories, search files, batch operations, and more
|
||||
- **Multi-format Previews**: View images, videos, text files, and Markdown files (see [supported formats](https://github.com/Kuingsmile/PicList/blob/dev/supported_format.md))
|
||||
- **Batch Operations**: Rename cloud files with regular expressions
|
||||
- **Link Sharing**: Generate pre-signed URLs for private storage buckets
|
||||
- **Usability Improvements**: Auto-updates, multiple startup modes, UI enhancements, and more
|
||||
|
||||
## Integration Guides
|
||||
|
||||
### VSCode Integration
|
||||
|
||||
Install the [VS-PicList](https://marketplace.visualstudio.com/items?itemName=Kuingsmile.vs-piclist) plugin, which integrates directly with PicList desktop software and supports a variety of uploads and cloud deletion operations in VSCode.
|
||||
|
||||
### Typora Integration
|
||||
|
||||
#### **Version 1.6.0-dev and above**
|
||||
|
||||
**Typora 1.6.0-dev and later versions natively support PicList.** For versions below 1.10.6, set Typora's language to Chinese.
|
||||
|
||||
If your Typora version is below 1.8.0, set both the PicList and PicGo (app) upload service paths to your PicList installation path.
|
||||
|
||||
[Typora download link](https://typora.io/releases/all)
|
||||
|
||||
#### **Version < 1.6.0-dev**
|
||||
|
||||
For Windows, in Typora settings:
|
||||
|
||||
1. Set upload service to `PicGo(app)`
|
||||
2. Set `PicGo path` to your PicList installation path
|
||||
|
||||

|
||||
|
||||
Alternatively, install PicList-core with `npm install piclist` and set the upload service to `PicGo-Core (command line)`.
|
||||
|
||||
### Obsidian Integration
|
||||
|
||||
1. Install the "Image auto upload Plugin" from community plugins
|
||||
2. Set the default uploader to PicGo(app)
|
||||
3. Configure PicGo server as `http://127.0.0.1:36677/upload`
|
||||
4. For cloud deletion support, set the deletion interface to `http://127.0.0.1:36677/delete`
|
||||
|
||||

|
||||
|
||||
### Docker Integration
|
||||
|
||||
#### Using docker run
|
||||
|
||||
```bash
|
||||
docker pull kuingsmile/piclist:latest
|
||||
docker run -d \
|
||||
--name piclist \
|
||||
--restart always \
|
||||
-p 36677:36677 \
|
||||
-v "./piclist:/root/.piclist" \
|
||||
kuingsmile/piclist:latest \
|
||||
node /usr/local/bin/picgo-server -k piclist123456
|
||||
```
|
||||
|
||||
Change `./piclist` to your config directory path and `piclist123456` to your preferred secret key.
|
||||
|
||||
#### Using docker-compose
|
||||
|
||||
```yaml
|
||||
version: '3.3'
|
||||
|
||||
services:
|
||||
node:
|
||||
image: 'kuingsmile/piclist:latest'
|
||||
container_name: piclist
|
||||
restart: always
|
||||
ports:
|
||||
- 36677:36677
|
||||
volumes:
|
||||
- './piclist:/root/.piclist'
|
||||
command: node /usr/local/bin/picgo-server -k piclist123456
|
||||
```
|
||||
|
||||
Run with `docker-compose up -d`
|
||||
|
||||
## Supported Platforms
|
||||
|
||||
| Platform | Album Cloud Deletion | Cloud Storage Management |
|
||||
| :------------------------: | :------------------: | :----------------------: |
|
||||
| Built-in AList | ✔️ | ✔️ |
|
||||
| SM.MS | ✔️ | ✔️ |
|
||||
| Github | ✔️ | ✔️ |
|
||||
| Imgur | ✔️ | ✔️ |
|
||||
| Tencent COS V5 | ✔️ | ✔️ |
|
||||
| Aliyun OSS | ✔️ | ✔️ |
|
||||
| Upyun | ✔️ | ✔️ |
|
||||
| Qiniu | ✔️ | ✔️ |
|
||||
| S3 API compatible platform | ✔️ | ✔️ |
|
||||
| WebDAV | ✔️ | ✔️ |
|
||||
| Local | ✔️ | ✔️ |
|
||||
| Built-in SFTP | ✔️ | ✔️ |
|
||||
| Doge Cloud | ✔️ | ✔️ |
|
||||
| PicList(Lasso-Doll) | ✔️ | ✔️ |
|
||||
| Lsky Pro | ✔️ | ✔️ |
|
||||
| Custom API platform | × | × |
|
||||
|
||||
**Supported Plugins with Cloud Deletion:**
|
||||
|
||||
- [picgo-plugin-s3](https://github.com/wayjam/picgo-plugin-s3)
|
||||
- [picgo-plugin-alist](https://github.com/jinzhi0123/picgo-plugin-alist)
|
||||
- [picgo-plugin-huawei-uploader](https://github.com/YunfengGao/picgo-plugin-huawei-uploader)
|
||||
- [picgo-plugin-dogecloud](https://github.com/w4j1e/picgo-plugin-dogecloud)
|
||||
|
||||
## Download and Install
|
||||
|
||||
### Direct Download
|
||||
|
||||
[Download the latest release](https://github.com/Kuingsmile/PicList/releases/latest)
|
||||
|
||||
### Scoop (Windows)
|
||||
|
||||
```bash
|
||||
scoop bucket add lemon https://github.com/hoilc/scoop-lemon
|
||||
scoop install lemon/piclist
|
||||
```
|
||||
|
||||
### Winget (Windows)
|
||||
|
||||
```bash
|
||||
winget install Kuingsmile.PicList
|
||||
```
|
||||
|
||||
### Homebrew (macOS)
|
||||
|
||||
```bash
|
||||
# Install
|
||||
brew install piclist --cask
|
||||
|
||||
# Uninstall
|
||||
brew uninstall piclist
|
||||
```
|
||||
|
||||
### OS Requirements
|
||||
|
||||
#### Windows
|
||||
|
||||
- **Supported Versions**: Windows 10 and later
|
||||
- **Architectures**: `ia32` (x86), `x64` (amd64), `arm64`
|
||||
|
||||
#### macOS
|
||||
|
||||
- **Supported Versions**: macOS Big Sur (11) and later
|
||||
- **Architectures**: Intel (x64) and Apple Silicon (arm64)
|
||||
|
||||
#### Linux
|
||||
|
||||
- **Supported Versions**:
|
||||
- Ubuntu 18.04 and later
|
||||
- Fedora 32 and later
|
||||
- Debian 10 and later
|
||||
|
||||
## Screenshots
|
||||
|
||||

|
||||

|
||||

|
||||

|
||||

|
||||

|
||||
|
||||
## Development
|
||||
|
||||
### Prerequisites
|
||||
|
||||
1. Node.js 20 + and Git
|
||||
2. Knowledge of npm
|
||||
3. Xcode for Mac or Visual Studio for Windows
|
||||
|
||||
### Getting Started
|
||||
|
||||
```bash
|
||||
git clone https://github.com/Kuingsmile/PicList.git
|
||||
cd PicList
|
||||
yarn # Do not use npm install
|
||||
```
|
||||
|
||||
To contribute, see the [contribution guide](https://github.com/Kuingsmile/PicList/blob/dev/CONTRIBUTING_EN.md).
|
||||
|
||||
### Development Mode
|
||||
|
||||
```bash
|
||||
yarn run dev
|
||||
```
|
||||
|
||||
Development mode has hot-reload but may be unstable. If the process crashes, exit with `Ctrl+C` and restart.
|
||||
|
||||
Note: The PicList application icon will appear in your taskbar/system tray while in development mode.
|
||||
|
||||
### Production Build
|
||||
|
||||
```bash
|
||||
yarn run build
|
||||
```
|
||||
|
||||
The built installer will be available in the `dist_electron` directory.
|
||||
|
||||
For network issues with electron-builder, set the mirror:
|
||||
|
||||
**Linux/macOS:**
|
||||
|
||||
```bash
|
||||
export ELECTRON_MIRROR="https://npmmirror.com/mirrors/electron/"
|
||||
```
|
||||
|
||||
**Windows:**
|
||||
|
||||
```cmd
|
||||
set ELECTRON_MIRROR=https://npmmirror.com/mirrors/electron/
|
||||
```
|
||||
|
||||
## Related Projects
|
||||
|
||||
- [PicList-Core](https://github.com/Kuingsmile/PicList-Core): Core library based on PicGo-Core for CLI and development
|
||||
- [PicHoro](https://github.com/Kuingsmile/PicHoro): Mobile app companion for PicList
|
||||
- [VS-PicList](https://github.com/Kuingsmile/vs-PicList/): VSCode plugin for PicList
|
||||
|
||||
## Community
|
||||
|
||||
Join our Telegram group for questions and discussion:
|
||||
|
||||
[PicList TG Group](https://t.me/+rq8y7wsj7Pg5ZTg1)
|
||||
|
||||

|
||||
|
||||
## License
|
||||
|
||||
This project is open source under the MIT license.
|
||||
|
||||
[MIT](https://opensource.org/licenses/MIT)
|
||||
|
||||
Copyright (c) 2017-present Molunerfinn
|
||||
Copyright (c) 2023-present Kuingsmile
|
||||
|
||||
## Star Me
|
||||
|
||||
[](https://github.com/kuingsmile/PicList/stargazers)
|
||||
|
||||
[](https://github.com/kuingsmile/PicList/stargazers)
|
||||
<div align="center">
|
||||
<img src="https://imgx.horosama.com/admin_uploads/2022/10/2022_10_05_633d79e401694.png" alt="PicList Logo">
|
||||
<h1>PicList</h1>
|
||||
<p><strong>Powerful cloud storage and image hosting management tool</strong></p>
|
||||
<a href="https://github.com/Kuingsmile/PicList/actions">
|
||||
<img src="https://img.shields.io/badge/code%20style-standard-green.svg?style=flat-square" alt="Code Style">
|
||||
</a>
|
||||
<a href="https://github.com/Kuingsmile/PicList/releases">
|
||||
<img src="https://img.shields.io/github/downloads/Kuingsmile/PicList/total.svg?style=flat-square" alt="Downloads">
|
||||
</a>
|
||||
<a href="https://github.com/Kuingsmile/PicList/releases/latest">
|
||||
<img src="https://img.shields.io/github/release/Kuingsmile/PicList.svg?style=flat-square" alt="Release">
|
||||
</a>
|
||||
</div>
|
||||
|
||||

|
||||
|
||||
[简体中文](https://github.com/Kuingsmile/PicList/blob/dev/README_cn.md) | English
|
||||
|
||||
## 📑 Table of Contents
|
||||
|
||||
- [📑 Table of Contents](#-table-of-contents)
|
||||
- [Introduction](#introduction)
|
||||
- [Official Website](#official-website)
|
||||
- [How to Migrate from PicGo](#how-to-migrate-from-picgo)
|
||||
- [PicList-Core](#piclist-core)
|
||||
- [Key Features](#key-features)
|
||||
- [Integration Guides](#integration-guides)
|
||||
- [VSCode Integration](#vscode-integration)
|
||||
- [Typora Integration](#typora-integration)
|
||||
- [**Version 1.6.0-dev and above**](#version-160-dev-and-above)
|
||||
- [**Version \< 1.6.0-dev**](#version--160-dev)
|
||||
- [Obsidian Integration](#obsidian-integration)
|
||||
- [Docker Integration](#docker-integration)
|
||||
- [Using docker run](#using-docker-run)
|
||||
- [Using docker-compose](#using-docker-compose)
|
||||
- [Supported Platforms](#supported-platforms)
|
||||
- [Download and Install](#download-and-install)
|
||||
- [Direct Download](#direct-download)
|
||||
- [Scoop (Windows)](#scoop-windows)
|
||||
- [Winget (Windows)](#winget-windows)
|
||||
- [Homebrew (macOS)](#homebrew-macos)
|
||||
- [OS Requirements](#os-requirements)
|
||||
- [Windows](#windows)
|
||||
- [macOS](#macos)
|
||||
- [Linux](#linux)
|
||||
- [Screenshots](#screenshots)
|
||||
- [Development](#development)
|
||||
- [Prerequisites](#prerequisites)
|
||||
- [Getting Started](#getting-started)
|
||||
- [Development Mode](#development-mode)
|
||||
- [Production Build](#production-build)
|
||||
- [Related Projects](#related-projects)
|
||||
- [Community](#community)
|
||||
- [License](#license)
|
||||
- [Star Me](#star-me)
|
||||
|
||||
## Introduction
|
||||
|
||||
PicList is an efficient cloud storage and image hosting management tool built upon PicGo with extensive enhancements. It combines complete image hosting capabilities with comprehensive cloud storage management features, offering:
|
||||
|
||||
- All original PicGo functionality plus compatibility with most PicGo plugins
|
||||
- Extended built-in image hosting platforms (WebDav, local hosting, SFTP, etc.)
|
||||
- Cloud-synchronized file deletion in album view
|
||||
- Comprehensive cloud storage management with file operations, search, and previews
|
||||
- Built-in image processing tools (watermarks, compression, scaling, rotation, format conversion)
|
||||
|
||||
## Official Website
|
||||
|
||||
Please visit the [PicList official website piclist.cn](https://piclist.cn) for more information.
|
||||
|
||||
You can also visit the [DeepWiki of PicList](https://deepwiki.com/Kuingsmile/PicList) to learn more about the project architecture and development.
|
||||
|
||||
## How to Migrate from PicGo
|
||||
|
||||
PicList `V1.5.0` and above provide a `one-click migration` function. Enter the `Settings` page, click the button next to `Migrate from PicGo`, then restart the application for changes to take effect.
|
||||
|
||||
## PicList-Core
|
||||
|
||||
PicList uses a modified version of PicGo-Core called [PicList-core](https://github.com/Kuingsmile/PicList-Core), adapted for cloud deletion and extended with features like:
|
||||
|
||||
- Watermark addition
|
||||
- Image compression, scaling, rotation, and format conversion
|
||||
- CLI command support
|
||||
- Built-in upload server via `picgo-server` command
|
||||
|
||||
To use PicList-core separately, visit [GitHub repo](https://github.com/Kuingsmile/PicList-Core) or the [npm package](https://www.npmjs.com/package/piclist).
|
||||
|
||||
## Key Features
|
||||
|
||||
- **Complete Compatibility**: Works with Typora, Obsidian, and most PicGo plugins
|
||||
- **Extended Platform Support**: Added WebDav, Lsky Pro, local hosting, SFTP, and account-based Imgur uploads
|
||||
- **Cloud-Sync Album**: Delete images from storage alongside local entries
|
||||
- **Advanced Album Features**: Search, sort, and batch URL modification
|
||||
- **Built-in Image Tools**: Add watermarks, compress, scale, rotate, and convert formats
|
||||
- **Form Upload**: Share across multiple computers
|
||||
- **Config Synchronization**: Save settings to GitHub/Gitee/Gitea repositories
|
||||
- **Cloud Management**: Browse directories, search files, batch operations, and more
|
||||
- **Multi-format Previews**: View images, videos, text files, and Markdown files (see [supported formats](https://github.com/Kuingsmile/PicList/blob/dev/supported_format.md))
|
||||
- **Batch Operations**: Rename cloud files with regular expressions
|
||||
- **Link Sharing**: Generate pre-signed URLs for private storage buckets
|
||||
- **Usability Improvements**: Auto-updates, multiple startup modes, UI enhancements, and more
|
||||
|
||||
## Integration Guides
|
||||
|
||||
### VSCode Integration
|
||||
|
||||
Install the [VS-PicList](https://marketplace.visualstudio.com/items?itemName=Kuingsmile.vs-piclist) plugin, which integrates directly with PicList desktop software and supports a variety of uploads and cloud deletion operations in VSCode.
|
||||
|
||||
### Typora Integration
|
||||
|
||||
#### **Version 1.6.0-dev and above**
|
||||
|
||||
**Typora 1.6.0-dev and later versions natively support PicList.** For versions below 1.10.6, set Typora's language to Chinese.
|
||||
|
||||
If your Typora version is below 1.8.0, set both the PicList and PicGo (app) upload service paths to your PicList installation path.
|
||||
|
||||
[Typora download link](https://typora.io/releases/all)
|
||||
|
||||
#### **Version < 1.6.0-dev**
|
||||
|
||||
For Windows, in Typora settings:
|
||||
|
||||
1. Set upload service to `PicGo(app)`
|
||||
2. Set `PicGo path` to your PicList installation path
|
||||
|
||||

|
||||
|
||||
Alternatively, install PicList-core with `npm install piclist` and set the upload service to `PicGo-Core (command line)`.
|
||||
|
||||
### Obsidian Integration
|
||||
|
||||
1. Install the "Image auto upload Plugin" from community plugins
|
||||
2. Set the default uploader to PicGo(app)
|
||||
3. Configure PicGo server as `http://127.0.0.1:36677/upload`
|
||||
4. For cloud deletion support, set the deletion interface to `http://127.0.0.1:36677/delete`
|
||||
|
||||

|
||||
|
||||
### Docker Integration
|
||||
|
||||
#### Using docker run
|
||||
|
||||
```bash
|
||||
docker pull kuingsmile/piclist:latest
|
||||
docker run -d \
|
||||
--name piclist \
|
||||
--restart always \
|
||||
-p 36677:36677 \
|
||||
-v "./piclist:/root/.piclist" \
|
||||
kuingsmile/piclist:latest \
|
||||
node /usr/local/bin/picgo-server -k piclist123456
|
||||
```
|
||||
|
||||
Change `./piclist` to your config directory path and `piclist123456` to your preferred secret key.
|
||||
|
||||
#### Using docker-compose
|
||||
|
||||
```yaml
|
||||
version: '3.3'
|
||||
|
||||
services:
|
||||
node:
|
||||
image: 'kuingsmile/piclist:latest'
|
||||
container_name: piclist
|
||||
restart: always
|
||||
ports:
|
||||
- 36677:36677
|
||||
volumes:
|
||||
- './piclist:/root/.piclist'
|
||||
command: node /usr/local/bin/picgo-server -k piclist123456
|
||||
```
|
||||
|
||||
Run with `docker-compose up -d`
|
||||
|
||||
## Supported Platforms
|
||||
|
||||
| Platform | Album Cloud Deletion | Cloud Storage Management |
|
||||
| :------------------------: | :------------------: | :----------------------: |
|
||||
| Built-in AList | ✔️ | ✔️ |
|
||||
| SM.MS | ✔️ | ✔️ |
|
||||
| Github | ✔️ | ✔️ |
|
||||
| Imgur | ✔️ | ✔️ |
|
||||
| Tencent COS V5 | ✔️ | ✔️ |
|
||||
| Aliyun OSS | ✔️ | ✔️ |
|
||||
| Upyun | ✔️ | ✔️ |
|
||||
| Qiniu | ✔️ | ✔️ |
|
||||
| S3 API compatible platform | ✔️ | ✔️ |
|
||||
| WebDAV | ✔️ | ✔️ |
|
||||
| Local | ✔️ | ✔️ |
|
||||
| Built-in SFTP | ✔️ | ✔️ |
|
||||
| Doge Cloud | ✔️ | ✔️ |
|
||||
| PicList(Lasso-Doll) | ✔️ | ✔️ |
|
||||
| Lsky Pro | ✔️ | ✔️ |
|
||||
| Custom API platform | × | × |
|
||||
|
||||
**Supported Plugins with Cloud Deletion:**
|
||||
|
||||
- [picgo-plugin-s3](https://github.com/wayjam/picgo-plugin-s3)
|
||||
- [picgo-plugin-alist](https://github.com/jinzhi0123/picgo-plugin-alist)
|
||||
- [picgo-plugin-huawei-uploader](https://github.com/YunfengGao/picgo-plugin-huawei-uploader)
|
||||
- [picgo-plugin-dogecloud](https://github.com/w4j1e/picgo-plugin-dogecloud)
|
||||
|
||||
## Download and Install
|
||||
|
||||
### Direct Download
|
||||
|
||||
[Download the latest release](https://github.com/Kuingsmile/PicList/releases/latest)
|
||||
|
||||
### Scoop (Windows)
|
||||
|
||||
```bash
|
||||
scoop bucket add lemon https://github.com/hoilc/scoop-lemon
|
||||
scoop install lemon/piclist
|
||||
```
|
||||
|
||||
### Winget (Windows)
|
||||
|
||||
```bash
|
||||
winget install Kuingsmile.PicList
|
||||
```
|
||||
|
||||
### Homebrew (macOS)
|
||||
|
||||
```bash
|
||||
# Install
|
||||
brew install piclist --cask
|
||||
|
||||
# Uninstall
|
||||
brew uninstall piclist
|
||||
```
|
||||
|
||||
### OS Requirements
|
||||
|
||||
#### Windows
|
||||
|
||||
- **Supported Versions**: Windows 10 and later
|
||||
- **Architectures**: `ia32` (x86), `x64` (amd64), `arm64`
|
||||
|
||||
#### macOS
|
||||
|
||||
- **Supported Versions**: macOS Big Sur (11) and later
|
||||
- **Architectures**: Intel (x64) and Apple Silicon (arm64)
|
||||
|
||||
#### Linux
|
||||
|
||||
- **Supported Versions**:
|
||||
- Ubuntu 18.04 and later
|
||||
- Fedora 32 and later
|
||||
- Debian 10 and later
|
||||
|
||||
## Screenshots
|
||||
|
||||

|
||||

|
||||

|
||||

|
||||

|
||||

|
||||
|
||||
## Development
|
||||
|
||||
### Prerequisites
|
||||
|
||||
1. Node.js 20 + and Git
|
||||
2. Knowledge of npm
|
||||
3. Xcode for Mac or Visual Studio for Windows
|
||||
|
||||
### Getting Started
|
||||
|
||||
```bash
|
||||
git clone https://github.com/Kuingsmile/PicList.git
|
||||
cd PicList
|
||||
yarn # Do not use npm install
|
||||
```
|
||||
|
||||
To contribute, see the [contribution guide](https://github.com/Kuingsmile/PicList/blob/dev/CONTRIBUTING_EN.md).
|
||||
|
||||
### Development Mode
|
||||
|
||||
```bash
|
||||
yarn run dev
|
||||
```
|
||||
|
||||
Development mode has hot-reload but may be unstable. If the process crashes, exit with `Ctrl+C` and restart.
|
||||
|
||||
Note: The PicList application icon will appear in your taskbar/system tray while in development mode.
|
||||
|
||||
### Production Build
|
||||
|
||||
```bash
|
||||
yarn run build
|
||||
```
|
||||
|
||||
The built installer will be available in the `dist_electron` directory.
|
||||
|
||||
For network issues with electron-builder, set the mirror:
|
||||
|
||||
**Linux/macOS:**
|
||||
|
||||
```bash
|
||||
export ELECTRON_MIRROR="https://npmmirror.com/mirrors/electron/"
|
||||
```
|
||||
|
||||
**Windows:**
|
||||
|
||||
```cmd
|
||||
set ELECTRON_MIRROR=https://npmmirror.com/mirrors/electron/
|
||||
```
|
||||
|
||||
## Related Projects
|
||||
|
||||
- [PicList-Core](https://github.com/Kuingsmile/PicList-Core): Core library based on PicGo-Core for CLI and development
|
||||
- [PicHoro](https://github.com/Kuingsmile/PicHoro): Mobile app companion for PicList
|
||||
- [VS-PicList](https://github.com/Kuingsmile/vs-PicList/): VSCode plugin for PicList
|
||||
|
||||
## Community
|
||||
|
||||
Join our Telegram group for questions and discussion:
|
||||
|
||||
[PicList TG Group](https://t.me/+rq8y7wsj7Pg5ZTg1)
|
||||
|
||||

|
||||
|
||||
## License
|
||||
|
||||
This project is open source under the MIT license.
|
||||
|
||||
[MIT](https://opensource.org/licenses/MIT)
|
||||
|
||||
Copyright (c) 2017-present Molunerfinn
|
||||
Copyright (c) 2023-present Kuingsmile
|
||||
|
||||
## Star Me
|
||||
|
||||
[](https://github.com/kuingsmile/PicList/stargazers)
|
||||
|
||||
[](https://github.com/kuingsmile/PicList/stargazers)
|
||||
|
||||
678
README_cn.md
678
README_cn.md
@@ -1,339 +1,339 @@
|
||||
<div align="center">
|
||||
<img src="https://imgx.horosama.com/admin_uploads/2022/10/2022_10_05_633d79e401694.png" alt="PicList Logo">
|
||||
<h1>PicList</h1>
|
||||
<p><strong>强大的云存储与图床管理工具</strong></p>
|
||||
<a href="https://github.com/Kuingsmile/PicList/actions">
|
||||
<img src="https://img.shields.io/badge/code%20style-standard-green.svg?style=flat-square" alt="Code Style">
|
||||
</a>
|
||||
<a href="https://github.com/Kuingsmile/PicList/releases">
|
||||
<img src="https://img.shields.io/github/downloads/Kuingsmile/PicList/total.svg?style=flat-square" alt="Downloads">
|
||||
</a>
|
||||
<a href="https://github.com/Kuingsmile/PicList/releases/latest">
|
||||
<img src="https://img.shields.io/github/release/Kuingsmile/PicList.svg?style=flat-square" alt="Release">
|
||||
</a>
|
||||
</div>
|
||||
|
||||

|
||||
|
||||
简体中文 | [English](https://github.com/Kuingsmile/PicList/blob/dev/README.md)
|
||||
|
||||
## 📑 目录
|
||||
|
||||
- [📑 目录](#-目录)
|
||||
- [简介](#简介)
|
||||
- [官方网址](#官方网址)
|
||||
- [如何从PicGo迁移](#如何从picgo迁移)
|
||||
- [PicList-Core](#piclist-core)
|
||||
- [特色功能](#特色功能)
|
||||
- [如何使用](#如何使用)
|
||||
- [如何在VSCode中使用](#如何在vscode中使用)
|
||||
- [如何在Typora中使用](#如何在typora中使用)
|
||||
- [**1.6.0版本及以上**](#160版本及以上)
|
||||
- [**1.6.0版本以下**](#160版本以下)
|
||||
- [如何在Obsidian中使用](#如何在obsidian中使用)
|
||||
- [如何在Docker中使用](#如何在docker中使用)
|
||||
- [使用docker run命令](#使用docker-run命令)
|
||||
- [使用docker-compose](#使用docker-compose)
|
||||
- [已支持平台](#已支持平台)
|
||||
- [下载安装](#下载安装)
|
||||
- [直接下载](#直接下载)
|
||||
- [Scoop(Windows)](#scoopwindows)
|
||||
- [Winget (Windows)](#winget-windows)
|
||||
- [Homebrew(macOS)](#homebrewmacos)
|
||||
- [系统版本要求](#系统版本要求)
|
||||
- [Windows](#windows)
|
||||
- [macOS](#macos)
|
||||
- [Linux](#linux)
|
||||
- [应用截图](#应用截图)
|
||||
- [开发说明](#开发说明)
|
||||
- [前提条件](#前提条件)
|
||||
- [开始开发](#开始开发)
|
||||
- [开发模式](#开发模式)
|
||||
- [生产构建](#生产构建)
|
||||
- [其它相关](#其它相关)
|
||||
- [交流群](#交流群)
|
||||
- [License](#license)
|
||||
- [Star Me](#star-me)
|
||||
|
||||
## 简介
|
||||
|
||||
PicList是一款高效的云存储和图床平台管理工具,基于PicGo深度二次开发,提供完整的图床功能和全面的云存储管理能力,主要特点包括:
|
||||
|
||||
- 完整保留PicGo所有功能,兼容大部分PicGo插件
|
||||
- 扩展了内置图床平台,如WebDav、本地图床和SFTP等
|
||||
- 相册支持同步云端删除文件
|
||||
- 全面的云存储管理功能,包括文件操作、搜索和预览
|
||||
- 内置图像处理工具,如水印、压缩、缩放、旋转和格式转换
|
||||
|
||||
## 官方网址
|
||||
|
||||
请访问 [PicList官网 piclist.cn](https://piclist.cn) 获取更多信息。
|
||||
|
||||
此外,你也可以访问[DeepWiki of PicList](https://deepwiki.com/Kuingsmile/PicList)了解更多关于项目架构和开发的内容。
|
||||
|
||||
## 如何从PicGo迁移
|
||||
|
||||
PicList `V1.5.0`以上版本提供 `一键迁移`功能,进入 `设置`页面,然后在 `从PicGo迁移`选项点击右侧按钮即可,迁移后请重启应用生效。
|
||||
|
||||
## PicList-Core
|
||||
|
||||
PicList的内核使用[PicList-core](https://github.com/Kuingsmile/PicList-Core),这是基于原版PicGo-Core修改的版本,具有以下增强功能:
|
||||
|
||||
- 水印添加
|
||||
- 图片压缩、缩放、旋转和格式转换
|
||||
- CLI命令行支持
|
||||
- 通过`picgo-server`命令启动上传服务器
|
||||
|
||||
如果您希望单独使用PicList-core,请访问[GitHub仓库](https://github.com/Kuingsmile/PicList-Core)或[npm包](https://www.npmjs.com/package/piclist)。
|
||||
|
||||
## 特色功能
|
||||
|
||||
- **完全兼容性**:适用于Typora、Obsidian和大多数PicGo插件
|
||||
- **扩展平台支持**:新增WebDav、兰空图床、本地图床、SFTP等,原内置imgur图床额外支持账号登录上传
|
||||
- **云端同步相册**:支持同步删除云端图片,兼容所有内置图床和多个插件
|
||||
- **高级相册功能**:高级搜索、排序和批量URL修改
|
||||
- **内置图像工具**:水印添加、图片压缩、图片缩放、图片旋转和格式转换,支持高级重命名
|
||||
- **表单上传**:支持多电脑共享使用
|
||||
- **配置同步**:支持配置同步至GitHub/Gitee/Gitea仓库
|
||||
- **云存储管理**:云端目录查看、文件搜索、批量操作等功能
|
||||
- **多格式预览**:支持预览图片、视频、文本和Markdown文件(查看[支持的文件格式列表](https://github.com/Kuingsmile/PicList/blob/dev/supported_format.md))
|
||||
- **批量操作**:支持使用正则表达式批量重命名云端文件
|
||||
- **链接分享**:为私有存储桶生成预签名链接
|
||||
- **易用性改进**:软件自动更新、多种启动模式、界面优化等
|
||||
|
||||
## 如何使用
|
||||
|
||||
### 如何在VSCode中使用
|
||||
|
||||
安装[VS-PicList](https://marketplace.visualstudio.com/items?itemName=Kuingsmile.vs-piclist)插件,与vs-picgo插件相比,该插件直接依赖于PicList桌面端软件,支持多种上传方式和直接在VSCode中进行云端删除等功能。
|
||||
|
||||
### 如何在Typora中使用
|
||||
|
||||
#### **1.6.0版本及以上**
|
||||
|
||||
**Typora 1.6.0-dev以及以上版本已原生支持PicList**。在1.10.6版本以下中,需要将Typora的语言设置为中文。
|
||||
|
||||
如果您使用的是1.8.0以下版本的Typora,需要同时设置PicList和PicGo(app)上传服务的路径为PicList的安装路径。
|
||||
|
||||
[Typora下载链接](https://typora.io/releases/all)
|
||||
|
||||
#### **1.6.0版本以下**
|
||||
|
||||
Windows系统:
|
||||
|
||||
1. 进入Typora设置页面,选择"图像"
|
||||
2. 将上传服务设置为`PicGo(app)`
|
||||
3. 在`PicGo路径`中填写PicList的安装路径
|
||||
|
||||

|
||||
|
||||
或者,您也可以使用`npm install piclist`命令安装PicList-core,然后将上传服务设置为`PicGo-Core(command line)`。
|
||||
|
||||
### 如何在Obsidian中使用
|
||||
|
||||
1. 在社区插件中搜索安装`Image auto upload Plugin`
|
||||
2. 进入插件设置页面,将默认上传器修改为`PicGo(app)`
|
||||
3. 设置`PicGo server`为`http://127.0.0.1:36677/upload`
|
||||
4. 如需启用云端删除功能,请在删除接口中填入`http://127.0.0.1:36677/delete`
|
||||
|
||||

|
||||
|
||||
### 如何在Docker中使用
|
||||
|
||||
#### 使用docker run命令
|
||||
|
||||
```bash
|
||||
docker pull kuingsmile/piclist:latest
|
||||
docker run -d \
|
||||
--name piclist \
|
||||
--restart always \
|
||||
-p 36677:36677 \
|
||||
-v "./piclist:/root/.piclist" \
|
||||
kuingsmile/piclist:latest \
|
||||
node /usr/local/bin/picgo-server -k piclist123456
|
||||
```
|
||||
|
||||
请将`./piclist`修改为您的配置文件`config.json`所在路径,将`piclist123456`修改为您自己的密钥。
|
||||
|
||||
#### 使用docker-compose
|
||||
|
||||
```yaml
|
||||
version: '3.3'
|
||||
|
||||
services:
|
||||
node:
|
||||
image: 'kuingsmile/piclist:latest'
|
||||
container_name: piclist
|
||||
restart: always
|
||||
ports:
|
||||
- 36677:36677
|
||||
volumes:
|
||||
- './piclist:/root/.piclist'
|
||||
command: node /usr/local/bin/picgo-server -k piclist123456
|
||||
```
|
||||
|
||||
使用`docker-compose up -d`命令启动。
|
||||
|
||||
## 已支持平台
|
||||
|
||||
| 平台 | 相册云删除 | 云存储管理 |
|
||||
| :------------: | :--------: | :--------: |
|
||||
| 内置AList | ✔️ | ✔️ |
|
||||
| SM.MS | ✔️ | ✔️ |
|
||||
| Github | ✔️ | ✔️ |
|
||||
| Imgur | ✔️ | ✔️ |
|
||||
| 腾讯COS V5 | ✔️ | ✔️ |
|
||||
| 阿里云OSS | ✔️ | ✔️ |
|
||||
| 又拍云 | ✔️ | ✔️ |
|
||||
| 七牛云 | ✔️ | ✔️ |
|
||||
| S3 API兼容平台 | ✔️ | ✔️ |
|
||||
| WebDAV | ✔️ | ✔️ |
|
||||
| 本地文件夹 | ✔️ | ✔️ |
|
||||
| 内置SFTP | ✔️ | ✔️ |
|
||||
| 多吉云 | ✔️ | ✔️ |
|
||||
| PicList(套娃) | ✔️ | ✔️ |
|
||||
| 兰空图床 | ✔️ | ✔️ |
|
||||
| 自定义图床 | x | x |
|
||||
|
||||
**支持云删除功能的插件:**
|
||||
|
||||
- [picgo-plugin-s3](https://github.com/wayjam/picgo-plugin-s3)
|
||||
- [picgo-plugin-alist](https://github.com/jinzhi0123/picgo-plugin-alist)
|
||||
- [picgo-plugin-huawei-uploader](https://github.com/YunfengGao/picgo-plugin-huawei-uploader)
|
||||
- [picgo-plugin-dogecloud](https://github.com/w4j1e/picgo-plugin-dogecloud)
|
||||
|
||||
## 下载安装
|
||||
|
||||
### 直接下载
|
||||
|
||||
[下载最新版本](https://github.com/Kuingsmile/PicList/releases/latest)
|
||||
|
||||
### Scoop(Windows)
|
||||
|
||||
```bash
|
||||
scoop bucket add lemon https://github.com/hoilc/scoop-lemon
|
||||
scoop install lemon/piclist
|
||||
```
|
||||
|
||||
### Winget (Windows)
|
||||
|
||||
```bash
|
||||
winget install Kuingsmile.PicList
|
||||
```
|
||||
|
||||
### Homebrew(macOS)
|
||||
|
||||
```bash
|
||||
# 安装
|
||||
brew install piclist --cask
|
||||
|
||||
# 卸载
|
||||
brew uninstall piclist
|
||||
```
|
||||
|
||||
### 系统版本要求
|
||||
|
||||
#### Windows
|
||||
|
||||
- **支持的版本**: Windows 10及以上版本
|
||||
- **架构**: `ia32` (x86), `x64` (amd64), `arm64`
|
||||
|
||||
#### macOS
|
||||
|
||||
- **支持的版本**: macOS Big Sur (11)及以上
|
||||
- **架构**: Intel (x64)和Apple Silicon (arm64)
|
||||
|
||||
#### Linux
|
||||
|
||||
- **包括不限于**:
|
||||
- Ubuntu 18.04及更新版本
|
||||
- Fedora 32及更新版本
|
||||
- Debian 10及更新版本
|
||||
|
||||
## 应用截图
|
||||
|
||||

|
||||

|
||||

|
||||

|
||||

|
||||

|
||||
|
||||
## 开发说明
|
||||
|
||||
### 前提条件
|
||||
|
||||
1. 需要Node.js 20+ 和 Git
|
||||
2. 了解npm相关知识
|
||||
3. Mac需要Xcode环境,Windows需要Visual Studio环境
|
||||
|
||||
### 开始开发
|
||||
|
||||
```bash
|
||||
git clone https://github.com/Kuingsmile/PicList.git
|
||||
cd PicList
|
||||
yarn # 不要使用npm install
|
||||
```
|
||||
|
||||
如需贡献代码,请参考[贡献指南](https://github.com/Kuingsmile/PicList/blob/dev/CONTRIBUTING.md)。
|
||||
|
||||
### 开发模式
|
||||
|
||||
```bash
|
||||
yarn run dev
|
||||
```
|
||||
|
||||
开发模式具有热重载特性,但可能不稳定。如果进程崩溃,请用`Ctrl+C`退出并重新启动。
|
||||
|
||||
注意:开发模式运行后,PicList的应用图标会出现在任务栏/系统托盘中。
|
||||
|
||||
### 生产构建
|
||||
|
||||
```bash
|
||||
yarn run build
|
||||
```
|
||||
|
||||
构建成功后,安装文件将出现在`dist_electron`目录中。
|
||||
|
||||
如果遇到网络问题导致electron-builder下载失败,可以设置镜像源:
|
||||
|
||||
**Linux/macOS:**
|
||||
|
||||
```bash
|
||||
export ELECTRON_MIRROR="https://npmmirror.com/mirrors/electron/"
|
||||
```
|
||||
|
||||
**Windows:**
|
||||
|
||||
```cmd
|
||||
set ELECTRON_MIRROR=https://npmmirror.com/mirrors/electron/
|
||||
```
|
||||
|
||||
## 其它相关
|
||||
|
||||
- [PicList-Core](https://github.com/Kuingsmile/PicList-Core):基于PicGo-Core的核心库,用于CLI操作和项目开发
|
||||
- [PicHoro](https://github.com/Kuingsmile/PicHoro):配合PicList使用的手机APP
|
||||
- [VS-PicList](https://github.com/Kuingsmile/vs-PicList/):配合PicList使用的VSCode插件
|
||||
|
||||
## 交流群
|
||||
|
||||
如有任何问题,欢迎加入TG群进行交流:
|
||||
|
||||
[PicList交流群](https://t.me/+rq8y7wsj7Pg5ZTg1)
|
||||
|
||||

|
||||
|
||||
## License
|
||||
|
||||
本项目基于MIT协议开源,欢迎大家使用和贡献代码,感谢原作者Molunerfinn的开源精神。
|
||||
|
||||
[MIT](https://opensource.org/licenses/MIT)
|
||||
|
||||
Copyright (c) 2017-present Molunerfinn
|
||||
Copyright (c) 2023-present Kuingsmile
|
||||
|
||||
## Star Me
|
||||
|
||||
[](https://github.com/kuingsmile/PicList/stargazers)
|
||||
|
||||
[](https://github.com/kuingsmile/PicList/stargazers)
|
||||
<div align="center">
|
||||
<img src="https://imgx.horosama.com/admin_uploads/2022/10/2022_10_05_633d79e401694.png" alt="PicList Logo">
|
||||
<h1>PicList</h1>
|
||||
<p><strong>强大的云存储与图床管理工具</strong></p>
|
||||
<a href="https://github.com/Kuingsmile/PicList/actions">
|
||||
<img src="https://img.shields.io/badge/code%20style-standard-green.svg?style=flat-square" alt="Code Style">
|
||||
</a>
|
||||
<a href="https://github.com/Kuingsmile/PicList/releases">
|
||||
<img src="https://img.shields.io/github/downloads/Kuingsmile/PicList/total.svg?style=flat-square" alt="Downloads">
|
||||
</a>
|
||||
<a href="https://github.com/Kuingsmile/PicList/releases/latest">
|
||||
<img src="https://img.shields.io/github/release/Kuingsmile/PicList.svg?style=flat-square" alt="Release">
|
||||
</a>
|
||||
</div>
|
||||
|
||||

|
||||
|
||||
简体中文 | [English](https://github.com/Kuingsmile/PicList/blob/dev/README.md)
|
||||
|
||||
## 📑 目录
|
||||
|
||||
- [📑 目录](#-目录)
|
||||
- [简介](#简介)
|
||||
- [官方网址](#官方网址)
|
||||
- [如何从PicGo迁移](#如何从picgo迁移)
|
||||
- [PicList-Core](#piclist-core)
|
||||
- [特色功能](#特色功能)
|
||||
- [如何使用](#如何使用)
|
||||
- [如何在VSCode中使用](#如何在vscode中使用)
|
||||
- [如何在Typora中使用](#如何在typora中使用)
|
||||
- [**1.6.0版本及以上**](#160版本及以上)
|
||||
- [**1.6.0版本以下**](#160版本以下)
|
||||
- [如何在Obsidian中使用](#如何在obsidian中使用)
|
||||
- [如何在Docker中使用](#如何在docker中使用)
|
||||
- [使用docker run命令](#使用docker-run命令)
|
||||
- [使用docker-compose](#使用docker-compose)
|
||||
- [已支持平台](#已支持平台)
|
||||
- [下载安装](#下载安装)
|
||||
- [直接下载](#直接下载)
|
||||
- [Scoop(Windows)](#scoopwindows)
|
||||
- [Winget (Windows)](#winget-windows)
|
||||
- [Homebrew(macOS)](#homebrewmacos)
|
||||
- [系统版本要求](#系统版本要求)
|
||||
- [Windows](#windows)
|
||||
- [macOS](#macos)
|
||||
- [Linux](#linux)
|
||||
- [应用截图](#应用截图)
|
||||
- [开发说明](#开发说明)
|
||||
- [前提条件](#前提条件)
|
||||
- [开始开发](#开始开发)
|
||||
- [开发模式](#开发模式)
|
||||
- [生产构建](#生产构建)
|
||||
- [其它相关](#其它相关)
|
||||
- [交流群](#交流群)
|
||||
- [License](#license)
|
||||
- [Star Me](#star-me)
|
||||
|
||||
## 简介
|
||||
|
||||
PicList是一款高效的云存储和图床平台管理工具,基于PicGo深度二次开发,提供完整的图床功能和全面的云存储管理能力,主要特点包括:
|
||||
|
||||
- 完整保留PicGo所有功能,兼容大部分PicGo插件
|
||||
- 扩展了内置图床平台,如WebDav、本地图床和SFTP等
|
||||
- 相册支持同步云端删除文件
|
||||
- 全面的云存储管理功能,包括文件操作、搜索和预览
|
||||
- 内置图像处理工具,如水印、压缩、缩放、旋转和格式转换
|
||||
|
||||
## 官方网址
|
||||
|
||||
请访问 [PicList官网 piclist.cn](https://piclist.cn) 获取更多信息。
|
||||
|
||||
此外,你也可以访问[DeepWiki of PicList](https://deepwiki.com/Kuingsmile/PicList)了解更多关于项目架构和开发的内容。
|
||||
|
||||
## 如何从PicGo迁移
|
||||
|
||||
PicList `V1.5.0`以上版本提供 `一键迁移`功能,进入 `设置`页面,然后在 `从PicGo迁移`选项点击右侧按钮即可,迁移后请重启应用生效。
|
||||
|
||||
## PicList-Core
|
||||
|
||||
PicList的内核使用[PicList-core](https://github.com/Kuingsmile/PicList-Core),这是基于原版PicGo-Core修改的版本,具有以下增强功能:
|
||||
|
||||
- 水印添加
|
||||
- 图片压缩、缩放、旋转和格式转换
|
||||
- CLI命令行支持
|
||||
- 通过`picgo-server`命令启动上传服务器
|
||||
|
||||
如果您希望单独使用PicList-core,请访问[GitHub仓库](https://github.com/Kuingsmile/PicList-Core)或[npm包](https://www.npmjs.com/package/piclist)。
|
||||
|
||||
## 特色功能
|
||||
|
||||
- **完全兼容性**:适用于Typora、Obsidian和大多数PicGo插件
|
||||
- **扩展平台支持**:新增WebDav、兰空图床、本地图床、SFTP等,原内置imgur图床额外支持账号登录上传
|
||||
- **云端同步相册**:支持同步删除云端图片,兼容所有内置图床和多个插件
|
||||
- **高级相册功能**:高级搜索、排序和批量URL修改
|
||||
- **内置图像工具**:水印添加、图片压缩、图片缩放、图片旋转和格式转换,支持高级重命名
|
||||
- **表单上传**:支持多电脑共享使用
|
||||
- **配置同步**:支持配置同步至GitHub/Gitee/Gitea仓库
|
||||
- **云存储管理**:云端目录查看、文件搜索、批量操作等功能
|
||||
- **多格式预览**:支持预览图片、视频、文本和Markdown文件(查看[支持的文件格式列表](https://github.com/Kuingsmile/PicList/blob/dev/supported_format.md))
|
||||
- **批量操作**:支持使用正则表达式批量重命名云端文件
|
||||
- **链接分享**:为私有存储桶生成预签名链接
|
||||
- **易用性改进**:软件自动更新、多种启动模式、界面优化等
|
||||
|
||||
## 如何使用
|
||||
|
||||
### 如何在VSCode中使用
|
||||
|
||||
安装[VS-PicList](https://marketplace.visualstudio.com/items?itemName=Kuingsmile.vs-piclist)插件,与vs-picgo插件相比,该插件直接依赖于PicList桌面端软件,支持多种上传方式和直接在VSCode中进行云端删除等功能。
|
||||
|
||||
### 如何在Typora中使用
|
||||
|
||||
#### **1.6.0版本及以上**
|
||||
|
||||
**Typora 1.6.0-dev以及以上版本已原生支持PicList**。在1.10.6版本以下中,需要将Typora的语言设置为中文。
|
||||
|
||||
如果您使用的是1.8.0以下版本的Typora,需要同时设置PicList和PicGo(app)上传服务的路径为PicList的安装路径。
|
||||
|
||||
[Typora下载链接](https://typora.io/releases/all)
|
||||
|
||||
#### **1.6.0版本以下**
|
||||
|
||||
Windows系统:
|
||||
|
||||
1. 进入Typora设置页面,选择"图像"
|
||||
2. 将上传服务设置为`PicGo(app)`
|
||||
3. 在`PicGo路径`中填写PicList的安装路径
|
||||
|
||||

|
||||
|
||||
或者,您也可以使用`npm install piclist`命令安装PicList-core,然后将上传服务设置为`PicGo-Core(command line)`。
|
||||
|
||||
### 如何在Obsidian中使用
|
||||
|
||||
1. 在社区插件中搜索安装`Image auto upload Plugin`
|
||||
2. 进入插件设置页面,将默认上传器修改为`PicGo(app)`
|
||||
3. 设置`PicGo server`为`http://127.0.0.1:36677/upload`
|
||||
4. 如需启用云端删除功能,请在删除接口中填入`http://127.0.0.1:36677/delete`
|
||||
|
||||

|
||||
|
||||
### 如何在Docker中使用
|
||||
|
||||
#### 使用docker run命令
|
||||
|
||||
```bash
|
||||
docker pull kuingsmile/piclist:latest
|
||||
docker run -d \
|
||||
--name piclist \
|
||||
--restart always \
|
||||
-p 36677:36677 \
|
||||
-v "./piclist:/root/.piclist" \
|
||||
kuingsmile/piclist:latest \
|
||||
node /usr/local/bin/picgo-server -k piclist123456
|
||||
```
|
||||
|
||||
请将`./piclist`修改为您的配置文件`config.json`所在路径,将`piclist123456`修改为您自己的密钥。
|
||||
|
||||
#### 使用docker-compose
|
||||
|
||||
```yaml
|
||||
version: '3.3'
|
||||
|
||||
services:
|
||||
node:
|
||||
image: 'kuingsmile/piclist:latest'
|
||||
container_name: piclist
|
||||
restart: always
|
||||
ports:
|
||||
- 36677:36677
|
||||
volumes:
|
||||
- './piclist:/root/.piclist'
|
||||
command: node /usr/local/bin/picgo-server -k piclist123456
|
||||
```
|
||||
|
||||
使用`docker-compose up -d`命令启动。
|
||||
|
||||
## 已支持平台
|
||||
|
||||
| 平台 | 相册云删除 | 云存储管理 |
|
||||
| :------------: | :--------: | :--------: |
|
||||
| 内置AList | ✔️ | ✔️ |
|
||||
| SM.MS | ✔️ | ✔️ |
|
||||
| Github | ✔️ | ✔️ |
|
||||
| Imgur | ✔️ | ✔️ |
|
||||
| 腾讯COS V5 | ✔️ | ✔️ |
|
||||
| 阿里云OSS | ✔️ | ✔️ |
|
||||
| 又拍云 | ✔️ | ✔️ |
|
||||
| 七牛云 | ✔️ | ✔️ |
|
||||
| S3 API兼容平台 | ✔️ | ✔️ |
|
||||
| WebDAV | ✔️ | ✔️ |
|
||||
| 本地文件夹 | ✔️ | ✔️ |
|
||||
| 内置SFTP | ✔️ | ✔️ |
|
||||
| 多吉云 | ✔️ | ✔️ |
|
||||
| PicList(套娃) | ✔️ | ✔️ |
|
||||
| 兰空图床 | ✔️ | ✔️ |
|
||||
| 自定义图床 | x | x |
|
||||
|
||||
**支持云删除功能的插件:**
|
||||
|
||||
- [picgo-plugin-s3](https://github.com/wayjam/picgo-plugin-s3)
|
||||
- [picgo-plugin-alist](https://github.com/jinzhi0123/picgo-plugin-alist)
|
||||
- [picgo-plugin-huawei-uploader](https://github.com/YunfengGao/picgo-plugin-huawei-uploader)
|
||||
- [picgo-plugin-dogecloud](https://github.com/w4j1e/picgo-plugin-dogecloud)
|
||||
|
||||
## 下载安装
|
||||
|
||||
### 直接下载
|
||||
|
||||
[下载最新版本](https://github.com/Kuingsmile/PicList/releases/latest)
|
||||
|
||||
### Scoop(Windows)
|
||||
|
||||
```bash
|
||||
scoop bucket add lemon https://github.com/hoilc/scoop-lemon
|
||||
scoop install lemon/piclist
|
||||
```
|
||||
|
||||
### Winget (Windows)
|
||||
|
||||
```bash
|
||||
winget install Kuingsmile.PicList
|
||||
```
|
||||
|
||||
### Homebrew(macOS)
|
||||
|
||||
```bash
|
||||
# 安装
|
||||
brew install piclist --cask
|
||||
|
||||
# 卸载
|
||||
brew uninstall piclist
|
||||
```
|
||||
|
||||
### 系统版本要求
|
||||
|
||||
#### Windows
|
||||
|
||||
- **支持的版本**: Windows 10及以上版本
|
||||
- **架构**: `ia32` (x86), `x64` (amd64), `arm64`
|
||||
|
||||
#### macOS
|
||||
|
||||
- **支持的版本**: macOS Big Sur (11)及以上
|
||||
- **架构**: Intel (x64)和Apple Silicon (arm64)
|
||||
|
||||
#### Linux
|
||||
|
||||
- **包括不限于**:
|
||||
- Ubuntu 18.04及更新版本
|
||||
- Fedora 32及更新版本
|
||||
- Debian 10及更新版本
|
||||
|
||||
## 应用截图
|
||||
|
||||

|
||||

|
||||

|
||||

|
||||

|
||||

|
||||
|
||||
## 开发说明
|
||||
|
||||
### 前提条件
|
||||
|
||||
1. 需要Node.js 20+ 和 Git
|
||||
2. 了解npm相关知识
|
||||
3. Mac需要Xcode环境,Windows需要Visual Studio环境
|
||||
|
||||
### 开始开发
|
||||
|
||||
```bash
|
||||
git clone https://github.com/Kuingsmile/PicList.git
|
||||
cd PicList
|
||||
yarn # 不要使用npm install
|
||||
```
|
||||
|
||||
如需贡献代码,请参考[贡献指南](https://github.com/Kuingsmile/PicList/blob/dev/CONTRIBUTING.md)。
|
||||
|
||||
### 开发模式
|
||||
|
||||
```bash
|
||||
yarn run dev
|
||||
```
|
||||
|
||||
开发模式具有热重载特性,但可能不稳定。如果进程崩溃,请用`Ctrl+C`退出并重新启动。
|
||||
|
||||
注意:开发模式运行后,PicList的应用图标会出现在任务栏/系统托盘中。
|
||||
|
||||
### 生产构建
|
||||
|
||||
```bash
|
||||
yarn run build
|
||||
```
|
||||
|
||||
构建成功后,安装文件将出现在`dist_electron`目录中。
|
||||
|
||||
如果遇到网络问题导致electron-builder下载失败,可以设置镜像源:
|
||||
|
||||
**Linux/macOS:**
|
||||
|
||||
```bash
|
||||
export ELECTRON_MIRROR="https://npmmirror.com/mirrors/electron/"
|
||||
```
|
||||
|
||||
**Windows:**
|
||||
|
||||
```cmd
|
||||
set ELECTRON_MIRROR=https://npmmirror.com/mirrors/electron/
|
||||
```
|
||||
|
||||
## 其它相关
|
||||
|
||||
- [PicList-Core](https://github.com/Kuingsmile/PicList-Core):基于PicGo-Core的核心库,用于CLI操作和项目开发
|
||||
- [PicHoro](https://github.com/Kuingsmile/PicHoro):配合PicList使用的手机APP
|
||||
- [VS-PicList](https://github.com/Kuingsmile/vs-PicList/):配合PicList使用的VSCode插件
|
||||
|
||||
## 交流群
|
||||
|
||||
如有任何问题,欢迎加入TG群进行交流:
|
||||
|
||||
[PicList交流群](https://t.me/+rq8y7wsj7Pg5ZTg1)
|
||||
|
||||

|
||||
|
||||
## License
|
||||
|
||||
本项目基于MIT协议开源,欢迎大家使用和贡献代码,感谢原作者Molunerfinn的开源精神。
|
||||
|
||||
[MIT](https://opensource.org/licenses/MIT)
|
||||
|
||||
Copyright (c) 2017-present Molunerfinn
|
||||
Copyright (c) 2023-present Kuingsmile
|
||||
|
||||
## Star Me
|
||||
|
||||
[](https://github.com/kuingsmile/PicList/stargazers)
|
||||
|
||||
[](https://github.com/kuingsmile/PicList/stargazers)
|
||||
|
||||
@@ -1,23 +1,23 @@
|
||||
## 🎉 [v3.0.0] 更新日志
|
||||
|
||||
3.0.0大版本,重大底层架构更新和前端UI重写。
|
||||
|
||||
### ⚠️ 重要变更
|
||||
|
||||
- **系统要求更新**: 不再支持Win7和Win8,以及 Mac OS BigSur以下版本
|
||||
|
||||
### ✨ 新增功能
|
||||
|
||||
- 底层electron版本更新至v36,同时迁移至vite
|
||||
- 新增Windows arm64架构安装包
|
||||
- UI界面全面重写,新增明亮/黑暗主题切换
|
||||
- 大幅优化了相册性能,现在仅渲染视野内图片
|
||||
- 新增图片水印透明度设置
|
||||
- 现在支持折叠app导航栏
|
||||
- 管理页面仓库列表栏现在支持拖拽调整宽度
|
||||
|
||||
### 🐛 问题修复
|
||||
|
||||
- 修复了部分图床云端删除闪退的问题
|
||||
- 修复了使用webdav进行设置备份时自定义路径不生效的问题
|
||||
- 修复了部分情况下s3图床云端删除失败的问题(#358)
|
||||
## 🎉 [v3.0.0] 更新日志
|
||||
|
||||
3.0.0大版本,重大底层架构更新和前端UI重写。
|
||||
|
||||
### ⚠️ 重要变更
|
||||
|
||||
- **系统要求更新**: 不再支持Win7和Win8,以及 Mac OS BigSur以下版本
|
||||
|
||||
### ✨ 新增功能
|
||||
|
||||
- 底层electron版本更新至v36,同时迁移至vite
|
||||
- 新增Windows arm64架构安装包
|
||||
- UI界面全面重写,新增明亮/黑暗主题切换
|
||||
- 大幅优化了相册性能,现在仅渲染视野内图片
|
||||
- 新增图片水印透明度设置
|
||||
- 现在支持折叠app导航栏
|
||||
- 管理页面仓库列表栏现在支持拖拽调整宽度
|
||||
|
||||
### 🐛 问题修复
|
||||
|
||||
- 修复了部分图床云端删除闪退的问题
|
||||
- 修复了使用webdav进行设置备份时自定义路径不生效的问题
|
||||
- 修复了部分情况下s3图床云端删除失败的问题(#358)
|
||||
|
||||
@@ -1,23 +1,23 @@
|
||||
## 🎉 [v3.0.0] Release Notes
|
||||
|
||||
3.0.0 major version, significant underlying architecture updates and front-end UI rewrite.
|
||||
|
||||
### ⚠️ Breaking Changes
|
||||
|
||||
- **System Requirements Update**: Support for Windows 7 and Windows 8, as well as macOS Big Sur and earlier versions, has been discontinued.
|
||||
|
||||
### ✨ Features
|
||||
|
||||
- The underlying Electron version has been updated to v36, and the project has been migrated to Vite.
|
||||
- A Windows ARM64 architecture installation package has been added.
|
||||
- The UI has been completely rewritten, with a new light/dark theme switch.
|
||||
- Album performance has been significantly optimized, now only rendering images within the viewport.
|
||||
- A new image watermark opacity setting has been added.
|
||||
- The app navigation bar now supports collapsing.
|
||||
- The repository list sidebar on the management page now supports drag-and-drop width adjustment.
|
||||
|
||||
### 🐛 Bug Fixes
|
||||
|
||||
- Fixed a crash issue when deleting images from certain cloud storage providers.
|
||||
- Fixed an issue where custom paths were not effective when backing up settings using WebDAV.
|
||||
- Fixed an issue where deletion from S3 cloud storage failed in certain cases (#358).
|
||||
## 🎉 [v3.0.0] Release Notes
|
||||
|
||||
3.0.0 major version, significant underlying architecture updates and front-end UI rewrite.
|
||||
|
||||
### ⚠️ Breaking Changes
|
||||
|
||||
- **System Requirements Update**: Support for Windows 7 and Windows 8, as well as macOS Big Sur and earlier versions, has been discontinued.
|
||||
|
||||
### ✨ Features
|
||||
|
||||
- The underlying Electron version has been updated to v36, and the project has been migrated to Vite.
|
||||
- A Windows ARM64 architecture installation package has been added.
|
||||
- The UI has been completely rewritten, with a new light/dark theme switch.
|
||||
- Album performance has been significantly optimized, now only rendering images within the viewport.
|
||||
- A new image watermark opacity setting has been added.
|
||||
- The app navigation bar now supports collapsing.
|
||||
- The repository list sidebar on the management page now supports drag-and-drop width adjustment.
|
||||
|
||||
### 🐛 Bug Fixes
|
||||
|
||||
- Fixed a crash issue when deleting images from certain cloud storage providers.
|
||||
- Fixed an issue where custom paths were not effective when backing up settings using WebDAV.
|
||||
- Fixed an issue where deletion from S3 cloud storage failed in certain cases (#358).
|
||||
|
||||
@@ -1,84 +1,84 @@
|
||||
{
|
||||
"productName": "PicList",
|
||||
"appId": "com.kuingsmile.piclist",
|
||||
"afterSign": "scripts/notarize.cjs",
|
||||
"directories": {
|
||||
"output": "dist_electron",
|
||||
"buildResources": "build"
|
||||
},
|
||||
"asarUnpack": [
|
||||
"**/node_modules/sharp/**",
|
||||
"**/node_modules/ssh2-no-cpu-features/**",
|
||||
"**/node_modules/@img/**",
|
||||
"resources/**"
|
||||
],
|
||||
"files": ["out/**/*", "resources/**", "package.json"],
|
||||
"publish": [
|
||||
{
|
||||
"provider": "s3",
|
||||
"bucket": "piclist-dl",
|
||||
"region": "auto",
|
||||
"acl": "private",
|
||||
"endpoint": "https://7ab4ed5cb1f4052a13d3b573876ecf33.r2.cloudflarestorage.com",
|
||||
"path": "/latest"
|
||||
},
|
||||
{
|
||||
"provider": "github",
|
||||
"owner": "Kuingsmile",
|
||||
"repo": "PicList",
|
||||
"releaseType": "draft"
|
||||
}
|
||||
],
|
||||
"dmg": {
|
||||
"sign": false,
|
||||
"contents": [
|
||||
{
|
||||
"x": 410,
|
||||
"y": 150,
|
||||
"type": "link",
|
||||
"path": "/Applications"
|
||||
},
|
||||
{
|
||||
"x": 130,
|
||||
"y": 150,
|
||||
"type": "file"
|
||||
}
|
||||
]
|
||||
},
|
||||
"mac": {
|
||||
"icon": "resources/icon.icns",
|
||||
"extendInfo": {
|
||||
"LSUIElement": 0
|
||||
},
|
||||
"target": [
|
||||
{
|
||||
"target": "default",
|
||||
"arch": ["x64", "arm64"]
|
||||
}
|
||||
],
|
||||
"artifactName": "PicList-${version}-${arch}.${ext}"
|
||||
},
|
||||
"win": {
|
||||
"icon": "resources/icon.ico",
|
||||
"artifactName": "PicList-Setup-${version}-${arch}.exe",
|
||||
"verifyUpdateCodeSignature": false,
|
||||
"target": [
|
||||
{
|
||||
"target": "nsis",
|
||||
"arch": ["x64", "ia32", "arm64"]
|
||||
}
|
||||
]
|
||||
},
|
||||
"nsis": {
|
||||
"shortcutName": "PicList",
|
||||
"oneClick": false,
|
||||
"allowToChangeInstallationDirectory": true,
|
||||
"include": "build/installer.nsh"
|
||||
},
|
||||
"linux": {
|
||||
"icon": "resources/"
|
||||
},
|
||||
"snap": {
|
||||
"publish": ["github"]
|
||||
}
|
||||
}
|
||||
{
|
||||
"productName": "PicList",
|
||||
"appId": "com.kuingsmile.piclist",
|
||||
"afterSign": "scripts/notarize.cjs",
|
||||
"directories": {
|
||||
"output": "dist_electron",
|
||||
"buildResources": "build"
|
||||
},
|
||||
"asarUnpack": [
|
||||
"**/node_modules/sharp/**",
|
||||
"**/node_modules/ssh2-no-cpu-features/**",
|
||||
"**/node_modules/@img/**",
|
||||
"resources/**"
|
||||
],
|
||||
"files": ["out/**/*", "resources/**", "package.json"],
|
||||
"publish": [
|
||||
{
|
||||
"provider": "s3",
|
||||
"bucket": "piclist-dl",
|
||||
"region": "auto",
|
||||
"acl": "private",
|
||||
"endpoint": "https://7ab4ed5cb1f4052a13d3b573876ecf33.r2.cloudflarestorage.com",
|
||||
"path": "/latest"
|
||||
},
|
||||
{
|
||||
"provider": "github",
|
||||
"owner": "Kuingsmile",
|
||||
"repo": "PicList",
|
||||
"releaseType": "draft"
|
||||
}
|
||||
],
|
||||
"dmg": {
|
||||
"sign": false,
|
||||
"contents": [
|
||||
{
|
||||
"x": 410,
|
||||
"y": 150,
|
||||
"type": "link",
|
||||
"path": "/Applications"
|
||||
},
|
||||
{
|
||||
"x": 130,
|
||||
"y": 150,
|
||||
"type": "file"
|
||||
}
|
||||
]
|
||||
},
|
||||
"mac": {
|
||||
"icon": "resources/icon.icns",
|
||||
"extendInfo": {
|
||||
"LSUIElement": 0
|
||||
},
|
||||
"target": [
|
||||
{
|
||||
"target": "default",
|
||||
"arch": ["x64", "arm64"]
|
||||
}
|
||||
],
|
||||
"artifactName": "PicList-${version}-${arch}.${ext}"
|
||||
},
|
||||
"win": {
|
||||
"icon": "resources/icon.ico",
|
||||
"artifactName": "PicList-Setup-${version}-${arch}.exe",
|
||||
"verifyUpdateCodeSignature": false,
|
||||
"target": [
|
||||
{
|
||||
"target": "nsis",
|
||||
"arch": ["x64", "ia32", "arm64"]
|
||||
}
|
||||
]
|
||||
},
|
||||
"nsis": {
|
||||
"shortcutName": "PicList",
|
||||
"oneClick": false,
|
||||
"allowToChangeInstallationDirectory": true,
|
||||
"include": "build/installer.nsh"
|
||||
},
|
||||
"linux": {
|
||||
"icon": "resources/"
|
||||
},
|
||||
"snap": {
|
||||
"publish": ["github"]
|
||||
}
|
||||
}
|
||||
|
||||
306
package.json
306
package.json
@@ -1,153 +1,153 @@
|
||||
{
|
||||
"name": "piclist",
|
||||
"version": "2.9.9",
|
||||
"author": {
|
||||
"name": "Kuingsmile",
|
||||
"email": "pkukuing@gmail.com"
|
||||
},
|
||||
"description": "A powerful cloud storage manage tool.",
|
||||
"homepage": "https://piclist.cn",
|
||||
"bugs": {
|
||||
"url": "https://github.com/Kuingsmile/PicList/issues",
|
||||
"email": "pkukuing@gmail.com"
|
||||
},
|
||||
"license": "MIT",
|
||||
"type": "module",
|
||||
"main": "./out/main/index.js",
|
||||
"private": true,
|
||||
"scripts": {
|
||||
"build": "electron-vite build && electron-builder",
|
||||
"build:win": "electron-vite build && electron-builder --win",
|
||||
"build:mac": "electron-vite build && electron-builder --mac",
|
||||
"build:linux": "electron-vite build && electron-builder --linux",
|
||||
"bump": "bump-version",
|
||||
"cz": "git-cz",
|
||||
"dev": "electron-vite dev --watch",
|
||||
"i18n": "node ./scripts/gen-i18n-types.js",
|
||||
"link": "node ./scripts/link.js",
|
||||
"lint": "eslint --ext .js,.jsx,.ts,.tsx,.vue src/ scripts/ .",
|
||||
"lint:dpdm": "dpdm -T --tsconfig ./tsconfig.json --no-tree --no-warning --exit-code circular:1 src/main/index.ts",
|
||||
"lint:dpdm:renderer": "dpdm -T --tsconfig ./tsconfig.json --no-tree --no-warning --exit-code circular:1 src/renderer/main.ts",
|
||||
"lint:fix": "eslint --fix --ext .js,.jsx,.ts,.tsx,.vue src/ scripts/ .",
|
||||
"ncu": "node ./scripts/check-dep.js",
|
||||
"postinstall": "electron-builder install-app-deps",
|
||||
"postuninstall": "electron-builder install-app-deps",
|
||||
"prebuild": "electron-vite build",
|
||||
"preview": "electron-vite preview",
|
||||
"release": "electron-vite build && electron-builder --publish always",
|
||||
"sha256": "node ./scripts/gen-sha256.js",
|
||||
"test": "vitest",
|
||||
"upload-beta": "node ./scripts/upload-beta.cjs",
|
||||
"upload-dist": "node ./scripts/upload-dist-to-r2.cjs"
|
||||
},
|
||||
"dependencies": {
|
||||
"@aws-sdk/client-s3": "^3.864.0",
|
||||
"@aws-sdk/lib-storage": "^3.864.0",
|
||||
"@aws-sdk/s3-request-presigner": "^3.864.0",
|
||||
"@headlessui/vue": "^1.7.23",
|
||||
"@highlightjs/vue-plugin": "^2.1.2",
|
||||
"@nodelib/fs.walk": "^3.0.1",
|
||||
"@octokit/rest": "^22.0.0",
|
||||
"@piclist/i18n": "^2.0.0",
|
||||
"@piclist/store": "^3.0.0",
|
||||
"@smithy/node-http-handler": "^4.1.1",
|
||||
"@videojs-player/vue": "^1.0.0",
|
||||
"ali-oss": "^6.23.0",
|
||||
"axios": "^1.11.0",
|
||||
"chalk": "^5.5.0",
|
||||
"compare-versions": "^6.1.1",
|
||||
"cos-nodejs-sdk-v5": "^2.15.4",
|
||||
"dayjs": "^1.11.13",
|
||||
"dexie": "^3.2.4",
|
||||
"electron-updater": "^6.6.2",
|
||||
"fast-xml-parser": "^5.2.5",
|
||||
"form-data": "^4.0.4",
|
||||
"fs-extra": "^11.3.1",
|
||||
"got": "^14.4.7",
|
||||
"highlight.js": "^11.11.1",
|
||||
"hpagent": "^1.2.0",
|
||||
"js-yaml": "^4.1.0",
|
||||
"lodash-es": "^4.17.21",
|
||||
"lucide-vue-next": "^0.539.0",
|
||||
"marked": "^16.1.2",
|
||||
"mime-types": "^3.0.1",
|
||||
"mitt": "^3.0.1",
|
||||
"multer": "^2.0.2",
|
||||
"node-ssh-no-cpu-features": "^2.0.0",
|
||||
"nodejs-file-downloader": "^4.13.0",
|
||||
"piclist": "^2.0.0",
|
||||
"pinia": "^3.0.3",
|
||||
"pinia-plugin-persistedstate": "^4.5.0",
|
||||
"qiniu": "7.14.0",
|
||||
"qrcode.vue": "^3.6.0",
|
||||
"semver": "^7.7.2",
|
||||
"shell-path": "3.0.0",
|
||||
"ssh2-no-cpu-features": "^2.0.0",
|
||||
"tunnel": "^0.0.6",
|
||||
"upyun": "^3.4.6",
|
||||
"uuid": "^11.1.0",
|
||||
"video.js": "^8.23.4",
|
||||
"vue": "^3.5.18",
|
||||
"vue-i18n": "^11.1.11",
|
||||
"vue-router": "^4.5.1",
|
||||
"vue3-lazyload": "^0.3.8",
|
||||
"webdav": "^5.8.0",
|
||||
"write-file-atomic": "^6.0.0"
|
||||
},
|
||||
"devDependencies": {
|
||||
"@electron/notarize": "^3.0.2",
|
||||
"@eslint/js": "^9.33.0",
|
||||
"@intlify/unplugin-vue-i18n": "^6.0.8",
|
||||
"@types/ali-oss": "^6.16.11",
|
||||
"@types/fs-extra": "^11.0.4",
|
||||
"@types/js-yaml": "^4.0.9",
|
||||
"@types/lodash-es": "^4.17.12",
|
||||
"@types/mime-types": "^3.0.1",
|
||||
"@types/multer": "^2.0.0",
|
||||
"@types/node": "^24.1.0",
|
||||
"@types/semver": "^7.5.6",
|
||||
"@types/tunnel": "^0.0.7",
|
||||
"@types/upyun": "^3.4.3",
|
||||
"@types/video.js": "^7.3.58",
|
||||
"@types/write-file-atomic": "^4.0.3",
|
||||
"@vitejs/plugin-vue": "^6.0.1",
|
||||
"@vue/eslint-config-standard": "^9.0.1",
|
||||
"dotenv": "^16.3.1",
|
||||
"dpdm": "^3.14.0",
|
||||
"electron": "^36.7.4",
|
||||
"electron-builder": "^26.0.12",
|
||||
"electron-devtools-installer": "^4.0.0",
|
||||
"electron-vite": "^4.0.0",
|
||||
"eslint": "^9.33.0",
|
||||
"eslint-config-prettier": "^10.1.8",
|
||||
"eslint-plugin-prettier": "^5.5.4",
|
||||
"eslint-plugin-simple-import-sort": "^12.1.1",
|
||||
"eslint-plugin-unicorn": "^60.0.0",
|
||||
"eslint-plugin-vue": "^10.4.0",
|
||||
"globals": "^16.3.0",
|
||||
"husky": "^9.1.7",
|
||||
"node-bump-version": "^2.0.0",
|
||||
"npm-check-updates": "^18.0.2",
|
||||
"prettier": "^3.6.2",
|
||||
"stylus": "^0.64.0",
|
||||
"typescript": "^5.8.3",
|
||||
"typescript-eslint": "^8.39.1",
|
||||
"vite": "^7.1.0",
|
||||
"vitest": "^3.2.4",
|
||||
"vue-eslint-parser": "^10.2.0",
|
||||
"vue-tsc": "^3.0.5"
|
||||
},
|
||||
"config": {
|
||||
"commitizen": {
|
||||
"path": "./node_modules/cz-customizable"
|
||||
},
|
||||
"cz-customizable": {
|
||||
"config": "./node_modules/node-bump-version/.cz-config.cjs"
|
||||
}
|
||||
},
|
||||
"commitlint": {
|
||||
"extends": [
|
||||
"./node_modules/node-bump-version/dist/commitlint-node/index.js"
|
||||
]
|
||||
}
|
||||
}
|
||||
{
|
||||
"name": "piclist",
|
||||
"version": "2.9.9",
|
||||
"author": {
|
||||
"name": "Kuingsmile",
|
||||
"email": "pkukuing@gmail.com"
|
||||
},
|
||||
"description": "A powerful cloud storage manage tool.",
|
||||
"homepage": "https://piclist.cn",
|
||||
"bugs": {
|
||||
"url": "https://github.com/Kuingsmile/PicList/issues",
|
||||
"email": "pkukuing@gmail.com"
|
||||
},
|
||||
"license": "MIT",
|
||||
"type": "module",
|
||||
"main": "./out/main/index.js",
|
||||
"private": true,
|
||||
"scripts": {
|
||||
"build": "electron-vite build && electron-builder",
|
||||
"build:win": "electron-vite build && electron-builder --win",
|
||||
"build:mac": "electron-vite build && electron-builder --mac",
|
||||
"build:linux": "electron-vite build && electron-builder --linux",
|
||||
"bump": "bump-version",
|
||||
"cz": "git-cz",
|
||||
"dev": "electron-vite dev --watch",
|
||||
"i18n": "node ./scripts/gen-i18n-types.js",
|
||||
"link": "node ./scripts/link.js",
|
||||
"lint": "eslint --ext .js,.jsx,.ts,.tsx,.vue src/ scripts/ .",
|
||||
"lint:dpdm": "dpdm -T --tsconfig ./tsconfig.json --no-tree --no-warning --exit-code circular:1 src/main/index.ts",
|
||||
"lint:dpdm:renderer": "dpdm -T --tsconfig ./tsconfig.json --no-tree --no-warning --exit-code circular:1 src/renderer/main.ts",
|
||||
"lint:fix": "eslint --fix --ext .js,.jsx,.ts,.tsx,.vue src/ scripts/ .",
|
||||
"ncu": "node ./scripts/check-dep.js",
|
||||
"postinstall": "electron-builder install-app-deps",
|
||||
"postuninstall": "electron-builder install-app-deps",
|
||||
"prebuild": "electron-vite build",
|
||||
"preview": "electron-vite preview",
|
||||
"release": "electron-vite build && electron-builder --publish always",
|
||||
"sha256": "node ./scripts/gen-sha256.js",
|
||||
"test": "vitest",
|
||||
"upload-beta": "node ./scripts/upload-beta.cjs",
|
||||
"upload-dist": "node ./scripts/upload-dist-to-r2.cjs"
|
||||
},
|
||||
"dependencies": {
|
||||
"@aws-sdk/client-s3": "^3.864.0",
|
||||
"@aws-sdk/lib-storage": "^3.864.0",
|
||||
"@aws-sdk/s3-request-presigner": "^3.864.0",
|
||||
"@headlessui/vue": "^1.7.23",
|
||||
"@highlightjs/vue-plugin": "^2.1.2",
|
||||
"@nodelib/fs.walk": "^3.0.1",
|
||||
"@octokit/rest": "^22.0.0",
|
||||
"@piclist/i18n": "^2.0.0",
|
||||
"@piclist/store": "^3.0.0",
|
||||
"@smithy/node-http-handler": "^4.1.1",
|
||||
"@videojs-player/vue": "^1.0.0",
|
||||
"ali-oss": "^6.23.0",
|
||||
"axios": "^1.11.0",
|
||||
"chalk": "^5.5.0",
|
||||
"compare-versions": "^6.1.1",
|
||||
"cos-nodejs-sdk-v5": "^2.15.4",
|
||||
"dayjs": "^1.11.13",
|
||||
"dexie": "^3.2.4",
|
||||
"electron-updater": "^6.6.2",
|
||||
"fast-xml-parser": "^5.2.5",
|
||||
"form-data": "^4.0.4",
|
||||
"fs-extra": "^11.3.1",
|
||||
"got": "^14.4.7",
|
||||
"highlight.js": "^11.11.1",
|
||||
"hpagent": "^1.2.0",
|
||||
"js-yaml": "^4.1.0",
|
||||
"lodash-es": "^4.17.21",
|
||||
"lucide-vue-next": "^0.539.0",
|
||||
"marked": "^16.1.2",
|
||||
"mime-types": "^3.0.1",
|
||||
"mitt": "^3.0.1",
|
||||
"multer": "^2.0.2",
|
||||
"node-ssh-no-cpu-features": "^2.0.0",
|
||||
"nodejs-file-downloader": "^4.13.0",
|
||||
"piclist": "^2.0.0",
|
||||
"pinia": "^3.0.3",
|
||||
"pinia-plugin-persistedstate": "^4.5.0",
|
||||
"qiniu": "7.14.0",
|
||||
"qrcode.vue": "^3.6.0",
|
||||
"semver": "^7.7.2",
|
||||
"shell-path": "3.0.0",
|
||||
"ssh2-no-cpu-features": "^2.0.0",
|
||||
"tunnel": "^0.0.6",
|
||||
"upyun": "^3.4.6",
|
||||
"uuid": "^11.1.0",
|
||||
"video.js": "^8.23.4",
|
||||
"vue": "^3.5.18",
|
||||
"vue-i18n": "^11.1.11",
|
||||
"vue-router": "^4.5.1",
|
||||
"vue3-lazyload": "^0.3.8",
|
||||
"webdav": "^5.8.0",
|
||||
"write-file-atomic": "^6.0.0"
|
||||
},
|
||||
"devDependencies": {
|
||||
"@electron/notarize": "^3.0.2",
|
||||
"@eslint/js": "^9.33.0",
|
||||
"@intlify/unplugin-vue-i18n": "^6.0.8",
|
||||
"@types/ali-oss": "^6.16.11",
|
||||
"@types/fs-extra": "^11.0.4",
|
||||
"@types/js-yaml": "^4.0.9",
|
||||
"@types/lodash-es": "^4.17.12",
|
||||
"@types/mime-types": "^3.0.1",
|
||||
"@types/multer": "^2.0.0",
|
||||
"@types/node": "^24.1.0",
|
||||
"@types/semver": "^7.5.6",
|
||||
"@types/tunnel": "^0.0.7",
|
||||
"@types/upyun": "^3.4.3",
|
||||
"@types/video.js": "^7.3.58",
|
||||
"@types/write-file-atomic": "^4.0.3",
|
||||
"@vitejs/plugin-vue": "^6.0.1",
|
||||
"@vue/eslint-config-standard": "^9.0.1",
|
||||
"dotenv": "^16.3.1",
|
||||
"dpdm": "^3.14.0",
|
||||
"electron": "^36.7.4",
|
||||
"electron-builder": "^26.0.12",
|
||||
"electron-devtools-installer": "^4.0.0",
|
||||
"electron-vite": "^4.0.0",
|
||||
"eslint": "^9.33.0",
|
||||
"eslint-config-prettier": "^10.1.8",
|
||||
"eslint-plugin-prettier": "^5.5.4",
|
||||
"eslint-plugin-simple-import-sort": "^12.1.1",
|
||||
"eslint-plugin-unicorn": "^60.0.0",
|
||||
"eslint-plugin-vue": "^10.4.0",
|
||||
"globals": "^16.3.0",
|
||||
"husky": "^9.1.7",
|
||||
"node-bump-version": "^2.0.0",
|
||||
"npm-check-updates": "^18.0.2",
|
||||
"prettier": "^3.6.2",
|
||||
"stylus": "^0.64.0",
|
||||
"typescript": "^5.8.3",
|
||||
"typescript-eslint": "^8.39.1",
|
||||
"vite": "^7.1.0",
|
||||
"vitest": "^3.2.4",
|
||||
"vue-eslint-parser": "^10.2.0",
|
||||
"vue-tsc": "^3.0.5"
|
||||
},
|
||||
"config": {
|
||||
"commitizen": {
|
||||
"path": "./node_modules/cz-customizable"
|
||||
},
|
||||
"cz-customizable": {
|
||||
"config": "./node_modules/node-bump-version/.cz-config.cjs"
|
||||
}
|
||||
},
|
||||
"commitlint": {
|
||||
"extends": [
|
||||
"./node_modules/node-bump-version/dist/commitlint-node/index.js"
|
||||
]
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,33 +1,33 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
|
||||
<plist version="1.0">
|
||||
<dict>
|
||||
<key>NSServices</key>
|
||||
<array>
|
||||
<dict>
|
||||
<key>NSBackgroundColorName</key>
|
||||
<string>background</string>
|
||||
<key>NSBackgroundSystemColorName</key>
|
||||
<string>systemBlueColor</string>
|
||||
<key>NSIconName</key>
|
||||
<string>NSTouchBarShare</string>
|
||||
<key>NSMenuItem</key>
|
||||
<dict>
|
||||
<key>default</key>
|
||||
<string>Upload pictures with PicList</string>
|
||||
</dict>
|
||||
<key>NSMessage</key>
|
||||
<string>runWorkflowAsService</string>
|
||||
<key>NSRequiredContext</key>
|
||||
<dict>
|
||||
<key>NSApplicationIdentifier</key>
|
||||
<string>com.apple.finder</string>
|
||||
</dict>
|
||||
<key>NSSendFileTypes</key>
|
||||
<array>
|
||||
<string>public.image</string>
|
||||
</array>
|
||||
</dict>
|
||||
</array>
|
||||
</dict>
|
||||
</plist>
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
|
||||
<plist version="1.0">
|
||||
<dict>
|
||||
<key>NSServices</key>
|
||||
<array>
|
||||
<dict>
|
||||
<key>NSBackgroundColorName</key>
|
||||
<string>background</string>
|
||||
<key>NSBackgroundSystemColorName</key>
|
||||
<string>systemBlueColor</string>
|
||||
<key>NSIconName</key>
|
||||
<string>NSTouchBarShare</string>
|
||||
<key>NSMenuItem</key>
|
||||
<dict>
|
||||
<key>default</key>
|
||||
<string>Upload pictures with PicList</string>
|
||||
</dict>
|
||||
<key>NSMessage</key>
|
||||
<string>runWorkflowAsService</string>
|
||||
<key>NSRequiredContext</key>
|
||||
<dict>
|
||||
<key>NSApplicationIdentifier</key>
|
||||
<string>com.apple.finder</string>
|
||||
</dict>
|
||||
<key>NSSendFileTypes</key>
|
||||
<array>
|
||||
<string>public.image</string>
|
||||
</array>
|
||||
</dict>
|
||||
</array>
|
||||
</dict>
|
||||
</plist>
|
||||
|
||||
@@ -1,314 +1,314 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
|
||||
<plist version="1.0">
|
||||
<dict>
|
||||
<key>AMApplicationBuild</key>
|
||||
<string>444.42</string>
|
||||
<key>AMApplicationVersion</key>
|
||||
<string>2.9</string>
|
||||
<key>AMDocumentVersion</key>
|
||||
<string>2</string>
|
||||
<key>actions</key>
|
||||
<array>
|
||||
<dict>
|
||||
<key>action</key>
|
||||
<dict>
|
||||
<key>AMAccepts</key>
|
||||
<dict>
|
||||
<key>Container</key>
|
||||
<string>List</string>
|
||||
<key>Optional</key>
|
||||
<true/>
|
||||
<key>Types</key>
|
||||
<array>
|
||||
<string>com.apple.cocoa.string</string>
|
||||
</array>
|
||||
</dict>
|
||||
<key>AMActionVersion</key>
|
||||
<string>2.0.3</string>
|
||||
<key>AMApplication</key>
|
||||
<array>
|
||||
<string>自动操作</string>
|
||||
</array>
|
||||
<key>AMParameterProperties</key>
|
||||
<dict>
|
||||
<key>COMMAND_STRING</key>
|
||||
<dict/>
|
||||
<key>CheckedForUserDefaultShell</key>
|
||||
<dict/>
|
||||
<key>inputMethod</key>
|
||||
<dict/>
|
||||
<key>shell</key>
|
||||
<dict/>
|
||||
<key>source</key>
|
||||
<dict/>
|
||||
</dict>
|
||||
<key>AMProvides</key>
|
||||
<dict>
|
||||
<key>Container</key>
|
||||
<string>List</string>
|
||||
<key>Types</key>
|
||||
<array>
|
||||
<string>com.apple.cocoa.string</string>
|
||||
</array>
|
||||
</dict>
|
||||
<key>ActionBundlePath</key>
|
||||
<string>/System/Library/Automator/Run Shell Script.action</string>
|
||||
<key>ActionName</key>
|
||||
<string>运行 Shell 脚本</string>
|
||||
<key>ActionParameters</key>
|
||||
<dict>
|
||||
<key>COMMAND_STRING</key>
|
||||
<string>/Applications/PicList.app/Contents/MacOS/PicList upload "$@" > /dev/null 2>&1 &</string>
|
||||
<key>CheckedForUserDefaultShell</key>
|
||||
<true/>
|
||||
<key>inputMethod</key>
|
||||
<integer>1</integer>
|
||||
<key>shell</key>
|
||||
<string>/bin/bash</string>
|
||||
<key>source</key>
|
||||
<string></string>
|
||||
</dict>
|
||||
<key>BundleIdentifier</key>
|
||||
<string>com.apple.RunShellScript</string>
|
||||
<key>CFBundleVersion</key>
|
||||
<string>2.0.3</string>
|
||||
<key>CanShowSelectedItemsWhenRun</key>
|
||||
<false/>
|
||||
<key>CanShowWhenRun</key>
|
||||
<true/>
|
||||
<key>Category</key>
|
||||
<array>
|
||||
<string>AMCategoryUtilities</string>
|
||||
</array>
|
||||
<key>Class Name</key>
|
||||
<string>RunShellScriptAction</string>
|
||||
<key>InputUUID</key>
|
||||
<string>79609224-28DD-4ADE-AA8F-5A6C68C18C18</string>
|
||||
<key>Keywords</key>
|
||||
<array>
|
||||
<string>Shell</string>
|
||||
<string>脚本</string>
|
||||
<string>命令</string>
|
||||
<string>运行</string>
|
||||
<string>Unix</string>
|
||||
</array>
|
||||
<key>OutputUUID</key>
|
||||
<string>35CD6B4C-A616-4F89-8D76-DCD3249C5B4E</string>
|
||||
<key>UUID</key>
|
||||
<string>4350A83B-E7E6-4D2B-9768-B1D676CF58F3</string>
|
||||
<key>UnlocalizedApplications</key>
|
||||
<array>
|
||||
<string>Automator</string>
|
||||
</array>
|
||||
<key>arguments</key>
|
||||
<dict>
|
||||
<key>0</key>
|
||||
<dict>
|
||||
<key>default value</key>
|
||||
<integer>0</integer>
|
||||
<key>name</key>
|
||||
<string>inputMethod</string>
|
||||
<key>required</key>
|
||||
<string>0</string>
|
||||
<key>type</key>
|
||||
<string>0</string>
|
||||
<key>uuid</key>
|
||||
<string>0</string>
|
||||
</dict>
|
||||
<key>1</key>
|
||||
<dict>
|
||||
<key>default value</key>
|
||||
<string></string>
|
||||
<key>name</key>
|
||||
<string>source</string>
|
||||
<key>required</key>
|
||||
<string>0</string>
|
||||
<key>type</key>
|
||||
<string>0</string>
|
||||
<key>uuid</key>
|
||||
<string>1</string>
|
||||
</dict>
|
||||
<key>2</key>
|
||||
<dict>
|
||||
<key>default value</key>
|
||||
<false/>
|
||||
<key>name</key>
|
||||
<string>CheckedForUserDefaultShell</string>
|
||||
<key>required</key>
|
||||
<string>0</string>
|
||||
<key>type</key>
|
||||
<string>0</string>
|
||||
<key>uuid</key>
|
||||
<string>2</string>
|
||||
</dict>
|
||||
<key>3</key>
|
||||
<dict>
|
||||
<key>default value</key>
|
||||
<string></string>
|
||||
<key>name</key>
|
||||
<string>COMMAND_STRING</string>
|
||||
<key>required</key>
|
||||
<string>0</string>
|
||||
<key>type</key>
|
||||
<string>0</string>
|
||||
<key>uuid</key>
|
||||
<string>3</string>
|
||||
</dict>
|
||||
<key>4</key>
|
||||
<dict>
|
||||
<key>default value</key>
|
||||
<string>/bin/sh</string>
|
||||
<key>name</key>
|
||||
<string>shell</string>
|
||||
<key>required</key>
|
||||
<string>0</string>
|
||||
<key>type</key>
|
||||
<string>0</string>
|
||||
<key>uuid</key>
|
||||
<string>4</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<key>isViewVisible</key>
|
||||
<true/>
|
||||
<key>location</key>
|
||||
<string>449.000000:305.000000</string>
|
||||
<key>nibPath</key>
|
||||
<string>/System/Library/Automator/Run Shell Script.action/Contents/Resources/Base.lproj/main.nib</string>
|
||||
</dict>
|
||||
<key>isViewVisible</key>
|
||||
<true/>
|
||||
</dict>
|
||||
</array>
|
||||
<key>connectors</key>
|
||||
<dict/>
|
||||
<key>workflowMetaData</key>
|
||||
<dict>
|
||||
<key>applicationBundleID</key>
|
||||
<string>com.apple.finder</string>
|
||||
<key>applicationBundleIDsByPath</key>
|
||||
<dict>
|
||||
<key>/System/Library/CoreServices/Finder.app</key>
|
||||
<string>com.apple.finder</string>
|
||||
</dict>
|
||||
<key>applicationPath</key>
|
||||
<string>/System/Library/CoreServices/Finder.app</string>
|
||||
<key>applicationPaths</key>
|
||||
<array>
|
||||
<string>/System/Library/CoreServices/Finder.app</string>
|
||||
</array>
|
||||
<key>backgroundColor</key>
|
||||
<data>
|
||||
YnBsaXN0MDDUAQIDBAUGNjdYJHZlcnNpb25YJG9iamVjdHNZJGFyY2hpdmVy
|
||||
VCR0b3ASAAGGoKoHCBMUFR4kKC8zVSRudWxs1QkKCwwNDg8QERJWJGNsYXNz
|
||||
W05TQ29sb3JOYW1lXE5TQ29sb3JTcGFjZV1OU0NhdGFsb2dOYW1lV05TQ29s
|
||||
b3KACYADEAaAAoAEVlN5c3RlbV8QD3N5c3RlbUJsdWVDb2xvctUWFwsYCRka
|
||||
GxwOXE5TQ29tcG9uZW50c1VOU1JHQl8QEk5TQ3VzdG9tQ29sb3JTcGFjZUcw
|
||||
IDAgMSAxTxARMCAwIDAuOTk4MTg4OTcyNQAQAYAFgAnTHyAJISIjVE5TSURV
|
||||
TlNJQ0MQB4AGgAjSJQkmJ1dOUy5kYXRhTxEMSAAADEhMaW5vAhAAAG1udHJS
|
||||
R0IgWFlaIAfOAAIACQAGADEAAGFjc3BNU0ZUAAAAAElFQyBzUkdCAAAAAAAA
|
||||
AAAAAAAAAAD21gABAAAAANMtSFAgIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEWNwcnQAAAFQAAAAM2Rlc2MAAAGE
|
||||
AAAAbHd0cHQAAAHwAAAAFGJrcHQAAAIEAAAAFHJYWVoAAAIYAAAAFGdYWVoA
|
||||
AAIsAAAAFGJYWVoAAAJAAAAAFGRtbmQAAAJUAAAAcGRtZGQAAALEAAAAiHZ1
|
||||
ZWQAAANMAAAAhnZpZXcAAAPUAAAAJGx1bWkAAAP4AAAAFG1lYXMAAAQMAAAA
|
||||
JHRlY2gAAAQwAAAADHJUUkMAAAQ8AAAIDGdUUkMAAAQ8AAAIDGJUUkMAAAQ8
|
||||
AAAIDHRleHQAAAAAQ29weXJpZ2h0IChjKSAxOTk4IEhld2xldHQtUGFja2Fy
|
||||
ZCBDb21wYW55AABkZXNjAAAAAAAAABJzUkdCIElFQzYxOTY2LTIuMQAAAAAA
|
||||
AAAAAAAAEnNSR0IgSUVDNjE5NjYtMi4xAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABYWVogAAAAAAAA81EAAQAA
|
||||
AAEWzFhZWiAAAAAAAAAAAAAAAAAAAAAAWFlaIAAAAAAAAG+iAAA49QAAA5BY
|
||||
WVogAAAAAAAAYpkAALeFAAAY2lhZWiAAAAAAAAAkoAAAD4QAALbPZGVzYwAA
|
||||
AAAAAAAWSUVDIGh0dHA6Ly93d3cuaWVjLmNoAAAAAAAAAAAAAAAWSUVDIGh0
|
||||
dHA6Ly93d3cuaWVjLmNoAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAGRlc2MAAAAAAAAALklFQyA2MTk2Ni0yLjEgRGVm
|
||||
YXVsdCBSR0IgY29sb3VyIHNwYWNlIC0gc1JHQgAAAAAAAAAAAAAALklFQyA2
|
||||
MTk2Ni0yLjEgRGVmYXVsdCBSR0IgY29sb3VyIHNwYWNlIC0gc1JHQgAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAABkZXNjAAAAAAAAACxSZWZlcmVuY2UgVmlld2lu
|
||||
ZyBDb25kaXRpb24gaW4gSUVDNjE5NjYtMi4xAAAAAAAAAAAAAAAsUmVmZXJl
|
||||
bmNlIFZpZXdpbmcgQ29uZGl0aW9uIGluIElFQzYxOTY2LTIuMQAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAdmlldwAAAAAAE6T+ABRfLgAQzxQAA+3MAAQT
|
||||
CwADXJ4AAAABWFlaIAAAAAAATAlWAFAAAABXH+dtZWFzAAAAAAAAAAEAAAAA
|
||||
AAAAAAAAAAAAAAAAAAACjwAAAAJzaWcgAAAAAENSVCBjdXJ2AAAAAAAABAAA
|
||||
AAAFAAoADwAUABkAHgAjACgALQAyADcAOwBAAEUASgBPAFQAWQBeAGMAaABt
|
||||
AHIAdwB8AIEAhgCLAJAAlQCaAJ8ApACpAK4AsgC3ALwAwQDGAMsA0ADVANsA
|
||||
4ADlAOsA8AD2APsBAQEHAQ0BEwEZAR8BJQErATIBOAE+AUUBTAFSAVkBYAFn
|
||||
AW4BdQF8AYMBiwGSAZoBoQGpAbEBuQHBAckB0QHZAeEB6QHyAfoCAwIMAhQC
|
||||
HQImAi8COAJBAksCVAJdAmcCcQJ6AoQCjgKYAqICrAK2AsECywLVAuAC6wL1
|
||||
AwADCwMWAyEDLQM4A0MDTwNaA2YDcgN+A4oDlgOiA64DugPHA9MD4APsA/kE
|
||||
BgQTBCAELQQ7BEgEVQRjBHEEfgSMBJoEqAS2BMQE0wThBPAE/gUNBRwFKwU6
|
||||
BUkFWAVnBXcFhgWWBaYFtQXFBdUF5QX2BgYGFgYnBjcGSAZZBmoGewaMBp0G
|
||||
rwbABtEG4wb1BwcHGQcrBz0HTwdhB3QHhgeZB6wHvwfSB+UH+AgLCB8IMghG
|
||||
CFoIbgiCCJYIqgi+CNII5wj7CRAJJQk6CU8JZAl5CY8JpAm6Cc8J5Qn7ChEK
|
||||
Jwo9ClQKagqBCpgKrgrFCtwK8wsLCyILOQtRC2kLgAuYC7ALyAvhC/kMEgwq
|
||||
DEMMXAx1DI4MpwzADNkM8w0NDSYNQA1aDXQNjg2pDcMN3g34DhMOLg5JDmQO
|
||||
fw6bDrYO0g7uDwkPJQ9BD14Peg+WD7MPzw/sEAkQJhBDEGEQfhCbELkQ1xD1
|
||||
ERMRMRFPEW0RjBGqEckR6BIHEiYSRRJkEoQSoxLDEuMTAxMjE0MTYxODE6QT
|
||||
xRPlFAYUJxRJFGoUixStFM4U8BUSFTQVVhV4FZsVvRXgFgMWJhZJFmwWjxay
|
||||
FtYW+hcdF0EXZReJF64X0hf3GBsYQBhlGIoYrxjVGPoZIBlFGWsZkRm3Gd0a
|
||||
BBoqGlEadxqeGsUa7BsUGzsbYxuKG7Ib2hwCHCocUhx7HKMczBz1HR4dRx1w
|
||||
HZkdwx3sHhYeQB5qHpQevh7pHxMfPh9pH5Qfvx/qIBUgQSBsIJggxCDwIRwh
|
||||
SCF1IaEhziH7IiciVSKCIq8i3SMKIzgjZiOUI8Ij8CQfJE0kfCSrJNolCSU4
|
||||
JWgllyXHJfcmJyZXJocmtyboJxgnSSd6J6sn3CgNKD8ocSiiKNQpBik4KWsp
|
||||
nSnQKgIqNSpoKpsqzysCKzYraSudK9EsBSw5LG4soizXLQwtQS12Last4S4W
|
||||
Lkwugi63Lu4vJC9aL5Evxy/+MDUwbDCkMNsxEjFKMYIxujHyMioyYzKbMtQz
|
||||
DTNGM38zuDPxNCs0ZTSeNNg1EzVNNYc1wjX9Njc2cjauNuk3JDdgN5w31zgU
|
||||
OFA4jDjIOQU5Qjl/Obw5+To2OnQ6sjrvOy07azuqO+g8JzxlPKQ84z0iPWE9
|
||||
oT3gPiA+YD6gPuA/IT9hP6I/4kAjQGRApkDnQSlBakGsQe5CMEJyQrVC90M6
|
||||
Q31DwEQDREdEikTORRJFVUWaRd5GIkZnRqtG8Ec1R3tHwEgFSEtIkUjXSR1J
|
||||
Y0mpSfBKN0p9SsRLDEtTS5pL4kwqTHJMuk0CTUpNk03cTiVObk63TwBPSU+T
|
||||
T91QJ1BxULtRBlFQUZtR5lIxUnxSx1MTU19TqlP2VEJUj1TbVShVdVXCVg9W
|
||||
XFapVvdXRFeSV+BYL1h9WMtZGllpWbhaB1pWWqZa9VtFW5Vb5Vw1XIZc1l0n
|
||||
XXhdyV4aXmxevV8PX2Ffs2AFYFdgqmD8YU9homH1YklinGLwY0Njl2PrZEBk
|
||||
lGTpZT1lkmXnZj1mkmboZz1nk2fpaD9olmjsaUNpmmnxakhqn2r3a09rp2v/
|
||||
bFdsr20IbWBtuW4SbmtuxG8eb3hv0XArcIZw4HE6cZVx8HJLcqZzAXNdc7h0
|
||||
FHRwdMx1KHWFdeF2Pnabdvh3VnezeBF4bnjMeSp5iXnnekZ6pXsEe2N7wnwh
|
||||
fIF84X1BfaF+AX5ifsJ/I3+Ef+WAR4CogQqBa4HNgjCCkoL0g1eDuoQdhICE
|
||||
44VHhauGDoZyhteHO4efiASIaYjOiTOJmYn+imSKyoswi5aL/IxjjMqNMY2Y
|
||||
jf+OZo7OjzaPnpAGkG6Q1pE/kaiSEZJ6kuOTTZO2lCCUipT0lV+VyZY0lp+X
|
||||
Cpd1l+CYTJi4mSSZkJn8mmia1ZtCm6+cHJyJnPedZJ3SnkCerp8dn4uf+qBp
|
||||
oNihR6G2oiailqMGo3aj5qRWpMelOKWpphqmi6b9p26n4KhSqMSpN6mpqhyq
|
||||
j6sCq3Wr6axcrNCtRK24ri2uoa8Wr4uwALB1sOqxYLHWskuywrM4s660JbSc
|
||||
tRO1irYBtnm28Ldot+C4WbjRuUq5wro7urW7LrunvCG8m70VvY++Cr6Evv+/
|
||||
er/1wHDA7MFnwePCX8Lbw1jD1MRRxM7FS8XIxkbGw8dBx7/IPci8yTrJuco4
|
||||
yrfLNsu2zDXMtc01zbXONs62zzfPuNA50LrRPNG+0j/SwdNE08bUSdTL1U7V
|
||||
0dZV1tjXXNfg2GTY6Nls2fHadtr724DcBdyK3RDdlt4c3qLfKd+v4DbgveFE
|
||||
4cziU+Lb42Pj6+Rz5PzlhOYN5pbnH+ep6DLovOlG6dDqW+rl63Dr++yG7RHt
|
||||
nO4o7rTvQO/M8Fjw5fFy8f/yjPMZ86f0NPTC9VD13vZt9vv3ivgZ+Kj5OPnH
|
||||
+lf65/t3/Af8mP0p/br+S/7c/23//4AH0ikqKyxaJGNsYXNzbmFtZVgkY2xh
|
||||
c3Nlc11OU011dGFibGVEYXRhoystLlZOU0RhdGFYTlNPYmplY3TSKSowMVxO
|
||||
U0NvbG9yU3BhY2WiMi5cTlNDb2xvclNwYWNl0ikqNDVXTlNDb2xvcqI0Ll8Q
|
||||
D05TS2V5ZWRBcmNoaXZlctE4OVRyb290gAEACAARABoAIwAtADIANwBCAEgA
|
||||
UwBaAGYAcwCBAIkAiwCNAI8AkQCTAJoArAC3AMQAygDfAOcA+wD9AP8BAQEI
|
||||
AQ0BEwEVARcBGQEeASYNcg10DXkNhA2NDZsNnw2mDa8NtA3BDcQN0Q3WDd4N
|
||||
4Q3zDfYN+wAAAAAAAAIBAAAAAAAAADoAAAAAAAAAAAAAAAAAAA39
|
||||
</data>
|
||||
<key>backgroundColorName</key>
|
||||
<string>systemBlueColor</string>
|
||||
<key>inputTypeIdentifier</key>
|
||||
<string>com.apple.Automator.fileSystemObject.image</string>
|
||||
<key>outputTypeIdentifier</key>
|
||||
<string>com.apple.Automator.nothing</string>
|
||||
<key>presentationMode</key>
|
||||
<integer>15</integer>
|
||||
<key>processesInput</key>
|
||||
<integer>0</integer>
|
||||
<key>serviceApplicationBundleID</key>
|
||||
<string>com.apple.finder</string>
|
||||
<key>serviceApplicationPath</key>
|
||||
<string>/System/Library/CoreServices/Finder.app</string>
|
||||
<key>serviceInputTypeIdentifier</key>
|
||||
<string>com.apple.Automator.fileSystemObject.image</string>
|
||||
<key>serviceOutputTypeIdentifier</key>
|
||||
<string>com.apple.Automator.nothing</string>
|
||||
<key>serviceProcessesInput</key>
|
||||
<integer>0</integer>
|
||||
<key>systemImageName</key>
|
||||
<string>NSTouchBarShare</string>
|
||||
<key>useAutomaticInputType</key>
|
||||
<integer>0</integer>
|
||||
<key>workflowTypeIdentifier</key>
|
||||
<string>com.apple.Automator.servicesMenu</string>
|
||||
</dict>
|
||||
</dict>
|
||||
</plist>
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
|
||||
<plist version="1.0">
|
||||
<dict>
|
||||
<key>AMApplicationBuild</key>
|
||||
<string>444.42</string>
|
||||
<key>AMApplicationVersion</key>
|
||||
<string>2.9</string>
|
||||
<key>AMDocumentVersion</key>
|
||||
<string>2</string>
|
||||
<key>actions</key>
|
||||
<array>
|
||||
<dict>
|
||||
<key>action</key>
|
||||
<dict>
|
||||
<key>AMAccepts</key>
|
||||
<dict>
|
||||
<key>Container</key>
|
||||
<string>List</string>
|
||||
<key>Optional</key>
|
||||
<true/>
|
||||
<key>Types</key>
|
||||
<array>
|
||||
<string>com.apple.cocoa.string</string>
|
||||
</array>
|
||||
</dict>
|
||||
<key>AMActionVersion</key>
|
||||
<string>2.0.3</string>
|
||||
<key>AMApplication</key>
|
||||
<array>
|
||||
<string>自动操作</string>
|
||||
</array>
|
||||
<key>AMParameterProperties</key>
|
||||
<dict>
|
||||
<key>COMMAND_STRING</key>
|
||||
<dict/>
|
||||
<key>CheckedForUserDefaultShell</key>
|
||||
<dict/>
|
||||
<key>inputMethod</key>
|
||||
<dict/>
|
||||
<key>shell</key>
|
||||
<dict/>
|
||||
<key>source</key>
|
||||
<dict/>
|
||||
</dict>
|
||||
<key>AMProvides</key>
|
||||
<dict>
|
||||
<key>Container</key>
|
||||
<string>List</string>
|
||||
<key>Types</key>
|
||||
<array>
|
||||
<string>com.apple.cocoa.string</string>
|
||||
</array>
|
||||
</dict>
|
||||
<key>ActionBundlePath</key>
|
||||
<string>/System/Library/Automator/Run Shell Script.action</string>
|
||||
<key>ActionName</key>
|
||||
<string>运行 Shell 脚本</string>
|
||||
<key>ActionParameters</key>
|
||||
<dict>
|
||||
<key>COMMAND_STRING</key>
|
||||
<string>/Applications/PicList.app/Contents/MacOS/PicList upload "$@" > /dev/null 2>&1 &</string>
|
||||
<key>CheckedForUserDefaultShell</key>
|
||||
<true/>
|
||||
<key>inputMethod</key>
|
||||
<integer>1</integer>
|
||||
<key>shell</key>
|
||||
<string>/bin/bash</string>
|
||||
<key>source</key>
|
||||
<string></string>
|
||||
</dict>
|
||||
<key>BundleIdentifier</key>
|
||||
<string>com.apple.RunShellScript</string>
|
||||
<key>CFBundleVersion</key>
|
||||
<string>2.0.3</string>
|
||||
<key>CanShowSelectedItemsWhenRun</key>
|
||||
<false/>
|
||||
<key>CanShowWhenRun</key>
|
||||
<true/>
|
||||
<key>Category</key>
|
||||
<array>
|
||||
<string>AMCategoryUtilities</string>
|
||||
</array>
|
||||
<key>Class Name</key>
|
||||
<string>RunShellScriptAction</string>
|
||||
<key>InputUUID</key>
|
||||
<string>79609224-28DD-4ADE-AA8F-5A6C68C18C18</string>
|
||||
<key>Keywords</key>
|
||||
<array>
|
||||
<string>Shell</string>
|
||||
<string>脚本</string>
|
||||
<string>命令</string>
|
||||
<string>运行</string>
|
||||
<string>Unix</string>
|
||||
</array>
|
||||
<key>OutputUUID</key>
|
||||
<string>35CD6B4C-A616-4F89-8D76-DCD3249C5B4E</string>
|
||||
<key>UUID</key>
|
||||
<string>4350A83B-E7E6-4D2B-9768-B1D676CF58F3</string>
|
||||
<key>UnlocalizedApplications</key>
|
||||
<array>
|
||||
<string>Automator</string>
|
||||
</array>
|
||||
<key>arguments</key>
|
||||
<dict>
|
||||
<key>0</key>
|
||||
<dict>
|
||||
<key>default value</key>
|
||||
<integer>0</integer>
|
||||
<key>name</key>
|
||||
<string>inputMethod</string>
|
||||
<key>required</key>
|
||||
<string>0</string>
|
||||
<key>type</key>
|
||||
<string>0</string>
|
||||
<key>uuid</key>
|
||||
<string>0</string>
|
||||
</dict>
|
||||
<key>1</key>
|
||||
<dict>
|
||||
<key>default value</key>
|
||||
<string></string>
|
||||
<key>name</key>
|
||||
<string>source</string>
|
||||
<key>required</key>
|
||||
<string>0</string>
|
||||
<key>type</key>
|
||||
<string>0</string>
|
||||
<key>uuid</key>
|
||||
<string>1</string>
|
||||
</dict>
|
||||
<key>2</key>
|
||||
<dict>
|
||||
<key>default value</key>
|
||||
<false/>
|
||||
<key>name</key>
|
||||
<string>CheckedForUserDefaultShell</string>
|
||||
<key>required</key>
|
||||
<string>0</string>
|
||||
<key>type</key>
|
||||
<string>0</string>
|
||||
<key>uuid</key>
|
||||
<string>2</string>
|
||||
</dict>
|
||||
<key>3</key>
|
||||
<dict>
|
||||
<key>default value</key>
|
||||
<string></string>
|
||||
<key>name</key>
|
||||
<string>COMMAND_STRING</string>
|
||||
<key>required</key>
|
||||
<string>0</string>
|
||||
<key>type</key>
|
||||
<string>0</string>
|
||||
<key>uuid</key>
|
||||
<string>3</string>
|
||||
</dict>
|
||||
<key>4</key>
|
||||
<dict>
|
||||
<key>default value</key>
|
||||
<string>/bin/sh</string>
|
||||
<key>name</key>
|
||||
<string>shell</string>
|
||||
<key>required</key>
|
||||
<string>0</string>
|
||||
<key>type</key>
|
||||
<string>0</string>
|
||||
<key>uuid</key>
|
||||
<string>4</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<key>isViewVisible</key>
|
||||
<true/>
|
||||
<key>location</key>
|
||||
<string>449.000000:305.000000</string>
|
||||
<key>nibPath</key>
|
||||
<string>/System/Library/Automator/Run Shell Script.action/Contents/Resources/Base.lproj/main.nib</string>
|
||||
</dict>
|
||||
<key>isViewVisible</key>
|
||||
<true/>
|
||||
</dict>
|
||||
</array>
|
||||
<key>connectors</key>
|
||||
<dict/>
|
||||
<key>workflowMetaData</key>
|
||||
<dict>
|
||||
<key>applicationBundleID</key>
|
||||
<string>com.apple.finder</string>
|
||||
<key>applicationBundleIDsByPath</key>
|
||||
<dict>
|
||||
<key>/System/Library/CoreServices/Finder.app</key>
|
||||
<string>com.apple.finder</string>
|
||||
</dict>
|
||||
<key>applicationPath</key>
|
||||
<string>/System/Library/CoreServices/Finder.app</string>
|
||||
<key>applicationPaths</key>
|
||||
<array>
|
||||
<string>/System/Library/CoreServices/Finder.app</string>
|
||||
</array>
|
||||
<key>backgroundColor</key>
|
||||
<data>
|
||||
YnBsaXN0MDDUAQIDBAUGNjdYJHZlcnNpb25YJG9iamVjdHNZJGFyY2hpdmVy
|
||||
VCR0b3ASAAGGoKoHCBMUFR4kKC8zVSRudWxs1QkKCwwNDg8QERJWJGNsYXNz
|
||||
W05TQ29sb3JOYW1lXE5TQ29sb3JTcGFjZV1OU0NhdGFsb2dOYW1lV05TQ29s
|
||||
b3KACYADEAaAAoAEVlN5c3RlbV8QD3N5c3RlbUJsdWVDb2xvctUWFwsYCRka
|
||||
GxwOXE5TQ29tcG9uZW50c1VOU1JHQl8QEk5TQ3VzdG9tQ29sb3JTcGFjZUcw
|
||||
IDAgMSAxTxARMCAwIDAuOTk4MTg4OTcyNQAQAYAFgAnTHyAJISIjVE5TSURV
|
||||
TlNJQ0MQB4AGgAjSJQkmJ1dOUy5kYXRhTxEMSAAADEhMaW5vAhAAAG1udHJS
|
||||
R0IgWFlaIAfOAAIACQAGADEAAGFjc3BNU0ZUAAAAAElFQyBzUkdCAAAAAAAA
|
||||
AAAAAAAAAAD21gABAAAAANMtSFAgIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEWNwcnQAAAFQAAAAM2Rlc2MAAAGE
|
||||
AAAAbHd0cHQAAAHwAAAAFGJrcHQAAAIEAAAAFHJYWVoAAAIYAAAAFGdYWVoA
|
||||
AAIsAAAAFGJYWVoAAAJAAAAAFGRtbmQAAAJUAAAAcGRtZGQAAALEAAAAiHZ1
|
||||
ZWQAAANMAAAAhnZpZXcAAAPUAAAAJGx1bWkAAAP4AAAAFG1lYXMAAAQMAAAA
|
||||
JHRlY2gAAAQwAAAADHJUUkMAAAQ8AAAIDGdUUkMAAAQ8AAAIDGJUUkMAAAQ8
|
||||
AAAIDHRleHQAAAAAQ29weXJpZ2h0IChjKSAxOTk4IEhld2xldHQtUGFja2Fy
|
||||
ZCBDb21wYW55AABkZXNjAAAAAAAAABJzUkdCIElFQzYxOTY2LTIuMQAAAAAA
|
||||
AAAAAAAAEnNSR0IgSUVDNjE5NjYtMi4xAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABYWVogAAAAAAAA81EAAQAA
|
||||
AAEWzFhZWiAAAAAAAAAAAAAAAAAAAAAAWFlaIAAAAAAAAG+iAAA49QAAA5BY
|
||||
WVogAAAAAAAAYpkAALeFAAAY2lhZWiAAAAAAAAAkoAAAD4QAALbPZGVzYwAA
|
||||
AAAAAAAWSUVDIGh0dHA6Ly93d3cuaWVjLmNoAAAAAAAAAAAAAAAWSUVDIGh0
|
||||
dHA6Ly93d3cuaWVjLmNoAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAGRlc2MAAAAAAAAALklFQyA2MTk2Ni0yLjEgRGVm
|
||||
YXVsdCBSR0IgY29sb3VyIHNwYWNlIC0gc1JHQgAAAAAAAAAAAAAALklFQyA2
|
||||
MTk2Ni0yLjEgRGVmYXVsdCBSR0IgY29sb3VyIHNwYWNlIC0gc1JHQgAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAABkZXNjAAAAAAAAACxSZWZlcmVuY2UgVmlld2lu
|
||||
ZyBDb25kaXRpb24gaW4gSUVDNjE5NjYtMi4xAAAAAAAAAAAAAAAsUmVmZXJl
|
||||
bmNlIFZpZXdpbmcgQ29uZGl0aW9uIGluIElFQzYxOTY2LTIuMQAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAdmlldwAAAAAAE6T+ABRfLgAQzxQAA+3MAAQT
|
||||
CwADXJ4AAAABWFlaIAAAAAAATAlWAFAAAABXH+dtZWFzAAAAAAAAAAEAAAAA
|
||||
AAAAAAAAAAAAAAAAAAACjwAAAAJzaWcgAAAAAENSVCBjdXJ2AAAAAAAABAAA
|
||||
AAAFAAoADwAUABkAHgAjACgALQAyADcAOwBAAEUASgBPAFQAWQBeAGMAaABt
|
||||
AHIAdwB8AIEAhgCLAJAAlQCaAJ8ApACpAK4AsgC3ALwAwQDGAMsA0ADVANsA
|
||||
4ADlAOsA8AD2APsBAQEHAQ0BEwEZAR8BJQErATIBOAE+AUUBTAFSAVkBYAFn
|
||||
AW4BdQF8AYMBiwGSAZoBoQGpAbEBuQHBAckB0QHZAeEB6QHyAfoCAwIMAhQC
|
||||
HQImAi8COAJBAksCVAJdAmcCcQJ6AoQCjgKYAqICrAK2AsECywLVAuAC6wL1
|
||||
AwADCwMWAyEDLQM4A0MDTwNaA2YDcgN+A4oDlgOiA64DugPHA9MD4APsA/kE
|
||||
BgQTBCAELQQ7BEgEVQRjBHEEfgSMBJoEqAS2BMQE0wThBPAE/gUNBRwFKwU6
|
||||
BUkFWAVnBXcFhgWWBaYFtQXFBdUF5QX2BgYGFgYnBjcGSAZZBmoGewaMBp0G
|
||||
rwbABtEG4wb1BwcHGQcrBz0HTwdhB3QHhgeZB6wHvwfSB+UH+AgLCB8IMghG
|
||||
CFoIbgiCCJYIqgi+CNII5wj7CRAJJQk6CU8JZAl5CY8JpAm6Cc8J5Qn7ChEK
|
||||
Jwo9ClQKagqBCpgKrgrFCtwK8wsLCyILOQtRC2kLgAuYC7ALyAvhC/kMEgwq
|
||||
DEMMXAx1DI4MpwzADNkM8w0NDSYNQA1aDXQNjg2pDcMN3g34DhMOLg5JDmQO
|
||||
fw6bDrYO0g7uDwkPJQ9BD14Peg+WD7MPzw/sEAkQJhBDEGEQfhCbELkQ1xD1
|
||||
ERMRMRFPEW0RjBGqEckR6BIHEiYSRRJkEoQSoxLDEuMTAxMjE0MTYxODE6QT
|
||||
xRPlFAYUJxRJFGoUixStFM4U8BUSFTQVVhV4FZsVvRXgFgMWJhZJFmwWjxay
|
||||
FtYW+hcdF0EXZReJF64X0hf3GBsYQBhlGIoYrxjVGPoZIBlFGWsZkRm3Gd0a
|
||||
BBoqGlEadxqeGsUa7BsUGzsbYxuKG7Ib2hwCHCocUhx7HKMczBz1HR4dRx1w
|
||||
HZkdwx3sHhYeQB5qHpQevh7pHxMfPh9pH5Qfvx/qIBUgQSBsIJggxCDwIRwh
|
||||
SCF1IaEhziH7IiciVSKCIq8i3SMKIzgjZiOUI8Ij8CQfJE0kfCSrJNolCSU4
|
||||
JWgllyXHJfcmJyZXJocmtyboJxgnSSd6J6sn3CgNKD8ocSiiKNQpBik4KWsp
|
||||
nSnQKgIqNSpoKpsqzysCKzYraSudK9EsBSw5LG4soizXLQwtQS12Last4S4W
|
||||
Lkwugi63Lu4vJC9aL5Evxy/+MDUwbDCkMNsxEjFKMYIxujHyMioyYzKbMtQz
|
||||
DTNGM38zuDPxNCs0ZTSeNNg1EzVNNYc1wjX9Njc2cjauNuk3JDdgN5w31zgU
|
||||
OFA4jDjIOQU5Qjl/Obw5+To2OnQ6sjrvOy07azuqO+g8JzxlPKQ84z0iPWE9
|
||||
oT3gPiA+YD6gPuA/IT9hP6I/4kAjQGRApkDnQSlBakGsQe5CMEJyQrVC90M6
|
||||
Q31DwEQDREdEikTORRJFVUWaRd5GIkZnRqtG8Ec1R3tHwEgFSEtIkUjXSR1J
|
||||
Y0mpSfBKN0p9SsRLDEtTS5pL4kwqTHJMuk0CTUpNk03cTiVObk63TwBPSU+T
|
||||
T91QJ1BxULtRBlFQUZtR5lIxUnxSx1MTU19TqlP2VEJUj1TbVShVdVXCVg9W
|
||||
XFapVvdXRFeSV+BYL1h9WMtZGllpWbhaB1pWWqZa9VtFW5Vb5Vw1XIZc1l0n
|
||||
XXhdyV4aXmxevV8PX2Ffs2AFYFdgqmD8YU9homH1YklinGLwY0Njl2PrZEBk
|
||||
lGTpZT1lkmXnZj1mkmboZz1nk2fpaD9olmjsaUNpmmnxakhqn2r3a09rp2v/
|
||||
bFdsr20IbWBtuW4SbmtuxG8eb3hv0XArcIZw4HE6cZVx8HJLcqZzAXNdc7h0
|
||||
FHRwdMx1KHWFdeF2Pnabdvh3VnezeBF4bnjMeSp5iXnnekZ6pXsEe2N7wnwh
|
||||
fIF84X1BfaF+AX5ifsJ/I3+Ef+WAR4CogQqBa4HNgjCCkoL0g1eDuoQdhICE
|
||||
44VHhauGDoZyhteHO4efiASIaYjOiTOJmYn+imSKyoswi5aL/IxjjMqNMY2Y
|
||||
jf+OZo7OjzaPnpAGkG6Q1pE/kaiSEZJ6kuOTTZO2lCCUipT0lV+VyZY0lp+X
|
||||
Cpd1l+CYTJi4mSSZkJn8mmia1ZtCm6+cHJyJnPedZJ3SnkCerp8dn4uf+qBp
|
||||
oNihR6G2oiailqMGo3aj5qRWpMelOKWpphqmi6b9p26n4KhSqMSpN6mpqhyq
|
||||
j6sCq3Wr6axcrNCtRK24ri2uoa8Wr4uwALB1sOqxYLHWskuywrM4s660JbSc
|
||||
tRO1irYBtnm28Ldot+C4WbjRuUq5wro7urW7LrunvCG8m70VvY++Cr6Evv+/
|
||||
er/1wHDA7MFnwePCX8Lbw1jD1MRRxM7FS8XIxkbGw8dBx7/IPci8yTrJuco4
|
||||
yrfLNsu2zDXMtc01zbXONs62zzfPuNA50LrRPNG+0j/SwdNE08bUSdTL1U7V
|
||||
0dZV1tjXXNfg2GTY6Nls2fHadtr724DcBdyK3RDdlt4c3qLfKd+v4DbgveFE
|
||||
4cziU+Lb42Pj6+Rz5PzlhOYN5pbnH+ep6DLovOlG6dDqW+rl63Dr++yG7RHt
|
||||
nO4o7rTvQO/M8Fjw5fFy8f/yjPMZ86f0NPTC9VD13vZt9vv3ivgZ+Kj5OPnH
|
||||
+lf65/t3/Af8mP0p/br+S/7c/23//4AH0ikqKyxaJGNsYXNzbmFtZVgkY2xh
|
||||
c3Nlc11OU011dGFibGVEYXRhoystLlZOU0RhdGFYTlNPYmplY3TSKSowMVxO
|
||||
U0NvbG9yU3BhY2WiMi5cTlNDb2xvclNwYWNl0ikqNDVXTlNDb2xvcqI0Ll8Q
|
||||
D05TS2V5ZWRBcmNoaXZlctE4OVRyb290gAEACAARABoAIwAtADIANwBCAEgA
|
||||
UwBaAGYAcwCBAIkAiwCNAI8AkQCTAJoArAC3AMQAygDfAOcA+wD9AP8BAQEI
|
||||
AQ0BEwEVARcBGQEeASYNcg10DXkNhA2NDZsNnw2mDa8NtA3BDcQN0Q3WDd4N
|
||||
4Q3zDfYN+wAAAAAAAAIBAAAAAAAAADoAAAAAAAAAAAAAAAAAAA39
|
||||
</data>
|
||||
<key>backgroundColorName</key>
|
||||
<string>systemBlueColor</string>
|
||||
<key>inputTypeIdentifier</key>
|
||||
<string>com.apple.Automator.fileSystemObject.image</string>
|
||||
<key>outputTypeIdentifier</key>
|
||||
<string>com.apple.Automator.nothing</string>
|
||||
<key>presentationMode</key>
|
||||
<integer>15</integer>
|
||||
<key>processesInput</key>
|
||||
<integer>0</integer>
|
||||
<key>serviceApplicationBundleID</key>
|
||||
<string>com.apple.finder</string>
|
||||
<key>serviceApplicationPath</key>
|
||||
<string>/System/Library/CoreServices/Finder.app</string>
|
||||
<key>serviceInputTypeIdentifier</key>
|
||||
<string>com.apple.Automator.fileSystemObject.image</string>
|
||||
<key>serviceOutputTypeIdentifier</key>
|
||||
<string>com.apple.Automator.nothing</string>
|
||||
<key>serviceProcessesInput</key>
|
||||
<integer>0</integer>
|
||||
<key>systemImageName</key>
|
||||
<string>NSTouchBarShare</string>
|
||||
<key>useAutomaticInputType</key>
|
||||
<integer>0</integer>
|
||||
<key>workflowTypeIdentifier</key>
|
||||
<string>com.apple.Automator.servicesMenu</string>
|
||||
</dict>
|
||||
</dict>
|
||||
</plist>
|
||||
|
||||
@@ -1,34 +1,34 @@
|
||||
#!/bin/sh
|
||||
if [ "$XDG_SESSION_TYPE" = "x11" ]; then
|
||||
# require xclip(see http://stackoverflow.com/questions/592620/check-if-a-program-exists-from-a-bash-script/677212#677212)
|
||||
command -v xclip >/dev/null 2>&1 || { echo >&1 "no xclip"; exit 1; }
|
||||
# write image in clipboard to file (see http://unix.stackexchange.com/questions/145131/copy-image-from-clipboard-to-file)
|
||||
filePath=`xclip -selection clipboard -o 2>/dev/null | grep ^file:// | cut -c8-`
|
||||
if [ ! -n "$filePath" ] ;then
|
||||
if
|
||||
xclip -selection clipboard -target image/png -o >/dev/null 2>&1
|
||||
then
|
||||
xclip -selection clipboard -target image/png -o >$1 2>/dev/null
|
||||
echo $1
|
||||
else
|
||||
echo "no image"
|
||||
fi
|
||||
else
|
||||
echo $filePath
|
||||
fi
|
||||
elif [ "$XDG_SESSION_TYPE" = "wayland" ]; then
|
||||
command -v wl-copy >/dev/null 2>&1 || { echo >&1 "no wl-clipboard"; exit 1; }
|
||||
filePath=`wl-copy -o 2>/dev/null | grep ^file:// | cut -c8-`
|
||||
if [ ! -n "$filePath" ] ;then
|
||||
if
|
||||
wl-copy -t image/png -o >/dev/null 2>&1
|
||||
then
|
||||
wl-copy -t image/png image/png -o >$1 2>/dev/null
|
||||
echo $1
|
||||
else
|
||||
echo "no image"
|
||||
fi
|
||||
else
|
||||
echo $filePath
|
||||
fi
|
||||
fi
|
||||
#!/bin/sh
|
||||
if [ "$XDG_SESSION_TYPE" = "x11" ]; then
|
||||
# require xclip(see http://stackoverflow.com/questions/592620/check-if-a-program-exists-from-a-bash-script/677212#677212)
|
||||
command -v xclip >/dev/null 2>&1 || { echo >&1 "no xclip"; exit 1; }
|
||||
# write image in clipboard to file (see http://unix.stackexchange.com/questions/145131/copy-image-from-clipboard-to-file)
|
||||
filePath=`xclip -selection clipboard -o 2>/dev/null | grep ^file:// | cut -c8-`
|
||||
if [ ! -n "$filePath" ] ;then
|
||||
if
|
||||
xclip -selection clipboard -target image/png -o >/dev/null 2>&1
|
||||
then
|
||||
xclip -selection clipboard -target image/png -o >$1 2>/dev/null
|
||||
echo $1
|
||||
else
|
||||
echo "no image"
|
||||
fi
|
||||
else
|
||||
echo $filePath
|
||||
fi
|
||||
elif [ "$XDG_SESSION_TYPE" = "wayland" ]; then
|
||||
command -v wl-copy >/dev/null 2>&1 || { echo >&1 "no wl-clipboard"; exit 1; }
|
||||
filePath=`wl-copy -o 2>/dev/null | grep ^file:// | cut -c8-`
|
||||
if [ ! -n "$filePath" ] ;then
|
||||
if
|
||||
wl-copy -t image/png -o >/dev/null 2>&1
|
||||
then
|
||||
wl-copy -t image/png image/png -o >$1 2>/dev/null
|
||||
echo $1
|
||||
else
|
||||
echo "no image"
|
||||
fi
|
||||
else
|
||||
echo $filePath
|
||||
fi
|
||||
fi
|
||||
|
||||
@@ -1,18 +1,18 @@
|
||||
#!/bin/sh
|
||||
# grab the paths
|
||||
scriptPath=$(echo $0 | awk '{ print substr( $0, 1, length($0)-6 ) }')"windows10.ps1"
|
||||
imagePath=$(echo $1 | awk '{ print substr( $0, 1, length($0)-18 ) }')
|
||||
imageName=$(echo $1 | awk '{ print substr( $0, length($0)-17, length($0) ) }')
|
||||
|
||||
# run the powershell script
|
||||
res=$(powershell.exe -noprofile -noninteractive -nologo -sta -executionpolicy unrestricted -file $(wslpath -w $scriptPath) $(wslpath -w $imagePath)"\\"$imageName)
|
||||
|
||||
# note that there is a return symbol in powershell result
|
||||
noImage=$(echo "no image\r")
|
||||
|
||||
# check whether image exists
|
||||
if [ "$res" = "$noImage" ] ;then
|
||||
echo "no image"
|
||||
else
|
||||
echo $(wslpath -u $res)
|
||||
fi
|
||||
#!/bin/sh
|
||||
# grab the paths
|
||||
scriptPath=$(echo $0 | awk '{ print substr( $0, 1, length($0)-6 ) }')"windows10.ps1"
|
||||
imagePath=$(echo $1 | awk '{ print substr( $0, 1, length($0)-18 ) }')
|
||||
imageName=$(echo $1 | awk '{ print substr( $0, length($0)-17, length($0) ) }')
|
||||
|
||||
# run the powershell script
|
||||
res=$(powershell.exe -noprofile -noninteractive -nologo -sta -executionpolicy unrestricted -file $(wslpath -w $scriptPath) $(wslpath -w $imagePath)"\\"$imageName)
|
||||
|
||||
# note that there is a return symbol in powershell result
|
||||
noImage=$(echo "no image\r")
|
||||
|
||||
# check whether image exists
|
||||
if [ "$res" = "$noImage" ] ;then
|
||||
echo "no image"
|
||||
else
|
||||
echo $(wslpath -u $res)
|
||||
fi
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
Reference in New Issue
Block a user